韓鬆團隊長上下文LLM推理高效框架:單GPU 330萬Token上下文推理

本文第一作者肖光烜是麻省理工學院電子工程與計算機科學系(MIT EECS)的三年級博士生,師從韓鬆教授,研究方向爲深度學習加速,尤其是大型語言模型(LLM)的加速算法設計。他在清華大學計算機科學與技術係獲得本科學位。他的研究工作廣受關注,GitHub上的項目累計獲得超過9000顆星,並對業界產生了重要影響。他的主要貢獻包括SmoothQuant和StreamingLLM,這些技術和理念已被廣泛應用,集成到NVIDIA TensorRT-LLM、HuggingFace及Intel Neural Compressor等平臺中。本文的指導老師爲韓鬆教授(https://songhan.mit.edu/)

TL;DR:DuoAttention 通過將大語言模型的注意力頭分爲檢索頭(Retrieval Heads,需要完整 KV 緩存)和流式頭(Streaming Heads,只需固定量 KV 緩存),大幅提升了長上下文推理的效率,顯著減少內存消耗、同時提高解碼(Decoding)和預填充(Pre-filling)速度,同時在長短上下文任務中保持了準確率。

隨着大語言模型(Large Language Models,LLMs)在各類任務中的廣泛應用,尤其是在長上下文(Long-Context)場景中處理海量文本信息,如何在保證模型性能的同時減少內存和計算成本,成爲了一個亟待解決的難題。爲此,來自 MIT、清華大學、上海交通大學、愛丁堡大學和 NVIDIA 的研究團隊聯合提出了DuoAttention 框架。這項創新技術通過對大語言模型的注意力機制(Attention Mechanism)進行精細化設計,極大提高了長上下文推理的效率,並大幅降低了內存需求,在不犧牲模型準確性的前提下,推動了 LLM 在長上下文任務中的發展。

研究背景:長上下文處理的挑戰

現代大語言模型(如 Llama、GPT 等)在多輪對話、長文檔摘要、視頻和視覺信息理解等任務中需要處理大量歷史信息,這些任務往往涉及數十萬甚至上百萬個 token 的上下文信息。例如,處理一篇小說、法律文檔或視頻轉錄內容,可能需要分析百萬級別的 token。然而,傳統的全注意力機制(Full Attention)要求模型中的每個 token 都要關注序列中的所有前序 token,這導致瞭解碼時間線性增加,預填充(Pre-Filling)時間呈二次增長,同時,KV 緩存(Key-Value Cache)的內存消耗也隨着上下文長度成線性增長。當上下文達到數百萬 token 時,模型的計算負擔和內存消耗將達到難以承受的地步。

DuoAttention 的創新設計

針對這一問題,DuoAttention 框架提出了創新性的 “檢索頭(Retrieval Heads)” 與 “流式頭(Streaming Heads)” 的分離方法。這一設計的核心理念是:並非所有的注意力頭(Attention Heads)在處理長上下文時都需要保留完整的 KV 緩存。研究團隊通過大量實驗發現,在長上下文推理任務中,只有一小部分注意力頭,即 “檢索頭”,需要對全部 token 進行關注,以獲取上下文中的關鍵信息。而大多數注意力頭,即 “流式頭”,只需關注最近的 token 和注意力匯點(Attention Sinks),不需要存儲全部的歷史 KV 狀態。

圖 1 展示了在 Llama-2-7B 模型上使用全注意力機制的注意力圖(Attention Maps)。從圖中可以看到,檢索頭(Retrieval Heads)捕獲了上下文中如 "best"、"fruit" 和 "orange" 等關鍵信息,這些信息對於處理長上下文至關重要,因而需要完整的 KV 緩存。而流式頭(Streaming Heads)則主要關注最近的 token 和注意力匯點,不需要保留所有歷史信息。

DuoAttention 的工作原理

圖 2 說明了 DuoAttention 的基本工作原理。

框架通過以下幾種關鍵機制來優化推理過程:

圖 3 展示了 DuoAttention 使用的合成數據集中的一個樣例。圖 4 展示了 DuoAttention 最終確定 LLM 中各個注意力頭的類別。

性能與準確率實驗

爲了驗證 DuoAttention 框架的有效性,研究團隊在多種主流 LLM 架構上進行了廣泛的實驗評估,包括 Llama-2、Llama-3 和 Mistral 模型。實驗不僅測試了 DuoAttention 在內存與計算效率上的提升,還通過長上下文和短上下文任務對模型的準確率進行了全面測試。

1.長上下文任務的評估:在 Needle-in-a-Haystack(NIAH)基準測試中,DuoAttention 在極深的上下文條件下表現卓越,保持了高精度,並在處理 1048K 個 token 的長上下文時,依然能夠保持穩定的準確率,而其他方法由於丟失關鍵信息導致性能下降顯著。在 14 個 LongBench 基準測試中,DuoAttention 展現了在不同任務下的強大泛化能力,能夠以較低的 KV 緩存預算,提供接近全注意力機制的準確性。在多頭注意力模型(MHA)上,DuoAttention 使用 25% 的 KV 緩存預算即可在多數任務中取得與全緩存相當的效果,而在分組查詢注意力模型(GQA)上,50% 的 KV 緩存預算即可維持高精度表現。

2.短上下文任務的評估:在 MMLU(多項選擇題)、MBPP(編程能力)和 MT-Bench(幫助能力)等短上下文基準上,DuoAttention 也表現出色。在使用 50% 流式頭的情況下,DuoAttention 的表現幾乎與全注意力機制一致,保持了 LLM 在短文本任務上的原始能力。例如,在 MMLU 基準上,DuoAttention 僅以 0.03% 的差距(79.35% 對比 79.38%)實現了與全注意力機制的相近性能。

內存與效率的提升

應用場景與未來展望

DuoAttention 框架爲處理長上下文的應用場景帶來了巨大的變革,特別是在需要大規模上下文處理的任務中表現突出,包括:

研究團隊期望 DuoAttention 框架能夠繼續推動 LLM 在長上下文處理領域的發展,併爲更多實際應用場景帶來顯著提升。