TellWorldAI 世界档案
问档案English

首页›原理

原理

推测解码(Speculative decoding)

推测解码是一种加速大模型文本生成的算法:小模型先提出若干候选词,大模型对这些候选并行检查,在输出完全不变的前提下更快地生成。

时代 大模型

为什么生成慢

大语言模型按顺序逐词生成文本。每多生成一个词,就要把模型完整跑一遍,因此解码 K 个词需要 K 次串行的模型运行[1]。输入部分可以并行处理,生成却是一串彼此依赖的步骤:第二个词还没出来,第三个词就无从计算。大模型推理慢的根源正在这里[1],推测解码(speculative decoding)要解决的就是这个瓶颈。

出发点的观察

这套方法的起点是一个观察:困难的语言建模任务里往往包含更简单的子任务,而这些子任务可以由一个更高效的模型较好地近似[1]。把一整句话写好很难,但句子里的大部分工作是常规的。如果便宜的模型能承担这些常规部分,昂贵的模型就不必为每一个词单独跑一遍。

怎么工作

推测解码把这种分工变成一个算法。小一号的近似模型先提出若干候选词[1];大模型随后用推测执行(speculative execution)的方式对这些候选并行计算[1];再由一种新的采样方法决定这些候选如何采用[1]。大模型一次评估一整块候选词,而不是一次只算一个词,于是串行的步数减少,算力被填得更满。

可以这样设想:小模型连续提出 4 个候选词,大模型在一次并行前向中同时检查这 4 个位置,而不必被调用 4 次。凡是候选与大模型自己本会给出的结果一致的部分就保留,不一致的部分不被采用。采样方法的作用,是让这种取舍站得住脚。

关键保证是精确性:该算法给出的是大模型的精确解码,不改变输出分布[1]。得到的文本就是只用大模型时本会得到的文本,变了的只是耗时。

从哪来

Leviathan 等人于 2022 年 11 月提出推测解码,将其描述为一种通过并行计算多个词来更快地从自回归模型采样的算法[1]。相关论文题为《Fast Inference from Transformers via Speculative Decoding》,方法名称取自推测执行[1]。

结果

在 T5-XXL 上,作者测得相比标准 T5X 实现有 2 到 3 倍的加速,且输出完全相同[1]。也就是说,加速没有以改变模型说出的话为代价。

它是什么,不是什么

由于输出分布被保留,推测解码是一种延迟优化而非近似,这一点与量化(quantization)、剪枝(pruning)不同[1]。后两者用一点保真度换取更小或更省的计算,推测解码则完全不做这种交换。它还能直接加速现成的模型,无需重新训练,也无需改动架构[1],因此它是伴随模型使用的方法,而不是要求换一个新模型。

局限

最终做决定的仍然是大模型。小模型只负责提出候选,大模型自身的计算依旧是最终输出的来源[1]。省下来的时间来自工作安排方式的改变,而不是用便宜模型替掉昂贵模型:推测解码不是让模型给出「差不多」的答案,而是让同一个答案更早到手。实际能省多少时间,取决于小模型的候选与大模型本会给出的结果吻合到什么程度,所以收益不是一个固定数字,而是取决于所搭配的这一大一小两个模型。

注释与来源

  1. Fast Inference from Transformers via Speculative Decodinghttps://arxiv.org/abs/2211.17192

引用本页: 推测解码(Speculative decoding). TellWorld, https://www.tellworld.net/zh/learn/speculative-decoding. 更新于 2026-11-07