上下文擴充套件(Context Extension)
3 秒看懂
一句話:讓大型模型”一次能看更多文字”的工程與演算法技術總稱——從最初的 512 token 視窗到如今百萬級 token 長上下文,核心就是在算力、視訊記憶體、注意力機制之間找平衡。
關鍵詞:RoPE 縮放 · 位置插值 · KV Cache · 長序列訓練 · FlashAttention
3 分鐘產業解釋
為什麼上下文長度是”卡脖子”引數?
大型模型的上下文視窗(Context Window)決定了它單次推論能”看到”多少輸入資訊。這直接約束了:
| 應用場景 | 所需上下文量級 | 視窗不夠時的後果 |
|---|---|---|
| 整本書閱讀/摘要 | 數十萬~百萬 token | 被迫截斷或分塊,丟失全域性資訊 |
| 程式碼倉庫理解 | 數十萬行程式碼 | 無法跨檔案關聯函式呼叫 |
| 多輪長對話 | 數萬~數十萬 token | 早期對話被遺忘,角色一致性崩潰 |
| RAG 檢索增強 | 取決於召回文件量 | 召回文件放不進去,等同退化為短上下文 |
| 金融/法律全文分析 | 數十萬字合同/財報 | 分片後喪失條款間交叉引用能力 |
產業格局:上下文長度已成為模型廠商的核心競爭指標之一。主要玩家的上下文視窗演進如下 [公開產品頁面/技術報告]:
| 模型 | 標稱上下文長度 | 備註 |
|---|---|---|
| GPT-3(2020) | 2,048 token | 原始 Transformer 僅 512 |
| GPT-4 Turbo(2023) | 128K token | 產品頁面公開 |
| Claude 3 系列(2024) | 200K token | 產品頁面公開 |
| Gemini 1.5 Pro(2024) | 宣稱最高 10M token | 技術報告揭露的實驗上限,實際可用性待驗證 |
| Llama 3.1(2024) | 128K token | 從 8K 基座經 RoPE 縮放 + 長序列微調擴充套件而來,官方技術報告揭露 |
| Qwen2.5(2024) | 128K token | 技術報告揭露 |
⚠️ 標稱 ≠ 有效:模型聲稱 128K 上下文,並不意味著 128K 位置的資訊被同等有效地利用。“Lost in the Middle”現象(後文詳述)表明,模型對上下文視窗中間位置的資訊利用率顯著低於首尾。
15 分鐘專家深入
上下文擴充套件的三層問題
上下文擴充套件並非單一技術,而是圍繞三個層次的系統性工程:
┌─────────────────────────────────────────────────┐
│ 第一層:位置編碼可擴充套件性(Position Encoding) │
│ → 模型能不能"數"到更遠的位置? │
│ │
│ 第二層:注意力計算效率(Attention Efficiency) │
│ → 算得起嗎?視訊記憶體放得下嗎? │
│ │
│ 第三層:有效資訊利用(Effective Utilization) │
│ → 模型真的"理解"了遠處的資訊,還是隻是"看到"了? │
└─────────────────────────────────────────────────┘
第一層:位置編碼的擴充套件
核心問題:訓練時見過的最大位置編號為 L_train,推論時如果位置編號 > L_train,模型是否還能正確編碼位置資訊?
主流方案分為兩大流派:
A. RoPE 系縮放方案(當前主流)
RoPE(Rotary Position Embedding,Su et al. 2021)是當前絕大多數開源 LLM 使用的位置編碼。其核心思想是將位置資訊編碼為旋轉矩陣,對 query 和 key 向量施加位置相關的旋轉變換。
原始 RoPE 的旋轉角度:
θ_i = base^(-2i/d), 其中 base = 10000
位置 m 處第 i 維的旋轉角 = m × θ_i
擴充套件 RoPE 的關鍵在於:如何讓遠超訓練長度的位置也能產生合理的旋轉角分佈?主要方法:
| 方法 | 核心思路 | 關鍵引數 | 提出者 |
|---|---|---|---|
| 位置插值(PI) | 將位置編號線性壓縮到訓練範圍內:m → m/s,s = L_new/L_old | 縮放因子 s | Chen et al., Meta, 2023 |
| NTK-aware 縮放 | 修改 base 值而非位置編號:base’ = base × s^(d/(d-2)) | 無需微調即可短距離外推,但效果因任務而異 | Reddit 使用者 bloc97, 2023(社群方案) |
| YaRN | NTK-aware + 注意力溫度縮放 + 分頻段差異化處理 | 不同頻率維度採用不同縮放策略 | Peng et al., 2023 |
| LongRoPE | 漸進式擴充套件 + 非均勻縮放因子搜尋 | 搜尋每個維度的最優縮放因子 | Ding et al., 2024(Microsoft) |
| Llama 3.1 方案 | RoPE base 從 500,000 調整至更高值 + 長序列監督微調 | 多階段訓練 | Meta, 2024(技術報告揭露) |
技術細節補充:PI 方法的關鍵洞察是——如果直接外推,遠位置的旋轉角會超出訓練分佈;而將位置線性壓縮後,所有位置的旋轉角都落在訓練時見過的範圍內,因此模型無需大幅調整即可處理更長序列。代價是解析度降低(原本位置 m 和 m+1 之間的區別被壓縮)。
B. 非 RoPE 方案
| 方法 | 核心思路 | 代表模型 |
|---|---|---|
| ALiBi(Attention with Linear Biases) | 不使用位置嵌入,直接在注意力分數上加線性衰減偏置,天然支援外推 | BLOOM(BigScience) |
| 可學習絕對位置編碼 + 截斷 | GPT 系列早期方案,超出訓練長度直接截斷 | GPT-2, GPT-3 |
| YaRN-Flash + 無限注意力 | 理論可無限外推的相對位置方案 | 學術探索中 |
第二層:注意力計算效率
即使位置編碼能擴充套件到百萬 token,直接計算全注意力面臨兩個根本性瓶頸:
傳統 Self-Attention:
計算複雜度: O(n² × d) → n=1M 時,n² ≈ 10¹²,幾乎不可行
視訊記憶體佔用: O(n²) → 儲存注意力矩陣即需 TB 級視訊記憶體
KV Cache: O(n × L × d) → 線性增長,但基數巨大
KV Cache 視訊記憶體估算示例 [基於模型公開架構引數估算]:
以一個典型的 70B 引數模型(如 Llama 3.1 70B)為例:
- 層數 L ≈ 80,KV 頭數 h_kv = 8(GQA),頭維度 d_h = 128,bf16(2 bytes/param)
- 單 token 的 KV Cache:2(K+V) × 80 × 8 × 128 × 2 bytes ≈ 0.3 MB [估算]
- 128K token 上下文:≈ 0.3 MB × 131,072 ≈ 40 GB [估算]
- 1M token 上下文:≈ 300 GB [估算] → 遠超單卡視訊記憶體
關鍵效率技術:
| 技術 | 解決的問題 | 核心機制 | 提出者 |
|---|---|---|---|
| FlashAttention 1/2/3 | 注意力計算的視訊記憶體瓶頸 | IO-aware 分塊計算,將注意力矩陣的視訊記憶體需求從 O(n²) 降至 O(n),計算量不變 | Tri Dao, 2022/2023/2024 |
| Ring Attention | 超長序列的分散式計算 | 將序列分片到多裝置,通過環形通訊傳遞 KV 塊 | Liu et al., 2023 |
| KV Cache 量化 | KV Cache 視訊記憶體佔用 | 將 bf16/fp16 KV 壓縮至 int8/int4 | 多個團隊 |
| KV Cache 驅逐/合併 | 有效減少 Cache 長度 | 如 H₂O(Heavy Hitter Oracle)、StreamingLLM 等選擇性保留關鍵 token 的 KV | Zhang et al., 2023; Xiao et al., 2023 |
| 滑動視窗注意力 | 限制注意力範圍 | 僅關注最近 w 個 token,配合資訊傳遞層覆蓋遠距離 | Longformer (Beltagy et al., 2020);Mistral (2023) 使用類似思路 |
| GQA / MQA | 減少 KV Cache 頭數 | 多個 query head 共享一組 KV head | Ainslie et al., 2023(Google) |
第三層:有效資訊利用
即使技術上能塞入百萬 token,模型是否真的能利用這些資訊?
“Lost in the Middle”現象(Liu et al., 2023, Stanford/UW):
研究者在多文件問答任務中發現,當關鍵資訊被放置在上下文的中間位置時,模型的表現顯著下降——呈現出”U 型曲線”:靠近開頭和結尾的資訊被更好地利用,中間資訊被”遺忘”。
這說明:
- 上下文擴充套件 ≠ 上下文等效利用
- 模型的注意力分佈並非均勻,存在顯著的位置偏好
- 這一問題在所有主流模型中都存在,程度不同
“Needle in a Haystack”(NIAH)測試:
一種流行的上下文能力評測方法:在長文本中插入一條特定資訊(“針”),測試模型能否在不同位置檢索到它。各廠商報告的 NIAH 通過率普遍較高,但這只是檢索能力的最低門檻,不能代表真正的長上下文理解能力。
技術原理
RoPE 位置編碼的數學機制與擴充套件
原始 RoPE 定義(Su et al., 2021):
─────────────────────────────────
給定 d 維向量 x,位置 m 的旋轉編碼:
R(m) = 旋轉矩陣,其中每對維度 (2i, 2i+1) 的旋轉角為:
φ_{m,i} = m × θ_i
θ_i = 10000^(-2i/d)
Attention 計算時:
q_m = R(m) × W_q × x_m
k_n = R(n) × W_k × x_n
關鍵性質:
q_m^T × k_n 只依賴 (m-n),即相對位置
→ RoPE 天然編碼相對位置資訊
位置插值(Position Interpolation)的工作原理:
原始:位置 m 的旋轉角 = m × θ_i (m = 0, 1, ..., L_train-1)
插值:位置 m 的旋轉角 = (m/s) × θ_i (m = 0, 1, ..., s×L_train-1)
其中 s = L_new / L_train
直觀理解:
訓練長度 L_train = 4K, 擴充套件到 L_new = 128K → s = 32
原來 128K 位置對應的角度 = 4096 × θ_i → 現在等效於 4096 × θ_i
但位置間距從 1 縮小到 1/32 → 解析度降低
┌──────────────────────────────────────┐
│ 原始:|·|·|·|·|·|·|·|·| (4個位置) │
│ 插值:|.|.|.|.|.|.|.|.|.|.|.|.|.(16個位置)│
│ 總覆蓋範圍擴大4倍,但每步的旋轉角減小 │
└──────────────────────────────────────┘
NTK-aware 縮放:
不改位置編號,改 base 值:
原始:θ_i = 10000^(-2i/d)
縮放:θ_i' = (10000 × s^(d/(d-2)))^(-2i/d)
效果:高頻分量(編碼區域性位置)基本不變,低頻分量(編碼遠距離位置)被拉伸
→ 高頻保真 + 低頻外推,無需微調即可在一定程度上擴充套件
YaRN 的三重策略:
1. NTK-aware 縮放:處理頻率維度的縮放
2. 注意力溫度縮放:乘以 1/√t 補償注意力熵的增加
3. 分頻段處理:
- 低頻維度(長距離依賴):使用 NTK-aware 縮放
- 高頻維度(短距離依賴):不縮放或僅輕微縮放
→ 按波長與上下文長度的關係劃分處理策略
KV Cache 的視訊記憶體架構
KV Cache 在自迴歸推論中的作用:
──────────────────────────────
每生成一個新 token,需要:
1. 計算該 token 的 Q, K, V
2. 將新 K, V 拼接到已有的 KV Cache
3. 用新 Q 與完整 KV Cache 做注意力計算
4. 輸出下一個 token
記憶體佔用公式(單序列):
KV Cache = 2 × n_layers × n_kv_heads × d_head × seq_len × dtype_bytes
┌─────────────────────────────────────────┐
│ 示例 [估算,基於公開架構引數]: │
│ 70B 模型(GQA, 8 KV heads, 80 layers) │
│ d_head=128, bf16 (2B) │
│ │
│ 每 token:2×80×8×128×2 = 327,680 B ≈ 0.3MB│
│ 4K ctx: ~1.2 GB │
│ 128K ctx: ~40 GB │
│ 1M ctx: ~300 GB │
└─────────────────────────────────────────┘
FlashAttention 的分塊計算策略
傳統注意力:
Q (n×d), K (n×d), V (n×d)
S = QK^T → 需儲存 n×n 矩陣於 HBM
P = softmax(S)
O = PV
FlashAttention:
將 Q, K, V 分為小塊(塊大小 B_r × B_c)
每塊在 SRAM 中完成:
- 計算區域性 QK^T
- 線上 softmax(使用 running max 技巧累加)
- 累積輸出
無需將完整的 n×n 矩陣寫回 HBM
視訊記憶體:O(n) 而非 O(n²)
計算:仍是 O(n²d),但實際更快(減少 HBM 訪問)
技術演進史
| 時間 | 里程碑 | 上下文長度 | 關鍵突破 |
|---|---|---|---|
| 2017 | 原始 Transformer(Vaswani et al.) | 512 | 注意力機制提出,但受限於位置編碼和算力 |
| 2018 | BERT | 512 | 可學習絕對位置編碼 |
| 2019 | GPT-2 | 1,024 | |
| 2020 | GPT-3 | 2,048 | 可學習絕對位置編碼 |
| 2020 | Longformer / BigBird | 4,096+ | 稀疏注意力(區域性+全域性視窗),突破全注意力限制 |
| 2021 | RoPE 提出(Su et al.) | — | 旋轉位置編碼,為後續擴充套件奠定基礎 |
| 2022 | ALiBi(Press et al.) | — | 線性偏置位置編碼,宣稱天然外推能力 |
| 2022 | FlashAttention(Dao et al.) | — | IO-aware 分塊注意力,視訊記憶體 O(n),使長上下文訓練在工程上可行 |
| 2023.06 | 位置插值 PI(Chen et al., Meta) | — | 證明線性插值可有效擴充套件 RoPE 模型 |
| 2023 | NTK-aware 縮放(社群方案) | — | 無需微調的頻率域縮放 |
| 2023 | YaRN(Peng et al.) | — | 綜合 NTK+溫度+分頻段,系統性擴充套件方案 |
| 2023 | Llama 2 | 4,096 | RoPE base=10000 |
| 2023 | Claude 2 | 100K | 產品化長上下文 |
| 2023 | GPT-4 Turbo | 128K | |
| 2024.02 | Gemini 1.5 Pro | 宣稱 1M-10M | 技術報告揭露 |
| 2024.04 | Llama 3 | 8,096 | base 模型上下文仍較短 |
| 2024.07 | Llama 3.1 | 128K | RoPE base 調整 + 6 階段長上下文訓練 |
| 2024 | Ring Attention / 序列並行 | 理論無限 | 多裝置分散式長序列訓練 |
| 2024 | LongRoPE(Microsoft) | 宣稱 2M+ | 漸進擴充套件 + 非均勻因子搜尋 |
技術路線對比
位置編碼擴充套件方案量化對比
| 維度 | 位置插值(PI) | NTK-aware | YaRN | ALiBi | 滑動視窗 |
|---|---|---|---|---|---|
| 是否需要微調 | 通常需要(少量) | 可免微調(短距離) | 建議少量微調 | 免微調 | N/A(架構層面) |
| 擴充套件倍數(典型) | 4-32× | 2-8×(免微調) | 16-64× | 天然外推但遠距離質量下降 | 理論無限但有效範圍=視窗大小 |
| 實現複雜度 | 低 | 低 | 中 | 低(模型訓練時確定) | 低 |
| 遠距離資訊利用 | 中(經微調後可改善) | 低-中 | 中-高 | 高(近距離)→ 低(遠距離) | 僅視窗內 |
| 對原始模型改動 | 僅改位置計算 | 僅改 base 引數 | 改位置+注意力溫度 | 需模型從頭訓練 | 改注意力掩碼 |
| 代表使用者 | Llama 系列微調社群 | 社群廣泛使用 | 多個開源微調版本 | BLOOM | Mistral, Longformer |
注意力效率方案對比
| 方案 | 計算複雜度 | 視訊記憶體複雜度 | 是否損失精度 | 適用場景 |
|---|---|---|---|---|
| 標準全注意力 | O(n²d) | O(n²) | 否 | 短序列基準 |
| FlashAttention | O(n²d) | O(n) | 否(數學等價) | 通用,已成為標配 |
| 滑動視窗注意力 | O(nwd) w=視窗大小 | O(nw) | 是(丟失視窗外資訊) | 超長序列,配合資訊傳遞層 |
| 稀疏/區域性+全域性 | O(n√n) 等 | O(n√n) 等 | 是 | 超長序列 |
| Ring Attention | O(n²d/P) P=裝置數 | O(n²/P) 等效 | 否 | 多裝置分散式長序列 |
上下游
上游:上下文擴充套件技術依賴什麼?
┌──────────────────────────┐
│ 訓練基礎設施 │
│ - 超大視訊記憶體叢集 │
│ - 高速互聯 (NVLink/NVSwitch) │
│ - 長文本語料 │
└──────────┬───────────────┘
│
┌──────────▼───────────────┐
│ 關鍵計算核心 │
│ - FlashAttention CUDA kernel │
│ - 高效通訊庫 (NCCL) │
│ - Ring Attention 通訊排程 │
└──────────┬───────────────┘
│
┌──────────▼───────────────┐
│ 演算法元件 │
│ - RoPE / ALiBi 位置編碼 │
│ - GQA / MQA │
│ - 各種縮放策略 (PI/NTK/YaRN) │
└──────────────────────────┘
下游:上下文擴充套件賦能什麼?
- 長文件處理:合同審閱、論文綜述、書籍分析
- 程式碼理解:全倉庫級程式碼索引、跨檔案 Bug 定位
- 多模態長序列:長影片理解(影片幀序列化後可達數萬 token)
- Agent / 工具呼叫:長 Chain-of-Thought + 多工具返回結果累積
- RAG 最佳化:更大的上下文視窗 = 可以塞入更多召回文件,降低資訊丟失
- 對話系統:更長的多輪對話記憶
關鍵指標
| 指標 | 含義 | 行業參考範圍(估算) |
|---|---|---|
| 標稱上下文長度 | 模型支援的最大 token 數 | 4K - 2M(產品聲稱) |
| 有效上下文長度 | 實際能等效利用資訊的距離 | 通常遠低於標稱,具體取決於任務和模型 |
| NIAH 通過率 | 不同深度下插入資訊的檢索準確率 | 主流模型在標稱範圍內普遍 >90%(但這是低門檻測試) |
| KV Cache 視訊記憶體/token | 每多一個 token 增加的 KV Cache 視訊記憶體 | 因模型規模和架構差異極大,從數十 KB 到數百 KB [估算] |
| 首 token 延遲(TTFT) | 處理長 prompt 的延遲,隨上下文長度增長 | 與序列長度正相關,FlashAttention 可降低增長斜率 |
| 上下文擴充套件倍數 | 擴充套件後長度 / 原始訓練長度 | 2× - 256×(方案不同差異大) |
| 長上下文訓練成本 | 因注意力 O(n²) 導致訓練 FLOPS 急劇增加 | 長上下文訓練階段通常佔總訓練成本的較小比例但絕對值可觀 |
供需與市場資料
供給側
- 訓練側:上下文擴充套件訓練需要在預訓練後進行額外的長序列微調階段。Llama 3.1 的技術報告揭露了 6 個階段的長上下文擴充套件訓練(從 8K 逐步擴充套件到 128K),每個階段使用不同長度的訓練資料。這意味著額外的訓練算力投入。
- 推論側:長上下文推論的視訊記憶體瓶頸(KV Cache)推動了更大視訊記憶體 GPU 的需求、KV Cache 量化/驅逐技術的發展,以及序列並行推論架構的建設。
需求側
- 企業級文件處理、程式碼理解、多輪對話等場景對長上下文的需求持續增長。
- RAG 架構中,更大的上下文視窗意味著更寬鬆的召回策略,降低了 RAG 管道的複雜度。
市場資料
- 具體營收/市場規模資料暫無權威第三方公開報告可引用 [未充分揭露]。
- 定性判斷:上下文長度已成為模型 API 定價的分層因素之一(更長上下文 → 更高單價)。
代表公司與資本對映
| 公司/機構 | 角色 | 關鍵貢獻/產品 | 公開資訊 |
|---|---|---|---|
| OpenAI | 大型模型廠商 | GPT-4 Turbo 128K 上下文 | 產品頁面 |
| Anthropic | 大型模型廠商 | Claude 3 系列 200K 上下文 | 產品頁面 |
| Google DeepMind | 大型模型廠商 | Gemini 1.5 Pro 宣稱 1M+ 上下文 | 技術報告 |
| Meta (FAIR) | 大型模型廠商 + 研究 | Llama 3.1 128K,位置插值方法原始提出者 | 技術論文 + 技術報告 |
| Mistral AI | 大型模型廠商 | 滑動視窗注意力 + GQA 的工程實踐 | 技術部落格 |
| Tri Dao(Together AI / Princeton) | 核心基礎設施 | FlashAttention 系列,幾乎所有長上下文訓練的基礎設施 | 學術論文 |
| Hugging Face / 社群 | 開源生態 | NTK-aware、YaRN 等擴充套件方法的快速傳播與工程化 | 社群開源 |
| Microsoft | 大型模型廠商 + 研究 | LongRoPE 2M 上下文擴充套件 | 技術論文 |
⚠️ 注意:上下文擴充套件是通用技術方向,不直接對應獨立的上市公司標的。投資對映主要通過上述公司的模型產品能力間接體現。
投資邏輯
核心判斷架構
- 上下文長度是模型能力的”基礎設施”引數——類似晶片的製程節點,本身不是產品,但決定產品能力的天花板。
- 長上下文 → 更大視訊記憶體需求 → 利好高階 GPU 及視訊記憶體產業鏈:當單卡視訊記憶體無法容納長上下文推論時,多卡序列並行成為剛需,利好高速互聯(NVLink/NVSwitch)和多卡推論架構。
- KV Cache 管理技術的商業化:PagedAttention(vLLM)、KV Cache 量化等技術對長上下文推論的成本控制至關重要,相關開源專案/公司的工程化能力值得關注。
- 長上下文降低 RAG 複雜度的二階效應:如果模型自身能高效利用百萬級上下文,部分 RAG 場景的檢索-重排管道可以簡化,這對 RAG 服務商既是挑戰也是機會。
風險點
- 有效上下文 vs 標稱上下文的差距:如果使用者發現”128K 上下文”在實際業務中的有效利用遠低於預期,可能導致需求不及預期。
- 推論成本線性增長:即使注意力計算被最佳化,KV Cache 的線性增長仍然意味著長上下文推論的成本遠高於短上下文。成本能否降到普惠水平是關鍵。
常見誤讀糾偏
誤讀 1:“標稱 128K 上下文 = 能理解 128K 的所有資訊”
糾偏:標稱上下文長度是模型的輸入長度上限,不等於等效利用。多項研究(如 Liu et al. 2023 “Lost in the Middle”)表明,模型對上下文視窗中部的資訊利用率顯著低於首尾。NIAH 測試是檢索能力的最低門檻,不能代表深層理解能力。實際業務中,應通過具體任務測試”有效上下文長度”,而非僅依賴標稱值。
誤讀 2:“位置插值可以無限擴充套件上下文而無損”
糾偏:位置插值將位置間距壓縮,本質上降低了位置解析度。當壓縮比過大時(如 32× 以上),模型在區分相鄰位置時的能力下降,可能影響需要精細位置感知的任務(如精確的文件定位、程式碼行號推論等)。且 PI 通常仍需要一定量的長序列微調才能達到較好效果,“零成本擴充套件”只在有限倍數內近似成立。
誤讀 3:“FlashAttention 讓注意力複雜度降到了 O(n)”
糾偏:FlashAttention 將視訊記憶體複雜度從 O(n²) 降到了 O(n),但計算複雜度仍是 O(n²d)。FlashAttention 通過減少 HBM 讀寫來加速計算(IO-aware),實際 wall-clock 時間通常比樸素實現快數倍,但隨著序列長度增長,計算量仍按平方增長。Ring Attention 等方法可以將計算分攤到多裝置,但單裝置的計算量不變。
誤讀 4:“長上下文技術讓 RAG 過時了”
糾偏:長上下文確實可以簡化部分 RAG 場景(減少分塊、增加召回文件量),但:① 長上下文推論成本遠高於短上下文;② 模型對長上下文中部資訊利用率不足;③ 當知識庫規模遠超上下文視窗(如數十億 token)時,檢索仍然是必需的。長上下文更可能與 RAG 互補而非替代。
學習路徑
Level 0: 概念入門
└→ 理解 Transformer 自迴歸推論中 KV Cache 的作用
└→ 理解位置編碼(絕對 vs 相對)的基本概念
Level 1: 核心論文
└→ Su et al., "RoFormer: Enhanced Transformer with Rotary Position Embedding" (2021)
└→ Dao et al., "FlashAttention: Fast and Memory-Efficient Exact Attention" (2022)
└→ Chen et al., "Extending Context Window of LLMs via Positional Interpolation" (2023)
Level 2: 擴充套件方法
└→ Peng et al., "YaRN: Efficient Context Window Extension" (2023)
└→ Liu et al., "Ring Attention with Blockwise Transformers for Near-Infinite Context" (2023)
└→ Ding et al., "LongRoPE: Extending LLM Context Window Beyond 2 Million Tokens" (2024)
Level 3: 工程與評估
└→ 閱讀 Llama 3.1 技術報告中的長上下文訓練部分
└→ 閱讀 vLLM 的 PagedAttention 實現(KV Cache 管理的工程化參考)
└→ Liu et al., "Lost in the Middle: How Language Models Use Long Contexts" (2023)
└→ 在 Hugging Face 上對開源模型進行 NIAH 測試實驗
Level 4: 前沿探索
└→ KV Cache 壓縮與驅逐策略(H₂O, StreamingLLM 等)
└→ 線性注意力 / 狀態空間模型(Mamba 等)在長序列上的替代路線
└→ 多模態長上下文(長影片理解、音訊流處理)
一句話總結
上下文擴充套件是一套讓大型模型”看得更遠”的系統工程,橫跨位置編碼縮放、注意力效率最佳化、KV Cache 管理三層技術棧;標稱長度的競賽仍在繼續,但有效上下文利用能力才是真正的競爭壁壘。
延伸閱讀與來源
核心論文
- Su et al. (2021). “RoFormer: Enhanced Transformer with Rotary Position Embedding.” — RoPE 原始論文
- Dao et al. (2022). “FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness.” — FlashAttention 1
- Chen et al. (2023). “Extending Context Window of Large Language Models via Positional Interpolation.” — 位置插值
- Peng et al. (2023). “YaRN: Efficient Context Window Extension of Large Language Models.” — YaRN 綜合方案
- Liu et al. (2023). “Ring Attention with Blockwise Transformers for Near-Infinite Context.” — Ring Attention
- Liu et al. (2023). “Lost in the Middle: How Language Models Use Long Contexts.” — 有效上下文利用研究
- Ding et al. (2024). “LongRoPE: Extending LLM Context Window Beyond 2 Million Tokens.” — LongRoPE
- Beltagy et al. (2020). “Longformer: The Long-Document Transformer.” — 稀疏注意力
技術報告
- Meta, “The Llama 3 Herd of Models” (2024). — Llama 3.1 長上下文訓練方案
- Google, “Gemini 1.5: Unlocking Multimodal Understanding Across Millions of Tokens” (2024). — Gemini 長上下文技術
工程資源
- Tri Dao 的 FlashAttention GitHub 倉庫
- vLLM 專案(PagedAttention 實現)
- Hugging Face Transformers 庫中 RoPE 縮放相關配置文件
免責宣告:本文為技術概念學習材料,不構成投資建議。具體模型規格以各廠商最新官方技術報告為準。標註 [估算] 的資料為基於公開架構引數的推算,可能與實際實現存在差異。