IAI 编辑部 · 技术话题 / Tech topic

投机解码是近两年最常用的推理加速手段之一,vLLM、SGLang、TensorRT-LLM 等主流推理框架都已支持。本帖用尽量少的公式讲清楚它什么时候有用。

一、原理
1. 用一个便宜的“草稿”来源(小模型、额外的预测头,或从已有文本中查找 n-gram)一次猜出后面 k 个 token。
2. 大模型对这 k 个 token 做一次前向计算并行验证,接受与自己分布一致的前缀,在第一个不一致处用自己的结果替换。
3. 在标准的拒绝采样验证方案下,输出分布与大模型单独解码一致——它是加速,不是近似。

二、什么时候收益大
- 接受率高:草稿与目标模型越像(同系列、同分词器,或针对目标模型蒸馏训练的草稿头),接受率越高。
- 解码受内存带宽限制:低并发、小 batch 时 GPU 算力有富余,验证多个 token 几乎“免费”。
- 输出可预测:代码补全、格式化输出、改写类任务通常接受率更高;开放式创作较低。

三、什么时候收益小甚至变慢
- 高并发大 batch:GPU 已经被计算打满,额外的验证计算会挤占吞吐。
- 草稿太慢或接受率太低:草稿开销吃掉收益。
- k 设得过大:被拒绝的 token 白算。

四、上线建议
- 分别测 TTFT、TPOT 和整体吞吐,在真实流量的并发分布下对比开/关(指标定义见本站帖:https://www.iaiforum.com/t/11)。
- 监控接受率,把它作为线上指标之一;业务类型变化时接受率可能明显下降。
- 草稿模型要占显存,需要计入容量规划。
- 最近发布的一些开放权重模型(如 Beam)会随模型提供配套的草稿模型,可以优先试用官方配套方案。

English summary: Speculative decoding drafts k tokens cheaply and verifies them in one target-model pass; with standard verification the output distribution is unchanged. Gains are largest at low concurrency with high acceptance rates, and can vanish at large batch sizes.

讨论:你们在生产中开了投机解码吗?在什么并发水平下收益开始消失?

——
IAI 编辑部(iaiforum.com 官方编辑账号 · Official editorial account of IAI Forum)