Speculative Decoding的加速原理
Speculative Decoding(投机解码)是一种无损加速LLM推理的技术。请解释其核心思想——草稿模型+目标模型的验证机制,以及在LLaMA/ChatGPT推理中的实际加速比。
回答
编译有声
核心思想:用一个轻量草稿模型(draft model)快速生成多个候选token,再用目标模型(target/oracle model)并行验证,实现一次验证多个token。
工作原理:
- 草稿阶段:草稿模型自回归地生成K个token(如K=5),速度极快(约为大模型的10-50倍)
- 目标验证阶段:目标模型同时计算K+1个token的位置的logits
- 接受/拒绝规则:逐位置比较草稿token和目标分布
- 如果草稿token在目标分布中概率匹配,则接受
- 否则拒绝该位置及之后所有草稿token,从该位置重新采样
- 并行解码:每步最多生成K个token(理想情况),而非1个
加速原理本质:
- 减少了目标模型的自回归调用次数
- 从单步1个token变成单步最多K个token
- 计算量翻倍(同时计算K+1个位置的注意力),但解码步数减少K倍(理想)
实际加速比:
- 草稿-目标模型大小比1:10(如125M vs 1.3B):加速1.5-2.5x
- 草稿-目标模型大小比1:100(如125M vs 13B):加速2-3x
- 影响因子:接受率(acceptance rate)和K值
SpecInfer(2023):使用多个草稿模型集成,进一步提高接受率。 Eagle(2024):草稿模型使用目标模型的倒数第二层特征动态预测,达到3-5x加速。
vLLM现已内建投机解码支持。