Ada-KV: Optimizing KV Cache Eviction by Adaptive Budget Allocation for Efficient LLM Inference
Feng, Lv, Cao et al.
Large Language Models have excelled in various domains but face efficiency challenges due to the growing Key-Value (KV) cache required for long-sequence inference. Recent efforts aim to reduce KV cache size by evicting vast non-critical cache elements during runtime while preserving generation quality. However, these methods typically allocate compression budgets uniformly across all attention heads, ignoring the unique attention patterns of each head. In this paper, we establish a theoretical loss upper bound between pre- and post-eviction attention output, explaining the optimization target of prior cache eviction methods, while guiding the optimization of adaptive budget allocation. Base on this, we propose {\it Ada-KV}, the first head-wise adaptive budget allocation strategy. It offers plug-and-play benefits, enabling seamless integration with prior cache eviction methods. Extensive evaluations on 13 datasets from Ruler and 16 datasets from LongBench, all conducted under both question-aware and question-agnostic scenarios, demonstrate substantial quality improvements over existing methods. Our code is available at https://github.com/FFY0/AdaKV.
academic
Ada-KV : Optimisation de l'Éviction du Cache KV par Allocation de Budget Adaptative pour l'Inférence Efficace des LLM
Les modèles de langage de grande taille (LLM) démontrent des performances exceptionnelles dans divers domaines, mais font face à des défis d'efficacité en raison de la demande croissante de cache Key-Value (KV) lors de l'inférence sur de longues séquences. Les recherches récentes réduisent la taille du cache KV en évincant au moment de l'exécution de nombreux éléments de cache non critiques, tout en maintenant la qualité de la génération. Cependant, ces méthodes distribuent généralement le budget de compression uniformément entre toutes les têtes d'attention, ignorant les motifs d'attention uniques de chaque tête. Cet article établit une borne supérieure théorique de la perte entre les sorties d'attention avant et après l'éviction, expliquant les objectifs d'optimisation des méthodes précédentes d'éviction de cache tout en guidant l'optimisation de l'allocation de budget adaptative. Sur cette base, les auteurs proposent Ada-KV, la première stratégie d'allocation de budget adaptative au niveau des têtes. Cette méthode offre l'avantage d'être prête à l'emploi, s'intégrant de manière transparente aux méthodes d'éviction de cache existantes.
À mesure que les modèles de langage de grande taille traitent des longueurs de séquence croissantes (par exemple, GPT supporte 128K, Claude3 supporte 200K, Gemini-Pro-1.5 supporte 2M tokens), la demande de mémoire du cache KV croît de manière exponentielle. Pour un LLM de 8B paramètres, le traitement d'une seule séquence de 2M tokens peut nécessiter jusqu'à 256 Go de cache, impactant sérieusement l'efficacité de la mémoire GPU et l'efficacité du temps d'exécution du calcul.
Les méthodes d'éviction de cache existantes se divisent principalement en deux catégories :
Méthodes d'éviction par fenêtre glissante : conservent simplement les éléments de cache initiaux et récents, mais réduisent considérablement la qualité de la génération
Méthodes d'éviction Top-k : sélectionnent les éléments de cache critiques basés sur les poids d'attention, mais distribuent le budget uniformément entre toutes les têtes d'attention
Le problème clé est que les méthodes existantes ignorent les caractéristiques uniques de différentes têtes d'attention : certaines têtes présentent des motifs d'attention concentrés et épars, tandis que d'autres têtes ont une distribution d'attention plus dispersée.
En analysant le modèle Llama-3.1-8B-Instruct, les auteurs découvrent que la plupart des têtes d'attention ne nécessitent qu'une très petite proportion de cache (par exemple, top 5%) pour conserver presque tous les poids d'attention, tandis que les têtes dispersées nécessitent une proportion de cache plus grande. Ce motif non uniforme de concentration d'attention fournit une base théorique pour l'allocation de budget adaptative.
Stratégie d'allocation de budget adaptative : propose la première stratégie d'allocation de budget adaptative au niveau des têtes Ada-KV, capable d'ajuster dynamiquement l'allocation de budget en fonction des motifs d'attention uniques de chaque tête d'attention
Établissement d'un cadre théorique : établit un cadre théorique pour l'éviction de cache, définit la perte d'éviction et dérive sa borne supérieure, expliquant les objectifs d'optimisation des méthodes existantes et guidant la conception d'Ada-KV
Compatibilité prête à l'emploi : Ada-KV possède une caractéristique prête à l'emploi, capable de s'intégrer de manière transparente aux méthodes d'éviction de cache existantes, et maintient l'efficacité computationnelle grâce à une implémentation efficace du noyau CUDA
Vérification expérimentale complète : évaluation complète sur 29 ensembles de données de Ruler et LongBench, montrant des améliorations significatives dans les deux scénarios conscients et inconscients des questions
Étant donné une couche d'auto-attention multi-têtes, sélectionner les éléments de cache KV à conserver sous contrainte de budget, de manière à minimiser la perte entre la sortie d'attention après éviction et la sortie originale.
Entrée : Budget total B, poids d'attention de chaque tête {A_i}
Sortie : Budget alloué {B_i^*}
1. Concaténer les poids d'attention de toutes les têtes : A = Cat({A_i})
2. Sélectionner les top B poids de A : Top-k(A, k=B)
3. Compter le nombre de poids sélectionnés pour chaque tête : {f_i}
4. Définir le budget alloué : {B_i^* = f_i}
Perspective d'optimisation globale : considère l'allocation de budget au niveau des têtes comme un problème d'optimisation globale plutôt que locale
Conception guidée par la théorie : guide la conception d'algorithmes basée sur une analyse théorique rigoureuse
Garantie d'efficacité computationnelle : maintient l'efficacité computationnelle grâce à FlashAttention de longueur variable et une disposition de cache aplatie
Compatibilité GQA : supporte Group Query Attention, réalisant une compression de cache supplémentaire
Benchmark Ruler : 13 tâches de longues séquences, principalement des variantes de tests Needle-in-a-Haystack, évaluant une longueur de 16K
Benchmark LongBench : 16 ensembles de données, couvrant QA sur document unique, QA sur plusieurs documents, résumé, apprentissage peu supervisé, tâches synthétiques et génération de code
Utiliser les indicateurs correspondants selon le type de tâche : score F1 (tâches QA), Rouge-L (tâches de résumé), précision (tâches de classification), similarité d'édition (tâches de code)
Ada-KV propose pour la première fois une stratégie d'allocation de budget adaptative au niveau des têtes, améliorant significativement les performances des méthodes d'éviction de cache existantes
L'analyse théorique établit un cadre rigoureux pour l'éviction de cache, guidant la conception d'algorithmes
Le scénario de compression inconscient des questions révèle les limitations des méthodes existantes, méritant une attention accrue
Contributions théoriques solides : établit un cadre théorique complet, de la dérivation de la borne supérieure de perte à la conception d'algorithmes avec une logique claire
Méthode simple et efficace : algorithme concis et facile à comprendre, la caractéristique prête à l'emploi le rend facile à adopter
Expérimentation complète et suffisante : évaluation complète sur 29 ensembles de données, incluant le scénario inconscient des questions souvent négligé
Valeur pratique élevée : adoptée par plusieurs travaux ultérieurs, prouvant la valeur et l'impact de la méthode
Travaux fondamentaux sur les modèles de langage de grande taille (GPT-4, Claude, Gemini, etc.)
Méthodes d'optimisation du cache KV (H2O, SnapKV, Pyramid, etc.)
Optimisation des mécanismes d'attention (FlashAttention, attention éparse, etc.)
Benchmarks de traitement de longues séquences (Ruler, LongBench, etc.)
Évaluation Générale : Ceci est un article de recherche de haute qualité qui atteint un bon équilibre entre contributions théoriques et valeur pratique. La méthode Ada-KV est simple et efficace, l'analyse théorique est rigoureuse, et la vérification expérimentale est complète. L'article non seulement résout les limitations importantes des méthodes existantes, mais fournit également un cadre et une direction précieux pour les recherches futures.