← 返回题库
推理与部署困难

投机解码(Speculative Decoding)原理?为何能无损加速?

#投机解码#draft model#接受拒绝采样#无损加速

题目

Speculative Decoding(投机解码)已成为业界加速 LLM 推理的标准手法。请说明其原理、为何能做到”无损”加速,以及 Medusa/EAGLE 等进阶方案。

参考答案

核心思想:借鉴 CPU 分支预测——用一个小而快的”草稿模型”(draft model)先猜若干 token,再用大模型(target model)一次性并行验证,把串行解码转为并行验证。

两阶段流程

  1. 起草(Draft):draft model 自回归生成 γ\gamma 个候选 token t~1,,t~γ\tilde{t}_1,\dots,\tilde{t}_\gamma
  2. 验证(Verify):target model 一次前向,并行计算这 γ\gamma 个位置的概率,对每个候选做接受拒绝采样
    • 若 target 概率 ≥ draft 概率:接受。
    • 否则:以 1ptarget/pdraft1 - p_{target}/p_{draft} 概率拒绝,从 target 分布重采一个替代 token。
    • 一旦拒绝,后续候选全部丢弃。

为何无损:接受拒绝采样保证最终输出分布严格等于 target model 单独生成的分布——只是采样路径不同,分布一致,故”无损”。

为何能加速

  • 大模型自回归解码的瓶颈是逐 token 的串行访存,每步都要加载全部权重。
  • 投机解码让大模型一次前向处理 γ\gamma 个 token,摊薄了权重加载开销。
  • 即使部分候选被拒,只要接受率足够高(如 70%+),净收益显著。实测可加速 2–3 倍,理想场景 5 倍+。

关键指标:接受率(acceptance rate)——取决于 draft 与 target 的分布吻合度。

进阶方案

  • Medusa:不用单独 draft model,给 target 模型加多个”解码头”并行预测后续多 token,省去维护小模型。
  • EAGLE:用 target 的隐藏状态(而非 token)做 draft,分布更贴合,接受率更高。
  • Lookahead Decoding:基于 n-gram 匹配的免 draft 方案。

适用场景:decode 阶段(生成密集)、接受率高的任务(代码、对话);不适合极短输出或接受率低的开放创作。

面试加分点

  • 强调”无损”来自接受拒绝采样的数学保证,而非”差不多就行”。
  • 指出投机解码只加速 decode,不加速 prefill(首 token 延迟不变)。
  • draft model 与 target 需同词表、同分词器,否则概率无法对齐。

出处:头条《投机解码被”投机”了!多猜一次,大模型推理速度再提升 5 倍》、《LLM 推理加速新范式:Speculative Decoding 从原理到生产实战》、Leviathan et al. 2023 Speculative Decoding 论文。

内容来源

整理自头条《投机解码被"投机"了!多猜一次,大模型推理速度再提升 5 倍》及 Speculative Decoding 论文

本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。