A importância do cache para melhorar o desempenho de chatbots de IA

Picture of Maurício "o Estagiario"

Maurício "o Estagiario"

Textos otimizado com nossa IA

Published on maio 2, 2024, 2:45 pm

Quando uma conversa entre humano e IA envolve muitas rodadas de diálogo contínuo, é comum que os modelos poderosos de aprendizado de máquina em linguagem natural, que impulsionam chatbots como o ChatGPT, às vezes comecem a falhar, fazendo com que o desempenho dos bots se deteriore rapidamente.

No entanto, uma equipe de pesquisadores do MIT e de outras instituições identificou uma causa surpreendente para esse problema e desenvolveu uma solução simples que permite que um chatbot mantenha uma conversa sem interrupções, sem travamentos ou desaceleração.

A solução envolve um ajuste no cache de chave-valor (que funciona como memória da conversa) presente no núcleo de muitos modelos grandes de linguagem. Em alguns métodos, quando esse cache precisa armazenar mais informações do que é capaz, as primeiras informações são descartadas. Isso pode fazer com que o modelo falhe.

Ao garantir que esses primeiros pontos de 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 possibilita que um modelo seja eficiente mesmo durante uma conversa com mais de 4 milhões de palavras. Quando comparado a outro método que evita falhas recomputando constantemente parte das conversas anteriores, o StreamingLLM foi 22 vezes mais rápido.

Isso poderia permitir que um chatbot conduzisse longas conversas ao longo do dia útil sem precisar ser reiniciado continuamente, viabilizando assistentes virtuais eficientes para tarefas como redação publicitária, edição ou geração de código.

Guangxuan Xiao, aluno 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, comenta: “Agora, com esse método, podemos implantar esses grandes modelos linguísticos persistentemente. Ao criar um chatbot com o qual sempre podemos conversar e que possa responder a nós com base em nossas conversas recentes, podemos usar esses chatbots em novas aplicações”.

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; Yuandong Tian, cientista pesquisador da Meta AI; Beidi Chen, professor assistente da Universidade Carnegie Mellon; além do autor sênior Mike Lewis, cientista pesquisador da Meta AI. O trabalho será apresentado na Conferência Internacional sobre Representações de Aprendizado.

Um fenômeno intrigante

Grandes modelos de linguagem codificam dados em representações chamadas tokens. Muitos modelos usam um mecanismo de atenção que utiliza esses tokens para gerar novo texto.

Normalmente, um chatbot escreve novo texto com base no texto que acabou de ver, então armazena tokens recentes na memória chamada 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.

Entender esses relacionamentos é uma das características que permitem aos grandes modelos linguísticos gerarem textos semelhantes aos escritos por humanos.

No entanto, quando o cache fica muito grande, o mapa de atenção pode se tornar ainda maior, o que resulta em uma desaceleração na 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 consegue armazenar 4.096 tokens, mas há cerca de 10.000 tokens em um artigo acadêmico.

Para contornar esses problemas, pesquisadores utilizam um “cache deslizante” que descarta os tokens mais antigos para adicionar novos tokens. No entanto, com esse método, geralmente ocorre uma queda no desempenho assim que o primeiro token é removido, prejudicando rapidamente a qualidade das palavras geradas posteriormente.

Neste novo artigo, os pesquisadores perceberam que manter o primeiro token no cache deslizante mantém o desempenho do modelo mesmo quando o tamanho do cache é excedido.

Mas

Compartilhe

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print

Leia mais sobre este assunto:

Conteudize