Q-Filters: Sfruttare la geometria QK per una compressione efficiente della cache KV
Q-Filters: Leveraging QK Geometry for Efficient KV Cache Compression
March 4, 2025
Autori: Nathan Godey, Alessio Devoto, Yu Zhao, Simone Scardapane, Pasquale Minervini, Éric de la Clergerie, Benoît Sagot
cs.AI
Abstract
I modelli linguistici autoregressivi si basano su una cache Key-Value (KV), che evita di ricalcolare gli stati nascosti passati durante la generazione, rendendola più veloce. Man mano che le dimensioni dei modelli e le lunghezze del contesto aumentano, la cache KV diventa un significativo collo di bottiglia per la memoria, il che richiede metodi di compressione che ne limitino le dimensioni durante la generazione. In questo articolo, scopriamo proprietà sorprendenti dei vettori Query (Q) e Key (K) che ci permettono di approssimare in modo efficiente i punteggi di attenzione senza calcolare le mappe di attenzione. Proponiamo Q-Filters, un metodo di compressione della cache KV privo di addestramento che filtra le coppie Key-Value meno cruciali basandosi su una singola proiezione indipendente dal contesto. Contrariamente a molte alternative, Q-Filters è compatibile con FlashAttention, poiché non richiede l'accesso diretto ai pesi di attenzione. I risultati sperimentali in contesti a lungo termine dimostrano che Q-Filters è competitivo con metodi di compressione basati sull'attenzione come SnapKV nei task di retrieval, superando costantemente schemi di compressione efficienti come Streaming-LLM nelle configurazioni di generazione. In particolare, Q-Filters raggiunge un'accuratezza del 99% nel task "needle-in-a-haystack" con un livello di compressione x32, riducendo il calo di perplessità nella generazione di testo fino al 65% rispetto a Streaming-LLM.
English
Autoregressive language models rely on a Key-Value (KV) Cache, which avoids
re-computing past hidden states during generation, making it faster. As model
sizes and context lengths grow, the KV Cache becomes a significant memory
bottleneck, which calls for compression methods that limit its size during
generation. In this paper, we discover surprising properties of Query (Q) and
Key (K) vectors that allow us to efficiently approximate attention scores
without computing the attention maps. We propose Q-Filters, a training-free KV
Cache compression method that filters out less crucial Key-Value pairs based on
a single context-agnostic projection. Contrarily to many alternatives,
Q-Filters is compatible with FlashAttention, as it does not require direct
access to attention weights. Experimental results in long-context settings
demonstrate that Q-Filters is competitive with attention-based compression
methods such as SnapKV in retrieval tasks while consistently outperforming
efficient compression schemes such as Streaming-LLM in generation setups.
Notably, Q-Filters achieves a 99% accuracy in the needle-in-a-haystack task
with a x32 compression level while reducing the generation perplexity drop by
up to 65% in text generation compared to Streaming-LLM.Summary
AI-Generated Summary