投机解码的"魔法"和"陷阱"
投机解码(Speculative Decoding)是2026年最热门的推理加速技术。它的核心思想很简单:用小模型快速生成"草稿",用大模型验证"草稿",如果验证通过就接受,不通过就回退。
理论上,投机解码可以让推理速度提升2-3倍,而且不损失任何质量(因为最终的输出仍然由大模型决定)。
但实践中,90%的团队用错了投机解码。 他们在LLM Leaderboard上看到的速度提升,到自己的场景中消失了。因为投机解码的效果极度依赖场景、模型和参数。
投机解码的工作原理
Step 1:草稿生成。 用一个"草稿模型"(Draft Model,通常是同系列的小模型,如Llama 4 7B做Llama 4 70B的草稿模型)快速生成K个候选token(通常K=3-5)。
Step 2:大模型验证。 大模型一次性对这K个候选token进行验证(并行计算,不需要逐token生成)。
Step 3:接受或拒绝。 如果草稿模型生成的token和大模型会生成的token一致,就接受;不一致,就拒绝并回退,用大模型重新生成。
Step 4:继续前进。 在接受的token之后,继续投机解码。
投机解码的加速原理: 大模型一次验证K个token,只需要一次前向计算。而标准解码生成K个token,需要K次前向计算。如果草稿模型的"命中率"高,大模型就省下了K-1次前向计算。
投机解码的"三大坑"
坑1:草稿模型选错了
草稿模型必须满足两个条件:
- 和主模型"同架构"(不能用Llama做草稿,Qwen做主模型——分布完全不同)
- 比主模型"快很多"(至少快5倍,否则草稿生成的时间比节省的时间还多)
推荐组合:
- Llama 4 7B(草稿)→ Llama 4 70B(主模型)✓
- Qwen 3.0 7B(草稿)→ Qwen 3.0 72B(主模型)✓
- DeepSeek V4-Lite(草稿)→ DeepSeek V4(主模型)✓
- Llama 4 7B(草稿)→ Qwen 3.0 72B(主模型)✗(不同架构)
坑2:温度(Temperature)设置不对
投机解码的标准实现要求温度=0(贪婪解码)或温度很小(<0.3)。 因为投机解码的验证机制依赖"概率分布匹配"——如果温度太高,分布太分散,草稿模型的命中率会急剧下降。
在我们的测试中:
- 温度=0:草稿命中率85%,速度提升2.3倍
- 温度=0.3:草稿命中率70%,速度提升1.8倍
- 温度=0.7:草稿命中率50%,速度提升1.3倍
- 温度=1.0:草稿命中率30%,速度提升1.05倍(几乎无加速)
投机解码适合"确定性任务"(代码生成、翻译、QA),不适合"创造性任务"(故事创作、诗歌)。
坑3:没有关闭KV Cache共享
投机解码中,草稿模型和大模型必须共享KV Cache。 否则,每次验证后都需要重新计算KV Cache,省下的时间全部浪费了。
vLLM/SGLang/TensorRT-LLM都支持投机解码的KV Cache共享,但需要手动开启。 默认是关闭的。
2026年投机解码的替代方案
Medusa: 不需要草稿模型,直接在模型上添加多个"预测头"(Medusa Heads),每个头预测一个未来的token。比投机解码更简单,但加速效果略差(1.5-2倍)。
Eagle: 投机解码的改进版,使用"特征级"的草稿模型(不是token级),命中率更高。加速效果1.8-2.5倍。
Multi-Token Prediction(DeepSeek V4): 在训练时就预测多个token,推理时直接生成多个token。不是"投机"而是"确定性"的多token生成,加速效果1.5-2倍。
投机解码的适用场景
强烈推荐(加速效果>2倍):
- 代码生成(确定性高,草稿命中率>80%)
- 翻译(输出格式固定,草稿命中率高)
- 简单QA(答案简短,草稿命中率高)
一般推荐(加速效果1.5-2倍):
- 文本摘要
- 指令遵循
不推荐(加速效果<1.2倍):
- 创意写作(随机性高,草稿命中率低)
- 对话生成(输出不可预测)
- 高温度生成(温度>0.7)
结语:投机解码是"加速器",不是"发动机"
投机解码不是"魔法",它只是利用了"大模型验证比生成快"这个特性。 如果草稿模型能准确预测大模型的输出,投机解码就能加速。如果草稿模型猜不准,投机解码就是浪费算力。
投机解码的最佳实践:用同系列的小模型做草稿模型,温度设为0,开启KV Cache共享。 做好这三点,加速效果才有保证。
数据来源:投机解码论文(Leviathan et al., 2023),Medusa论文(Cai et al., 2024),vLLM投机解码文档。