DuoAttention: Inferenza efficiente di LLM a lungo contesto con testine di recupero e streaming
DuoAttention: Efficient Long-Context LLM Inference with Retrieval and Streaming Heads
October 14, 2024
Autori: Guangxuan Xiao, Jiaming Tang, Jingwei Zuo, Junxian Guo, Shang Yang, Haotian Tang, Yao Fu, Song Han
cs.AI
Abstract
Il dispiegamento di modelli linguistici di grandi dimensioni con contesto lungo (LLM) è essenziale ma pone notevoli sfide computazionali e di memoria. Memorizzare tutti gli stati Chiave e Valore (KV) attraverso tutte le testate di attenzione richiede una quantità significativa di memoria. I metodi esistenti di potatura della cache KV danneggiano le capacità di contesto lungo dei LLM o offrono solo miglioramenti limitati in termini di efficienza. In questo articolo, identifichiamo che solo una frazione delle testate di attenzione, note come Testate di Recupero, sono cruciali per elaborare contesti lunghi e richiedono attenzione completa su tutti i token. Al contrario, tutte le altre testate, che si concentrano principalmente sui token recenti e sui punti di attenzione - definiti come Testate di Streaming - non richiedono attenzione completa. Basandoci su questa intuizione, presentiamo DuoAttention, un framework che applica una cache KV completa solo alle testate di recupero, utilizzando una cache KV leggera e di lunghezza costante per le testate di streaming, riducendo sia la memoria di decodifica che di precaricamento dei LLM e la latenza senza compromettere le loro capacità di contesto lungo. DuoAttention utilizza un algoritmo leggero basato sull'ottimizzazione con dati sintetici per identificare con precisione le testate di recupero. Il nostro metodo riduce significativamente la memoria di inferenza del contesto lungo fino a 2,55 volte per i modelli MHA e 1,67 volte per i modelli GQA, accelerando la decodifica fino a 2,18 volte e 1,50 volte e velocizzando il precaricamento fino a 1,73 volte e 1,63 volte per i modelli MHA e GQA, rispettivamente, con una perdita minima di accuratezza rispetto all'attenzione completa. In particolare, combinato con la quantizzazione, DuoAttention consente la decodifica di Llama-3-8B con una lunghezza di contesto di 3,3 milioni su una singola GPU A100. Il codice è disponibile su 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