Nota do editor: texto publicado originalmente no blog de engenharia do Slack.
No Slack, temos sido conservadores quando o assunto é tecnologia. Isso significa que quando investimos na alavancagem de uma nova categoria de infraestrutura, o fazemos com rigor. Foi assim desde o lançamento dos recursos baseados em aprendizado de máquina em 2016. De lá para cá, desenvolvemos um processo robusto e uma equipe qualificada.
Apesar disso, ao longo do ano passado, fomos surpreendidos com o aumento da capacidade dos grandes modelos de linguagem (LLMs) comercialmente disponíveis e, principalmente, pela diferença que eles podem fazer nos maiores pontos de gargalo de nossos usuários. Muita coisa para ler? Dificuldades em encontrar aquilo que é necessário? Chega disso: 90% dos usuários que adotaram ferramentas de IA relataram um aumento na produtividade em comparação aos que não adotaram.
Mas como acontece com qualquer nova tecnologia, nossa capacidade de lançar um produto com IA está atrelada a encontrar uma implementação que atenda aos rigorosos padrões do Slack para a administração de dados dos clientes. Sendo assim, nos propusemos a construir não apenas recursos incríveis de IA, mas uma IA incrível e confiável.
O setor de modelos generativos é bastante jovem e seu foco ainda está consideravelmente na pesquisa e não nos clientes corporativos. Havia poucos padrões de segurança e privacidade de nível empresarial existentes para usarmos ao construirmos a nova arquitetura de IA do Slack.
Em vez disso, para contarmos como construímos a IA do Slack, começamos com os princípios básicos. Estabelecemos nossos requisitos: manter nossas ofertas de segurança e conformidade existentes, bem como nossos princípios de privacidade como “Os dados do cliente são sagrados”. Em seguida, através da lente específica da IA generativa, nossa equipe criou um novo conjunto de princípios para servir de guia na criação da IA do Slack.
- Os dados do cliente nunca saem do Slack.
- Não usamos os dados do cliente para treinar grandes modelos de linguagem (LLMs).
- A IA do Slack trabalha apenas nos dados que o usuário já pode ver.
- A IA do Slack atende a todos os requisitos de segurança e conformidade de nível empresarial do Slack.
Esses princípios tornaram o design de nossa arquitetura mais claro, embora às vezes mais desafiador. Veremos como cada um deles impactou na forma da IA do Slack hoje.
Os dados do cliente nunca saem do Slack
A primeira e provavelmente mais importante decisão que precisamos tomar foi como garantir que poderíamos usar um modelo básico de primeira linha, sem nunca permitir que os dados do cliente saíssem das VPCs controladas pelo Slack. No setor de modelos generativos, a maioria dos clientes de modelos básicos estavam usando os serviços hospedados diretamente e as opções alternativas eram escassas.
Sabíamos que essa abordagem não funcionaria para nós. Tanto o Slack quanto nossos clientes têm expectativas altas em relação à propriedade dos dados. Particularmente, o Slack tem autorização do FedRAMP em nível Moderado, o que exige dele requisitos de conformidade específicos, incluindo o não envio de dados dos clientes para fora de nossos limites confiáveis. Queríamos garantir que nossos dados não saíssem da Virtual Private Cloud (VPC) da AWS para garantir que terceiros não tivessem a capacidade de retê-los ou usá-los para treinamento.
Então começamos a buscar soluções criativas onde pudéssemos hospedar um modelo básico em nossa própria infraestrutura. No entanto, a maioria dos modelos básicos são de código fechado: seus modelos são uma espécie de ingrediente secreto, o qual eles não querem entregar aos clientes para implantar em seu próprio hardware.
Felizmente, a AWS tem uma oferta que pode ser o intermediário confiável entre o provedor de modelo básico e o cliente: o AWS SageMaker. Ao usar o SageMaker, podemos hospedar e implantar grandes modelos de linguagem (LLMs) de código fechado em uma VPC de custódia, permitindo-nos controlar o ciclo de vida dos dados de nossos clientes e garantir que o provedor do modelo não tenha acesso aos dados dos clientes do Slack. Para saber mais sobre como o Slack usa o SageMaker, consulte esta postagem no blog da AWS.
E finalmente tínhamos acesso a um modelo básico de primeira linha hospedado em nossa própria VPC da AWS, nos dando garantias sobre os dados de nossos clientes.
Não usamos os dados do cliente para treinar grandes modelos de linguagem (LLMs)
A próxima decisão também foi fundamental: escolhemos usar modelos prontos em vez de modelos treinados ou adaptados. Temos princípios de privacidade em vigor desde que começamos a empregar modelos mais tradicionais de aprendizado de máquina (ML) no Slack, como os que classificam os resultados de pesquisa. Entre esses princípios estão que os dados não vazarão entre os workspaces e que oferecemos aos clientes uma escolha em torno dessas práticas. Sentimos que, com o estado atual e jovem desse setor e tecnologia, não poderíamos garantir esses princípios se treinássemos um modelo generativo de IA usando os dados dos clientes do Slack.
Assim, escolhemos usar modelos prontos, de uma maneira passiva, empregando Geração Aumentada de Recuperação (RAG). Com a RAG, o usuário inclui todo o contexto necessário para realizar uma tarefa em cada solicitação, de modo que o modelo não retém nenhum dado. Por exemplo, ao resumir um canal, enviaremos ao LLM uma instrução contendo as mensagens a serem resumidas, juntamente com instruções sobre como fazê-lo. A passividade da RAG é um enorme benefício para a privacidade, mas também para o produto. Todos os resultados da IA do Slack estão fundamentados na base de conhecimento da sua empresa – não na Internet pública – o que torna os resultados mais relevantes e precisos. Você tem a vantagem de incorporar seus conjuntos de dados proprietários e individuais sem o risco de um modelo reter tais dados.
O uso da RAG pode restringir o conjunto de modelos que você pode usar; eles precisam ter “janelas de contexto” grandes o suficiente para você informar todos os dados que deseja usar em sua tarefa. Além disso, quanto mais contexto você enviar para o LLM, mais lenta será sua solicitação, uma vez que o modelo precisará processar uma quantidade maior de dados. Como você pode imaginar, a tarefa de resumir todas as mensagens em um canal pode envolver uma quantidade considerável de dados.
Isso representou um desafio para nós: encontrar um modelo de primeira linha com uma grande janela de contexto e latência bastante baixa. Avaliamos diversos modelos e encontramos um que se adequava bem aos nossos primeiros casos de uso: resumo e pesquisa. Porém, havia espaço para melhorias e começamos uma longa jornada de ajuste rápido e encadeamento de modelos de ML mais tradicionais com os modelos generativos para melhorar os resultados.
A RAG está ficando mais fácil e rápida com cada iteração de modelos: as janelas de contexto estão crescendo, assim como a capacidade dos modelos de sintetizar os dados ao longo de uma grande janela de contexto. Estamos confiantes de que essa abordagem pode nos trazer tanto a qualidade almejada quanto a garantia de que os dados de nossos clientes estão protegidos.
A IA do Slack trabalha apenas nos dados que o usuário já pode ver
Um dos nossos princípios fundamentais é que a IA do Slack só pode ver os mesmos dados vistos pelo usuário que está solicitando a tarefa. Por exemplo, o recurso de pesquisa da IA do Slack nunca apresentará nenhum resultado para o usuário que a pesquisa padrão não apresentaria. Do mesmo modo, os resumos nunca terão conteúdo que o usuário não poderia ver de outra forma durante a leitura dos canais.
Garantimos isso por meio do uso da Lista de Controle de Acesso (ACLs) do usuário solicitante ao buscar os dados para resumir ou pesquisar e ao usar nossas bibliotecas existentes que buscam os dados para exibição no canal ou na página de resultados da pesquisa.
Tecnicamente, essa não era uma tarefa difícil, mas precisava ser uma escolha explícita. E a melhor maneira de garantir isso era desenvolver e reutilizar os principais recursos do Slack ao mesmo tempo em que a magia da IA era adicionada.
Também vale destacar que somente o usuário que invoca a IA do Slack pode ver o resultado gerado por ela. Isso gera confiança de que o Slack é seu parceiro de IA confiável: somente os dados que você pode ver são inseridos e, em seguida, só você pode ver o resultado.
A IA do Slack atende a todos os requisitos de segurança e conformidade de nível empresarial do Slack
Não existe IA do Slack sem o Slack. Por isso garantimos a integração de todas as nossas ofertas de conformidade e segurança de nível empresarial. Seguimos o princípio do mínimo de dados: armazenamos apenas os dados necessários para concluir a tarefa e apenas pelo tempo necessário.
Às vezes, o mínimo de dados é: nenhum. Quando possível, os resultados da IA do Slack são efêmeros, ou seja, resumos de conversas e respostas da pesquisa geram respostas pontuais, as quais não são armazenadas em disco.
Quando isso não é possível, reutilizamos o máximo possível da infraestrutura de conformidade existente do Slack e integramos novos suportes onde eles se fazem necessário. Muitas de nossas ofertas de conformidade são integradas à nossa infraestrutura existente, tais como Gestão da Chave de Criptografia e Residência de Dados Internacionais. Para outros, construímos um suporte especial para garantir que o conteúdo derivado, como resumos, esteja ciente das mensagens inseridas. Por exemplo, se uma mensagem estiver oculta por causa da Proteção de Perda de Dados (DLP), quaisquer resumos derivados dessa mensagem serão invalidados. Isso torna a DLP e outros controles administrativos poderosos com a IA do Slack: quando esses controles já estiverem ativos no conteúdo de mensagens do Slack, eles também estarão ativos nos resultados da IA do Slack.
Uau, foi um longo percurso percorrido! E eu nem sequer discorri sobre como construímos os prompts, avaliamos os modelos ou lidamos com demandas sensíveis. Isso ficará para um outro momento. Mas estou feliz por termos começado com segurança e privacidade. Queremos que nossos clientes saibam o quanto levamos a sério a proteção de seus dados e como estamos protegendo-os em cada etapa do caminho.