Published on maio 14, 2024, 1:15 pm
Quando uma conversa entre um humano e uma IA envolve muitas rodadas de diálogo contínuo, os poderosos modelos de aprendizado de máquina em linguagem natural que impulsionam chatbots como o ChatGPT às vezes começam a entrar em colapso, fazendo com que o desempenho dos bots se deteriore rapidamente.
Uma equipe de pesquisadores do MIT e outros lugares identificou uma causa surpreendente desse problema e desenvolveu uma solução simples que permite a um chatbot manter uma conversa ininterrupta sem travar ou ficar lento.
O método envolve um ajuste ao cache chave-valor (que é como uma memória de conversação) no cerne de muitos modelos de linguagem grandes. Em alguns métodos, quando esse cache precisa armazenar mais informações do que tem capacidade para, as primeiras peças de dados são removidas. Isso pode fazer com que o modelo falhe.
Garantindo que esses primeiros poucos pontos de dados permaneçam na memória, o método dos pesquisadores permite que um chatbot continue conversando, não importa quanto tempo dure a conversa.
O método, chamado StreamingLLM, permite que um modelo seja eficiente mesmo quando uma conversa se estende por mais de 4 milhões de palavras. Comparado a outro método que evita travamentos recomputando constantemente parte das conversas anteriores, o StreamingLLM foi mais de 22 vezes mais rápido.
Isso poderia permitir que um chatbot conduza longas conversas durante todo o dia de trabalho sem precisar ser reiniciado continuamente, possibilitando assistentes virtuais eficientes para tarefas como redação, edição ou geração de código.
“Agora, com este método, podemos implantar persistentemente esses grandes modelos de linguagem. Ao criar um chatbot com o qual possamos sempre conversar e que possa sempre nos responder com base em nossas conversas recentes, poderíamos usar esses chatbots em novos aplicativos”, diz Guangxuan Xiao, estudante de pós-graduação em engenharia elétrica e ciência da computação (EECS) e autor principal de um artigo sobre StreamingLLM.
Os coautores de Xiao incluem seu orientador, Song Han, professor associado da EECS, membro do Laboratório de IA MIT-IBM Watson e cientista distinto da NVIDIA; Yuandong Tian, cientista pesquisador da Meta AI; Beidi Chen, professora assistente na Universidade Carnegie Mellon; e Mike Lewis, cientista pesquisador da Meta AI, como autor sênior. O trabalho será apresentado na Conferência Internacional sobre Representações de Aprendizado.
Um fenômeno intrigante
Grandes modelos de linguagem codificam dados, como palavras em uma consulta do usuário, em representações chamadas tokens. Muitos modelos usam o que é conhecido como mecanismo de atenção que usa esses tokens para gerar novo texto.
Normalmente, um chatbot escreve novo texto com base no texto que acabou de ver. Assim, ele armazena os tokens recentes na memória, chamada cache chave-valor (KV Cache), para uso posterior. O mecanismo de atenção cria uma grade que inclui todos os tokens no cache: um “mapa de atenção” que mostra a força do relacionamento entre cada token ou palavra.
Compreender esses relacionamentos é uma das características que permitem que os grandes modelos de linguagem gerem um texto semelhante ao humano.
No entanto, quando o cache fica muito grande, o mapa de atenção pode ficar ainda maior, o que diminui a velocidade do processamento.
Além disso, se a codificação do conteúdo exigir mais tokens do que o cache pode armazenar, o desempenho do modelo cai. Por exemplo, um modelo popular pode armazenar 4.096 tokens, mas há cerca de 10.000 tokens em um artigo acadêmico.
Para contornar esses problemas, os pesquisadores usam um “cache deslizante” que remove os tokens mais antigos para adicionar novos tokens. No entanto, muitas vezes o desempenho do modelo cai assim que esse primeiro token é removido e reduz rapidamente a qualidade das palavras recém-geradas.
Neste novo artigo, os pesquisadores perceberam que se mantivessem o primeiro token no cache deslizante, o modelo manteria seu