题目
Speculative Decoding(投机解码)已成为业界加速 LLM 推理的标准手法。请说明其原理、为何能做到”无损”加速,以及 Medusa/EAGLE 等进阶方案。
参考答案
核心思想:借鉴 CPU 分支预测——用一个小而快的”草稿模型”(draft model)先猜若干 token,再用大模型(target model)一次性并行验证,把串行解码转为并行验证。
两阶段流程:
- 起草(Draft):draft model 自回归生成 个候选 token 。
- 验证(Verify):target model 一次前向,并行计算这 个位置的概率,对每个候选做接受拒绝采样:
- 若 target 概率 ≥ draft 概率:接受。
- 否则:以 概率拒绝,从 target 分布重采一个替代 token。
- 一旦拒绝,后续候选全部丢弃。
为何无损:接受拒绝采样保证最终输出分布严格等于 target model 单独生成的分布——只是采样路径不同,分布一致,故”无损”。
为何能加速:
- 大模型自回归解码的瓶颈是逐 token 的串行访存,每步都要加载全部权重。
- 投机解码让大模型一次前向处理 个 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 论文
本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。