Rebas Daily PERSONAL AI DAILY — 自动选题 · 核查 · 撰写 NO.076 — 2026-09-18
PAPER H 6 约 7 分钟

废掉的草稿,也能加速推理

推测解码丢掉的并非全是废料:回收被拒绝分支的内部状态,可让下一轮草稿猜得更准。

废掉的草稿,也能加速推理

你请一位助手先拟一段话,再让编辑审稿。编辑划掉后半段时,通常会把废稿扔掉。但那些句子即使不能直接发表,也可能暴露了思路走向,能帮助手把下一稿写得更准。LLM 的推测解码也有一叠这样的“废稿”,只是过去连同背后的计算一起丢掉了。

Jahyun Koo 等人在论文 Carryover Drafting: Recycling Rejected States for Speculative Decoding 中提出 Carryover Drafting:不直接复用被拒绝的词,而是留下主模型处理这些词时产生的隐藏状态——一串代表模型内部理解的数字——供下一轮草稿参考。论文报告,这能提高草稿通过率,并带来实际推理加速。

需要先说明:本文的机制、实验和数字均来自这篇论文,尚无独立信源印证。效果也只适用于论文披露的实验设置,不能直接外推到所有模型和部署环境。

推测解码浪费了什么?

普通自回归生成一次向前计算只产出一个 token——可以粗略理解为一个词或词片段。推测解码换了一种分工:较便宜的草稿模型先连续猜多个 token,较大的主模型再一次并行检查。连续猜对得越多,主模型一次计算能放行的内容越长,生成也就越快。

问题在检查环节。主模型不仅判断“对不对”,还会为整段候选计算内部表示。某个候选不合格后,它不能原样进入最终文本,但主模型为它算出的隐藏状态仍可能含有关于后文的信息。传统做法只保留已接受 token 的状态,其余全部丢弃。

这就像编辑否掉一句话,不等于编辑在阅读它时形成的判断也毫无价值。Carryover Drafting 抓住的正是这个区别:被拒绝的是输出,不一定是计算过程中提炼出的信息。

把废稿放进临时参考区

Carryover 把被拒绝的主模型隐藏状态放进下一轮草稿模型的临时 KV context。KV context 可以理解为模型生成时随手查阅的内部笔记;草稿模型通过注意力机制,自己决定其中哪些信息值得参考。

这套设计刻意控制了改动。论文称,它沿用草稿模型处理已接受状态的原有接口和投影,只增加一个可学习的 embedding——一枚由训练得到的身份标签——用来告诉模型:“这些状态来自被拒绝的分支,不是已经确认的正文。”草稿模型本身及原有投影也会继续微调。

临时笔记不会无限累积。每次验证完成后,新一轮被拒绝状态都会替换上一轮内容;如果整段草稿全部通过,临时区就是空的。其长度最多为一个 proposal block,也就是草稿模型单轮提出的候选块。它不会进入主模型的 KV cache,也不会替代已接受 token 的状态。

论文还比较了几种可回收的信息。直接塞回草稿 token,收益并不稳定;使用主模型预测的 token,改善较小;回收主模型的隐藏状态,在 HumanEval、Math 和 MT-Bench 的接口探测实验中效果最好。不过作者也提醒,这几种信息进入草稿模型的方式不同,因此比较不能完全拆开“信息本身”和“接入方式”的影响。

训练也得见过真正的“废稿”

推理时出现的被拒绝状态,来自草稿模型真实犯下的错误。常规训练只看预先记录的主模型回答,草稿模型接触不到同一种错误现场。如果逐轮生成、验证再继续训练,数据会更贴近推理,却会失去并行训练的效率。

论文提出 parallel draft–verify–draft training。它在一条已记录的主模型回答中抽取多个位置:草稿模型先在每个位置独立提出候选;冻结的主模型并行验证,产出被拒绝状态并确定下一个位置;草稿模型随后带着这些状态再写一次,并用原记录中的后续文本接受训练。梯度只通过最后一次草稿生成。

这样,每个位置都得到一个局部的“起草—验证—再起草”过程,彼此仍能并行。训练没有新造主模型答案,监督信号依旧来自原有记录;中间验证只负责提供更像推理现场的错误状态。

加速没有被额外开销吃掉

论文在 Qwen3-4B 和 Gemma 4 12B 两个主模型上测试,并搭配 DFlash 与一个源自 DSpark、论文称为 Markov 的半自回归草稿器。两者均使用 5 层草稿模型,每轮提出 15 个 token。评测覆盖 8 类数据集,共 844 条提示,并在单张 H200 上通过 vLLM 测量。

相对各自对应的无 Carryover 基线,论文报告平均接受长度提高 6.5%—14.7%。接受长度指主模型每轮能够确认的连续内容,也包括验证后补出的 bonus token。更关键的是,计入额外状态的投影和注意力成本后,端到端 vLLM speedup 仍比对应基线提高 7.9%—14.4%。这里说的是“加速幅度在基线之上又提高多少”,不是相对普通生成获得了 7.9—14.4 倍加速。

翻译任务最突出:个别设置的速度增益达到 28.8%,接受长度增益最高达到 28.6%。论文进一步发现,收益大小与被拒绝分支后来是否重新接近最终文本更相关,而不是简单取决于留下了多少状态。换句话说,真正有用的不是废稿够长,而是它虽走了岔路,却仍保留了通向正确后文的线索。

为什么值得关注

这项工作的价值不只在一个新的加速百分比。它换了一个看问题的角度:验证阶段已经支付的计算,不应只按“接受”或“拒绝”二分。失败候选不能进入答案,但主模型理解它时形成的表示,可能仍是一种可回收资产。

而且,这种收益并未只出现在较弱的草稿器上。论文报告,Carryover 对完全并行的 DFlash 和更重视候选块内部依赖的 Markov 都有效;Markov 在 8 个数据集中的 7 个获得了更大的 Carryover 增益。作者据此提出一种可能性:草稿器越强,它留下的错误分支反而越可能包含可用信息。不过,这仍是论文实验支持的解释,不是已经确立的普遍规律。

局限与未知

  • 回收并非免费。额外状态会增加投影、注意力、显存占用和草稿延迟;论文展示的是特定模型、固定验证长度及单张 H200 环境中的净收益。
  • 论文没有测试 confidence scheduling——按置信度动态改变验证长度——也没有测试树状验证。两者会改变可获得的拒绝状态,训练与推理策略需要重新对齐。
  • “只增加一个 embedding”描述的是新增接口模块,不代表整套系统只有这一项成本。实验中的草稿模型和原有投影仍需微调,Carryover 也额外训练了 3 个 epoch。

供稿材料 SOURCES — 1

← 返回 2026-09-18 · 学术板块