跳转至

Speculative decoding

由小模型(draft model)猜测几个token一起送入大模型(target model),大模型进行一次性forward验证.

普通decode: \(X_{1 \times d} W_{d \times d}\),小batch时接近gemv, GPU利用率低,且需要反复从HBM读取巨大权重

speculative decoding: \(X_{n \times d} W_{d \times d}\), n为小模型预测长度

为什么speculative decoding 数学上与target model直接采样等价(lossless)

对于任意一个token x, 最终生成有两个途径:

  • draft 提出x并接受
  • draft 被拒绝后residual 采到x

设target model 概率分布p, draft 概率分布q.

draft 提出x并接受概率:

\[ P1(x) = q(x) min(1, \frac{p(x)}{q(x)}) \]

拒绝后residual采样概率:

\[ P2(x) = p(x) - min(q(x), p(x)) \]

二者和为p(x).