微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

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

首页 三个老师教一个学生,为什么反而教得更差了?

三个老师教一个学生,为什么反而教得更差了?

2026-09-21 22:18
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-09-21 22:18 • 科技行者

你有没有遇到过这种情况:家里请了三个家教,一个教数学特别厉害,一个教编程是大神,还有一个专门教你怎么好好说话、按要求办事。理论上,只要你把三位老师的本事都学到手,你就该是个全能选手。

但现实往往是,你数学学得还行,编程也凑合,结果"好好说话"这门课反而学得一塌糊涂,甚至比不上你完全没请这个家教之前。

这不是一个比喻,这是清华大学AIR研究院和字节跳动Seed团队联合发布的一篇论文里,真实发生的事情。他们把这个现象起了个名字,叫**能力整合缺口(capability integration gap)**,而这篇论文要做的事,就是搞清楚这个缺口从哪儿来,又该怎么补上。

一个听起来很美的想法:多教师蒸馏

先说说背景。

现在做AI大模型,一个常见的套路是先用强化学习(RL)训练出好几个"偏科生":一个专精数学,一个专精写代码,一个专精听懂人话、按指令办事。这些偏科生在各自领域表现都很猛,但问题是,你不可能在实际应用里同时部署三个模型,让用户自己判断该找哪个。

> 强化学习:一种让AI通过不断试错、根据反馈调整行为来学习的训练方式,类似于训狗时用奖励和惩罚来塑造行为。

于是研究者想出了一个办法,叫**多教师同策略蒸馏(Multi-Teacher On-Policy Distillation,简称M-OPD)**。

> 蒸馏:在AI领域指让一个小模型(学生)去模仿一个或多个大模型(老师)的行为,从而把老师的能力"提炼"进学生模型里。

>

> 同策略(on-policy):意思是学生自己生成答案,老师再对这些答案打分反馈,而不是直接照抄老师写好的范文。

这个思路听起来很合理:每道题目先判断它属于哪个领域(数学、代码还是对话),然后把对应领域的专家老师叫来,让他"手把手"逐字逐句地指导学生怎么改进这次的回答。理论上,只要路由(也就是把题目分配给对的老师)没出错,学生应该能把三门功课都学扎实。

论文作者做了一个非常干净的实验设置来验证这个想法。他们不满足于"大概率能行",而是刻意排除掉一切可能干扰结果的因素,专门做了一个"完美路由"版本的实验,题目该给谁就给谁,绝对不出错。

结果呢?还是翻车了。

完美路由下,依然有35.6%的鸿沟

研究团队用的基础模型叫SmolLM3-3B-Base,这是一个完全开源的30亿参数模型。他们先用数学、代码、指令跟随三个领域的数据做了混合监督微调(SFT),得到一个"三科都学过一遍"的学生模型底座。

> SFT(Supervised Fine-Tuning):用人工标注好的正确答案直接教模型,类似于给学生一本标准答案的教科书,让他照着学。

接着,他们用这个底座分别训练出三个领域专家老师:数学老师、代码老师、指令跟随老师,每个老师只在自己的领域里做强化学习,互不干扰。

然后见证奇迹的时刻到了:把这三个老师都请来,同时指导一个共享的学生模型,题目按照标准答案里的领域标签精确分配给对应老师,一点路由错误都没有。

结果,这个"三师联合执教"的学生模型,平均得分只有28.05分。而如果给每个领域单独训练一个学生(也就是说,数学题就用数学老师带出来的学生答,代码题用代码老师带出来的学生答,互不干涉,论文里管这套组合叫**RouteOPD**),平均分能到31.55分。

差了3.5分,听起来不多,但用论文定义的"恢复率"来看更直观:混合SFT的底座模型经过三师联合训练之后,只恢复了从底座到理想水平(RouteRL,也就是三个独立RL专家的路由组合)改进幅度的35.6%。

换句话说,三个老师加起来教出来的效果,连单独训练三个专属学生分别去做的效果的三分之一多一点都够不着。

而这个缺口还不是均匀分布的。指令跟随(论文里简称IF,就是让模型学会听懂并严格执行用户的具体要求,比如"用不超过50个字回答"这种任务)这一项,比它单独训练能达到的水平低了整整6.16分,是数学领域缺口(1.89分)的3.3倍。更麻烦的是,IF这门课在训练进行到一百步到两百步之间的时候,分数居然还往下掉了11%。

这就好比你请的三个家教里,数学老师教得还凑合,代码老师教得也还行,唯独那位教你"好好说话"的老师,教到一半你反而变得更不会说话了。

先排除一个最容易想到的嫌疑:老师们互相打架

遇到这种情况,第一反应通常是:是不是三个老师意见不合,互相拆台?

这个猜测非常合理。数学、代码、对话这三个领域虽然内容不同,但共享大量的"通用词汇",比如连接词、格式化用语、推理套路。如果三个老师对这些共同词汇给出的建议互相矛盾,学生的参数就会被拉扯到不同方向,越学越乱。

论文作者专门设计了实验来验证这个猜想。他们定义了一个叫**教师分歧度(teacher disagreement)**的指标,记作ct,衡量的是三个老师对同一个词给出的概率评分之间,最大值和最小值差多少。

> 教师分歧度:三个老师对学生生成的同一个词,打分差异有多大。差异越大,说明老师们意见越不统一。

如果ct经常很大,那说明老师们确实经常吵架,这就能解释整合失败。

但测量结果是:整个训练过程中,ct的平均值只有0.126(单位是自然对数单位nat),300步训练里从没超过0.27。而论文设定的"严重分歧"门槛是1nat(意味着最看好和最不看好的老师之间,概率比大约相差2.7倍)。也就是说,老师们的意见分歧远远没到"打架"的程度。

进一步统计发现,分歧超过1nat的词,平均只占0.62%,即使在分歧最严重的IF领域,这个比例也只有3.9%。绝大多数时候,老师们的意见是基本一致的。

作者不满足于这个观察,又做了一个反向验证:如果真的把这些"高分歧词"从训练里挑出来,单独处理会怎样?他们试了两种办法,一种是直接把分歧最大的前1%、5%、20%的词从训练损失里剔除掉(相当于跳过这些"有争议"的地方不学),另一种是让三个老师的意见做个平均,取个"折中方案"。

结果,这两种干预不但没让训练变好,反而都让总分下降了,幅度在0.52到0.83分之间。

这说明什么?

说明高分歧的词,可能压根不是噪音,而恰恰是每个领域"最有特色"的地方。硬要把它们抹掉或者折中处理,反而丢失了有用信息。

这就好比你觉得三个家教对某道题的解法讲得不一样,是"打架",于是干脆把那道题跳过不学,结果发现那道题恰恰是最能体现某个学科精髓的一道题,跳过去反而学得更差了。

于是,教师之间意见不合这条路,被排除掉了。真正的问题,藏在别的地方。

真正的病灶:token预算被悄悄"抢跑"了

作者转而去看一个更底层的东西:训练时,每个领域实际分到了多少"学习资源"。

这里要引入一个关键概念。

> Token:可以粗略理解为文本被切分后的最小单位,类似于一个字或一个词。模型每生成一个token,都会产生一次学习信号。

在多教师蒸馏的训练机制里,损失函数是按token平均计算的,这意味着,每个领域实际获得的"训练份额",不是由这个领域出了多少道题决定的,而是由这个领域生成的回答有多长(也就是token有多少)决定的。

这一下就露出问题了。

数据显示,IF(指令跟随)这个领域的题目,在整个训练批次里占了20.3%,听起来分量不轻。但IF领域生成的回答通常很短,平均只有409个token,而数学和代码领域的回答动辄一万多个token(平均约10500),长度相差超过25倍。

结果就是,IF领域虽然题目占了五分之一,但它实际贡献的训练token,只占整个批次的0.99%,不到百分之一。

想象一下这个场景:班里有三十个学生,老师按人头平均分配提问机会,理论上人人都能被叫到。但有个规矩是,回答问题字数越多,算的"表现分"就越高。于是那些说话啰嗦的学生,哪怕被叫到的次数一样多,靠着长篇大论刷分,占据了几乎全部的评分权重,而那个每次都言简意赅、三言两语说完的学生,虽然次数一样,却几乎没被真正"看见"过。这就是为什么明明"分配公平",结果却极度不公平。

作者还测试了一个直觉上的补救方案:既然IF回答短,那就多给IF出题,提高它的采样频率不就行了?

答案是不行。要让IF拿到三分之一的训练token份额,它的题目数量需要放大33.6倍。这么一放大,数学和代码题目在每批次里的比例就会被严重压缩,直接威胁到长链条推理能力的训练稳定性。这个补丁,代价太大了。

第二个病灶:老师和学生之间的差距,消失得不一样快

如果说token数量不均是"结构性"问题,那接下来这个问题就更隐蔽了。

即便一开始把三个领域的token份额人为拉平,训练几十步之后,差距又会自己重新长出来。

原因在于奖励信号的大小。论文里定义了一个叫**每token奖励强度(m_bar)**的量,大致可以理解成"学生和老师现在差多远"的度量。差距越大,这个数值越大,意味着这个token对参数更新的推动力越强。

训练刚开始的时候,数学的m_bar是0.019,代码是0.063,IF是0.091,最大值是最小值的4.9倍。这本身就不均衡。

更关键的是,随着训练推进,这三个数值下降的速度也不一样。到训练中段,IF的差距缩小了2.4倍,数学缩小了2.1倍,代码只缩小了1.9倍。

这意味着什么?

意味着即便你在某一时刻精确地把三个领域的训练份额调平到各占三分之一,过不了25步,这个平衡就会自己瓦解。实验数据显示,IF的实际预算份额会从48.7%骤降到9%左右,而代码的份额则从39.6%一路涨到63.8%。

这就好比三兄弟分家产,爹妈临终前公平地一人分了三分之一,可这三份财产的"增值速度"完全不同,老大那份理财能力强,越滚越大,老三那份不但没增值反而缩水,几年之后再看账本,早就不是三分之一对三分之一对三分之一了。你不能指望分一次财产就管一辈子,你得持续地根据实际情况去调整。

第三个病灶:奖励信号"过期"了

除了以上两个,论文还挖出了第三个隐患,而且这个隐患跟工程实现细节直接相关。

为了节省计算成本,实际训练时往往会让学生模型对同一批采样数据(rollout batch)反复做好几次参数更新,这个次数记作K。老师的评分只在采样阶段计算一次,之后就固定不变、反复复用。

问题是,学生的参数在这K次更新里是在不断变化的。第一次更新完之后,学生已经和采样时的状态不一样了,但如果奖励信号里"学生自己的部分"还是用采样时那个老状态算出来的,这个奖励就已经不准了。

论文测量了这种"过时"有多严重:当K=1时(只更新一次,不存在过时问题),采样策略和当前策略之间的KL散度(衡量两个概率分布差异的指标)是0;当K=4时,涨到0.059;当K=32时,涨到0.216。与此同时,被PPO裁剪机制拦下的token比例(意味着这些token的更新幅度已经超出了安全范围)也从0一路涨到0.86。

> KL散度:一种衡量两个概率分布之间"距离"的数学指标,数值越大说明两个分布差异越大。

>

> PPO(Proximal Policy Optimization):一种强化学习算法,核心思路是限制每次参数更新的幅度,避免学生模型"学岔了"。裁剪机制就是它用来防止更新过猛的一种保护手段。

这就好比你请了个私教,教练示范了一个动作之后就走了,让你自己对着录像反复练八遍。可你练到第五遍的时候动作已经悄悄变形了,教练录像里给的"纠正建议"其实是针对你第一遍动作说的,早就对不上你现在的实际姿势了。你练得越多,这种"驴唇不对马嘴"的错位就越严重。

对症下药:Open-MOPD的三板斧

诊断清楚了病因,论文接下来给出了解决方案,叫**Open-MOPD**,一共三个机制,分别对应上面三个病灶。

### 第一板斧:token份额平衡

既然问题出在token数量按长度自然分配、导致短回答的领域被边缘化,那就干脆不让长度说了算,直接给每个领域设定一个固定的目标份额(比如三个领域各占三分之一),再根据实际观测到的token占比,反向计算出一个权重,乘到对应领域的损失上去。

具体做法是,如果IF领域实际只占了不到1%的token,但目标是让它占33.33%,系统就会给IF的每个token乘上一个放大系数(论文里实测约为32.7倍),让它"以一当多",实际效果和分到三分之一份额一样。

这么做和"多出题给IF"的区别在于,它不需要真的增加IF的题目数量,不会挤占数学和代码的训练空间,单纯是在损失计算层面把权重调平。

单独测试这一招的效果,总分提升了1.17分,而且几乎全部来自IF领域的进步,数学和代码几乎没有变化。这正好印证了此前的诊断:大量的训练token本来就被浪费在了已经学得差不多的数学和代码上,而真正嗷嗷待哺的IF,几乎没分到资源。

### 第二板斧:跟随差距的动态分配

第一板斧解决了"某一时刻"的公平,但没解决"公平会随时间瓦解"的问题。

这里作者一开始想到了一个看起来很自然的办法:既然奖励强度小说明学生已经学得差不多了,那就干脆用奖励强度的倒数来调整权重,让奖励小的领域少分点资源,奖励大的领域多分点。

但这个思路在实验里直接翻车了。原因是奖励强度小,既可能是"已经学好了",也可能是"正在快速进步"。一旦用倒数规则,已经进步快的领域反而拿到更多资源,进步得更快,奖励强度进一步降低,系统陷入了一个越强越给、越给越强的正反馈循环。实验里,IF的这个循环导致训练在第74步直接崩溃。

于是作者反过来做:不是看奖励强度的绝对值大小,而是看它相对于所有领域平均水平的高低,奖励强度相对更大的领域(说明和老师的差距更大,还没学扎实),分配更多的训练预算;学得差不多的领域,自然减少投入。同时设置了一个夹取范围(0.05到20倍),防止某个领域某一刻奖励突然爆表或骤降,导致权重失控。

单独测试这个机制,总分又多提升了0.72分。

这就好比一个补习班老师,不再是简单地"谁分数低就多补谁"(这可能是天赋不够,越补越没效果),而是动态观察"谁最近进步空间最大、教了立刻见效",把有限的辅导时间投给正在快速吸收知识、还有明显提升余地的学生,而不是死磕已经到瓶颈的科目。

### 第三板斧:奖励刷新

针对第三个病灶,思路很直接:既然奖励信号里"学生自己的部分"会随着更新而过时,那就在每一次内部更新之前,重新用学生当前的状态去算这部分奖励,老师的评分部分(计算量更大,需要单独跑一次模型)继续复用之前算好的结果,不用重新计算。

好消息是,学生这部分的重新计算,本来就是PPO更新过程中必须要做的前向计算,不需要额外增加多余的开销。论文实测发现,启用这个机制后,整个训练步骤耗时几乎没有变化(1298秒对1313秒,差异在正常波动范围内),但总分又提升了0.81分。

这就好比开车导航,路线规划(相当于"老师"给的宏观建议)不需要每秒都重新算一遍,但车辆当前的实时位置(相当于"学生"的状态)必须实时更新,不然导航系统还以为你在十分钟前的那个路口,给你的转弯提示全都是错的。

三板斧加起来,效果如何

把三个机制叠加起来,论文给出的最终结果是:总分从28.05分提升到31.24分,恢复率从35.6%大幅提升到83.4%。

也就是说,原本三个老师联合执教只能恢复理想效果三分之一多一点,现在能恢复超过五分之四。

具体拆解每一步贡献:token份额平衡带来+1.17分,加上跟随差距分配变成+1.89分,切换到更高吞吐量的训练设置(K=4)之后,三个机制全部叠加带来了总共+3.19分的提升,IF领域的分数从43.64一路涨到49.58,已经非常接近单独训练一个IF专家能达到的49.80分。

论文里还有一张很能说明问题的表格,列出了各种基线方法的表现:直接把三个老师的强化学习混着一起训练(πmixrl),恢复率只有49.3%;简单粗暴地把三个专家模型的参数直接平均合并(ParamMerge-Avg),恢复率只有32.9%;用更讲究的参数合并方法(ParamMerge-TA,一种解决参数冲突的合并技术),能到71.7%;而完整的Open-MOPD方案,做到了83.4%,是这些方法里最高的。

为什么选一个"不大不小"的模型来做实验

这里有个细节值得一提,论文选择的实验模型是30亿参数规模的SmolLM3-3B-Base,这个选择背后有一段挺实在的踩坑经历。

作者最早尝试用更小的Qwen3-1.7B-Base模型做数学题的监督微调,结果发现无论训练多少轮,AIME24数学竞赛测试的最好成绩也只有7.08%,而且有69%到80%的回答会在没写出最终答案之前就被截断,也就是说模型压根没学会怎么把一道推理题从头到尾讲完。

换成70亿参数的Qwen2.5-7B-Base,同样的数据,成绩直接冲到31.25%,截断率也降到12.92%。这说明问题不是数据太难,而是1.7B这个规模的模型能力天花板太低,推理链条学不完整。

但70亿参数规模又太贵了,整个多教师蒸馏的完整流程,加上重复的消融实验(也就是逐一验证每个机制是否真的有效的对照实验),如果都在70亿规模上跑,一个普通的学术团队根本负担不起反复实验所需的算力和时间。

于是SmolLM3-3B-Base成了两难之间的折中点,它足够大,能学会完整的长链条推理,又足够小,能让整个流程(混合SFT、三个RL教师训练、多教师蒸馏,以及所有对照实验)都在一台8卡A100服务器上跑完,而且能反复跑。

这就好比你想测试一套健身计划到底有没有用,你不会拿职业运动员来测试(太贵,而且他们本来就很强,看不出计划本身的效果差异),也不会拿从没运动过、体质极差的人来测试(他们可能连最基本的动作都做不完整,你测的其实是"能不能动"而不是"计划好不好"),你需要找一个身体素质中等、能完成基本训练动作的普通人来测试,这样才能真正看出这套计划设计得好不好。

这项研究到底解决了什么根本矛盾

回过头看整篇论文,它其实是在回答一个很朴素但很关键的问题:如果路由完全没问题,为什么把多个专家的能力装进同一个模型里,还是会互相拖累?

答案不是"能力冲突"这种听起来更炫酷的解释,而是一个朴素到有点扫兴的答案:训练资源分配不均,而且这种不均衡会随着训练自我加剧。

这个发现本身其实提供了一个更普遍的启示。很多"多任务学习效果不如预期"的场景,人们第一反应往往是去猜测任务之间存在某种深层的冲突或者互斥,但这篇论文提醒我们,有时候真正的问题可能非常朴素,就是资源分配的会计问题,谁分到了多少训练信号,这个信号强度是不是在动态漂移,是不是存在信息滞后。这类问题往往比"能力冲突"更容易被忽略,也更容易被系统性地解决。

Q&A

Q1:Open-MOPD是什么?

A:Open-MOPD是清华大学AIR研究院和字节跳动Seed团队提出的一套多教师同策略蒸馏优化框架,包含token份额平衡、跟随差距的动态资源分配、奖励刷新三个机制,用来解决多个领域专家模型融合成一个学生模型时出现的能力整合缺口问题。

Q2:为什么多个AI专家老师一起教,反而教得比单独教更差?

A:论文发现,主要原因不是老师们意见冲突,而是训练时的token(文本单位)预算分配严重不均。回答简短的领域(比如指令跟随)虽然题目占比不低,但因为回答字数少,实际获得的训练信号不到1%,导致这个领域学得特别差,甚至比不训练还差。

Q3:Open-MOPD最终把效果提升了多少?

A:论文用"恢复率"衡量效果,也就是相对于理想情况(三个专家模型分别独立训练)能恢复多少改进幅度。原始的朴素多教师蒸馏只能恢复35.6%,应用Open-MOPD的三个机制之后,恢复率提升到了83.4%。

分享至
0赞

好文章,需要你的鼓励

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