來源:AIGC深一度
長上下文語言模型完全指南
? 參考文獻: Liu, J., Zhu, D., Bai, Z., et al. (2025). A Comprehensive Survey on Long Context Language Modeling.
多年來,大語言模型(LLMs)一直是在狹窄的“上下文窗口”內運行,即它們一次能夠處理的文本量。這種限制通常只有幾千字,就像眼罩一樣,阻礙了它們處理涉及長篇文檔、長時間對話或復雜數據集的復雜任務的能力。
但形勢正在發生巨大變化。我們正在進入“長上下文語言模型(LCLMs)”時代,這類模型能夠一次性處理數百萬個詞元(單詞或單詞的一部分)。想象一下,有這樣一種人工智能,它能讀完一整部小說并探討其主題,分析一整年的財務報告,或者在長達一周的對話中始終保持完美的記憶。這已不再是科幻小說中的情節了。
基于全面的 M-A-P 綜述論文《長上下文語言建模的綜合調查》,深入探討了長上下文語言模型(LCLM)的世界。我們將探究它們是如何構建的。
長文本上下文語言建模的分類法。
? “在自然語言處理中,對長文本上下文的高效處理一直是一項長期追求。”1. 為什么我們需要打破上下文限制
短上下文窗口的局限性不僅帶來不便,更是根本性的障礙。
總結:對長篇文檔進行總結通常意味著將其分割成多個部分,這可能會導致丟失整體敘述或各部分之間的微妙聯系。
問答:回答有關長篇文本的問題需要復雜的檢索系統,首先找到潛在相關的片段,期望上下文窗口足夠大,以包含答案及其周圍的推理依據。
聊天機器人與智能體:對話式人工智能在長期記憶方面存在困難,常常會忘記用戶偏好、之前的討論要點或復雜任務的歷史記錄。
代碼生成:理解整個代碼庫或復雜的依賴關系通常是不可能的,這限制了人工智能重構、調試或生成大型連貫應用程序的能力。
創意寫作:生成連貫的長篇敘述,或基于大量前期步驟的思維鏈(CcoT,Chain-of-Thought)推理序列,均受到嚴重阻礙。
長上下文語言模型(LCLMs)直接解決了這些限制。通過以指數級擴大上下文窗口——從數千個標記擴展到數十萬個,甚至數百萬個標記——它們開啟了新的能力:
深度文檔理解:一次性分析整本書籍、研究論文、法律合同或財務報告。
增強型檢索增強生成(Enhanced RAG):通過允許模型處理更大篇幅的檢索信息,以實現更精確的合成,從而改進檢索增強生成技術。
復雜智能體:使人工智能智能體能夠維持長期計劃、記憶和環境感知能力。
存儲庫級代碼輔助:全面了解軟件項目的上下文,以提供更智能的編碼建議和分析。
“類 o1”長推理:助力復雜的多步驟推理過程,這類過程需要在較長的思維鏈條中回憶并整合信息。

? 發人深省的問題: 對于一個能夠瞬間處理和記住數百萬單詞的人工智能,你能設想出的最令人興奮的應用是什么?2. 打造巨獸:擴展內存的架構
創建能夠高效處理海量上下文的模型需要重大的架構創新。這不僅僅是增大窗口那么簡單,更要讓它在不增加過高計算成本的前提下發揮作用。該綜述重點介紹了兩個關鍵領域:位置嵌入(Positional Embeddings)和注意力機制(Attention Mechanisms)。
A. 知曉所處位置:位置嵌入
在原始的 Transformer 架構中,自注意力機制本身并不知道詞元的順序。位置嵌入(PEs)會添加關于詞元位置的信息。對于長上下文語言模型(LCLMs)來說,挑戰在于將這種位置信息擴展到遠遠超出模型在初始訓練時所接觸到的范圍。
問題所在:想象一下,你正在讀一本書,但在第 4000 頁之后就無法追蹤頁碼了,因為在印刷測試時這本書本應在那里結束。當遇到比訓練長度更長的序列時,標準的位置嵌入(PEs)會面臨“分布外(Out-of-Distribution, OOD)”問題。
主要方法:
1)絕對位置嵌入與相對位置嵌入:絕對位置嵌入會為每個位置分配一個獨特的標記(就像固定的頁碼)。相對位置嵌入則關注詞元之間的距離(比如“在此之后 5 頁”)。旋轉位置嵌入(Rotary Positional Embedding, RoPE)是一種流行的相對位置嵌入方法,它根據詞元的位置對詞元嵌入進行“旋轉”,巧妙地編碼相對距離。ALiBi是另一種相對位置嵌入方法,它根據距離為注意力分數添加偏差。
2)外推策略:如何讓在約 4k 詞元上訓練的位置嵌入(PEs)能夠處理 100 萬詞元,而無需進行完整的重新訓練?
2.1)位置插值(Position Interpolation, PI):線性地“拉伸”已學習的位置以適應新的、更長的長度。可以想象成縮小字體大小,以便在原來的頁數上容納更多的單詞。這種方法簡單,但有時可能會丟失高頻細節。
2.2)NTK 感知縮放與 YaRN:更復雜的插值方法。它們認識到不同“頻率”的位置信息重要性不同。打個比方:不是均勻地拉伸卷尺,而是精心調整刻度,在延長整體長度的同時,保持小單位的精度。它們對旋轉位置嵌入(RoPE)的高頻和低頻分量進行不同的縮放。
2.3)位置重組(例如,SelfExtend、ReRoPE):這些方法不是拉伸位置,而是巧妙地重用或分組遠距離詞元的位置索引,在關注局部的同時,仍能感知到遠距離的上下文。
不同模型架構示意圖 B. 高效注意力機制
Transformer 中的核心自注意力機制具有二次復雜度(O(n2))——這意味著隨著序列長度(n)的增加,計算和內存需求會急劇增加。使用標準注意力機制處理 100 萬詞元在計算上是不可行的。長上下文語言模型(LCLMs)依賴于高效的替代方案:
問題所在:想象一下,在一個有 100 萬人參加的會議中,每個人都試圖同時與其他所有人交談。這就是標準注意力機制的情況。它很全面,但成本極高。
主要方法:
1)稀疏注意力(例如,Longformer、GQA):每個詞元不再關注每個詞元,而只關注一部分詞元——比如本地鄰居和一些重要的全局詞元。可以想象成在會議中只與附近的人和幾位關鍵發言人交流。諸如分組查詢注意力(Grouped-Query Attention, GQA)和多查詢注意力(Multi-Query Attention, MQA)等技術減少了“鍵”和“值”投影的數量,節省了內存,尤其是在鍵值緩存(KV Cache)方面(稍后會詳細介紹)。
2)線性復雜度架構(例如,Mamba、RWKV、RetNet):這些架構從根本上改變了注意力機制,使其復雜度與序列長度呈線性關系(O(n))。
2.1)Mamba(基于狀態空間模型):采用受控制論啟發的狀態空間模型。打個比方:不是基于所有歷史重新計算一切,而是維持一個壓縮的“狀態”,并在新詞元到來時高效地更新它,就像一個不斷更新的摘要。
2.2)RWKV:結合了循環神經網絡(RNNs)和 Transformer 的特點,在推理時實現線性縮放,同時訓練時可并行化。
2.3)RetNet:提供并行訓練、循環推理(如循環神經網絡)以及塊級循環模式,以實現靈活的計算。
3)混合架構(例如,Jamba、Zamba、Command R、Minimax-01):這些模型進行混合搭配!它們通常將標準(或稀疏)注意力層與線性注意力層(如 Mamba)相結合。其理念是兼顧兩者的優勢——注意力機制的表達能力和線性方法的效率。研究表明,大約 6:1 或 7:1(線性層與注意力層)的比例可能是一個最佳平衡點。有些混合模型甚至在不同的頭的同一層中使用不同的機制(Hymba)。
? 許多最近的最先進模型(如 Command R+、Jamba 以及未來可能的 GPT 版本)很可能正在使用混合架構,以在大規模應用中平衡性能和效率。3. 超越架構:擴展上下文的工作流
有時候,即使有巨大的上下文窗口,也需要比單純輸入所有內容更智能的策略。該綜述重點介紹了增強長上下文語言模型(LCLMs)的工作流設計:
1. 提示壓縮(例如,LLMLingua、ICAE):在輸入到達主長上下文語言模型(LCLM)之前減小輸入大小。
硬壓縮:從原始提示中選擇或重寫最重要的詞元。
軟壓縮:將提示壓縮為連續的嵌入(向量表示),通常使用更小的輔助模型。這些“要點詞元”或“軟提示”隨后被輸入到長上下文語言模型(LCLM)中。
類比:在漫長的會議前創建簡潔的要點(硬壓縮)或密集的摘要段落(軟壓縮)。
2. 基于記憶的方法(例如,MemoryBank、LongMem):使用外部記憶模塊來存儲和檢索長上下文中的信息,而不是將所有信息都保存在活躍窗口中。
語言記憶:存儲文本片段,通常帶有基于時效性、重要性和相關性的檢索分數(如生成式智能體)。
連續記憶:存儲潛在的向量表示。
參數記憶:將信息直接編碼到模型的權重中(例如,DSI)。
類比:在主要工作記憶旁邊有一個可搜索的外部記事本或數據庫。
3. 基于檢索增強生成(RAG)的方法:雖然有時被視為長上下文語言模型(LCLMs)的替代方案,但檢索增強生成(RAG)也可以被它們增強。長上下文語言模型(LCLMs)可以處理更大的檢索片段,在長上下文內部執行檢索(“自我檢索”),或者利用其推理能力改進檢索查詢。兩者的界限變得模糊:檢索增強生成(RAG)幫助長上下文語言模型(LCLMs)集中注意力,而長上下文語言模型(LCLMs)使檢索增強生成(RAG)更強大。
4. 基于智能體的方法(例如,ReadAgent、CoA):利用大語言模型(LLM)智能體的規劃、反思和工具使用能力來處理長上下文。
單智能體:一個智能體可能會分解長文檔,按順序閱讀各部分,進行總結、反思,并計劃下一步的閱讀步驟。
多智能體:不同的智能體可能專門處理上下文的不同部分或任務的不同方面,通過協作產生最終結果。
類比:研究助手(單智能體)有策略地閱讀和總結一本書,而專家團隊(多智能體)處理不同的章節。
處理百萬詞元的上下文需要巨大的計算資源。要使長上下文語言模型(LCLMs)切實可行,必須針對訓練和推理進行復雜的基礎設施優化。
高效訓練長上下文語言模型
在海量文本序列上進行訓練,除了模型大小之外,還會帶來其他瓶頸:
輸入/輸出瓶頸:讀取和準備大量數據的速度會變慢。解決方案包括優化數據打包(巧妙地將多個序列整合在一起)、采用高效的文件系統以及預取數據。
GPU 內存:激活值(中間計算結果)會隨著序列長度呈線性增長,很快就會耗盡 GPU 內存。
混合精度訓練:在大多數計算中使用較低精度的數字(如 FP16 或 BF16)可以節省內存并加快計算速度,同時將關鍵部分(如 softmax)保持在較高精度(FP32)。甚至 8 位(FP8)訓練也正在興起。
優化的內存訪問(FlashAttention):一項革命性的技術,它重新排列注意力計算,以最大限度地減少 GPU 高帶寬內存(HBM)和更快的片上靜態隨機存取存儲器(SRAM)之間緩慢的數據傳輸。它避免了生成龐大的中間注意力矩陣。FlashAttention 對于高效的長上下文訓練至關重要。
并行化:采用標準技術(數據并行、張量并行、管道并行),但序列并行(將序列分配到多個 GPU 上)和諸如環形注意力(Ring Attention)等專門策略對于長上下文語言模型(LCLMs)尤為重要。
通信開銷:在 GPU 之間傳輸數據可能成為瓶頸。相關技術致力于將通信與計算重疊(例如,改進梯度累積策略)。
在推理過程中(逐個生成文本詞元),最大的內存消耗是鍵值緩存(KV Cache)。對于生成的每個詞元,模型需要回溯到為序列中所有先前詞元計算的“鍵(Key, K)”和“值(Value, V)”向量。對于百萬詞元的上下文,這個緩存會變得非常龐大!
問題所在:想象一下,為了決定下一個詞,需要為一場長達一周的會議中說出的每個詞都記錄詳細的筆記(鍵和值向量)。這個筆記本會變得大得難以想象,而且訪問速度很慢。
主要解決方案:
量化:使用更少的位(例如,INT8、INT4 甚至更低)存儲鍵值緩存(有時還包括模型權重)。這會大幅減少內存占用,但需要謹慎處理以保持準確性。
內存管理(分頁注意力機制, vLLM):受操作系統中虛擬內存的啟發,分頁注意力機制以不連續的塊(“頁”)分配鍵值緩存內存。這樣可以避免內存碎片化,并允許在不同請求之間(例如,多個用戶與同一基礎文檔聊天)高效共享上下文。它是 vLLM 等高效長上下文語言模型(LCLM)服務框架的基石。
注意力匯聚點與逐出策略(StreamingLLM、H2O):研究發現,即使在語義上不重要的情況下,最初的幾個詞元(“注意力匯聚點”)通常也會吸引過多的注意力。StreamingLLM 保留這些匯聚點,同時對其余部分使用滑動窗口。當達到內存限制時,其他動態策略(“逐出策略”)嘗試根據注意力分數或其他啟發式方法,智能地從鍵值緩存中丟棄不太重要的條目。
推測解碼:使用更小、更快的“草稿”模型提前生成幾個候選詞元。然后,大型長上下文語言模型(LCLM)并行檢查這些候選詞元,一次性接受一連串正確的詞元。通過減少大型模型需要運行的次數,這顯著加快了生成速度。
能力越強,評估的挑戰就越大。我們如何知道長上下文語言模型(LCLM)是否真的在有效地利用其龐大的上下文呢?
評估范式
該綜述將評估分為兩個主要領域:
1. 長上下文理解:模型能否理解并運用長輸入中的信息?
大海撈針(Needle-in-a-Haystack, NIAH):經典測試。將一條特定信息(“針”,例如“最好的水果是芒果”)插入到一段冗長、具有干擾性的文本(“干草堆”)中的某個位置。然后要求模型檢索出這根“針”。性能通常根據“針”的位置和上下文長度來繪制圖表。
“迷失在中間”:這是大海撈針(NIAH)測試的一項關鍵發現。許多長上下文語言模型(LCLMs)當“針”位于上下文的開頭或結尾時表現良好,但當“針”被埋在中間時,表現會顯著下降。這表明宣稱的上下文長度往往不等于有效上下文長度。
多線索推理:更復雜的變體需要檢索并對分散在整個上下文中的多個“線索”進行推理。
現實世界任務:評估在長文檔問答、摘要生成、長文本檢索增強生成(RAG)以及多次上下文學習(使用數百或數千個示例)等任務上的性能。
基準測試:LongBench、Loogle、ZeroSCROLLS、BABILong、RULER。

2. 長文本生成:模型能否生成篇幅較長、連貫且相關的文本?
任務:長文本問答(詳細回答)、故事生成、長文本摘要、整個模塊的代碼生成。
挑戰:在長篇輸出中保持連貫性、一致性和事實準確性頗具難度。像ROUGE或BLEU這樣的標準指標,在極長文本上的可靠性會降低。
評估方法:越來越依賴人工評估或“大語言模型充當裁判”的方法(使用像GPT-4這樣強大的模型來評估質量),同時結合特定任務的指標(例如,事實一致性檢查)。
基準測試:ELI5、MS-NLG、LongWriter、HelloBench。

除了基準測試,研究人員還在剖析長上下文語言模型(LCLMs),以了解它們的內部工作原理:
困惑度與實際性能:雖然困惑度(一種預測置信度的度量)與短任務的性能相關性良好,但在長上下文中這種關聯會減弱。然而,只關注上下文敏感詞元的改進困惑度指標(如LongPPL)有望恢復這種相關性。
長上下文語言模型(LCLMs)與檢索增強生成(RAG):爭論仍在繼續。長上下文語言模型(LCLMs)提供端到端處理,但可能效率不高。檢索增強生成(RAG)效率高,但依賴于檢索質量。趨勢是走向協同作用——利用長上下文語言模型(LCLMs)增強檢索增強生成(RAG),反之亦然。
模型結構分析:確定模型的哪些部分對長上下文至關重要。
位置嵌入:分析不同的外推方法如何影響注意力模式和性能。
注意力頭:找到專門的“檢索頭”或“R2頭”(檢索-推理),它們對長距離信息提取至關重要。
多層感知機層與層間交互:理解信息在長序列中如何在各層之間流動和轉換。

? 發人深省的問題: 如果一個模型聲稱具有100萬個詞元的上下文,但在處理中間信息時表現不佳,那么它實際上真正擁有多少上下文?我們應該如何定義“有效上下文長度”?6. 技術深度剖析:讓短期訓練發揮長期效果——旋轉位置嵌入(RoPE)外推的神奇之處
讓我們簡要聚焦一個關鍵挑戰:將旋轉位置嵌入(RoPE)擴展到超過其訓練長度。
旋轉位置嵌入(RoPE)的工作原理是根據查詢和鍵向量的絕對位置對它們進行旋轉。旋轉量取決于位置n
以及由基數β
(通常為10000)確定的一組“頻率”。高頻分量旋轉得快,捕捉局部關系,而低頻分量旋轉得慢,捕捉長距離關系。
# 簡化的旋轉位置嵌入(RoPE)理念 # 每個維度對(2i,2i+1)都按角度theta_i * n旋轉 # 其中theta_i = 1 / (beta^(2i/d)) --- i越小 = 頻率越低(旋轉越慢) def apply_rope(vector, n, beta=10000): d = vector.length rotated_vector = vector.copy() for i in range(0, d // 2): theta_i = 1.0 / (beta**(2.0 * i / d)) angle = n * theta_i cos_angle = cos(angle) sin_angle = sin(angle) # 旋轉維度2i和2i+1 x0 = vector[2*i] x1 = vector[2*i+1] rotated_vector[2*i] = x0 * cos_angle - x1 * sin_angle rotated_vector[2*i+1] = x0 * sin_angle + x1 * cos_angle return rotated_vector
簡單擴展的問題:如果你在長度L
上進行訓練,并在L'
(L' > L
)上進行推理,那么位置n > L
會導致模型從未見過的旋轉角度,從而導致性能不佳。
位置插值(Position Interpolation, PI):簡單地將位置n
縮放至n' = n * (L / L')
。所有頻率都被均勻縮放。這一方法出奇地有效,但可能會損害性能,因為它實際上抑制了模型用于精細局部理解所依賴的高頻(快速旋轉)。這就好比均勻拉伸一首復雜的音樂作品——整體長度增加了,但快速音符變得模糊不清。
NTK感知與YaRN:這些方法認識到位置插值(PI)的問題在于統一縮放。它們提議進行非均勻縮放。
核心思想:不要過度縮放高頻分量(甚至不縮放),以保留局部細節。更積極地縮放低頻分量,以擴展上下文范圍。
實現方式(簡化):它們有效地修改
beta
基數或每個頻率維度的縮放因子。例如,YaRN使用斜坡函數,在高頻較少縮放和低頻較多縮放之間平滑過渡。這使得模型能夠在成功擴展其對較長距離的理解的同時,保持對局部模式的理解。
這種基于頻率的巧妙縮放,是模型通常可以在無需從頭開始的情況下,通過微調或調整來處理比其原始預訓練長度長得多的上下文的關鍵原因。
7. 關鍵要點與未來展望
探索長上下文語言模型的旅程令人興奮且發展迅速。以下是本次調查的關鍵要點:
長上下文語言模型(LCLMs)具有變革性:它們克服了以往模型的基本局限,在深度文檔分析、長期規劃等方面釋放出諸多能力。
效率至上:架構創新(稀疏/線性/混合注意力機制、更優的位置嵌入)和基礎設施優化(FlashAttention、分頁注意力機制、量化、推測解碼)對于讓長上下文語言模型(LCLMs)切實可行至關重要。
評估是細致入微的:宣稱的上下文長度并不總是有效的上下文長度(“迷失在中間”)。穩健的評估需要在不同位置測試檢索,評估長篇生成質量,并使用多樣化的基準。
數據策略很重要:預訓練和微調都需要高質量、長距離依賴的數據。有效合成和過濾數據是關鍵。
工作流增強能力:提示壓縮、記憶系統、檢索增強生成(RAG)和智能體為處理長信息提供了替代或互補策略。
協同效應,而非僅僅競爭:長上下文語言模型(LCLMs)和檢索增強生成(RAG)越來越被視為互補工具。機理可解釋性開始探究長上下文語言模型(LCLMs)如何在內部處理長上下文。
未來方向:
突破極限:進一步擴展上下文窗口(數千萬詞元?)并提升現有大窗口內的能力。
高效架構:持續研究更高效的注意力機制和混合模型。
穩健評估:為閱讀理解和長篇內容生成開發更好、更可靠的基準和指標,可能采用從粗到細的“大語言模型充當評判”流程。
機制可解釋性:更深入地理解哪些模型組件能夠實現長上下文處理,以及如何改進這些組件。
長文本生成質量:應對生成極長、連貫、事實準確且可控文本的挑戰(例如,用于長篇思維鏈或創意寫作)。
長上下文語言模型(LCLMs)的發展標志著人工智能領域的一個關鍵時刻。通過打破上下文限制,這些模型有望徹底改變我們與信息交互的方式,以及人工智能在復雜、知識密集型任務中對我們的協助方式。這一過程錯綜復雜,但潛在回報巨大。
閱讀最新前沿科技趨勢報告,請訪問歐米伽研究所的“未來知識庫”
https://wx.zsxq.com/group/454854145828
未來知識庫是“ 歐米伽 未來研究所”建立的在線知識庫平臺,收藏的資料范圍包括人工智能、腦科學、互聯網、超級智能,數智大腦、能源、軍事、經濟、人類風險等等領域的前沿進展與未來趨勢。目前擁有超過8000篇重要資料。每周更新不少于100篇世界范圍最新研究資料。 歡迎掃描二維碼或訪問https://wx.zsxq.com/group/454854145828進入。
截止到3月31日 ”未來知識庫”精選的百部前沿科技趨勢報告
(加入未來知識庫,全部資料免費閱讀和下載)
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.