LAVa : Éviction de cache KV par couche avec allocation dynamique du budget

Le cache KV est couramment utilisé pour accélérer l'inférence des grands modèles linguistiques (LLM) dans des contextes longs, mais sa forte consommation mémoire impose la nécessité de compresser le cache. Les méthodes de compression existantes, toutefois, sont principalement heuristiques et manquent d'une allocation dynamique du budget mémoire. Pour surmonter cette limitation, nous proposons un cadre unifié pour la compression du cache, fondé sur la minimisation de la perte d'information dans les flux résiduels des Transformers. À partir de ce cadre, nous analysons la perte d'information dans les sorties d'attention par couche et introduisons une nouvelle métrique permettant de comparer les entrées de cache entre les têtes, ce qui permet une compression par couche avec des budgets dynamiques par tête. En outre, en comparant l'information entre couches, nous parvenons également à une allocation dynamique des budgets par couche. LAVa constitue la première stratégie unifiée pour l'éviction du cache et l'allocation dynamique du budget, qui, contrairement aux méthodes antérieures, ne repose ni sur une phase d'apprentissage, ni sur la combinaison de plusieurs stratégies. Des expérimentations sur des benchmarks (LongBench, Needle-In-A-Haystack, Ruler et InfiniteBench) démontrent son avantage par rapport aux approches existantes. De plus, nos résultats expérimentaux révèlent une nouvelle perspective : les budgets dynamiques par couche sont essentiels pour les tâches de génération (par exemple, la complétion de code), tandis que les budgets dynamiques par tête jouent un rôle clé dans les tâches d'extraction (par exemple, la question-réponse extraite). En tant que méthode de compression entièrement dynamique, LAVa maintient de manière cohérente des performances optimales sur divers types de tâches. Le code source est disponible à l'adresse suivante : [URL].