Ch20 推理部署修订于 二〇二六年七月一日

推测解码(深挖)

vLLM 推理引擎(深挖) 讲了怎么管理显存来提高吞吐量。还有一种完全不同的加速思路:用小模型”猜”下一个 token,再用大模型”验证”。 这就是推测解码。

为什么 AI 生成这么慢

AI 生成文本是”自回归”的——每次只生成一个 token。生成完一个,把结果加回输入,再生成下一个。100 个 token 的回答,需要跑 100 次前向传播。

每次前向传播,GPU 的计算单元大部分时间在”空闲”——在等显存里的数据搬过来。这是”内存带宽瓶颈”——不是算不过来,是数据搬不过来。

推测解码的思路:利用 GPU 的闲置算力,并行”猜”多个 token,大模型一次验证一堆。 1

怎么工作

  1. 小模型(草稿模型)快速生成。 用一个小模型(比如 100M 参数,跑得飞快)一次生成 K 个候选 token。K 通常取 3-8。

  2. 大模型(目标模型)一次验证。 把”前缀 + K 个候选 token”一起输入大模型。大模型做一次前向传播,同时计算这 K 个位置的正确 token 概率。

  3. 对齐检查。 逐个比对——小模型猜的第一个 token 和大模型认为的第一个 token 一样吗?一样就接受,继续比第二个。不一样就拒绝——用大模型的 token 替换,后续全部丢弃。

  4. 效果。 如果小模型猜对了 3 个 token,大模型一次前向传播就确认了 3 个 token。加速了 3 倍。如果小模型猜对了 0 个——没损失,大模型还是正常生成,只是浪费了一次验证。

关键:推测解码不改变输出质量。大模型验证后只接受自己认可的 token。最终输出的概率分布和正常生成完全一样。这是”无损加速”——质量不变,速度翻倍。

小模型怎么选

小模型不需要很强——只需要”在大多数情况下猜得差不多”。两种常见选择:

  1. 同家族的小版本。 Llama 4.1 8B 当草稿模型,Llama 4.1 70B 当目标模型。同架构、同词表,兼容性最好。
  2. 专门的草稿模型。 Medusa(2024 年)的思路:不额外训练一个小模型,而是在目标模型上加几个”预测头”——专门预测未来的 token 2。成本更低,不需要第二个模型。

实际效果

场景加速比说明
代码生成1.5-2x代码的规律性强,小模型猜得准
中文对话2-3x中文 token 的冗余度较高
英文写作2-4x常见句式重复度高
数学推理1-1.3x推理过程每个 token 都很关键,难猜

Benchmark 参考:在 HumanEval(编程)上,推测解码可提速 1.8x 且 Pass@1 零损失。在 MMLU 上提速约 1.5x。草稿模型接受率(draft acceptance rate)通常在 60-85%,是加速效果的核心指标 3。

2025-2026 年,vLLM 和 TensorRT-LLM 都内置了推测解码支持。一行配置就能开启:

vllm serve model --speculative-model draft-model

推测解码 vs 其他加速方法

推测解码量化KV缓存优化
加速原理并行验证降低精度减少重复计算
质量损失无有无
加速比2-4x1.5-2x1.3-2x
额外资源需要小模型不需要不需要

三者可以叠加——量化 + KV 缓存优化 + 推测解码,综合加速 5-10 倍。

相关笔记

来源

注释

  1. Leviathan et al., “Fast Inference from Transformers via Speculative Decoding”, 2023, https://arxiv.org/abs/2211.17192 ↩

  2. Cai et al., “Medusa: Simple LLM Inference Acceleration Framework”, 2024 ↩

  3. Leviathan et al., Speculative Decoding Benchmark, 2023 ↩

关联8

知识图谱

局部图谱 · 点节点跳转