Conversando com uma IA: Solucionando problemas de desempenho em chatbots com StreamingLLM

Picture of Maurício "o Estagiario"

Maurício "o Estagiario"

Textos otimizado com nossa IA

Published on maio 14, 2024, 1:16 pm

Conversando com uma IA: Cavando fundo na Inteligência Artificial

Em um diálogo entre um humano e uma IA, é comum que após várias rodadas de conversa contínua, os modelos de aprendizado de máquina baseados em linguagem natural – como o ChatGPT – às vezes comecem a apresentar falhas, resultando em um desempenho ruim dos chatbots.

Mas pesquisadores do MIT e de outras instituições descobriram algo surpreendente que causa esse problema e desenvolveram uma solução simples para manter uma conversa ininterrupta com o chatbot sem falhas ou lentidão.

A solução proposta pelos pesquisadores envolve uma modificação no cache chave-valor (que se assemelha à memória da conversa), presente em muitos modelos de linguagem natural. Em alguns métodos, quando esse cache precisa armazenar mais informações do que suporta, os dados mais antigos são substituídos. Isso pode levar ao colapso do modelo.

Ao garantir que algumas informações antigas permaneçam na memória, o método dos pesquisadores permite que o chatbot continue a conversar, não importa por quanto tempo seja a conversa.

Chamado de StreamingLLM, esse método possibilita que um modelo seja eficiente mesmo em conversas com mais de 4 milhões de palavras. Comparado a outro método cuja estratégia é calcular novamente partes das conversas antigas para evitar falhas, o StreamingLLM foi 22 vezes mais rápido.

Essa descoberta representa um avanço significativo para a utilização eficiente de IA na área de assistentes virtuais. Agora será possível contar com chatbots capazes de manter longas conversas ao longo do dia de trabalho, sem a necessidade de reinicialização constante. Essa eficiência pode ser aplicada em tarefas como redação, edição e geração de código.

Em suas palavras, Guangxuan Xiao, estudante de pós-graduação em engenharia elétrica e ciência da computação (EECS) e autor principal do artigo sobre o StreamingLLM, afirma: “Agora, com esse método, podemos implantar esses grandes modelos linguísticos persistentemente. Ao criar um chatbot que possamos sempre conversar e que possa nos responder com base em nossas conversas recentes, podemos utilizar esses chatbots em algumas novas aplicações.”

Além do mais, o StreamingLLM já está sendo aplicado e apresentado como uma “tecnologia altamente promissora” durante um importante evento internacional sobre representações de aprendizado.

Mas por que exatamente a primeira palavra é tão importante para o modelo gerar a próxima palavra? Segundo os pesquisadores, isso se deve a um fenômeno denominado “attention sink” (afundamento da atenção). Alguns modelos utilizam uma operação chamada Softmax em seu mecanismo de atenção. Essa operação distribui pesos para cada palavra em relação às demais. No entanto, qualquer peso remanescente é atribuído à primeira palavra do cache.

De acordo com Song Han, professor associado da EECS no MIT e membro do MIT-IBM Watson AI Lab e cientista distinto da NVIDIA: “Nós precisamos de um ‘afundamento da atenção’, e o modelo decide usar a primeira palavra como esse afundamento porque ela é globalmente visível – todas as outras palavras podem vê-la. Descobrimos que é crucial manter o afundamento da atenção no cache para manter a dinâmica do modelo”.

A construção do StreamingLLM levou os pesquisadores a descobrir que quatro tokens de afundamento de atenção no início do cache levam a uma performance ideal. Eles também perceberam que a codificação posicional de cada token deve permanecer a mesma, mesmo quando novos tokens são adicionados e outros são removidos. Ou seja, se o token 5 sair, o token 6 deve continuar codificado como 6, mesmo sendo agora o quinto token no cache.

Essas duas ideias combinadas permitiram ao StreamingLLM manter uma conversação contínua e superar um método popular que utiliza reconstrução constante. Por exemplo, com um cache de 256 tokens, o método de recomputação leva 63 milissegundos para decodificar um novo token, enquanto o StreamingLLM leva apenas 31 milissegundos. Já com um tamanho de cache de 4.

Compartilhe

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print

Leia mais sobre este assunto:

Conteudize