Published on maio 7, 2024, 6:44 am
Quando uma conversa entre um humano e uma IA envolve muitas rodadas de diálogo contínuo, os modelos poderosos de aprendizado de máquina em linguagem natural que impulsionam chatbots como o ChatGPT às vezes começam a falhar, o que faz 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 diminuir a velocidade.
O método envolve um ajuste para o cache chave-valor (que é como uma memória de conversação) no núcleo de muitos modelos grandes de linguagem. Em alguns métodos, quando esse cache precisa armazenar mais informações do que tem capacidade, os primeiros dados são removidos. Isso pode fazer com que o modelo falhe.
Ao garantir que esses primeiros dados permaneçam na memória, o método dos pesquisadores permite que um chatbot continue conversando independentemente da duração da 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. Em comparação com outro método que evita falhas recomputando constantemente parte das conversas anteriores, o StreamingLLM foi mais de 22 vezes mais rápido.
Isso poderia permitir que um chatbot conduzisse longas conversas ao longo do dia de trabalho sem precisar ser reiniciado continuamente, possibilitando assistentes de IA eficientes para tarefas como redação publicitária, edição ou geração de código.
“Agora, com esse método, podemos implantar persistentemente esses modelos grandes de linguagem. Ao criar um chatbot com o qual podemos sempre conversar e que pode sempre responder com base em nossas conversas recentes, poderíamos usar esses chatbots em novas aplicações”, 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 o StreamingLLM.
Os coautores de Xiao incluem seu orientador Song Han, professor associado do EECS, membro do MIT-IBM Watson AI Lab e cientista distinto da NVIDIA; bem como Yuandong Tian, cientista pesquisador da Meta AI; Beidi Chen, professor assistente da Universidade Carnegie Mellon; e Mike Lewis, cientista pesquisador da Meta AI. O trabalho será apresentado na Conferência Internacional sobre Representações de Aprendizado.
Um fenômeno intrigante
Modelos grandes de linguagem codificam dados, como palavras em uma consulta do usuário, em representações chamadas tokens. Muitos modelos empregam o que é conhecido como um mecanismo de atenção que usa esses tokens para gerar novo texto.
Tipicamente, um chatbot de IA escreve novo texto com base no texto que acabou de ver, então armazena os tokens recentes na memória, chamada KV Cache (Cache chave-valor), para uso posterior. O mecanismo de atenção constrói uma grade que inclui todos os tokens no cache, um “mapa de atenção” que mostra quão fortemente cada token ou palavra se relaciona com cada outro token.
Entender essas relações é uma das características que permitem que modelos grandes de linguagem gerem textos semelhantes aos humanos.
Mas quando o cache fica muito grande, o mapa de atenção pode ficar ainda maior, o que retarda a computação.
Além disso, se a codificação do conteúdo requer mais tokens do que o cache pode armazenar, o desempenho do modelo diminui. 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 utilizam um “cache deslizante” que remove os tokens mais antigos para adicionar novos tokens. No entanto, o desempenho do modelo geralmente cai assim que o primeiro token é removido, reduzindo 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 desempenho mesmo quando