核心要点

  • 能点出动机:decode 是访存受限、逐 token 串行,GPU 算力大量闲置,投机解码用闲置算力换并行度

  • 能讲清流程:小草稿模型自回归猜 k 个 token,大模型用一次前向并行验证这 k 个,接受的批量采纳、首个被拒处截断并回退

  • 能强调无损:经 rejection sampling 校正后,输出分布与大模型单独解码严格一致,不是近似加速

  • 能说出收益取决于接受率:草稿与大模型越「合拍」、接受率越高,加速越大;草稿太弱或太慢反而拖后腿

标准回答

为什么能加速

自回归 decode 每步只算一个 token,是访存受限的:把整套权重读进来却只产出一个 token,GPU 算力大量浪费。投机解码的思路是用这份「免费」的算力一次验证多个 token。

工作流程

  1. 一个小而快的草稿模型自回归地连续生成 k 个候选 token。
  2. 大模型对这 k 个 token 做一次并行前向,同时得到每个位置的真实概率。
  3. 从左到右逐个验证:用 rejection sampling 决定接受或拒绝。被接受的 token 直接采纳;遇到第一个被拒的位置就截断,并从大模型的校正分布重采一个 token。
  4. 重复。每轮大模型只做一次前向,却可能产出多个 token。

关键性质:无损

rejection sampling 的校正保证最终输出分布与大模型自己逐 token 解码完全相同,因此是精确加速、不牺牲质量。

加速比取决于接受率:草稿模型越能预测大模型的输出、接受率越高,平均每次前向产出的 token 越多。详见 LLM 推理加速(四)

常见误区

⚠️ 常见踩坑

别说投机解码会降低生成质量——经 rejection sampling 校正后分布与大模型一致;也别忽略草稿模型的成本:草稿太慢或接受率太低时,多出的草稿前向会吃掉收益甚至变慢。

追问

追问 1草稿模型怎么选?

要在「快」和「与大模型分布接近」之间平衡:常用同系列的小模型、量化版,或 Medusa/EAGLE 这类在大模型上加轻量预测头的自投机方案,省去单独维护草稿模型。

追问 2接受率低时为什么可能变慢?

每轮要付草稿生成 + 大模型验证两份成本。接受率低则多数草稿 token 被拒、白算,额外开销超过省下的前向,整体反而比直接解码慢。

追问 3Medusa/EAGLE 与经典投机解码的区别?

它们是自投机:不另用一个独立草稿模型,而在大模型上加多个预测头并行猜后续 token,再由主干验证,省去双模型部署、提高接受率。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • vLLM

    高吞吐 LLM 推理引擎,77,418+ stars。采用 PagedAttention 显存优化技术,吞吐量比 HuggingFace Transformers 高 24 倍,是生产环境部署大模型推理的首选方案,支持 OpenAI 兼容 API

  • TensorRT-LLM

    NVIDIA TensorRT-LLM 提供易用的 Python API 定义 LLM,支持最先进的推理优化,在 NVIDIA GPU 上实现极致推理性能