晶片層 開放閱讀

Speculative Decoding

Speculative Decoding

概念 ID
speculative-decoding
更新時間
2026-05-29
來源數量
待補

Speculative Decoding(推測解碼)

3 秒看懂

用一個”小參謀”先猜多個 token,再讓”大將軍”一次性驗貨——猜對的直接放行,猜錯的當場修正。 本質是把逐 token 序列生成變成”批次猜測 + 並行驗證”,在不改變輸出分佈的前提下加速 LLM 推論解碼階段。

3 分鐘產業解釋

為什麼需要它?

大語言模型推論(Inference)分兩個階段:

階段計算特徵瓶頸
Prefill(預填充)一次處理全部 prompt,矩陣運算密集,計算密集型(compute-bound)算力
Decode(自迴歸解碼)每步只生成 1 個 token,需要反覆載入整個模型權重,訪存密集型(memory-bandwidth-bound)視訊記憶體頻寬

Decode 階段的硬體利用率極低——數十 GB 的權重只為了產出 1 個 token。Speculative Decoding 的核心洞見是:如果你能讓大型模型一次驗證多個 token 而不只是生成 1 個,就能把 memory-bound 變成 compute-bound,大幅提升吞吐。

它怎麼賺錢?

  • 降低單請求延遲(Latency):使用者體驗響應更快,Chat 類產品留存提升。
  • 降低單位推論成本(Cost/Token):同等算力可服務更多請求。
  • 無需改模型權重:不重新訓練大型模型,只在推論側加一層排程邏輯,工程改造成本可控。
  • 據 [Google Research, Leviathan et al., 2023, arXiv:2211.17192] 及 [DeepMind, Chen et al., 2023, arXiv:2302.01318] 的原始論文,理論上可實現 2-3 倍 解碼加速(具體取決於 draft 質量與任務)。

15 分鐘專家深入

1. 工作流程拆解

┌───────────────────────────────────────────────────────────┐
│                    一個完整的推測解碼輪次                    │
│                                                           │
│  Step 1: Draft(猜測)                                    │
│  ┌─────────┐                                              │
│  │ 小模型 M_q│──→ x₁, x₂, x₃, ..., x_K  (K 個候選 token)  │
│  └─────────┘                                              │
│         ↓ 將 [已有序列 + x₁...x_K] 一起送入                │
│  Step 2: Verify(驗證)                                   │
│  ┌─────────┐                                              │
│  │ 大型模型 M_p│──→ 對每個位置給出完整詞表分佈                  │
│  └─────────┘     p(x₁|...), p(x₂|...), ..., p(x_K|...)   │
│         ↓                                                  │
│  Step 3: Accept/Reject(驗收)                             │
│  - 從左到右逐位置比對:                                      │
│    若 draft token xᵢ 被 target 接受 → 保留                 │
│    若在位置 j 首次被拒絕 → 從 target 分佈 p(xⱼ|...) 重取樣  │
│    本輪共輸出 (被接受數 + 1) 個有效 token                    │
└───────────────────────────────────────────────────────────┘

2. 保真性證明(為什麼輸出分佈不變?)

這是 Speculative Decoding 最精妙之處。驗收採用修正拒絕取樣(Modified Rejection Sampling)

對於 draft 模型 $q(x|context)$ 和 target 模型 $p(x|context)$,對候選 token $x$:

$$ text(Accept with probability ) \min!\left(1,\ frac(p(x)){q(x)}\right) $$

若被拒絕,則從修正分佈重新取樣:

$$ p’(x) = \frac{\max(0,\ p(x) - q(x))}{\sum_{x’} \max(0,\ p(x’) - q(x’))} $$

數學上可證明:由此過程取樣得到的 token 序列與直接從 target 模型自迴歸取樣完全一致。 這意味著 Speculative Decoding 是無損的——不犧牲任何生成質量。

3. 加速比分析

設:

  • \alpha = 每位置平均接受率(draft 與 target 的”一致度”)
  • $K$ = 每輪推測的 draft token 數
  • c_d = draft 模型單次前傳成本
  • c_t = target 模型驗證 $K$ 個 token 的成本

每輪期望有效輸出 token 數

$$ E[tokens/round] = (1 - alpha^K) / (1 - alpha) $$

每輪總成本 \approx c_d \cdot K + c_t

對比標準自迴歸(每輪 1 token、成本 c_t),加速比

$$ Speedup ~= (1 - alpha^K) / ((1 - alpha) * (1 + K * c_d / c_t)) $$

接受率 \alpha推測數 $K$理論最大加速比(c_d \approx 0
0.65≈ 2.31×
0.75≈ 2.77×
0.85≈ 3.36×
0.95≈ 4.10×
0.910≈ 6.51×

⚠ 以上假設 draft 模型推論成本可忽略。實際中 c_d 不為零,且 batch 場景下驗證成本結構更復雜,實際加速比通常 1.5-3× [行業經驗估算]。


技術原理(最深一層)

核心機制:並行驗證 vs 序列生成

標準自迴歸解碼的時間複雜度為 $O(n)$ 次 target 模型前傳($n$ = 生成長度),每次前傳的關鍵瓶頸是 KV-Cache 載入 + 權重載入

Speculative Decoding 將其中 $n$ 次 target 前傳替換為:

標準解碼:     T → T → T → T → T → T → T → T    (8 次 target 前傳, 8 tokens)

推測解碼 (K=3):
  D → D → D → T(驗證3個) → [假設接受2個]
  D → D → D → T(驗證3個) → [假設接受3個]
  D → D → T(驗證1個)

  共 3+3+3+3+3+1 = 16 次 draft 前傳 + 3 次 target 前傳
  若 c_d <&lt; c_t,總時間 ≈ 3 次 target 前傳 → 產出 8 tokens → ~2.7× 加速

驗證的計算圖

驗證階段的本質是 一次 Prefill 式前傳

輸入: [token_0, token_1, ..., token_n, draft_x1, draft_x2, ..., draft_xK]
                ↑ 已有 KV-Cache                   ↑ 需計算注意力

Target Model 一次性為所有 K 個位置計算隱藏狀態 → 詞表 logits

關鍵: K 個 draft token 的計算是並行的 (受 GPU compute-bound 啟發)
     這比 K 次序列 decode (每次 memory-bound) 高效得多

在實現中:

  • KV-Cache 管理:target 模型需要為驗證位置預先分配 KV-Cache 空間。接受後釋放未用部分,拒絕後回退。對推論架構(vLLM、TensorRT-LLM)的排程器提出要求。
  • Attention Mask:驗證時 K 個 token 之間需要 causal mask,但與 draft 階段的 mask 不同。

Draft 模型的選取策略

策略描述代表工作
獨立小模型與 target 同系列但引數量小(如用 LLaMA-7B draft for LLaMA-70B target)Leviathan et al., 2023
同模型量化版用 target 模型的 4-bit 量化版做 draft(天然與 target 分佈接近)[行業實踐,未充分揭露歸屬]
淺層 Early Exit用 target 模型的前幾層輸出直接預測 token(Self-Speculative)[推測實現方向,待具體論文確認]
檢索增強 Draft從語料庫中檢索 n-gram 作為 draft token(零額外引數)REST [He et al., 2023]
多頭預測在 target 模型最後層加多個預測頭,每頭預測不同未來位置Medusa [Cai et al., 2024]
特徵外推用 target 模型中間特徵線性外推下一層輸出EAGLE [Li et al., 2024]

技術演進史

2022.11  Leviathan et al. (Google) 發表 "Fast Inference from Transformers via
         Speculative Decoding" [arXiv:2211.17192] —— 首次正式提出架構

2023.02  Chen et al. (DeepMind) 發表 "Accelerating Large Language Model Decoding
         with Speculative Sampling" [arXiv:2302.01318] —— 獨立提出類似方法
         (Speculative Sampling / SpecSam)

2023.04  兩篇論文同期被 ICML 2023 接收,該方向獲得學術界廣泛認可

2023 H2  工程整合階段:各大推論架構 (vLLM, TensorRT-LLM, llama.cpp)
         陸續實現 Speculative Decoding 支援

2023-24  變體爆發:
         - Medusa:免 draft 模型,多頭並行預測
         - REST:基於檢索的 draft,零額外引數
         - EAGLE:基於特徵外推,高接受率
         - Lookahead Decoding:Jacobi 迭代式並行解碼
         - Self-Speculative:用自身淺層做 draft (如 draft & verify 用同一模型)

2024+    與硬體協同:推測解碼改變了 decode 階段的計算特徵
         (從 memory-bound 轉向 compute-bound),影響 GPU 選型與叢集排程策略

技術路線對比

維度經典 Speculative DecodingMedusaEAGLESelf-SpeculativeREST (檢索)
是否需要額外 draft 模型否(額外 head)否(額外外推模組)否(同模型淺層)否(檢索庫)
額外引數量完整小模型少量 head 引數少量外推網路
分佈保真性✅ 嚴格保真⚠ 需修正取樣✅ 嚴格保真✅ 嚴格保真✅ 嚴格保真
典型加速比2-3×2-3×2.5-3.5× [作者報告]1.5-2× [估算]1.5-2.5× [估算]
工程複雜度中(兩模型排程)低(單模型加 head)中(特徵快取)
訓練需求無(draft 現成)需訓練 head需訓練外推模組
適用場景draft 與 target 分佈匹配時通用,尤其大型模型通用,接受率高受限於淺層質量文本分佈有規律時

上下游

上游(依賴什麼)

層級要素說明
模型層Target 大型模型 + Draft 小模型(或等價替代)Draft 與 target 的分佈一致性決定接受率
演算法層修正拒絕取樣數學架構保證輸出分佈嚴格不變
架構層推論引擎的排程器支援需要處理 KV-Cache 回退、動態批處理中不同請求的推測長度差異
硬體層GPU/加速器的平行計算能力驗證步驟變為 compute-bound,對算力(而非僅頻寬)的需求上升

下游(影響什麼)

受影響領域影響方式
LLM 推論服務直接降低每 token 成本,提高吞吐
使用者體感延遲TTFT 不變,但 TPS(tokens/sec)提升
GPU 選型邏輯推測解碼使 decode 階段更偏 compute-bound,高算力卡(如 H100 SXM)vs 高頻寬卡的權衡發生變化
Batching 策略推測長度動態變化,對 continuous batching 的排程提出新挑戰
端側推論在手機/邊緣裝置上,draft 模型可用極小模型實現,可行性高

關鍵指標

指標含義典型範圍
Acceptance Rate (\alpha)每個 draft token 被 target 接受的機率0.5 - 0.9+
Speculation Length ($K$)每輪推測的 draft token 數3 - 8(常見),理論上可更高
Speedup Factor相對於標準解碼的加速比1.5× - 3×(實踐),理論更高
Overhead Ratio (c_d/c_t)draft 模型單次前傳成本 / target 模型驗證成本目標 < 0.1(越小越好)
Wall-clock Latency端到端生成延遲降低 30%-70%(視場景)
Throughput (tokens/sec/GPU)單卡吞吐量可提升 1.5-3×

供需與市場資料

供給側

  • 開源架構支援:vLLM(從 v0.4+ 開始支援推測解碼)、TensorRT-LLM(NVIDIA 官方支援)、llama.cpp(支援 draft model 推測解碼)、SGLang 等。據 [開源社群觀察,非精確統計],主流推論架構均已將推測解碼作為標準特性。
  • 閉源 API:各主要 API 提供商(OpenAI、Anthropic、Google 等)是否在服務端使用推測解碼 [未充分揭露],但技術上完全可行且有強烈動機。

需求側

  • LLM 推論的全球算力需求據 [多家行業報告綜合估算] 在 2024 年約佔 AI 算力總支出的 50% 以上,且推論佔比持續上升。
  • 推測解碼作為一種純推論側最佳化,不需要額外訓練成本,部署門檻低,需求側採納意願強。

市場影響估算

如果推測解碼在行業中位數實現 2× 加速,相當於在不增加 GPU 的情況下將推論吞吐翻倍。對於年推論支出數十億美元級別的公司(如 [估算] OpenAI、Google、字節跳動等),即使僅覆蓋部分場景,節省的算力成本可達數億美元量級 [粗略估算]。


代表公司與資本對映

公司/團隊角色關聯標的/邏輯
Google (DeepMind)Speculative Decoding 兩大原始論文之一齣自 Google ResearchAlphabet (GOOGL)
DeepMindSpecSam 論文作者團隊Alphabet (GOOGL)
NVIDIATensorRT-LLM 原生支援推測解碼;推測解碼使推論更 compute-bound,可能提升高階 GPU 需求NVDA
vLLM 團隊 (UC Berkeley)開源推論引擎,率先整合推測解碼未上市 / 開源生態
MetaLLaMA 系列是推測解碼最常見的 target/draft 組合META
SambaNova / Groq / Cerebras定製推論晶片/架構;推測解碼改變計算特徵,影響架構設計方向各有融資/上市路徑
各大雲端廠商推測解碼直接降低推論服務成本,提升單位算力營收AMZN (AWS), MSFT (Azure), GOOGL (GCP)

資本影響邏輯

推測解碼本身是演算法層最佳化,不直接對應獨立商業模式,但:

  1. 利好高階 GPU:驗證階段變為 compute-bound,高算力卡(H100/B200)的優勢更明顯。
  2. 利好推論架構生態:支援推測解碼成為架構競爭力分水嶺。
  3. 利好小模型生態:高質量小模型作為 draft 的需求上升。

投資邏輯

看多理由

  1. 免費午餐:不改模型、不犧牲質量、純推論側最佳化——落地阻力小。
  2. 複合效應:與量化(Quantization)、KV-Cache 壓縮、Flash Attention 等技術正交,可疊加使用,進一步放大加速。
  3. 小模型複用價值:各廠商已訓練的中等規模模型(7B/13B)天然可做 draft,資產利用率提升。
  4. 邊際成本遞減:一旦推論架構適配完成,全行業可共享最佳化紅利。

需關注的風險

  1. Draft 模型質量問題:如果 draft 與 target 分佈差距大,接受率低,加速比趨近於 1,甚至因 overhead 而變慢。
  2. Batch 場景複雜化:大 batch 下推測解碼的收益可能被排程開銷稀釋(不同請求推測成功長度不同,導致 GPU 空泡)。
  3. MoE 模型的挑戰:對於 Mixture-of-Experts 模型,推測解碼的驗證階段需要頻繁的 All-to-All 通訊,實現更復雜。
  4. 架構迭代風險:如果未來出現非自迴歸架構(如擴散語言模型、SSM 變體),推測解碼的基礎假設(逐 token 自迴歸)可能被繞過。

常見誤讀糾偏

❌ 誤讀 1:“推測解碼會降低生成質量”

糾正:不會。 修正拒絕取樣的數學保證了輸出分佈嚴格等價於直接從 target 模型取樣。這不是近似,是精確等價。輸出質量完全取決於 target 模型本身,draft 模型隻影響速度、不影響質量。

❌ 誤讀 2:“推測解碼需要重新訓練大型模型”

糾正:不需要。 Target 模型完全不改動。Draft 模型通常是已有的小模型(或用量化版本、淺層擷取等方法獲得),不需要針對推測解碼進行專門訓練。部分變體(如 Medusa、EAGLE)需要訓練額外的小模組,但主模型權重凍結。

❌ 誤讀 3:“推測解碼就是投機取巧地多猜幾個 token,和 beam search 類似”

糾正:完全不同。 Beam Search 是改變解碼搜尋策略(搜尋更寬的候選空間),可能改變輸出分佈;Speculative Decoding 不改變搜尋策略(仍按原取樣方式),只是改變了計算的組織方式(猜測+驗證),且數學保證輸出分佈不變。

❌ 誤讀 4:“Draft 模型越小越好,因為推論更快”

糾正:有取捨。 Draft 模型越小,c_d 越低,但與 target 的分佈差距越大 → 接受率 \alpha 越低 → 每輪有效 token 數減少。最優 draft 模型大小是使 \alpha 足夠高的最小模型,而不是絕對最小的模型。經驗值:draft 模型引數量約為 target 的 1/5 到 1/10 可能是較好的平衡點 [基於公開實驗報告的估算,非普適結論]。


學習路徑

入門(1-2 小時)

  1. 先理解 LLM 自迴歸解碼的基本原理(為什麼是 memory-bound)
  2. 閱讀 [Leviathan et al., 2023] 的 Introduction 和 Figure 1(直覺圖解)
  3. 看一篇英文部落格(如 Lilian Weng 或 HuggingFace Blog 對 Speculative Decoding 的介紹)

進階(3-5 小時)

  1. 精讀 [Leviathan et al., 2023] 的 Section 3(修正拒絕取樣的數學推導)
  2. 精讀 [Chen et al., 2023] 的 Speculative Sampling 演算法虛擬碼
  3. 對比 Medusa 和 EAGLE 論文的方案差異

動手(1-2 天)

  1. 用 llama.cpp 或 vLLM 跑一個 Speculative Decoding demo,對比有/無推測解碼的延遲
  2. 調節 $K$(推測長度)和 draft 模型大小,觀察接受率和加速比變化
  3. 在 TensorRT-LLM 中嘗試量化版 draft(如 4-bit draft + 16-bit target)

深入研究

  1. 研究推測解碼在 batch 場景下的排程策略(連續批處理 + 推測長度動態變化)
  2. 關注推測解碼與 KV-Cache 壓縮、PagedAttention 的互動
  3. 探索推測解碼在非 Transformer 架構(如 SSM/Mamba)中的適用性

一句話總結

Speculative Decoding 用一個廉價的小模型快速猜測多個 token、再用昂貴的大型模型一次性並行驗證,以修正拒絕取樣數學保證輸出分佈嚴格不變,實現 2-3× 的推論加速——本質上是把 memory-bound 的逐 token 解碼變成 compute-bound 的批次驗證,是當前最具工程落地價值的 LLM 推論加速技術之一。


延伸閱讀與來源

來源說明
[Leviathan et al., 2023] “Fast Inference from Transformers via Speculative Decoding”, ICML 2023, arXiv:2211.17192原始論文之一(Google Research)
[Chen et al., 2023] “Accelerating Large Language Model Decoding with Speculative Sampling”, ICML 2023, arXiv:2302.01318原始論文之二(DeepMind)
[Cai et al., 2024] “Medusa: Simple LLM Inference Acceleration Framework with Multiple Decoding Heads”, arXiv:2401.10774Medusa 變體
[Li et al., 2024] “EAGLE: Speculative Sampling Requires Rethinking Feature Uncertainty”, arXiv:2401.15077EAGLE 變體
[He et al., 2023] “REST: Retrieval-Based Speculative Decoding”, arXiv:2311.08252檢索增強 draft 方案
vLLM 官方文件 — Speculative Decoding工程實現參考
NVIDIA TensorRT-LLM 文件 — Speculative Decoding工程實現參考
Lilian Weng Blog, “Prompt Engineering” / “Large Transformer Model Inference Optimization”綜合性技術部落格

免責與準確度說明:本文中的數學公式基於 [Leviathan et al., 2023] 和 [Chen et al., 2023] 公開論文。加速比數值、市場估算等基於公開論文報告值與行業經驗推斷,已做標註。具體加速效果因模型、硬體、任務、batch size 等因素差異顯著,請以實際測量為準。

source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型