Nos últimos anos, os grandes modelos de linguagem (LLMs) baseados na arquitetura Transformer fizeram progressos significativos. Novos modelos como Gemini-Pro1.5, Claude-3, GPT-4 e Llama-3.1 conseguem processar centenas ou milhares de tokens.
No entanto, esses comprimentos de contexto expandidos trazem desafios significativos para aplicações práticas. Com o aumento do comprimento da sequência, o atraso na decodificação aumenta e as limitações de memória tornam-se um gargalo sério. O cache KV armazena informações de contexto durante a inferência, e com o aumento do comprimento do contexto, o tamanho do cache também aumenta proporcionalmente, levando à saturação da memória e afetando severamente a eficiência no processamento de sequências de entrada longas. Portanto, soluções de otimização são urgentemente necessárias.
Embora existam alguns métodos sem treinamento no mercado, eles geralmente dependem da obtenção de pesos de atenção para determinar a importância dos pares chave-valor, o que os torna incompatíveis com algoritmos de atenção eficientes (como FlashAttention). Esses métodos geralmente exigem o recálculo parcial da matriz de atenção, introduzindo sobrecarga de tempo e memória. Portanto, os algoritmos de compressão existentes são usados principalmente para compactar prompts antes da geração de respostas, e não para otimizar o processo de geração com memória limitada. Essa limitação destaca a necessidade de desenvolver técnicas de compressão que mantenham o desempenho do modelo sem modificações de arquitetura.
Uma equipe de pesquisa da Sorbonne University, do Instituto Nacional de Informação e Automática da França, da Universidade Sapienza de Roma, da Universidade de Edimburgo e da Miniml.AI propôs o Q-Filters, uma poderosa técnica de compressão de cache KV sem treinamento que utiliza um método de filtragem baseado em consultas para otimizar o uso de memória, mantendo ao mesmo tempo o desempenho do modelo. O Q-Filters avalia a importância dos pares chave-valor relacionados à consulta atual, em vez de depender dos pesos de atenção. Esse método garante compatibilidade com algoritmos de atenção eficientes e não requer recálculo ou modificação da arquitetura. Ao avaliar e reter dinamicamente as informações de contexto mais relevantes, o Q-Filters consegue uma redução significativa da memória, mantendo a qualidade da inferência.
O Q-Filters apresentou desempenho excelente em vários cenários de avaliação, superando consistentemente os métodos de compressão de cache KV existentes. Em testes de modelagem de linguagem no conjunto de dados Pile, a técnica atingiu a menor perplexidade entre todas as soluções de compressão. Especificamente no modelo Llama-3.1-70B, o Q-Filters mostrou uma redução significativa na perplexidade na parte posterior das sequências, onde a preservação do contexto é crucial.
Na tarefa de "agulha no palheiro", o Q-Filters manteve 91% de precisão, preservando com sucesso informações importantes em comprimentos de contexto extremos (de 1K a 64K tokens). A avaliação abrangente também validou a superioridade do método, especialmente em altas taxas de compressão (32 vezes), onde o Q-Filters obteve a pontuação mais alta nos benchmarks de modelagem de contexto longo.
Artigo:https://arxiv.org/abs/2503.02812
huggingface:https://huggingface.co/collections/nthngdy/q-filters-67a4994dcb302a3d37f3d119
Destaques:
🔍 O Q-Filters é uma técnica de compressão de cache KV sem treinamento que otimiza eficazmente o uso da memória sem perda de desempenho do modelo.
📊 O método apresentou desempenho superior em várias avaliações, obtendo a menor perplexidade e a maior precisão em tarefas de modelagem de linguagem e contexto extremo.
🛠️ O Q-Filters é compatível com algoritmos de atenção eficientes e requer apenas uma etapa de preparação após o treinamento do modelo para uso em aplicações práticas.