微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 在线策略还是离线策略?一场关于AI蒸馏训练的系统性拆解

在线策略还是离线策略?一场关于AI蒸馏训练的系统性拆解

2026-10-29 09:28
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-10-29 09:28 • 科技行者

你有没有想过,教一个学生最好的方式,是让他自己做题然后老师批改,还是直接把老师做过的题目和答案给他背?

这个问题放在大语言模型的训练里,最近两年吵得特别凶。一派人坚信,让模型自己生成内容再学习(这叫"在线策略")比直接喂现成数据("离线策略")要高级得多,理由是能减少遗忘、让参数更新更稀疏、泛化能力更强。这个说法流传很广,甚至成了很多团队选择训练方案的默认依据。

但剑桥大学的三位研究者看了一圈这些证据后,觉得哪里不太对。

**问题不在于结论错,而在于没人真正把变量分开过**

你去对比监督微调(SFT)和强化学习(RLVR)的效果,会发现一个麻烦事:这两种方法不只是数据来源不同,连训练目标、监督信号的密度、优化流程全都不一样。

打个比方,这就像你想知道两个篮球运动员谁投篮更准,结果一个人用的是旧款篮球在室内场馆投,另一个人用新款篮球在室外场地投,风向、场地弹性、球的手感全不一样。你最后看到的分数差异,到底是因为"投篮技巧"不同,还是因为篮球和场地本身就不同?根本说不清楚。如果不把这些变量拆开,所谓"在线策略更好"的结论就建立在一堆混杂因素上,随时可能是误诊。

研究者们选择了一个更干净的实验场:强到弱的知识蒸馏。

知识蒸馏*:让一个强大的"教师"模型把能力传给一个较弱的"学生"模型的训练方法。

在这个场景里,他们可以把"用谁的数据训练"这个变量单独拎出来,其他条件全部锁死。教师模型是固定的,学生模型架构固定,唯一变化的是:学生到底是在教师生成的轨迹上学习(离线),还是在自己生成的轨迹上接受教师打分(在线)。

这篇论文的核心发现一句话概括就是:**在严格控制其他变量后,在线策略并没有表现出什么普遍优势**。真正决定模型表现的,是另外两个常常被忽略的因素:KL散度的方向,以及学习率。

这个结论听起来可能有点反直觉,毕竟"在线学习更稳"这个说法已经被不少论文反复提及。但当你把变量真正拆干净之后,事情就没那么简单了。

**什么是"策略"和"KL散度方向"**

在往下讲之前,得先把几个概念说清楚。

rollout策略*:指的是用来生成训练数据(也就是模型要学习的文本序列)的那个模型。如果学生自己生成文本内容,这叫"在线蒸馏"(OnPD);如果用教师生成的现成文本,这叫"离线蒸馏"(OffPD)。

KL散度*:Kullback-Leibler散度,一种衡量两个概率分布有多"不像"的数学工具。在这里,它衡量的是学生模型和教师模型在每个词的预测概率上差多远。

因为KL散度不对称,所以存在两个方向。前向KL*:计算方式是让教师分布打头阵,衡量学生有没有覆盖住教师认为重要的所有选项,它会惩罚学生"漏掉"教师看重的内容,所以被称为"模式覆盖型"。反向KL*:反过来,以学生自己的分布为主导,它更在意学生有没有把概率浪费在教师根本不认可的选项上,所以被称为"模式寻找型"。

这里有个很多人会想当然的误区:大家习惯把"离线蒸馏"和"前向KL"绑在一起,把"在线蒸馏"和"反向KL"绑在一起。研究者指出,这种配对只是历史习惯,并非必然。

为什么会有这种配对习惯?其中一个原因在数学上说得通:如果你把序列级别的KL散度做链式分解,恰好会分解成"教师轨迹配前向KL"和"学生轨迹配反向KL"这两种形式。但另一个原因纯粹是工程上的偷懒,如果你每次只能从单个采样词元估计KL值(而不是算完整词表),教师采样自然对应前向KL的无偏估计,学生采样自然对应反向KL的无偏估计。

论文里特别强调了一点:他们是在整个词表上算KL散度,而不是单采样估计。这意味着KL方向和rollout策略在他们的实验里是完全独立的两个旋钮,可以任意组合,打破常规配对。这才是整篇论文最关键的实验设计巧思:**把这两个本该独立但常年被捆绑在一起的变量彻底拆开**。

**第一组实验:当你把三个变量真正分开会发生什么**

研究者在Llama 3和Qwen2.5两个模型家族上,挑了医学、科学、算术三个推理任务,系统地测试OnPD和OffPD、前向KL和反向KL、两种学习率(1×10??和5×10??)的所有组合。

结果是什么样?

在最终任务准确率上,OnPD和OffPD的表现几乎没有差别,最好情况下分别是72%和73%。真正拉开差距的是KL方向:前向KL在各种配置下稳定保持在71%到73%之间,而反向KL的表现从35%到72%剧烈摇摆,对学习率极其敏感。

这就好比两个厨师同样用一道菜的两种配方做菜,结果发现"用谁家的食材"几乎不影响口味,但"用哪种火候"的差异却让菜品质量天差地别。如果你只盯着"食材来源"这个变量去总结经验,你永远找不到真正的问题所在。

接下来是遗忘问题。

研究者测量了模型在训练新任务之后,在七个完全不相关的任务(比如常识问答、代码生成、指令遵循等)上表现下降了多少,这被称为灾难性遗忘*:模型学习新任务后,把以前学到的能力忘掉的现象。

如果在线策略真的能"减少遗忘",那么在相同KL方向和学习率下,OnPD应该比OffPD保留更多的旧能力。但实验数据显示,学习率低的时候,平均性能最多下降1.3个百分点;学习率高的时候,下降幅度直接飙到11.2到14个百分点。rollout策略带来的差异,相比学习率的影响,简直是小巫见大巫。

更有意思的是,当用前向KL配上较低学习率时,模型几乎不会遗忘旧能力,同时还能拿到不错的新任务成绩。这说明"遗忘"不是取得好成绩必须付出的代价,而是一个可以靠调学习率规避的陷阱。

**参数更新的"稀疏性"也不是在线策略的功劳**

另一个被广泛讨论的说法是,在线策略会让参数更新更"稀疏",意思是训练过程中真正被改动的参数比例更小,这被认为有利于保留模型原有的知识结构。

参数更新稀疏性*:衡量模型训练前后,参数数值变化幅度小于某个极小阈值的比例,比例越高说明"动"的参数越少。

实验结果同样没有支持这个说法。学习率低的时候,四种配置的稀疏度都在85%到90%之间,差距很小;学习率高的时候,全都掉到52%到60%左右。换句话说,**决定参数更新稀疏不稀疏的,还是学习率,不是rollout策略**。

研究者还专门针对Countdown算术任务做了一次更细致的学习率扫描,从1×10??一路加到6×10??。随着学习率升高,遗忘程度和参数稀疏度几乎呈线性关系地变差,这个趋势在OnPD和OffPD两种设定下都几乎一致,进一步印证了学习率才是幕后真正的操盘手。

**为什么前向KL那么"扛造",反向KL却那么"娇气"**

发现这个现象之后,研究者没有止步于"看到了差异",他们接着去挖掘背后的数学原因。

他们对前向KL和反向KL的梯度做了推导。前向KL对学生模型logit(未归一化的预测分数)的导数是"学生概率减去教师概率",这个数值永远落在负一到正一之间,是个有边界的东西。这意味着,只要rollout策略引起的轨迹分布变化不大,前向KL产生的梯度变化也只会按比例小幅波动,不会突然爆炸。

反向KL的情况就完全不同了。它的导数里包含一个对数概率比值,如果学生给某个词的概率很小而教师给的概率也很小,但两者比值差得特别大,这个对数比值就可能变得极其巨大,没有任何边界限制。

这就像两种计价方式。前向KL像是按固定费率收费的出租车,无论路线怎么变,费用变化都在可控范围内。反向KL则像是按浮动汇率结算的跨境交易,一旦汇率剧烈波动,哪怕交易金额变化很小,结算结果也可能天差地别。如果不对这种浮动汇率加以限制,整个交易系统随时可能因为一次极端波动而崩溃,这恰好解释了为什么反向KL训练在缺乏梯度裁剪保护时特别容易"炸"。

为了验证这个理论,研究者设计了一个连续的"rollout策略光谱",用参数λ在教师策略和学生策略之间连续插值,甚至往两端外推,构造出"更偏向教师喜欢的词"或"更偏向学生喜欢的词"的采样分布。

结果完美印证了梯度分析:前向KL在整个光谱上保持准确率稳定在80%以上,波动幅度只有5.2个百分点;反向KL则随着λ变化剧烈起伏,在偏向教师的区域(λ小于零)时表现经常崩溃,只有在偏向学生的区域才能恢复到接近前向KL的水平。

**低KL值背后可能藏着一个混乱的学生**

这里有一个特别值得拿出来单独说的细节,属于那种让人意外的实验发现。

研究者发现,前向KL可以写成"交叉熵减去教师分布的熵"。这意味着一个很小的前向KL数值,完全可能是两个很大数字互相抵消的结果,而不一定代表学生预测得很"自信"。

在MedReason和Science两个数据集上,研究者监测了OnPD加前向KL训练过程中,教师熵、交叉熵和KL值随训练步数的变化。他们发现,在训练第10到20步左右,KL值变得很小,但教师的预测熵和交叉熵都逼近了词表规模的理论上限(大约12个纳特,相当于十几万种可能的词元选择)。

换句话说,**这个阶段学生生成的内容其实相当混乱**,学生和教师在这些位置的预测几乎都接近均匀分布,双方"谁也不比谁更确定",只是因为两边都很混乱所以KL值碰巧很低。

有意思的是,随着训练推进,这种高熵混乱区域会沿着生成序列往后推移,仿佛学生先把句子开头部分学明白了,从而让教师能针对更靠后的位置给出有效指导,这又反过来帮助学生进一步改善后续内容的生成。这是一种自我强化的学习轨迹:早期token学好了,才能解锁后面token的有效监督信号。

更让人意外的是,尽管训练过程中出现了这种高熵混乱,最终模型的表现却出人意料地好,在Science上平均达到37%准确率,MedReason上达到56%,几乎没有遗忘旧能力。研究者后来发现,这背后的原因是采样温度的差异:训练用的采样温度是1.0,但评测时用的是0.5。他们专门做了温度敏感性测试,发现只要把采样温度降到0.7以下,准确率就能恢复到较高水平,一旦提高到1.0,准确率骤降。

**在线数据真正发光的地方:应对更难的任务变体**

说到这里,你可能会觉得这篇论文的结论就是"在线策略没什么用"。但事情没那么绝对。

研究者在Countdown算术任务上做了进一步测试,用三个数字的简单版本(Countdown-3)训练模型,然后不做任何额外训练,直接拿去测试四个数字的更难版本(Countdown-4E)。

结果显示,**无论用前向KL还是反向KL,只要rollout策略越偏向在线(λ越大),模型在更难任务上的pass@k准确率就越高,幅度能达到10到15个百分点**。这是整篇论文里,在线数据第一次表现出明确且稳定的优势。

这个发现让我想到一个场景。一个学生如果只靠死记硬背标准答案(完全离线),遇到稍微变形的题目可能会束手无策;但如果他在做题过程中,哪怕犯错了也在不断根据老师的反馈调整自己的思路(更偏在线),反而更容易把解题思路泛化到新题型上。这背后的代价和收益是明确的:在线策略在同分布任务上未必占优,但遇到分布外的难题时,这种"亲自试错"攒下的经验会显出价值。

不过,这个优势有个重要的限制条件。研究者接着用这些蒸馏后的模型去做后续的强化学习训练(RLVR),结果发现:**最初在难任务上表现更好的在线策略检查点,未必是后续强化学习的最佳起点**。反向KL配低学习率训练出的检查点,在RLVR阶段提升很快,但很快就出现了奖励崩溃;而前向KL训练出的离线检查点,尽管一开始在Countdown-4上准确率接近0,但在后续RLVR训练中稳步提升,最终反超。

这提醒我们一个经常被忽视的问题:**单看一个阶段的表现来判断"哪种方法更好",可能会在多步骤训练流程里得出错误结论**。

**一个意外的发现:反向KL加在线数据能抑制"学坏毛病"**

最后一个值得单独说的实验,是关于"风格迁移"的。

研究者故意让教师模型只用西班牙语进行推理,然后观察学生模型会不会被这个无关的"口癖"带偏。结果发现,只有在线蒸馏配上反向KL这一种组合,学生几乎完全没有被带偏,依然用英语作答,而其他三种组合(包括OnPD配前向KL)几乎都百分之百地被教师的西班牙语风格"传染"了。

研究者给出的解释是:当学生自己生成英语前缀的时候,教师模型即便被指示说西班牙语,在面对这个英语上下文时依然倾向于给出英语的续写(因为教师本身理解英语)。反向KL的"模式寻找"特性让它只需要匹配教师支持的这个英语续写模式,而不需要像前向KL那样强行覆盖教师可能支持的所有模式,包括西班牙语模式。

这就像一个翻译助理,如果上级要求他必须全程说法语,但他发现对话对象说的是中文时上级其实能听懂并用中文回应,这位谨慎的助理可能会选择性地只跟随这个"听得懂中文"的模式,而不会强行把每一句话都翻译成法语。

**结果经得起折腾吗:三项稳健性检验**

研究者没有满足于一组实验结果,还专门做了三项额外检验,确保结论不是某个具体设置的巧合。

第一项检验去掉了梯度裁剪(训练中限制梯度数值不超过某个阈值的保护机制)。结果显示,反向KL的表现在没有保护的情况下显著恶化,而前向KL依然相对稳定。这进一步验证了前面梯度分析的结论:反向KL的梯度本身就缺乏边界,梯度裁剪相当于给它上了一道安全阀。

第二项检验把全词表KL换成了更省内存的单样本采样估计方式。结果依然一致:前向KL稳健,反向KL敏感,学习率决定遗忘和稀疏度。

第三项检验换了一个需要更长推理链的数学任务(Numina-MATH,教师回答平均长度达到622个词元,远超原来三个任务的94到135个词元)。在这个场景里,反向KL配在线数据和低学习率反而取得了最高的MATH-500准确率,这暗示在更难、需要更长推理链的任务里,在线数据可能有被重新评估价值的空间。不过由于这项实验每个条件只跑了一次,研究者谨慎地把这个发现标注为"值得关注但有待验证"。

**几个数字组成的全景图**

把整篇论文的核心数据放在一起看会更清楚。

在三个推理任务的平均表现上,OnPD最好成绩72%,OffPD最好成绩73%,几乎打平。KL方向的差距则是71%到73%(前向)对比35%到72%(反向),差距明显更大。

遗忘幅度方面,低学习率下所有组合的OOD(分布外)性能变化不超过1.3个百分点,高学习率下普遍下降11到14个百分点。

参数更新稀疏度,低学习率下稳定在85%到90%,高学习率下跌到52%到60%。

在Qwen2.5模型家族上重复整套实验,得到的结论高度一致,说明这不是Llama系列的特例。

写在后面

读完这篇论文,最触动我的其实不是"在线策略不一定更好"这个结论本身,而是研究者解决问题的方式。他们没有急着反驳"在线策略好"的主流说法,而是先停下来问:这个说法建立在什么样的对比之上?是不是把太多变量混在了一起?

这种"先拆解变量再下结论"的态度,其实适用于很多领域,不只是机器学习。很多我们习以为常的经验判断,比如"晨跑比晚跑更健康""早睡的人更专注",背后往往也混杂了作息、饮食、工作强度等一堆没被控制的变量。这篇论文给我的提醒是:当一个结论听起来特别"干净利落"的时候,恰恰该多问一句,这个结论是不是把几件事捆在一起说了。

另外一个让我反复琢磨的细节,是那个"低KL值掩盖高熵混乱"的发现。这意味着我们平时拿来当作训练健康度指标的某个数字,可能根本不代表我们以为的那个意思。一个数值很低,可能是两个人都很"迷茫"导致的巧合,而不是两个人都很"清楚"。这种"指标失真"的问题,在很多依赖代理指标的系统里都存在,值得多留一个心眼。

论文结尾处提到的那个未解决的问题也挺值得深想:当你把一个蒸馏方法的效果放进一个更长的训练流程里(比如先蒸馏再强化学习),今天看起来最优的选择,未必是整条链路上最优的起点。这是不是意味着,我们评估任何训练方法时,都应该默认考虑"它对下一阶段的影响",而不只是看它自己这一步的得分?这个问题留给未来的研究者,也留给每一个在设计多阶段系统的人。

Q&A

Q1:在线蒸馏和离线蒸馏到底有什么区别?

A:在线蒸馏是让学生模型自己生成文本,再由教师模型打分指导;离线蒸馏是直接用教师模型生成好的文本让学生学习。论文发现这两种方式在最终任务准确率、遗忘程度和参数更新稀疏度上差异都不大,真正起决定作用的是KL散度方向和学习率。

Q2:前向KL和反向KL哪个更适合蒸馏训练?

A:论文发现前向KL对训练数据来源的变化非常稳健,无论用什么策略生成数据,表现都很稳定;反向KL则对数据来源很敏感,尤其偏向学生自己生成的数据时效果更好,但在某些情况下容易训练不稳定甚至崩溃。

Q3:在线策略在什么情况下真的有优势?

A:论文发现在线策略在泛化到更难的任务变体时表现更好,比如用简单算术题训练后去测试更复杂的变体,在线数据能带来10到15个百分点的提升。不过这个优势在后续强化学习训练阶段并不一定能持续保持。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-