Academy

推测解码

如何用「小模型猜、大模型验」让推理速度翻倍?

推测解码 MoE 批量验证

10 分钟 阅读

Chapter 01

为什么推理慢?

大语言模型的推理是自回归的:每次只能生成一个 token,而每个 token 都需要把所有模型权重从内存中加载一遍。没有任何捷径——每一个 token 都要付出一次完整前向传播的代价。

以一个 9B 参数模型为例,在 800 GB/s 带宽的硬件上运行。加载 90 亿参数(FP16 约 18 GB)仅权重传输就需要约 18 ms/token。实际的计算远在数据到达之前就已完成——瓶颈在内存带宽,不在算力。

交互演示:逐 Token 权重加载

每个 token 都必须加载全部权重,观察时间如何累积:

中国 首都 北京
权重加载进度 0 / 8
累计耗时: 0 ms
💡 逐 token 生成就像打字机——每敲一个字,都要重新翻阅整本字典。
Chapter 02

草稿-验证范式

如果一个小而快的草稿模型(如 0.8B 参数)能提前猜出多个候选 token 呢?然后让大目标模型(如 35B 参数)在一次前向传播中同时验证所有猜测。

这就是推测解码(Speculative Decoding)。草稿模型以极低成本自回归地提出 γ 个候选 token;目标模型一次性检查它们全部。从前到后依次接受 token,直到第一个不匹配——此时目标模型用自己的预测替换错误猜测,循环重新开始。

交互演示:草稿与验证

小模型快速草拟 token(橙色),大模型一次验证(紫色=通过,红色=拒绝):

草稿 (0.8B):
北京 一座 古老 城市
验证 (35B):
北京 一座 古老 城市
💡 就像考试时先用铅笔快速作答,再用钢笔仔细检查——检查比从头写快得多。
Chapter 03

MoE 的内存悖论

混合专家模型(MoE)看上去很高效。一个 35B 总参数 的 MoE 每个 token 只激活 3B 参数。听起来应该很快对吧?问题在于:所有 35B 参数都必须驻留在内存中,因为你永远不知道下一个 token 会用到哪些专家。

这意味着 MoE 的推理速度受限于内存带宽,而非算力。GPU 或 NPU 大部分时间都在等待权重从内存中加载,而不是做数学运算。尽管每个 token 的激活参数只有 3B,你仍然要为 20-38 GB 的权重加载买单。

MoE:总参数 vs 激活参数
🧠

内存占用

35B 参数全部驻留
内存使用100%

全部 128 个专家已加载

实际激活

3B 参数 (~8%)
算力使用8%

仅 2 个专家在工作

Dense 9B

9B 总参数 = 9B 加载
内存/加载~18 GB

MoE 35B-A3B

35B 驻留, 路由+专家加载
内存/加载~38 GB
💡 MoE 就像一个 128 人的专家团队,每次只需要 2 人工作——但你得把 128 人都请到会议室里等着。
Chapter 04

批量验证摊销 — 核心发现

这是 AtomGradient 研究的核心发现:即使草稿模型的接受率不到 1%,推测解码在 MoE 上仍然能实现 1.26-1.30x 加速。为什么?

关键洞察:当目标模型验证 γ 个草稿 token 时,它只需加载一次权重就能处理 γ+1 个位置,而不是加载 γ+1 次。带宽开销被整个批次摊销,无论接受了多少 token。这是一种全新的加速机制——经典理论认为加速需要高接受率,而这项研究证明了摊销本身就是加速来源。

研究数据:MoE 推测解码实验结果

MoE Q8 模型 — 基线 vs 不同草稿长度的推测解码:

草稿长度 (γ) 基线 (tok/s) 推测解码 (tok/s) 加速比 接受率
γ = 4 49.9 58.9 1.18x 0.2%
γ = 8 49.9 60.9 1.22x 0.2%
γ = 16 49.9 64.8 1.30x 0.2%

数据来源: AtomGradient 306 次实验

加速比随草稿长度变化

更长的草稿 = 更多权重加载摊销,即使接受率接近零:

49.9
基线 tok/s
64.8
最佳 tok/s
0.2%
接受率
1.30x
加速比
1.18x
γ=4
1.22x
γ=8
1.30x
γ=16
关键发现:γ 越大加速越明显,这与经典推测解码理论(要求高接受率)完全相反。摊销机制使得即使 99.8% 的猜测都被拒绝,加速仍然单调递增。
💡 批量验证就像快递合单——送 16 个包裹到同一栋楼,只需上一次电梯,而不是 16 次。
Chapter 05

加速规律

推测解码的加速比与模型的总参数量(内存占用)成正比,而非激活参数量。这是因为瓶颈在于内存带宽——加载权重——模型越大,可摊销的权重就越多。

更小的草稿模型效果更好:0.8B 草稿优于 2B 草稿。因为极小模型生成候选 token 的开销几乎可以忽略,把更多带宽预算留给主验证过程。

不同模型的加速对比
1.12x
Dense 4B
算力受限
1.26-1.30x
MoE 35B
带宽受限
2.03x
Dense 9B
最大带宽需求
MoE 35B 的加速介于 Dense 4B 和 Dense 9B 之间,证实了「加速与总参数正相关」的假说。Dense 9B 达到 2.03x,因为每个 token 都要付出巨大的带宽代价,而批量验证几乎将其减半。

实践指南

大模型始终启用 SD
0.8B
使用最小可用草稿模型
γ ↑
最大化草稿长度
💡 模型越大(需要搬的家具越多),批量搬运的优势就越明显。
Chapter 06

总结

01

自回归瓶颈

每个 token 都要加载全部权重。内存带宽而非算力,才是推理速度的瓶颈。

02

草稿-验证范式

小草稿模型猜测 token,大目标模型在一次前向传播中验证全部猜测。

03

批量摊销机制

一次加载权重处理多个位置,即使接受率不到 1%,摊销依然有效。

04

与模型大小正相关

模型越大加速越明显——从 1.12x (4B) 到 2.03x (Dense 9B)。

推测解码证明:即使猜错了 99%,批量验证的效率优势仍然存在。
阅读完整研究论文 ↗ ← 回到学院首页
下一篇:端侧个人 AI →