DuoAtención: Inferencia eficiente de LLM de largo contexto con cabezas de recuperación y transmisión
DuoAttention: Efficient Long-Context LLM Inference with Retrieval and Streaming Heads
October 14, 2024
Autores: Guangxuan Xiao, Jiaming Tang, Jingwei Zuo, Junxian Guo, Shang Yang, Haotian Tang, Yao Fu, Song Han
cs.AI
Resumen
Desplegar modelos de lenguaje grandes de contexto extenso (LLMs) es esencial pero plantea desafíos significativos en términos de computación y memoria. Cachear todos los estados de Clave y Valor (KV) a lo largo de todas las cabezas de atención consume una cantidad considerable de memoria. Los métodos existentes de poda de caché KV dañan las capacidades de contexto extenso de los LLMs o solo ofrecen mejoras de eficiencia limitadas. En este documento, identificamos que solo una fracción de las cabezas de atención, conocidas como Cabezas de Recuperación, son críticas para procesar contextos largos y requieren atención completa en todos los tokens. En contraste, todas las demás cabezas, que se centran principalmente en tokens recientes y puntos de atención, denominadas Cabezas de Transmisión, no requieren atención completa. Basándonos en esta percepción, presentamos DuoAttention, un marco que aplica un caché KV completo solo a las cabezas de recuperación, mientras utiliza un caché KV ligero y de longitud constante para las cabezas de transmisión, lo que reduce tanto la memoria de decodificación y prellenado de los LLMs como la latencia sin comprometer sus capacidades de contexto extenso. DuoAttention emplea un algoritmo ligero basado en optimización con datos sintéticos para identificar con precisión las cabezas de recuperación. Nuestro método reduce significativamente la memoria de inferencia de contexto extenso hasta en 2.55 veces para modelos MHA y 1.67 veces para modelos GQA, al tiempo que acelera la decodificación hasta en 2.18 veces y 1.50 veces, y el prellenado hasta en 1.73 veces y 1.63 veces para modelos MHA y GQA, respectivamente, con una pérdida mínima de precisión en comparación con la atención completa. Es destacable que, combinado con la cuantificación, DuoAttention permite la decodificación de Llama-3-8B con una longitud de contexto de 3.3 millones en una sola GPU A100. El código está disponible en https://github.com/mit-han-lab/duo-attention.
English
Deploying long-context large language models (LLMs) is essential but poses
significant computational and memory challenges. Caching all Key and Value (KV)
states across all attention heads consumes substantial memory. Existing KV
cache pruning methods either damage the long-context capabilities of LLMs or
offer only limited efficiency improvements. In this paper, we identify that
only a fraction of attention heads, a.k.a, Retrieval Heads, are critical for
processing long contexts and require full attention across all tokens. In
contrast, all other heads, which primarily focus on recent tokens and attention
sinks--referred to as Streaming Heads--do not require full attention. Based on
this insight, we introduce DuoAttention, a framework that only applies a full
KV cache to retrieval heads while using a light-weight, constant-length KV
cache for streaming heads, which reduces both LLM's decoding and pre-filling
memory and latency without compromising its long-context abilities.
DuoAttention uses a lightweight, optimization-based algorithm with synthetic
data to identify retrieval heads accurately. Our method significantly reduces
long-context inference memory by up to 2.55x for MHA and 1.67x for GQA models
while speeding up decoding by up to 2.18x and 1.50x and accelerating
pre-filling by up to 1.73x and 1.63x for MHA and GQA models, respectively, with
minimal accuracy loss compared to full attention. Notably, combined with
quantization, DuoAttention enables Llama-3-8B decoding with 3.3 million context
length on a single A100 GPU. Code is provided in
https://github.com/mit-han-lab/duo-attention.Summary
AI-Generated Summary