微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

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

首页 当我们还在拼命"追热点"的时候,可能已经错过了更好的答案

当我们还在拼命"追热点"的时候,可能已经错过了更好的答案

2026-11-10 11:53
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-11-10 11:53 • 科技行者

英伟达最近有篇论文,读完让我有点愣住。

现在大语言模型圈子里最火的训练技巧之一叫"在线策略蒸馏"

**在线策略蒸馏(On-Policy Distillation,OPD)**:让一个小模型(学生)不断生成自己的答案,再让一个大模型(教师)来给这些答案打分纠错,用这个纠错信号训练小模型。

这个方法听起来很合理。学生自己写的答案,教师来改,针对性强,比直接抄教师的答案要有效得多。OpenAI、DeepSeek、Qwen团队的最新技术报告里,这几乎已经成了标准操作。

但英伟达这篇论文的标题就在挑事:《我们真的需要在线策略蒸馏吗?在离线学生样本上蒸馏往往更好》。他们测试了17组教师学生模型组合,参数规模从15亿到2350亿不等,发现在14组里,一个更简单、更便宜的替代方法反而打败了OPD,最高能提升13.6个百分点的准确率,训练速度还快了11.4倍。

这不是在吹嘘一个新模型,这是在质疑一个已经被当作行业标准的方法。

**核心问题出在哪**

先说说OPD为什么会被这么多团队采用。

传统的知识蒸馏有个老问题,叫"曝光偏差"。

**曝光偏差(Exposure Bias)**:模型在训练时看到的都是标准答案的延续,但在真正使用时,它要基于自己之前生成的(可能有错的)内容继续往下写,这种训练和使用场景的不一致会导致误差累积。

打个比方,这就像一个人在驾校里学车,教练永远在他正确打方向盘之后才给反馈,从来没见过他打错方向之后车会怎样歪。等真正上路了,一旦打错一次方向,他完全不知道怎么纠正,因为训练时从没遇到过这种"错误延续"的场景。OPD的解法是让学生自己开车(生成自己的答案),教练全程跟着看(教师实时打分),这样学生就能学会怎么从错误里爬出来。

这个逻辑没问题。但问题是,最近好几篇论文都发现了OPD训练过程中的怪现象。学生生成的内容会越写越长,陷入一种反复自我纠正的死循环,写了很多字却迟迟不给出最终答案,甚至写到系统设定的长度上限还没结束。另外,学生写到后面的内容,教师给的指导意见经常是没用的,甚至是有害的,因为学生一旦走偏了,后面写的东西和教师原本的思路已经差太远了,教师这时候给的分数反而成了噪音。

这些观察让作者们提出了一个很直接的疑问:在线采样这件事,是不是对所有的教师学生搭配都有用?还是说,只在某些特定情况下才管用?

**离线方案:一次采样,全程复用**

作者给出的替代方案起名叫"半在线策略蒸馏"。

**半在线策略蒸馏(Semi-OPD)**:在训练开始之前,先用没训练过的初始学生模型,一次性生成所有的训练样本,之后整个训练过程中都反复使用这批固定的样本,不再重新生成。

听起来好像偷懒了,毕竟OPD的核心优势就是"实时跟进学生的变化",而Semi-OPD直接放弃了这个优势,只用最初那个还很菜的学生生成的内容。但训练目标函数其实和OPD完全一样,区别只在于样本来源是固定的还是动态生成的。学生在训练过程中每一步的概率值还是会随着参数更新而变化,所以监督信号本身仍然在进化,只是训练数据不再跟着变了。

这就像两种不同的驾校教学方式。方式一是教练全程跟车,学生每次上路教练都坐在旁边,根据学生当下的驾驶状态随时纠正(这是OPD)。方式二是提前录好这个学生刚拿到驾照时开的几十段路况视频,之后反复用这些视频做复盘教学,每次复盘时教练都根据学生现在的理解水平给出不同深度的点评(这是Semi-OPD)。如果方式二完全不管用,那应该是学生最初开车的样子太差,参考价值太低。但如果学生最初开得还算像样,只是技巧不够纯熟,那复盘这几段视频反而比方式一更稳定,因为方式一里学生可能会越开越野,教练根本来不及纠正所有的坏习惯。

这个方案还有个附带的好处,就是训练效率大幅提升。因为采样和训练被彻底拆开了。先一次性让学生生成所有样本,再让教师给这些样本打一次分,最后拿这批固定数据训练模型,中间不再需要反复调用教师模型和学生模型做在线生成。三个阶段互相独立,每个阶段都能用上全部的计算资源,不用像OPD那样,边训练边生成边打分,GPU资源被分成好几份同时跑。

论文里有张图很直观,在四组不同的教师学生搭配上,Semi-OPD比普通OPD训练快了4.5到11.4倍,比另一个叫Relay-OPD的改进方案快了14到35倍。

**什么时候该用哪个方法**

这才是整篇论文最有意思的地方。作者没有简单地说"Semi-OPD更好",而是去找规律,到底什么情况下OPD赢,什么情况下Semi-OPD赢。

他们引入了一个指标,叫教师学生的"重叠率"。

**Top-K重叠率(Overlap@K)**:在学生生成答案的每个位置,看教师模型和学生模型各自认为"最可能的K个词"里有多少是重合的,重合越多说明两个模型的思维方式越接近。

举个例子,如果你让学生模型和教师模型在同一个句子的某个位置各自列出它们认为最可能的64个候选词,重叠率64%意思是这64个候选词里,大约有41个词是两边都列出来的。这个数字本质上衡量的是教师和学生"想法有多像"。

论文发现,这个重叠率和Semi-OPD相对OPD的优势程度,存在很强的负相关关系,统计上的皮尔逊相关系数是负0.73,这在社会科学和自然科学里都算是相当强的关联了。重叠率低的组合,Semi-OPD赢得更多;重叠率高的组合,OPD才有价值。

这个发现背后的逻辑其实挺好理解。如果教师和学生"脾气很像",那学生自己生成的内容,教师大概率也认同,持续在线采样不会跑偏,反而能让学生越练越贴近教师的水平。但如果教师和学生"性格迥异",学生自己生成的内容教师压根不认可,持续在线采样只会让学生越练越偏,离教师越来越远,这时候固定住最初那批还没跑偏的样本反而更保险。

论文里具体的案例也很说明问题。在重叠率只有58.9%的一组搭配里,随着训练推进,OPD的准确率反而从42%左右掉到了36%左右,出现了明显的性能倒退,而Semi-OPD持续从42%涨到了48%。但在重叠率高达86.8%的另一组搭配里,两种方法的曲线几乎重合,甚至OPD还略微领先一点。

这给了一个很实用的建议。在真正开始大规模训练之前,先花很少的计算成本测一下教师学生的重叠率,如果重叠率偏低,就别迷信OPD这个"行业标准",换成Semi-OPD反而更划算。

**为什么OPD会失灵**

作者继续往下挖,想搞清楚OPD失灵的根本原因是什么。他们提出了一个假设,好的蒸馏需要同时满足两个条件。

一个是对学生而言的"在线性",意思是训练数据要尽量贴近学生自己实际生成内容的分布,这样才能避免前面说的曝光偏差。另一个是对教师而言的"在线性",意思是训练数据也要尽量贴近教师自己会生成的内容分布,这样教师给出的指导才靠谱。

OPD拼命满足第一个条件,却在不知不觉中破坏了第二个条件。

具体是怎么破坏的?论文观察到,对于重叠率低的教师学生组合,学生生成的内容会随着训练持续变长,而且写得越长,偏离教师思路的程度就越严重。换句话说,刚开始写的那几百个字可能教师还认同,但写到几千字之后,学生已经完全在自己的轨道上狂奔了,教师这时候给的意见已经没有参考价值,甚至是在强化错误的推理方向。

这就好比一个新手厨师在跟着名厨学做一道复杂的菜。前几步按照食谱走,名厨点头说不错。可是菜做到一半,新手突然自己发明了一个步骤,后面的所有操作都是基于这个自创步骤往下延伸的,这时候名厨再怎么点评后面的操作,意义都不大了,因为整道菜的根基已经歪了。如果不处理这种"跑偏之后越跑越远"的情况,持续让名厨评价新手自己乱发挥出来的后续步骤,只会把新手训练得更加偏离正道。

那是不是简单地把学生写的内容截短就能解决问题?作者专门做了实验来验证,答案是不能。他们把Semi-OPD使用的样本砍掉只保留前四分之一,同时按比例增加训练样本数量来保证总训练量不变,结果发现只保留前四分之一的效果明显比保留完整轨迹要差,收敛速度慢,最终准确率也低。

这说明问题不只是"后面写得太长不好",而是推理过程中每个阶段的监督信号都很重要,简单粗暴地砍掉后半段,等于把整个推理链条里关键的几步给删掉了。

真正起作用的是Semi-OPD天然具备的一个特性,它用的是学生在还没开始训练、水平还比较"原始"的时候生成的内容,这些内容通常本身就比训练到后期的OPD样本短,但又覆盖了完整的推理过程。这种"短而完整"恰好同时满足了对学生的在线性(毕竟确实是学生自己生成的)和对教师的在线性(因为内容短,没有机会跑偏到教师认不出来的地方)。

论文还专门统计了一个数字,叫训练样本里"教师给出更高概率的词"所占的比例。这个比例越高,说明学生被暴露给了更多符合教师偏好的内容。统计结果显示,在16组不同的教师学生搭配里,Semi-OPD这个比例几乎全部高于OPD,有的差距能到30个百分点以上。这从数据层面证实了,Semi-OPD确实让学生"看到更多教师认可的内容",而OPD随着训练推进,反而越来越多地在用学生自我强化、却得不到教师认可的内容做训练。

**换个角度印证结论**

作者还做了一组反向实验,直接把Semi-OPD里用的"学生生成的样本"换成"教师自己生成的样本",其他设置完全不变,结果发现这样效果反而不如原版Semi-OPD。

这说明Semi-OPD的优势不只是来自于"固定一批样本训练"这个操作本身,保留住"学生自己生成的轨迹"同样很关键。这其实呼应了前面的假设,好的蒸馏需要同时照顾到学生和教师两边的在线性,只偏向任何一边都不是最优解。

另外还有个很直接的验证,就是看OPD训练过程中到底允许生成多长的回答会不会影响结果。实验把训练时允许的最大回答长度设置成1千、4千、8千、1万6千个词,分别测试。结果在重叠率低的教师学生组合上,允许的长度越长,效果反而越差;但在重叠率高的组合上,长度越长,效果反而越好。

这进一个坐实了前面的推理,对于本来就"脾气不合"的教师学生组合,放任学生写长内容只会让跑偏的问题更严重,而对于"脾气相合"的组合,写长反而是好事,因为教师大概率还是认同的。

**换个起点会怎样**

论文里还提了一个很有意思的追问,就算先用Semi-OPD训练出一个还不错的学生,之后再切回OPD继续训练会发生什么。

对于重叠率低的组合,无论是从初始学生、从Semi-OPD训练过的学生,还是从用教师样本训练过的学生开始切入OPD,最终都会收敛到同一个水平,这个水平恰好就是从头开始跑OPD、在同样的回答长度限制下能达到的水平。换句话说,起点不重要,最终OPD都会把你拽回它自己那套固定的训练数据分布所决定的那个"均衡点"。

但对于重叠率高的组合,先用Semi-OPD训练、再切到OPD,反而能缩小和从头跑OPD的差距,甚至能更接近从头跑OPD的最终水平。

这暗示了一件事,持续在线采样会把训练结果拉向一个由在线数据分布本身决定的"引力中心",这个引力中心和你的起点关系不大,但和教师学生之间原本的匹配程度关系很大。

**作者还顺手验证了别的东西**

论文里顺带测试了一下,有没有可能先让学生做一轮针对教师样本的监督微调,人为提高教师和学生的重叠率,再上Semi-OPD。实验发现这样做确实能把初始重叠率提高零点几个百分点,用Semi-OPD训练后依然比OPD好,但整体效果反而不如直接用没经过微调的原始学生做Semi-OPD。说明这个额外的微调步骤是多余的,甚至有点帮倒忙。

另外还验证了Semi-OPD训练出的能力能不能迁移到训练数据之外的领域。实验只用数学题训练模型,结果发现在编程能力测试HumanEval和HumanEval+上,Semi-OPD训练出的模型表现同样优于OPD,说明这种提升不是单纯"背题"带来的,而是真正提升了底层的推理能力。

最后一点,Semi-OPD也不是万能的。如果一开始的学生模型是个完全没经过指令微调的基础模型,生成的内容质量太差,那Semi-OPD反而会不如OPD。这说明Semi-OPD有一个前提条件,初始学生至少得具备生成有意义内容的基本能力,否则固定住这批"烂样本"反复训练,效果自然好不了。

Q&A

Q1:半在线策略蒸馏(Semi-OPD)是什么?

A:它是一种蒸馏训练方法,在训练开始前先用初始学生模型一次性生成所有训练样本,之后整个训练过程中反复使用这批固定样本,不再重新生成,训练目标和在线策略蒸馏相同。

Q2:什么情况下应该选择在线策略蒸馏而不是半在线策略蒸馏?

A:论文发现这取决于教师和学生模型最初的输出重叠率,重叠率高(比较相似)时在线策略蒸馏更有优势,重叠率低(差异较大)时半在线策略蒸馏往往更好更快。

Q3:半在线策略蒸馏有什么使用前提?

A:初始学生模型必须具备一定的能力水平,能生成有意义的内容。如果学生是完全没经过指令微调的基础模型,生成样本质量太差,半在线策略蒸馏的效果反而会不如在线策略蒸馏。

分享至
0赞

好文章,需要你的鼓励

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