Draft Model(草稿模型)
3 秒看懂
Draft Model 是推测解码(Speculative Decoding)中的”快速猜测者”——用一个小而快的模型先生成一串候选 token,再交给大模型一次性并行验证,命中即用,未命中则回退修正。整个过程保证输出分布与大模型完全一致,但推理吞吐显著提升。
一句话等价:用”猜得快 + 查得准”替代”每一步都慢慢算”。
3 分钟产业解释
问题:LLM 推理为什么慢?
大语言模型推理的核心瓶颈是自回归解码:每生成一个 token 都需要完成一次完整的前向传播(读取全部权重、搬运全部 KV Cache),而每步只产出 1 个 token。这意味着——
- 计算量大但利用率低:单 token 解码时,GPU 的算力(FLOPS)利用率极低,瓶颈在显存带宽(memory-bound),而非计算(compute-bound)。
- 延迟与吞吐的矛盾:想降低单请求延迟,往往要牺牲批处理大小;想提升吞吐,就要加大 batch,但延迟随之上升。
一个 70B 参数模型在单张高端 GPU 上,单请求生成速度通常在每秒几十个 token 的量级 [业界实测区间,具体取决于硬件、量化方案与 batch 大小]。
Draft Model 的破局思路
Draft Model 的核心洞察:验证(verification)比生成(generation)快得多。
- 大模型做一次前向传播,可以同时处理多个输入 token(prefill/验证阶段天然并行)。
- 但自回归生成阶段只能一次一个 token,因为每一步的输入依赖上一步的输出。
Draft Model 就是把”一次一个”的慢路径,交给一个轻量模型去完成(因为它小、快),然后让大模型”一次性审核”这串候选 token。如果草稿质量足够好,大模型一步就能”吞下”多个 token,等效于跳过了多次自回归步骤。
产业意义:在不改变模型权重、不损失输出质量的前提下,直接提速推理 2-3 倍 [典型范围,取决于任务与草稿模型质量],这对降低推理服务成本、改善用户体验有立竿见影的效果。
15 分钟专家深入
1. 推测解码的完整流程
推测解码(Speculative Decoding)由 Leviathan et al.(2023, “Fast Inference from Transformers via Speculative Decoding”)和 Chen et al.(2023, “Accelerating Large Language Model Decoding with Speculative Sampling”)分别独立提出并形式化。其完整流程如下:
┌─────────────────────────────────────────────────────────┐
│ Step 1: Draft 模型自回归生成 K 个候选 token │
│ (x₁, x₂, ..., x_K) │
│ → 因为 Draft 模型小,这 K 步很快 │
│ │
│ Step 2: Target 模型一次性并行验证这 K 个 token │
│ → 输入 [已有上下文, x₁, x₂, ..., x_K] │
│ → 一次前向传播,同时输出 K 个位置的 logits │
│ │
│ Step 3: 从左到右逐位置做接受/拒绝判定 │
│ → 第 1 个位置:根据接受准则判定,若接受 → 继续 │
│ → 若某位置被拒绝 → 从修正分布中采样一个新 token,停止 │
│ → 若全部 K 个都接受 → 额外从 Target 模型分布中再采样 1 个 │
│ │
│ 一轮结束,输出 1 ~ K+1 个 token │
└─────────────────────────────────────────────────────────┘
2. 接受-拒绝准则:为什么输出分布完全正确?
这是推测解码最关键的理论保证。设:
- Target 模型在位置 $t$ 的输出分布为 $p(x)$
- Draft 模型在位置 $t$ 的输出分布为 $q(x)$
- Draft 模型提议的 token 为
\hat{x}
接受准则:
$$ \text{Accept with probability } \min\left(1, \frac{p(\hat{x})}{q(\hat{x})}\right) $$
若被拒绝,从修正分布中重新采样:
$$ \text{Sample } x \text{ from } \text{norm}\left(\max(0,\ p(x) - q(x))\right) $$
数学证明的关键(直觉):
- 当 Draft 模型”猜对了”(即
p(\hat{x}) \geq q(\hat{x})):接受概率为 1,直接采纳。 - 当 Draft 模型”高估了”某个 token 的概率(
p(\hat{x}) < q(\hat{x})):以p(\hat{x})/q(\hat{x})的概率接受;否则拒绝并从差值分布中重采样。 - 综合来看,每个位置最终采样得到的 token 的边际分布恰好等于 $p(x)$。
核心结论:推测解码是无损的。它不会改变大模型的输出质量,不会改变采样分布,没有近似误差。
3. 为什么不是简单地用小模型代替大模型?
这是一个常见的直觉疑问。答案有三层:
| 维度 | 简单用小模型 | 推测解码(Draft + Target) |
|---|---|---|
| 输出质量 | 降级(小模型能力弱) | 与大模型完全一致 |
| 适用场景 | 可接受质量损失时 | 要求质量零损失时 |
| 速度提升来源 | 模型小所以快 | 验证比生成快 + 并行化 |
推测解码的核心价值在于:在零质量损失的前提下获得加速。这不是在速度和质量之间做 trade-off,而是利用”验证的计算特性优于生成”这一不对称性来”白捡”速度。
4. 加速比取决于什么?
推测解码的理论加速比(忽略 overhead 的理想情况):
$$ \text{Speedup} \approx \frac{1}{1 - \alpha} \quad (\text{其中 } \alpha \text{ 为平均接受率}) $$
更精确地,如果平均每轮 Draft 步数为 $K$,平均接受的 token 数为 E[\text{accepted}],则:
$$ \text{有效 tokens/step} = E[\text{accepted}] + 1 \quad (\text{最后一步的修正采样}) $$
而验证 $K$ 个 token 的 Target 前向传播代价,大致等于一次自回归生成的代价(因为验证阶段是 compute-bound 的并行操作,而非 memory-bound 的逐 token 生成)。因此,如果平均接受率足够高,一轮就能”吞下”多个 token,实现加速。
关键影响因素:
- Draft 模型与 Target 模型的分布对齐程度:越接近,接受率越高,加速越大。
- 任务类型:翻译、摘要等”确定性较高”的任务接受率通常高于开放生成。
- Draft 步数 K:K 越大,可吞下的 token 潜力越大,但 K 太大会导致被拒绝的 token 浪费增加。
- Target 模型的 memory-bound 程度:模型越大、batch 越小,memory-bound 越严重,验证的相对优势越明显。
5. 额外开销
推测解码并非”免费午餐”,需要付出以下代价:
- Draft 模型本身的推理开销:需要在 GPU 上额外加载一个模型(或使用同一模型的简化路径)。
- KV Cache 管理复杂度:Draft 阶段产生的 KV Cache 可能被拒绝,需要回滚机制。
- GPU 显存占用:如果 Draft 是独立模型,需要额外显存。
- 实现复杂度:需要修改推理引擎的调度逻辑。
因此,实际加速比通常低于理论值,典型在 1.5x-3x 范围 [业界报告与学术实验的常见区间]。
技术原理
完整数学框架
问题定义
给定一个大语言模型(Target)M_p 参数量为 \theta_p,其在位置 $t$ 的输出分布为 p_t(x | x_{<t})。自回归生成的每一步需要一次完整的前向传播 f_p,代价为 C_p。
目标:在不改变 p_t 的前提下,减少调用 f_p 的次数。
算法:Speculative Decoding
算法:Speculative Decoding (一步)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
输入:前缀序列 x_{<t},Draft 模型 M_q,Draft 步数 K
1. 【Draft 阶段】(快速,串行)
for i = 1 to K:
根据 q(· | x_{<t+i}) 采样得到 x̂_i
将 x̂_i 追加到序列
2. 【Verify 阶段】(并行,单次前向传播)
将 [x_{<t}, x̂_1, x̂_2, ..., x̂_K] 输入 Target 模型 M_p
一次前向传播,得到每个位置 i ∈ {1,...,K} 的分布 p_t+i
3. 【Accept/Reject 阶段】(逐位置,CPU 上可完成)
for i = 1 to K:
以概率 min(1, p_t+i(x̂_i) / q(x̂_i)) 接受 x̂_i
若拒绝:
从 norm(max(0, p_t+i(·) - q(·))) 中采样 x_new
输出 [x̂_1, ..., x̂_{i-1}, x_new] → 结束本轮
若全部接受:
从 p_{t+K+1}(·) 中额外采样一个 token x_{K+1}
输出 [x̂_1, ..., x̂_K, x_{K+1}] → 结束本轮
输出:本轮生成的 token 序列(长度 ∈ [1, K+1])
并行验证的计算结构
┌────────────────────────────────────────────────────────┐
│ Target Model Forward Pass │
│ │
│ 输入 token 序列 (长度 N = 已有上下文 + K 个候选): │
│ [tok_1, tok_2, ..., tok_N, x̂_1, x̂_2, ..., x̂_K] │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Transformer Layers (L 层) │ │
│ │ ┌─────────────────────────────────────────┐ │ │
│ │ │ Self-Attention (含 KV Cache 增量计算) │ │ │
│ │ ├─────────────────────────────────────────┤ │ │
│ │ │ FFN │ │ │
│ │ ├─────────────────────────────────────────┤ │ │
│ │ │ ... 重复 L 层 │ │ │
│ │ └─────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ 输出: 每个位置的 logits → 各位置分布 p(x) │
│ → 一次前向传播产出 K 个验证结果 │
└────────────────────────────────────────────────────────┘
为什么验证比生成快? 在验证阶段,K 个 token 可以一起做 attention 计算(类似 prefill 的计算模式),GPU 计算利用率高。而在自回归生成阶段,每步只处理 1 个 token,计算量小但每步都要搬运全部权重,是典型的 memory-bound 操作。验证 K 个 token 的耗时远小于 K 次单独自回归生成的耗时。
接受率分析
设 Draft 分布 $q(x)$ 与 Target 分布 $p(x)$ 的 total variation distance 为 \delta = \text{TV}(p, q),则期望接受率的下界为:
$$ E[\text{acceptance rate}] \geq 1 - \delta $$
因此,Draft 模型越接近 Target 模型,接受率越高。
技术演进史
| 时间 | 里程碑 | 关键内容 |
|---|---|---|
| 2022-2023 | 原始论文 | Leviathan et al. (Google) 和 Chen et al. (DeepMind) 分别独立提出推测解码的数学框架与算法 [可检索学术论文确认] |
| 2023 | 独立 Draft 模型应用 | 社区开始用小模型(如 68M/1B)作为大模型(如 7B/70B)的 Draft 模型进行推理加速 |
| 2023 | Self-Speculative Decoding | 提出让大模型自己做 Draft(如跳过某些层、使用早期退出),避免加载额外模型 [学术论文方向] |
| 2023-2024 | Medusa | Cai et al. 提出在 Target 模型上附加多个预测头(MLP heads),每个头并行预测未来不同位置的 token,本质上是一种”内建 Draft”方案 |
| 2024 | EAGLE / EAGLE-2 | Li et al. 提出利用 Target 模型的特征向量(而非仅 token embedding)来训练 Draft 头,在特征空间进行外推,显著提升接受率 |
| 2024 | Lookahead Decoding | 另一种无需 Draft 模型的加速思路,利用 Jacobi 迭代并行生成多个 token |
| 2024-2025 | 引擎集成 | vLLM、TensorRT-LLM、SGLang 等主流推理引擎开始原生支持推测解码,Draft Model 从论文走向生产部署 |
技术路线对比
| 路线 | Draft 来源 | 需要额外训练? | 需要额外显存? | 典型接受率 | 实现复杂度 | 代表方案 |
|---|---|---|---|---|---|---|
| 独立小模型 | 同系列更小的模型(如 TinyLlama-1.1B Draft → LLaMA-70B Target) | 否(使用已有小模型) | 是(需加载两个模型) | 中高(取决于小模型质量) | 中 | Leviathan et al.; Chen et al. |
| 同模型层剪枝 / 早退 | Target 模型的前几层(early exit) | 否 | 否(复用同一模型) | 中 | 低 | Self-Speculative Decoding |
| 多头预测(Medusa) | Target 模型上附加多个并行预测 MLP 头 | 是(需训练 Draft 头) | 否(头很小) | 中 | 中 | Medusa |
| 特征外推(EAGLE) | 基于 Target 模型中间特征的 Draft 头 | 是(需训练 Draft 头) | 否(头很小) | 高 | 中 | EAGLE / EAGLE-2 |
| N-gram / 检索 | 从上下文中检索重复 n-gram 作为候选 | 否 | 否 | 低-中(取决于文本重复度) | 低 | Prompt Lookup Decoding |
选型权衡:
- 追求最大加速:EAGLE 系列通常接受率最高(特征空间比 token 空间信息量更大),但需要额外训练。
- 追求零额外成本:Self-Speculative(跳层)或 N-gram 方案不需额外模型/训练,但加速幅度有限。
- 追求工程简洁:独立小模型方案概念简单,但需管理两个模型的显存与调度。
上下游
上游依赖
| 环节 | 具体内容 |
|---|---|
| Target 模型 | 任意自回归 LLM(LLaMA、GPT、Qwen、Mistral 等),推测解码不改变其权重 |
| Draft 模型来源 | 同系列小模型 / 同模型的简化路径 / 需训练的轻量预测头 |
| 推理引擎 | vLLM、TensorRT-LLM、SGLang、DeepSpeed-FastGen 等需要支持推测解码的调度逻辑 |
| 硬件 | GPU 需要足够显存容纳 Draft 模型(如使用独立模型方案);GPU 并行能力决定验证效率 |
下游应用
| 环节 | 具体内容 |
|---|---|
| 推理服务 | 在线 API 服务降低单 token 延迟和每 token 成本 |
| 交互式应用 | 聊天、代码补全等对首 token 延迟(TTFT)和吞吐(tokens/sec)敏感的场景 |
| 边缘部署 | 在算力受限的设备上,用 Draft Model 弥补自回归解码的带宽瓶颈 |
| 与其它加速技术组合 | 可与 KV Cache 量化、连续批处理、PagedAttention 等技术叠加使用 |
关键指标
| 指标 | 含义 | 量级参考 |
|---|---|---|
| Acceptance Rate(接受率) | Draft token 被 Target 接受的比例 | 典型 0.5-0.8 [取决于 Draft 质量与任务] |
| Tokens per Verification Step | 每轮推测解码平均产出的 token 数 | 理论上限 K+1,实际通常 2-4 |
| Speedup Ratio | 相比纯自回归解码的加速比 | 典型 1.5x-3x [业界实验常见区间] |
| Draft Latency Overhead | Draft 阶段耗时占总推理时间的比例 | 需控制在合理范围内,否则抵消收益 |
| Memory Overhead | 额外显存占用(加载 Draft 模型/头) | 独立模型方案:取决于 Draft 模型大小;预测头方案:通常可忽略 |
| Quality Degradation | 输出质量变化 | 理论上为零(无损),实际因浮点精度可能有极微小差异 |
供需与市场数据
推理成本的核心矛盾
LLM 推理正在成为 AI 基础设施中成本最高的环节之一。随着模型规模增大(数百 B 参数)和应用场景扩展(长上下文、多轮对话),推理成本呈指数级增长。行业报告普遍指出,推理计算已占 AI 算力总消耗的大多数(具体比例因口径而异)[行业估算,各家数据不一致,此处不编造具体数字]。
Draft Model 的成本节约逻辑
- 直接降低单请求推理成本:如果接受率足够高,同等 QPS 下所需 GPU 数量减少。
- 无需重新训练 Target 模型:与量化、蒸馏等方法兼容,可在已有部署上直接叠加。
- 边际成本低:预测头类方案(Medusa/EAGLE)额外参数量极小,训练成本低。
量化估算(粗略)
假设一个 70B 模型,推测解码平均加速 2x,意味着:
- 同等吞吐下 GPU 需求减半(理论上限,实际考虑 overhead 会打折)。
- 按 GPU 云服务典型定价推算,推理成本可降低 30%-50% [粗略估算,取决于具体场景与部署方式]。
代表公司与资本映射
| 角色 | 代表 | 与 Draft Model 的关系 |
|---|---|---|
| 推理引擎 | vLLM (UC Berkeley 开源) | 原生支持推测解码,支持配置 Draft Model |
| 推理引擎 | NVIDIA TensorRT-LLM | 支持推测解码优化,针对 NVIDIA 硬件深度优化 |
| 推理引擎 | SGLang (UC Berkeley) | 支持多种推测解码方案集成 |
| 模型厂商 | Google DeepMind | 推测解码原始论文出处之一 (Chen et al. 2023) |
| 模型厂商 | Meta (LLaMA 系列) | 同系列模型大小组合天然适合做独立 Draft 方案 |
| 学术前沿 | EAGLE (原作者团队) | 特征外推 Draft 方向的代表,被多家推理框架集成 |
| 云服务 | 各大云厂商 | 推理服务中采纳推测解码以降低服务成本 |
资本映射思路:Draft Model 本身不是一个”赛道”,而是推理优化技术栈中的一层。相关主体包括推理密度高(即推理成本占营收比例大)的 LLM 服务商和推理芯片/引擎厂商。研究时可观察:① 推理引擎对推测解码的支持成熟度;② 大规模部署中实际获得的加速比数据。
投资逻辑
核心判断
Draft Model / 推测解码是 LLM 推理优化技术栈中的高性价比组件:
-
无损加速,边际成本低:不需要重训模型,预测头方案额外参数量极小(通常占 Target 模型的 <1%)。
-
与其他优化技术正交叠加:可同时使用量化(INT4/INT8)、连续批处理、PagedAttention、FlashAttention 等技术,加速效果可叠加。
-
随模型变大,价值递增:模型越大越 memory-bound,推测解码的相对收益越大。
风险与不确定性
- 工程成熟度:推测解码的 KV Cache 回滚、调度策略等工程细节仍在演进中,大规模生产部署的经验尚在积累。
- 与硬件协同:新一代硬件如果大幅提升显存带宽(如 HBM4),memory-bound 瓶颈缓解,推测解码的相对收益可能下降。
- 替代方案竞争:连续批处理、模型蒸馏、更激进的量化等技术也在持续进步,推测解码的比较优势需要动态评估。
常见误读纠偏
❌ 误读 1:“Draft Model 会降低大模型的输出质量”
纠偏:推测解码的数学保证是无损的。接受-拒绝采样机制确保最终输出的每个 token 的边际分布严格等于 Target 模型的分布。这不是近似,而是精确等价(在浮点精度范围内)。这是推测解码区别于”直接用小模型”的本质差异。
❌ 误读 2:“Draft Model 就是知识蒸馏的小模型版本”
纠偏:知识蒸馏是训练时让小模型学习大模型的输出分布,目标是让小模型独立替代大模型;推测解码是推理时用小模型作为”提议者”,最终输出由大模型决定。两者目标完全不同:蒸馏追求用小模型替代大模型(有质量损失),推测解码追求用小模型加速大模型(零质量损失)。
❌ 误读 3:“Draft 模型越大越好,接受率越高”
纠偏:Draft 模型越大,接受率确实可能越高,但推理开销也越大。存在一个最优平衡点:当 Draft 模型大到其推理开销抵消了接受率提升带来的收益时,总加速比反而下降。实践中,Draft 模型大小通常是 Target 模型的 1/10 到 1/100 量级 [典型范围,具体取决于架构与任务]。
❌ 误读 4:“推测解码只适用于贪心解码(greedy decoding)”
纠偏:推测解码最初的形式确实对贪心解码最直观,但完整的接受-拒绝采样框架支持 temperature sampling 和 top-k/top-p 采样。Chen et al. (2023) 的 Speculative Sampling 明确给出了带温度采样的数学推导,保证采样分布完全一致。
学习路径
入门(1-2 小时)
- 理解自回归解码为什么是 memory-bound 的——做一道简单的计算题:一个 70B 模型在 H100 上单 token 解码的 arithmetic intensity 是多少?(会发现远低于 roofline 的 compute-bound 区域)
- 阅读推测解码的直觉性介绍文章(社区博客中有大量优质科普)
进阶(3-5 小时)
- 精读 Leviathan et al. (2023) 和 Chen et al. (2023) 两篇原始论文,理解接受-拒绝采样的数学证明
- 在 vLLM 或 SGLang 上实际配置一个 Draft Model 进行推理,观察实际加速比与接受率
深入(1-2 周)
- 阅读 Medusa 和 EAGLE 论文,理解”内建 Draft”方案的设计思路
- 研究推测解码与连续批处理、KV Cache 管理的交互——这是工程实现中最复杂的部分
- 尝试实现一个最简版推测解码(用 Hugging Face Transformers + 一个小模型和一个大模型)
拓展
- 关注 Lookahead Decoding、Jacobi Decoding 等无需 Draft 模型的替代方案
- 关注推测解码在多模态模型(如视觉 token 生成)中的扩展应用
一句话总结
Draft Model 是推测解码的核心组件——用一个轻量模型快速猜测候选 token、再由大模型一次性并行验证,在输出质量严格不变的前提下,将自回归推理的吞吐提升 1.5-3 倍,是当前 LLM 推理优化中性价比最高的”白捡”加速手段之一。
延伸阅读与来源
核心论文
- Leviathan, Y., Kalman, M., & Matias, Y. (2023). Fast Inference from Transformers via Speculative Decoding. ICML 2023. [Google Research]
- Chen, C., Borgeaud, S., Irving, G., et al. (2023). Accelerating Large Language Model Decoding with Speculative Sampling. arXiv:2302.01318. [DeepMind]
- Cai, T., Li, Y., Geng, Z., et al. (2024). Medusa: Simple LLM Inference Acceleration Framework with Multiple Decoding Heads. ICML 2024.
- Li, Y., Cai, T., Zhang, Y., et al. (2024). EAGLE: Speculative Sampling Requires Rethinking Feature Uncertainty. ICML 2024.
工程实现参考
- vLLM 官方文档:Speculative Decoding 配置指南
- NVIDIA TensorRT-LLM 文档:推测解码支持说明
- SGLang 项目文档
社区资源
- Hugging Face 博客中关于 Speculative Decoding 的技术科普
- Lilian Weng 博客中关于 LLM 推理优化的综述(含推测解码章节)
关键术语对照
| 英文 | 中文 | 说明 |
|---|---|---|
| Speculative Decoding | 推测解码 | 整体框架名 |
| Draft Model | 草稿模型 | 快速猜测用的小模型 |
| Target Model | 目标模型 | 被加速的大模型 |
| Acceptance Rate | 接受率 | Draft token 被验证通过的比例 |
| Rejection Sampling | 拒绝采样 | 保证输出分布正确的统计机制 |
| Speculative Sampling | 推测采样 | 支持 temperature sampling 的完整版本 |
免责声明:本页所有技术描述基于公开学术论文与业界共识。具体加速比、接受率等数据因模型、硬件、任务、实现而异,投资决策请以实际部署数据为准。标注 [粗略估算] 的数字仅为量级参考,不构成精确承诺。