Modelos de linguagem que trabalham com textos longos guardam, durante a geração, uma memória chamada cache KV. Segundo o preprint FlagRot, publicado no arXiv, a inferência em contexto longo é limitada justamente por esse cache. Codificá-lo com 2 bits poderia reduzi-lo cerca de seis vezes, desde que o erro ficasse sob controle.
O recurso mais usado para isso é girar as chaves antes de quantizá-las, partindo do pressuposto de que a rotação sempre ajuda. Os autores observam que não é bem assim: a rotação achata um trecho pontudo da chave, mas pode criar um novo pico em um trecho que já era plano, e os dois casos podem coexistir na mesma chave.
O que o FlagRot propõe
A proposta é decidir caso a caso. Cada bloco de 32 canais é armazenado girado ou sem girar, conforme o que apresentar menor erro de atenção calibrado. Na leitura, a consulta é girada, em vez de a chave ser desfeita.
De acordo com o texto, a frequência dessa decisão depende do eixo de quantização. Em caches por canal, como o KIVI, há uma decisão por cabeça, sem custo de escrita. Em caches por token, a decisão é tomada para cada chave, e a escolha fica guardada nos bits de sinal que já existem.
Resultados informados
- Com 2,5 bits por valor, a divergência KL do KIVI nos doze modelos testados caiu de 18,7 para 12,4 (×10⁻³).
- Essa versão ficou abaixo do RotateKV em 9 dos 12 modelos.
- Como plugin do vLLM, o FlagRot elevou o RULER em 128 mil tokens em 2,9 pontos.
- No LongBench v1, a média subiu entre 0,4 e 1,9 ponto nos três dos quatro modelos em que o KIVI de 2 bits perdia precisão.
- Segundo a fonte, a técnica também reduziu o erro de caches de 4 bits inteiros e FP4.
O resumo não detalha o custo computacional da consulta girada nem o processo de calibração. Esses pontos dependem do artigo completo.
Este texto foi produzido com apoio de inteligência artificial a partir das fontes acima e revisado segundo a nossa política editorial. Encontrou um erro? Peça uma correção.