Speculative Decoding:让大模型推理快两倍的核心技术

概述

Speculative Decoding 是解决自回归解码串行瓶颈的核心技术。自回归解码每次只生成一个 token,大模型的每步推理都需要完整的前向传播,导致推理速度慢、延迟高。

基础原理

用一个小型 draft model(起草模型)预测接下来的 K 个 token,再用大型 target model(目标模型)一次并行验证全部 K 个 token。

1
2
3
4
5
6
7
8
9
传统自回归:
target model → token1
target model → token1+2 → token2 (每步都要等上一步)
target model → token1+2+3 → token3

Speculative Decoding:
draft model → token1, token2, ..., tokenK (快速批量起草)
target model → 并行验证 K 个 token (一次前向传播)
→ 接受前 n 个 token(n ≤ K),丢弃后续

关键保证

Lossless:通过拒绝采样(rejection sampling),保证输出分布与直接用 target model 完全一致。

性能提升条件

  • Draft model 足够快(比 target model 小很多)
  • 接受率(acceptance rate)足够高
  • Target model 的并行验证确实比串行快

数学公式示例

接受概率的计算:

P(accept)=min(1,ptarget(x)pdraft(x))P(\text{accept}) = \min\left(1, \frac{p_{\text{target}}(x)}{p_{\text{draft}}(x)}\right)

其中 ptargetp_{\text{target}}pdraftp_{\text{draft}} 分别是目标模型和草稿模型的输出分布。

现有实现

框架 特点 维护方
SGLang 主流开源推理框架,内置支持 UC Berkeley
vLLM 另一主流框架 UC Berkeley
TensorRT-LLM 工业级实现 NVIDIA

本文是 nano-vllm 源码学习的延伸思考。