MInference 1.0: Accelerazione del Pre-riempimento per LLM a Contesto Lungo tramite Attenzione Sparsa Dinamica
MInference 1.0: Accelerating Pre-filling for Long-Context LLMs via Dynamic Sparse Attention
July 2, 2024
Autori: Huiqiang Jiang, Yucheng Li, Chengruidong Zhang, Qianhui Wu, Xufang Luo, Surin Ahn, Zhenhua Han, Amir H. Abdi, Dongsheng Li, Chin-Yew Lin, Yuqing Yang, Lili Qiu
cs.AI
Abstract
Le sfide computazionali dell'inferenza dei Large Language Model (LLM) rimangono un ostacolo significativo alla loro diffusione su larga scala, specialmente con l'aumento continuo della lunghezza dei prompt. A causa della complessità quadratica del calcolo dell'attenzione, un LLM da 8B impiega 30 minuti per elaborare un prompt di 1M token (ovvero la fase di pre-riempimento) su una singola GPU A100. I metodi esistenti per accelerare il pre-riempimento spesso non riescono a mantenere un'accuratezza o un'efficienza accettabili quando applicati a LLM con contesti lunghi. Per colmare questa lacuna, introduciamo MInference (Milliontokens Inference), un metodo di calcolo sparso progettato per accelerare il pre-riempimento nell'elaborazione di sequenze lunghe. In particolare, identifichiamo tre pattern unici nelle matrici di attenzione per contesti lunghi—la forma a A, la barra verticale e la sparsità a blocchi—che possono essere sfruttati per un calcolo sparso efficiente sulle GPU. Determiniamo il pattern ottimale per ogni testa di attenzione offline e costruiamo dinamicamente indici sparsi basati sul pattern assegnato durante l'inferenza. Con il pattern e gli indici sparsi, eseguiamo calcoli di attenzione sparsa efficienti tramite i nostri kernel GPU ottimizzati, riducendo significativamente la latenza nella fase di pre-riempimento degli LLM con contesti lunghi. La nostra tecnica proposta può essere applicata direttamente agli LLM esistenti senza alcuna modifica alla configurazione di pre-training o ulteriori fine-tuning. Valutando su un'ampia gamma di task downstream, tra cui InfiniteBench, RULER, PG-19 e Needle In A Haystack, e modelli come LLaMA-3-1M, GLM4-1M, Yi-200K, Phi-3-128K e Qwen2-128K, dimostriamo che MInference riduce efficacemente la latenza di inferenza fino a 10x per il pre-riempimento su una A100, mantenendo l'accuratezza. Il nostro codice è disponibile all'indirizzo https://aka.ms/MInference.
English
The computational challenges of Large Language Model (LLM) inference remain a
significant barrier to their widespread deployment, especially as prompt
lengths continue to increase. Due to the quadratic complexity of the attention
computation, it takes 30 minutes for an 8B LLM to process a prompt of 1M tokens
(i.e., the pre-filling stage) on a single A100 GPU. Existing methods for
speeding up prefilling often fail to maintain acceptable accuracy or efficiency
when applied to long-context LLMs. To address this gap, we introduce MInference
(Milliontokens Inference), a sparse calculation method designed to accelerate
pre-filling of long-sequence processing. Specifically, we identify three unique
patterns in long-context attention matrices-the A-shape, Vertical-Slash, and
Block-Sparsethat can be leveraged for efficient sparse computation on GPUs. We
determine the optimal pattern for each attention head offline and dynamically
build sparse indices based on the assigned pattern during inference. With the
pattern and sparse indices, we perform efficient sparse attention calculations
via our optimized GPU kernels to significantly reduce the latency in the
pre-filling stage of long-context LLMs. Our proposed technique can be directly
applied to existing LLMs without any modifications to the pre-training setup or
additional fine-tuning. By evaluating on a wide range of downstream tasks,
including InfiniteBench, RULER, PG-19, and Needle In A Haystack, and models
including LLaMA-3-1M, GLM4-1M, Yi-200K, Phi-3-128K, and Qwen2-128K, we
demonstrate that MInference effectively reduces inference latency by up to 10x
for pre-filling on an A100, while maintaining accuracy. Our code is available
at https://aka.ms/MInference.