推测解码(Speculative Decoding)

AI TERM术语词条

Speculative Decoding

技术原理 推理加速模型优化解码部署

术语释义

用小模型“草拟”、大模型“审核”的推理加速技术,在不改变输出分布的前提下显著提升生成速度,是当前大模型推理优化的常用手段。

推测解码(Speculative Decoding)是一种大模型推理加速技术,核心思想是「用小模型猜,用大模型验」。大模型逐词生成时,每输出一个词都要把全部参数读一遍,瓶颈往往在显存带宽而不是算力;推测解码让小模型先一口气猜出若干候选词,再让大模型一次并行地审核,从而把闲置的算力用起来,在不改变输出分布的前提下提升生成速度。

三个步骤

  • 草拟:用一个轻量级草稿模型(draft model)快速、连续地生成若干个候选词。
  • 验证:目标大模型把这些候选词作为一整段输入,一次前向传播算出各自位置的概率分布。
  • 接受或拒绝:按采样规则接受与目标模型分布一致的候选词;一旦某个候选被拒,就从该位置起由大模型重新采样,后续候选作废。

关键在于接受机制:它不是「差不多就通过」,而是用一套拒绝采样规则,使得最终输出的概率分布与直接用大模型逐词采样完全一致。因此加速是数学上无损的,模型质量与不开启该技术时相同。

为什么能加速

自回归解码是典型的访存密集型任务:每生成一个词,都要把庞大的权重从显存搬到计算单元,计算单元大部分时间在等数据。推测解码把「一次算一个词」变成「一次算多个词」,同样的权重读取量产出更多词,硬件利用率上升,单位时间输出的词数随之增加。加速比大致取决于两件事:草稿模型有多快,以及它的猜测有多容易被接受。

实现路线与配套手段

  • 独立草稿模型:另配一个同族小模型,实现简单,但需要额外显存并做好对齐。
  • 多头预测:在主模型上挂若干预测头,一次前向同时给出多个未来位置的候选,省去单独的草稿模型。
  • 特征复用的自推测:让模型用自身浅层或历史特征进行推测,减少额外模块开销。
  • 批量与缓存优化:与连续批处理、量化、键值缓存复用叠加,收益通常可以相乘而非互相抵消。

实践要点

  • 看接受率再谈收益:任务越好猜,加速越明显;如果草稿模型与目标模型风格差异大,接受率低时甚至可能变慢。
  • 按业务类型分别测:代码补全、格式化输出、翻译等「可预测」场景收益高,开放式创作和推理类文本收益偏低。
  • 控制草稿长度:一次猜太多,后半段被拒的概率上升,白白浪费计算;需要按实测调参。
  • 监控端到端延迟而非只看吞吐:高并发批处理下收益会被摊薄,低并发单请求场景往往更明显。
  • 确保正确性不打折:验证接受机制必须严格实现,否则会造成分布偏移,输出质量悄悄变差。

常见误区

  • 以为它是「近似加速」:正确实现下输出分布与原始解码一致,不属于牺牲质量换速度。
  • 认为一定要额外训练小模型:也可以复用同族小模型、主模型自带预测头或利用历史输出做草稿。
  • 忽略显存代价:草稿模型与预测头都要占资源,显存紧张时可能挤占批大小,反而降低整体吞吐。
  • 把它当作万能提速药:在计算受限、批已经很大的场景里,提升空间有限,应优先考虑量化与算子优化。
查看全部 2990 条 →
共 9 条