새 소식

보안 및 개인 정보를 보호하는 Slack AI를 구축한 방법

Slack 팀이 작성2024년 5월 20일

편집자 참고 사항: 이 포스트는 원래 Slack의 엔지니어링 블로그에 게시되었던 글입니다.

Slack은 오랫동안 보수적인 기술 전문가였습니다. 다시 말해, 새로운 카테고리의 인프라를 활용하는 데 투자한다면 이를 엄격하게 수행하죠. 2016년에 처음으로 머신 러닝 기반의 기능들을 선보일 때부터 그렇게 해 왔으며, 해당 분야에서 강력한 프로세스와 숙련된 팀을 개발해 왔습니다.

그럼에도 불구하고 지난 한 해 동안 상업적으로 이용할 수 있는 대규모 언어 모델(LLM)의 기능이 향상된 데에 상당히 놀랐습니다. 더 중요한 것은 사용자의 가장 큰 고충 지점을 해결할 수 있다는 것입니다. 읽을 것이 너무 많으신가요? 자료를 찾기가 너무 힘드신가요? 이젠 그럴 일이 없습니다. AI를 채택한 사용자의 90%가 그러지 않은 사용자에 비해 높은 수준의 생산성을 보이는 것으로 보고되었습니다.

하지만 모든 새 기술이 그렇듯이 AI를 이용해 제품을 출시하는 능력은 고객 데이터 관리에 대한 Slack의 엄격한 표준을 충족하는 구현 방법을 찾는 데 달려 있습니다. 따라서 저희는 놀라운 AI 기능뿐만 아니라 놀랍고도 신뢰할 수 있는 AI를 구축하는 일에 착수했습니다.

생성형 모델 산업은 상당히 초기인 편입니다. 여전히 대체로 엔터프라이즈 고객에 중점을 두기보다는 연구에 중점을 두고 있습니다. 새 Slack AI 아키텍처를 구축할 때 활용할 수 있는 기존 엔터프라이즈급 보안 및 개인 정보 보호 패턴이 거의 없었습니다.

대신, Slack AI 구축 방법에 대한 정보를 얻기 위해 첫 번째 원칙에서부터 시작했습니다. 기존 보안 및 규정 준수 제품은 물론, ‘고객 데이터는 신성불가침’이라는 개인 정보 보호 원칙을 고수한다는 요건에서 시작했습니다. 그런 다음 팀은 생성형 AI의 특정 관점을 통해 지침이 될 새로운 Slack AI 원칙들을 세웠습니다.

  • 고객 데이터는 Slack 내에서만 사용됩니다.
  • 고객 데이터에 기반해 대규모 언어 모델(LLM)을 학습시키지 않습니다.
  • Slack AI는 사용자가 이미 볼 수 있는 데이터만을 기반으로 작동합니다.
  • Slack AI는 Slack의 엔터프라이즈급 보안 및 규정 준수 사항을 지킵니다.

이러한 원칙으로 인해 아키텍처를 설계하는 일은 때로는 더 까다롭지만 더 명확한 일이 되었습니다. 이러한 각 원칙이 어떻게 지금의 Slack AI를 만들었는지 곧 설명해 드리겠습니다.

고객 데이터는 Slack 내에서만 사용됩니다

아마 가장 중요한 부분이기도 할텐데, Slack이 가장 먼저 직면한 결정 사항은 고객 데이터가 Slack이 제어하는 VPC 외부로 절대로 나가지 않게 하면서 최고 수준의 기초 모델을 사용할 수 있도록 하는 방법이었습니다. 생성형 모델 산업에서 기초 모델의 대부분의 고객은 직접 호스팅 모델을 호출했고 대체 옵션은 드물었습니다.

이런 접근 방식은 저희에게 맞지 않으리라는 것을 알았습니다. Slack과 고객은 데이터 소유권에 대해 높은 기대치를 갖고 있습니다. 특히 Slack은 신뢰 범위 외부로 고객 데이터를 보내지 않는 것을 비롯한 특정 규정 준수 요구 사항을 부여하는 FedRAMP Moderate 인증을 받았습니다. Slack은 제3자가 이를 보유하거나 교육할 수 있는 능력이 없음을 보장하도록 데이터가 AWS VPC(가상 비공개 클라우드)를 떠나지 않도록 보장하고 싶었습니다.

그래서 자체 인프라에서 기초 모델을 호스팅할 수 있는 창의적인 솔루션을 찾기 시작했습니다. 하지만 대부분의 기초 모델은 비공개 소스였죠. 이 모델들은 그들의 영업 비법이며 고객사가 그들의 하드웨어에 이를 배포하도록 넘겨주기를 원치 않았습니다.

다행히도 AWS에는 기초 모델 제공업체와 고객 사이에 신뢰할 만한 중개인이 개입할 수 있는 AWS SageMaker라는 제품이 있습니다. Slack은 SageMaker를 사용하여 비공개 소스의 대규모 언어 모델(LLM)을 에스크로 VPC에서 호스팅하고 배포할 수 있으므로 Slack의 고객 데이터의 수명 주기를 관리하고 모델 제공업체가 저희의 고객 데이터에 액세스할 수 없도록 만들 수 있습니다. Slack이 SageMaker를 사용하는 방식에 대해 자세히 알아보려면, AWS 블로그의 이 포스트를 확인해 보세요.

결국 Slack이 해냈습니다. Slack은 자체 AWS VPC에서 호스팅되는 최고 수준의 기초 모델에 액세스해 고객 데이터에 대한 확신을 가질 수 있었습니다.

고객 데이터에 기반해 대규모 언어 모델(LLM)을 학습시키지 않습니다

다음 결정도 중요합니다. 저희는 모델을 학습시키거나 미세 조정하는 대신 기성 모델을 사용하기로 결정했습니다. Slack에서 검색 결과의 순위를 지정하는 모델과 같은 기존의 머신 러닝(ML) 모델을 사용하기 시작하면서 개인 정보 보호 원칙을 마련했습니다. 이 원칙 중에는 데이터가 워크스페이스 전반에 누출되지 않으며 고객에게 이러한 방식에 대해 선택권을 제공한다는 사항도 있습니다. 이 산업과 기술은 생긴 지 얼마 안 된 최신 기술이므로 Slack의 고객 데이터를 사용해 생성형 AI 모델을 학습시킨다면 이러한 방식에 대해 충분히 강력하게 보장할 수 없다고 생각했습니다.

그래서 검색 증강 생성(RAG)을 이용해 무상태 방식으로 기성 모델을 사용하기로 결정했습니다. RAG를 이용하면 각 요청 내에 작업을 수행하는 데 필요한 모든 정보가 포함되므로 모델은 그 데이터들을 보존하지 않습니다. 예를 들어, 채널을 요약할 때는 LLM에 요약 방법에 대한 지침과 더불어 요약할 메시지가 포함된 프롬프트를 보냅니다. RAG의 무상태성은 개인 정보 보호 측면에서 엄청난 이점을 제공하지만 이는 제품 이점이기도 합니다. Slack AI의 모든 결과가 일반 인터넷이 아닌 회사의 기술 자료에 뿌리를 두게 되어 더 관련성 높고 정확한 결과를 도출할 수 있습니다. 모델이 데이터를 보존할 위험 없이 귀사의 독점적이고 개별적인 데이터셋을 통합하는 이점을 누릴 수 있습니다.

RAG를 사용하면 사용할 수 있는 모델 세트의 범위가 좁아질 수 있습니다. 작업에 사용하고자 하는 모든 데이터를 통과시킬 수 있도록 충분히 큰 ‘컨텍스트 창’이 있어야 하기 때문입니다. 또, LLM에 보내는 정보가 많을수록 요청 속도가 느려집니다. 모델이 더 많은 데이터를 처리해야 하기 때문이죠. 상상하실 수 있듯이, 채널의 모든 메시지를 요약하는 작업에는 상당한 양의 데이터가 포함될 수 있습니다.

이는 저희에게 큰 어려움이었습니다. 지연 시간은 상당히 낮으면서 커다란 컨텍스트 창이 있는 최고 수준의 모델을 찾아야 했으니까요. 여러 모델을 평가하다가 저희의 첫 사용 사례인 요약과 검색에 적합한 제품을 찾았습니다. 하지만 개선의 여지가 있었고 결과를 향상하기 위해 프롬프트를 조정하고 더 많은 기존 ML 모델들을 생성형 모델과 연결하는 긴 여정을 시작했습니다.

RAG는 모델이 작업을 반복할수록 더 쉬워지고 빨라집니다. 컨텍스트 창이 커짐에 따라 커다란 컨텍스트 창 전반에서 데이터를 합성하는 모델의 기능도 향상되고 있습니다. 이 접근 방식이 저희가 목표로 삼고 있는 품질을 제공하면서 고객 데이터를 보호하는 데 도움이 될 수 있으리라 확신했습니다.

Slack AI는 사용자가 이미 볼 수 있는 데이터만을 기반으로 작동합니다

Slack AI는 요청하는 사용자가 볼 수 있는 것과 동일한 데이터만 볼 수 있다는 것이 저희의 핵심 원칙 중 하나입니다. 예를 들어 Slack AI의 검색 기능은 표준 검색으로 찾아낼 수 없는 어떤 결과도 사용자에게 제공하지 않습니다. 요약은 사용자가 채널을 읽는 동안 볼 수 없는 콘텐츠를 요약하지 않습니다.

저희는 요약하거나 검색할 데이터를 가져올 때 요청하는 사용자의 ACL(액세스 컨트롤 리스트)을 사용하고 채널이나 검색 결과 페이지에 표시할 데이터를 가져오는 기존 라이브러리를 활용하여 이를 보장합니다.

기술적으로 말하자면 이는 어려운 일은 아니었지만 분명한 선택이 필요했습니다. 이를 보장하는 가장 좋은 방법은 Slack의 핵심 기능에 기반해 구축하고 재사용한 다음 마지막으로 AI의 마법을 가미하는 것이었습니다.

Slack AI를 호출하는 사용자만 AI 생성 결과를 볼 수 있다는 점도 주목할 만합니다. 이는 Slack이 신뢰할 수 있는 AI 파트너라는 확신을 제공하죠. 여러분이 볼 수 있는 데이터만 사용되고 그 결과는 여러분만 볼 수 있는 것이죠.

Slack AI는 Slack의 엔터프라이즈급 보안 및 규정 준수 요청 사항을 지킵니다

Slack이 없는 Slack AI는 없으므로 모든 엔터프라이즈급 규정 준수 및 보안 제품을 통합했습니다. 저희는 최소 데이터의 원칙에 따라 ‘작업을 완수하는 데 필요한 데이터만을 필요한 기간만큼만 보관’합니다.

경우에 따라 최소 데이터가 전무한 경우가 있습니다. 가능한 경우라면 Slack AI의 출력은 일시적이어서 대화 요약과 검색 답변은 디스크에 저장되지 않는 특정 시점의 응답을 생성합니다.

그럴 수 없는 경우에는 Slack의 기존 규정 준수 인프라를 최대한 재사용하고 반드시 필요하다면 새 지원을 구축합니다. 기존 인프라에는 암호화 키 관리 및 국가 간 데이터 저장 위치 등 여러 규정 준수 제품이 내장되어 있습니다. 또 다른 경우에는 요약 등의 파생된 콘텐츠가 포함된 메시지에 대해 알 수 있도록 특별한 지원을 구축했습니다. 예를 들어 DLP(데이터 유출 방지)로 인해 메시지가 숨김 처리되었다면 해당 메시지에서 파생된 모든 요약은 무효화됩니다. 이렇게 하면 Slack AI를 통해 DLP 및 기타 관리 제어 기능이 강력해집니다. 이러한 제어 기능이 Slack 메시지 콘텐츠에서 이미 활성 상태라면 Slack AI 결과에서도 활성 상태가 됩니다.

휴, 긴 여정이었습니다! 프롬프트를 구축하거나 모델을 평가하거나 급증하는 요구 사항을 처리하는 방법은 아예 언급하지도 못했는데도 말이죠. 이 내용들은 다음을 기약하겠습니다. 하지만 보안 및 개인 정보 보호부터 이야기를 시작해서 다행입니다. 저희가 고객의 데이터를 보호하는 일을 얼마나 중요하게 생각하는지, 각 단계에서 어떤 방법으로 이를 보호하고 있는지 고객이 꼭 아셨으면 좋겠거든요.

이 포스트가 유용했나요?

0/600

훌륭해요!

피드백을 주셔서 감사합니다.

알겠습니다!

피드백을 주셔서 감사합니다.

죄송합니다. 문제가 발생했습니다. 나중에 다시 시도해주세요.

계속 읽기

개발자

Slack을 토대로 구축하는 일이 훨씬 더 쉬워졌습니다. 개발자 및 관리자를 위한 새로운 도구를 지금 이용해 보세요

셀프 서비스 샌드박스, Bolt를 위한 사용자 지정 함수, 소프트웨어 스택과의 개선된 통합이 Slack을 위한 구축을 그 어느 때보다 향상해 줍니다

개발자

자동화의 구성 요소 만들기

차세대 플랫폼이 베타 버전으로 출시되어 모든 개발자들이 사용할 수 있습니다.

새 소식

대화가 곧 업무가 되는 Slack 리스트

업무가 이루어지는 곳에서 프로젝트, 요청, 작업을 관리할 수 있는 새로운 Slack 기능을 출시합니다.

새 소식

Slack AI를 통해 더욱 스마트하고 빠르게 일하는 모든 규모의 기업들

Slack AI는 모든 유료 플랜에서 구매가 가능하며, 고객이 데이터의 잠재력을 최대한 활용하여 직원들의 생산성을 극대화할 수 있도록 지원합니다.