首页 > 商务> 正文

今热点:让AI草稿模型学会"照镜子":训练时就知道自己会不会被打回

2026-09-10 17:33:33来源:科技行者

让AI草稿模型学会"照镜子":训练时就知道自己会不会被打回,草稿,信号,实验,推理,大模型,照镜子

你有没有想过一个问题:为什么现在的大语言模型回答问题越来越快了,但内部其实还是那个笨重的大模型在工作?


【资料图】

答案是有一个小模型在帮大模型"打草稿"。这个技术叫投机解码,最近几年是大模型加速推理的当红招数。但这篇论文发现了一个一直被忽略的漏洞:草稿模型的训练方式,压根没搞懂自己在被怎么"验收"。这个漏洞一旦补上,加速效果直接多出接近一成。

先搞懂投机解码在干什么

大语言模型生成文字的方式很笨。它每吐出一个字,都要把整个几十亿甚至上千亿参数的大脑筋跑一遍,算出下一个字该是什么。这就好比让一位诺贝尔奖得主每写一个字都要重新审视整篇论文的逻辑,速度自然慢。

投机解码

投机解码:让一个轻量的"草稿模型"先快速猜出接下来几个字,再由大模型一次性检查这些猜测对不对。

这个思路的巧妙之处在于,大模型验证多个候选词的成本,和验证一个词的成本差不多,都是一次前向计算。所以只要草稿模型猜得准,大模型就能一次批发式地确认好几个字,省下大量重复计算。

但这里有个关键规则:验证是按顺序来的,草稿模型吐出的候选词序列,大模型会从第一个开始逐个核对。只要某一个位置被拒绝了,后面所有的候选词,不管猜得多准,通通作废,必须从这个位置重新开始下一轮草稿。

这就是问题的核心。草稿模型的每一个字,能不能真正为最终的生成提速做贡献,完全取决于它前面的字有没有全部通过验证。哪怕第十个字猜得完美无缺,只要第三个字被拒绝了,第十个字的努力全部白费。

现在市面上最强的两种草稿模型训练方法,EAGLE-3和DFlash,都没有把这个规则放进训练目标里。它们训练草稿模型的方式,说白了就是让草稿模型模仿大模型每一个位置该说什么词,是一种逐字对齐的模仿学习。这套训练逻辑完全不知道验证是有顺序性的,也完全不知道每个样本实际上是在哪个位置第一次被拒绝的。

这就好比一个学生在准备一场特殊的口试,规则是老师会依次提问,一旦某道题答错,后面所有正确答案都不算分。可这个学生复习的时候,只是机械地把每道题的标准答案背下来,权重还是提前定好的,比如第一题背得最认真,第十题随便应付。他完全没有针对"一旦某题答错后面全部清零"这个规则去调整复习策略。更麻烦的是,每个学生实际考试时答错的位置是不一样的,有人第二题就翻车,有人能扛到第八题,但复习计划却是所有学生统一执行同一套,根本不管各自的翻车点在哪里。

论文的作者们正是从这个错位里找到了突破口,他们提出了一个叫VAT的训练框架,专门解决这两处脱节。

VAT怎么把"验收规则"塞进训练里

VAT

VAT(Verification-Aware Training,验证感知训练):一种只改动训练目标、不改动模型结构的插件式方法,核心思路是在训练的每一步都模拟一次真实的验证过程,把验证的结果变成额外的监督信号。

具体怎么模拟验证?训练时草稿模型和大模型会同时给出对每个位置的预测分布,论文借用了投机采样里的经典公式,按概率比较来判断某个位置的候选词"会不会被接受"。这个判断结果不是随便算的,它就是真实推理时大模型验证草稿词的那套数学规则,只是提前搬到了训练阶段来跑一遍。

一旦某个位置被判定为不接受,那从这个位置往后,所有位置都被标记为"拒绝",即便后面的词单独看预测得再准。这个标记方式完全复刻了真实推理时的连锁反应,第一次拒绝出现在哪,后面全部清零。

有了这套模拟结果,VAT做了两件事。

第一件事,加一个验证头

验证头

验证头:一个轻量级的二分类器,架在草稿模型的隐藏状态上,专门预测某个位置是不是会通过验证,训练时用模拟出来的接受或拒绝标签来监督它,推理阶段默认不需要用它。

为什么要单独加这么个东西?因为原来的训练目标只让草稿模型学"这个位置该输出什么词",却从来没有告诉它"你这个位置的输出,到底会不会真正影响最终的验证结果"。这两件事听起来像是一件事,其实差别很大。想象两个位置,一个是前面所有词都顺利通过验证的位置,它的正确预测能实实在在延长通过验证的序列长度;另一个位置前面已经有词被拒绝了,不管它自己预测得多准,都对最终结果没有任何贡献。原来的训练方式完全分不清这两种情况,给它们的梯度信号是一样的。验证头就是专门用来区分这两种情况的,它逼着草稿模型的隐藏层学会去表达"我这一步是不是真的有意义"这种信息。

论文里做了个实验很有说服力:加了验证头之后,训练过程中草稿模型第一次被拒绝的位置会稳步往后移,说明草稿模型确实学会了让更多连续的词通过验证。更微妙的是,那些已经处于"拒绝区"的位置,也就是排在第一次拒绝之后的词,它们和大模型预测一致的比例,在没加验证头时会随着训练慢慢下滑,加了验证头之后却能稳定住,即便这些位置随着训练推进变得越来越靠后、上下文越来越难预测。这说明验证头带来的信号和普通的逐字模仿信号并不冲突,反而让整个草稿模型学到的东西更泛化。

第二件事,改权重分配的锚点

原来的训练里,每个位置的损失权重是提前设好的固定曲线,比如EAGLE-3用0.8的k-1次方来递减,DFlash用一个指数衰减公式,意思都是越靠前的位置权重越高。这背后的直觉很朴素,越靠前的词越容易被接受,所以更值得重视。

但问题是,这套曲线是从第一个位置开始算衰减的,跟每个样本实际在哪里翻车完全无关。

VAT提出的验证感知加权

验证感知加权:把每个样本真实的首次拒绝位置作为分界点,分界点之前的所有位置统一给满权重,分界点之后再套用原来的衰减曲线,但衰减的起点从第一个位置平移到了这个分界点。

换句话说,如果一个样本运气好,草稿模型连续十个词都对了,第十一个才翻车,那前面十个词都该拿满权重,因为它们确实为最终结果做出了贡献。原来那种"从第一个词开始衰减"的做法,会不公平地低估这十个正确词的价值。而如果另一个样本第二个词就翻车了,那从第二个词往后就该开始衰减,而不是像原来那样死板地套用一条对所有样本一视同仁的曲线。

这里可以拿一个具体的场景来体会一下这个设计的必要性。假设一个工厂的质检流水线,规则是产品一旦某个环节检测不合格,后面所有环节的检测结果全部作废,必须返工重来。工厂原来的做法是,不管每批产品实际在哪个环节出问题,一律用同一张固定的权重表来衡量整条流水线的表现,越靠前的环节权重设得越高。可如果某批产品直到第八个环节才出问题,前七个环节明明干得漂漂亮亮,却因为权重表规定"第七环节权重已经掉到很低了"而被低估了它们的真实贡献。反过来,如果某批产品在第二个环节就出问题,那第三到第七环节的检测结果原本就该被清零,权重表却还煞有介事地给它们分配不低的权重,这纯粹是在浪费训练资源。VAT做的事情,就是让权重表根据每批产品实际出问题的环节动态调整锚点,而不是死守一张对所有产品通用的固定表。

论文用消融实验验证了这个设计的价值。把权重方案换成一个"一刀切"版本,也就是第一次拒绝位置之后直接给零权重,结果比原来的固定衰减方案还差,速度从4.27倍掉到2.44倍。这说明完全抹掉拒绝之后的学习信号是不行的,那些位置虽然不直接决定这一轮的验证结果,但仍然携带着有用的训练信息。而只是把权重曲线的起点平移到拒绝位置,不完全抹除,才是最优解。

最后VAT把两种损失也结合起来用,既用大模型输出的概率分布做软标签的知识蒸馏,也用大模型实际采样出的词做硬标签的直接监督。论文的消融实验显示,这种软硬结合的方式比单用一种标签效果更好,说明让草稿模型同时学"大模型大概率会说什么"和"大模型这次具体说了什么",是两种互补的信息。

VAT改的地方,说到底就是训练时算损失函数的那几行代码。它不动草稿模型的网络结构,不动大模型本身,也不动推理时的解码流程,是一个可以直接插进现有训练流程里的补丁。

实验结果说了什么

论文在三个不同规模的大模型上验证了VAT,分别是Qwen3的4B和8B版本,以及LLaMA-3.1的8B版本,同时套用在两种不同的草稿模型架构上,一种是自回归式的EAGLE-3,另一种是基于扩散模型并行生成候选词的DFlash。评测覆盖了数学、代码、聊天三大类任务,用的是GSM8K、MATH-500、HumanEval、MT-Bench这类业内常见的评测集。

核心指标是平均接受长度,也就是每一轮草稿平均能有多少个词真正通过大模型验证,这个数字越大,说明加速效果越好。另一个指标是相对于普通逐字生成的实际加速倍数。

在Qwen3-4B上,EAGLE-3原本的加速倍数是4.07倍,接受长度平均6.28个词,加上VAT之后加速倍数提升到4.39倍,提升幅度接近8%,接受长度提升到6.78个词。DFlash原本是4.54倍加速,接受长度5.73,加上VAT之后变成4.81倍加速,接受长度6.08。放到Qwen3-8B上,DFlash的接受长度提升幅度达到了11.4%,是所有组合里增幅最大的一个。这些数字背后的意思很直接:不改一行模型结构代码,光靠改训练时的损失函数,就能让同样的草稿模型在实际使用时快出将近一成。

而且这个提升是相当稳定的,不管换成哪个目标大模型,不管用自回归式草稿还是扩散式草稿,VAT都带来了正向收益,没有出现"在这个模型上有效,换一个就失效"的情况。这说明验证感知训练触及的是投机解码这个技术本身的底层逻辑漏洞,而不是针对某个具体架构打的补丁。

验证头还能干点别的

论文里还发现了一个额外的用法。验证头本来是训练时的辅助工具,推理阶段理论上不需要它,但它训练出来的"预测接受概率"这个能力,其实可以拿来当一个廉价的预判工具。

具体做法是,在推理阶段,让验证头预测一下草稿序列大概会在哪个位置被拒绝,如果预判某个位置大概率会翻车,就干脆不把后面的候选词送给大模型去验证,直接省下这部分计算量。论文测出验证头预判的翻车位置和大模型实际验证结果之间的平均误差只有1到2个词左右,相当精准。

用这个技巧之后,DFlash在代码类任务上的加速倍数从4.83倍进一步提到4.97倍,接近用"上帝视角"的理论上限5.20倍。这说明验证头学到的东西不只是训练时用来调整模型参数的辅助梯度,它本身也承载了相当准确的"这段草稿靠不靠谱"的判断力,是可以直接拿出来复用的副产品。

这套方法带来的训练成本增加也不算大。论文测了一下,在EAGLE-3上加VAT只让每一步训练时间多了1.2%,DFlash上多了6.1%,差异主要来自DFlash原本没算过大模型的完整输出分布,加了VAT之后需要多跑一次大模型的输出层。但这些成本都只发生在训练阶段,推理时用户完全感受不到任何变化,唯一的感受就是回答变快了。

Q&A

Q1:VAT是什么?

A:VAT全称Verification-Aware Training,是一种只改动训练目标、不改动模型架构的插件式训练框架,核心思路是训练时模拟大模型的验证过程,把验证结果作为额外的监督信号,帮草稿模型学会预判自己会不会被拒绝。

Q2:VAT能带来多大的加速效果?

A:论文实验显示,VAT能让平均接受长度最高提升11.4%,实际推理速度最高提升8.7%。比如在Qwen3-4B上,EAGLE-3的加速倍数从4.07倍提升到4.39倍,DFlash从4.54倍提升到4.81倍。

Q3:VAT需要改动模型结构或者大模型本身吗?

A:不需要。VAT只修改训练阶段的损失函数,新增一个轻量验证头和一套动态权重分配方式,草稿模型架构、目标大模型和推理解码流程都保持不变,可以直接套用在现有的投机解码方法上。

关键词: 草稿 信号 实验 推理 大模型 照镜子

责任编辑:hnmd004