什么是 推测解码(Speculative Decoding)?

更新于

推测解码(Speculative Decoding)是一种自回归推理方法:低成本机制先提出多个未来 Token,目标模型并行评分,再按照明确验证规则接受前缀或执行修正。

快速了解

创建时间2022 至 2023 年由 Google Research 与 DeepMind 的独立工作提出
规范文档官方规范

工作原理

保持目标分布

Greedy Decode 只有在候选 Token 与目标选择一致时才保留前缀。对随机生成,标准 Speculative Sampling 以 min(1, p(x)/q(x)) 接受候选,其中 p 与 q 分别是同一 Prefix 下目标与草稿概率;拒绝后再从归一化残差 max(0, p-q) 采样。Prefix、Probability 与 RNG Contract 必须对齐;简单比较 Token 是否相等,不能替代随机解码中的分布保真算法。

计算真实收益

Acceptance Rate 不是充分指标,真实收益由 Expected Accepted Length、Proposer Latency、Target Verification Latency、KV Memory、Sampling Overhead 和每轮 Commit Token 共同决定。短输出没有足够 Decode Step 摊薄启动成本。

高 Concurrency 下,Continuous Batching 可能已经占满目标模型的空闲算力,更宽的 Verification 反而降低 Throughput。当前 [vLLM 文档](https://docs.vllm.ai/en/latest/features/speculative_decoding/)也主要把该技术定位于中低 QPS、Memory-bound 负载,并要求按真实负载测试。

上线前验证

固定 Target、Draft、Tokenizer、Runtime、Precision、Sampling Parameter 与 Draft Length,在相同 Prompt、Output Limit、Arrival Distribution 和 Concurrency 下对比普通解码。记录每轮及各草稿位置的 Accepted Token、Proposer/Verifier 时间、TTFT、TPOT、端到端延迟、Throughput、Memory 与失败。适用时执行 Greedy Equality Test,并补充随机分布、任务质量、Structured Output 门禁;兼容性或实测加速不成立时自动回退。

主要特点

  • 由低成本模型、辅助头或检索机制提出未来 Token
  • 通过一次目标模型调用并行评分多个候选位置
  • 只提交被接受前缀以及目标模型产生的修正或奖励 Token
  • 仅在正确实现指定 Rejection Sampler 时保持目标分布
  • 用更少串行目标调用换取提案、验证、显存与调度开销
  • 收益依赖工作负载,在短输出或高并发下可能消失

常见用途

  1. 降低中低 QPS 交互式生成的 TPOT
  2. 使用匹配良好的草稿机制加速长 Decode 负载
  3. 为重复文本与代码采用 n-gram 或 Suffix Proposal
  4. 评估原生 Multi-Token Prediction 或学习型 Draft Head
  5. 在不更换公开目标模型的情况下 Canary 验证 Decode 优化

示例

loading...
Loading code...

常见问题

推测解码会返回完全相同的输出吗?

标准验证会在数值精度范围内保持目标概率分布。Greedy Equality 可以直接测试,但随机生成不保证逐 Token 相同,因为 RNG 消费、Floating-point Kernel 与 Batch 组成可能不同。

Acceptance Rate 与 Acceptance Length 有什么区别?

Acceptance Rate 是已接受草稿 Token 除以候选 Token;Acceptance Length 表示一轮在拒绝前提交多少草稿 Token。端到端速度更直接取决于 Commit 进度相对提案与验证成本,因此两者都要报告。

推测解码能降低 TTFT 吗?

它通常直接优化首 Token 之后的 Decode Latency。独立 Draft Prefill 或初始化可能让 TTFT 不变甚至更差,短回答尤其如此,不能根据 TPOT 变快推断 TTFT 改善。

为什么推测解码可能损害高并发吞吐?

宽 Verification 会占用 Continuous Batching 原本可服务真实请求的算力与显存。Concurrency 上升、Target 进入 Compute-bound 后,额外提案与验证成本可能超过减少串行 Decode Round 的收益。

如何选择草稿机制?

在真实领域测量 Proposer Cost 与 Accepted Length,并检查词表、Runtime、Memory、Draft Length、Sampling 行为和部署复杂度。参数更少不等于 Draft 必然便宜或与 Target 足够匹配。

相关术语

相关文章