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: Optimización de la Evicción de Caché KV mediante Asignación de Presupuesto Adaptativo para Inferencia Eficiente de LLM
Los modelos de lenguaje grandes (LLMs) demuestran un desempeño excepcional en diversos campos, pero enfrentan desafíos de eficiencia debido a la creciente demanda de caché Key-Value (KV) en la inferencia de secuencias largas. Investigaciones recientes reducen el tamaño del caché KV mediante la evicción en tiempo de ejecución de elementos de caché no críticos, manteniendo la calidad de la generación. Sin embargo, estos métodos típicamente asignan presupuestos de compresión uniformemente entre todas las cabezas de atención, ignorando los patrones de atención únicos de cada cabeza. Este artículo establece un límite superior teórico de pérdida entre las salidas de atención antes y después de la evicción, explicando los objetivos de optimización de métodos previos de evicción de caché mientras guía la optimización de la asignación de presupuesto adaptativo. Basándose en esto, los autores proponen Ada-KV, la primera estrategia de asignación de presupuesto adaptativo a nivel de cabeza. Este método tiene la ventaja de ser plug-and-play, permitiendo integración sin interrupciones con métodos de evicción de caché existentes.
Conforme los modelos de lenguaje grandes procesan longitudes de secuencia cada vez mayores (como GPT que soporta 128K, Claude3 que soporta 200K, y Gemini-Pro-1.5 que soporta 2M tokens), la demanda de memoria del caché KV crece exponencialmente. Para un LLM de 8B parámetros, procesar una única secuencia de 2M tokens puede requerir hasta 256GB de caché, afectando severamente la eficiencia de memoria de GPU y la eficiencia de tiempo de ejecución computacional.
Los métodos de evicción de caché existentes se dividen principalmente en dos categorías:
Métodos de Evicción por Ventana Deslizante: Conservan simplemente elementos de caché iniciales y recientes, pero reducen significativamente la calidad de la generación
Métodos de Evicción Top-k: Seleccionan elementos de caché críticos basándose en pesos de atención, pero asignan presupuestos uniformemente entre todas las cabezas de atención
El problema clave es que los métodos existentes ignoran las características únicas de diferentes cabezas de atención: algunas cabezas exhiben patrones de atención concentrada dispersa, mientras que otras tienen distribuciones de atención más dispersas.
Mediante análisis del modelo Llama-3.1-8B-Instruct, los autores descubren que la mayoría de cabezas de atención requieren solo una pequeña proporción de caché (como el top 5%) para retener casi todos los pesos de atención, mientras que las cabezas dispersas requieren proporciones de caché más grandes. Este patrón no uniforme de concentración de atención proporciona una base teórica para la asignación de presupuesto adaptativo.
Estrategia de Asignación de Presupuesto Adaptativo: Propone Ada-KV, la primera estrategia de asignación de presupuesto adaptativo a nivel de cabeza, que ajusta dinámicamente la asignación de presupuesto según los patrones de atención únicos de cada cabeza de atención
Establecimiento de Marco Teórico: Establece un marco teórico para la evicción de caché, define la pérdida de evicción y deriva su límite superior, explicando los objetivos de optimización de métodos existentes y guiando el diseño de Ada-KV
Compatibilidad Plug-and-Play: Ada-KV posee características plug-and-play, permitiendo integración sin interrupciones en métodos de evicción de caché existentes, manteniendo eficiencia computacional mediante implementación de núcleos CUDA eficientes
Verificación Experimental Integral: Evaluación integral en 29 conjuntos de datos de Ruler y LongBench, mostrando mejoras significativas tanto en escenarios conscientes de preguntas como en escenarios independientes de preguntas
Dado un nivel de autoatención multi-cabeza, seleccionar elementos de caché KV a retener bajo restricciones de presupuesto, minimizando la pérdida entre la salida de atención después de la evicción y la salida original.
Entrada: Presupuesto total B, pesos de atención de cada cabeza {A_i}
Salida: Presupuestos asignados {B_i^*}
1. Concatenar pesos de atención de todas las cabezas: A = Cat({A_i})
2. Seleccionar los top B pesos de A: Top-k(A, k=B)
3. Contar la cantidad de pesos seleccionados para cada cabeza: {f_i}
4. Establecer presupuestos asignados: {B_i^* = f_i}
Referencia Ruler: 13 tareas de secuencia larga, principalmente variantes de pruebas Needle-in-a-Haystack, evaluando longitud de 16K
Referencia LongBench: 16 conjuntos de datos, cubriendo QA de documento único, QA de múltiples documentos, resumen, aprendizaje con pocos ejemplos, tareas sintéticas y generación de código
Usar métricas correspondientes según el tipo de tarea: puntuación F1 (tareas QA), Rouge-L (tareas de resumen), precisión (tareas de clasificación), similitud de edición (tareas de código)
Ada-KV propone por primera vez una estrategia de asignación de presupuesto adaptativo a nivel de cabeza, mejorando significativamente el desempeño de métodos de evicción de caché existentes
El análisis teórico establece un marco riguroso para la evicción de caché, guiando el diseño de algoritmos
El escenario de compresión independiente de preguntas revela limitaciones de métodos existentes, mereciendo mayor atención
Contribución Teórica Sólida: Establece un marco teórico completo, con lógica clara desde derivación de límite superior de pérdida hasta diseño de algoritmo
Método Simple y Efectivo: Algoritmo conciso y comprensible, característica plug-and-play facilitando adopción
Experimentación Integral y Suficiente: Evaluación integral en 29 conjuntos de datos, incluyendo escenario independiente de preguntas frecuentemente ignorado
Alto Valor Práctico: Adoptado por múltiples trabajos posteriores, demostrando valor e impacto del método
El artículo cita 64 referencias relacionadas, incluyendo principalmente:
Trabajos fundamentales de modelos de lenguaje grandes (GPT-4, Claude, Gemini, etc.)
Métodos de optimización de caché KV (H2O, SnapKV, Pyramid, etc.)
Optimización de mecanismo de atención (FlashAttention, atención dispersa, etc.)
Referencias de procesamiento de secuencia larga (Ruler, LongBench, etc.)
Evaluación General: Este es un artículo de investigación de alta calidad que logra buen equilibrio entre contribución teórica y valor práctico. El método Ada-KV es simple pero efectivo, el análisis teórico es riguroso, y la verificación experimental es suficiente. El artículo no solo resuelve limitaciones importantes de métodos existentes, sino que también proporciona marco y dirección valiosos para investigación futura.