统一多草稿与块验证,33B 平均加速 2.12 倍且验证开销降一半

2026-10-24

人民大学团队把多条独立草稿和贪婪块验证合成 SpecTr-GBV。33B 配 1.3B 草稿时平均加速比 2.12,高于标准投机解码的 1.64,验证耗时少一半以上。

这篇在解决什么

自回归一次只吐一个 token,目标模型每一步都要跑完整的前向。投机解码让小模型先写草稿,大模型再决定收多少,收下来的 token 不用重算。单条草稿常在第一个对不上的位置断掉,后面全部作废。

两条改进一直分开做。SpecTr 一次抽多条互不影响的草稿,每个位置用最优传输挑一个能接受的 token。候选变多了,验收仍是一位一位进行。某一列全被拒绝,后面的草稿就丢掉。Sun 等人证明这种逐位置验收达不到单轮期望接受长度的上界,并在单条草稿上给了贪婪块验证:把前缀当成一块一起验,留下最长能通过的子块。

方法

SpecTr-GBV 把多条草稿和整块验收放进同一个最优传输问题。给定前缀,草稿模型抽出 K 条长度为 L 的序列,各条独立、同一分布。接受长度定义为:至少有一条草稿的前 i 个 token 与目标前缀完全一致的最大 i。优化要在条件独立的配对方式里,把这个长度的期望拉到最大。条件独立是因为各条草稿分开采样,不能互相改写。

子块的联合分布拿不到,对词表做线性规划也太贵,所以不直接解这个传输问题。算法改成逐条草稿做贪心块验证。对每一条,从当前已经接受的长度往后,按公式计算更长子块的接受概率,再抽一个 0 到 1 的随机数决定收不收。收到更长的前缀就更新记录。否决过的子块记下来,后面再碰到就跳过。全部走完,留下最长的子块。整段都通过,就从目标分布再采一个 token。没走完,就从残差分布补一个 token,把目标概率里已经被草稿覆盖的质量拿掉。

下一轮之前,未接受位置上的目标分布要改写,跨轮次输出才仍等于目标模型自己采样。理论结果是:草稿条数固定时,这套流程达到独立采样框架里期望接受长度的上界。条数增加则上界升高,趋于无穷时收到 L,等于 1 时退回贪婪块验证。单次选择的计算量跟词表成正比。SpecTr 还要为缩放系数做二分搜索,多一个对数项。

结果

主实验用 DeepSeek-Coder 的 33B 做目标、1.3B 做草稿。草稿长度 12,温度 0.4,草稿数 3,五个数据集各 1,000 条提示。块效率是每次串行调用目标模型平均敲定的 token 数。加速比是自回归墙钟时间除以该方法的墙钟时间。

方法平均块效率平均加速比
自回归11
标准投机解码7.641.64
SpecTr8.391.96
贪婪块验证7.831.67
SpecTr-GBV8.592.12

相对标准投机解码,平均块效率高 12.4%,加速比高 29.3%。相对 SpecTr,块效率高 2.3%,加速比高 8.2%。相对单草稿的块验证,块效率高 9.7%,加速比高 27.0%。HumanEval 上加速比从 SpecTr 的 2.21 到 2.50,GSM8K 从 2.26 到 2.46。这两个格子的标准差在 0.30 到 0.58,和差距同一量级。论文没有做显著性检验。

墙钟拆开之后,差别主要不在多接住几个 token。33B 在 GSM8K 上,相对 SpecTr,总时间从 19.24 秒降到 18.03 秒,验证开销从 1.01 秒降到 0.47 秒,少了 53.5%,接受率从 0.521 到 0.555,吞吐从 27.48 提到 29.64 token/s。HumanEval 上验证时间少了 74.8%。

草稿加长,块效率一直涨,加速比先涨后掉。33B 在 HumanEval、草稿数 3、温度 0.4 时,长度 20 的加速比是 2.87,长度 24 掉到 2.68,块效率却从 14.58 升到 16.52。草稿自己的算力把目标模型省下的时间吃回去了。草稿数从 1 加到 7,接受率上升,和上界随条数升高一致。温度取 0.1、0.4、0.7,块效率和加速比几乎不动。

目标模型换成 6.7B、草稿仍是 1.3B、长度 8 时,五个数据集的平均加速比只有 1.20,Alpaca 上是 1.03。CodeLlama-13B 配 7B 草稿,平均加速比 1.42。Vicuna-13B 配 7B,平均 1.30。Vicuna 在十亿词基准上,标准投机解码的加速比是 0.91,比纯自回归还慢,SpecTr-GBV 刚刚到 1.01。

为什么重要

在草稿必须独立采样的前提下,多草稿和块验证可以同时达到该框架里的最优期望接受长度,验证也比 SpecTr 便宜。部署时更该看目标模型和草稿差多远。33B 配 1.3B,平均墙钟大约 2.1 倍。6.7B 配 1.3B,往往只剩一成出头。草稿长度不是越长越好,HumanEval 上加速比在长度 20 附近见顶。

局限与存疑

最优性锁在独立采样的草稿里。树状草稿、检索草稿、按前文改写的草稿不在这个上界内,文中也没有和 SpecInfer、Sequoia 一类系统比较。相对 SpecTr,块效率的涨幅只有几个百分点,多个单数据集的差距落在标准差里。加速比的优势,有相当一部分来自去掉对数项搜索,以及略高的接受率,不是来自长出一大截的接受块。输出质量只由分布保持定理保证,表里没有 HumanEval 通过率,也没有 GSM8K 准确率。温度采样下,不同方法的单次输出本来就会不一样。实验模型是 DeepSeek-Coder、CodeLlama 和 Vicuna,没有接上 EAGLE 一类草稿头。

术语

原文与代码

社区讨论

全部论文解读