
有件事挺反直觉的。
你可能觉得,让一个学霸去教一个学渣,学霸把自己会的东西都倒腾过去,学渣多少能接住点新知识。可如果我告诉你,有一种教学方式,学生跟着老师学了一整套课程,最后新技能全学会了,但老师教的那些新知识,学生几乎一个字都没记住,你会不会觉得有点奇怪。
这正是香港科技大学的两位研究者在一篇新论文里揭示的现象。他们研究的是现在大语言模型训练里很流行的一种方法,叫在线策略蒸馏。
在线策略蒸馏(On-Policy Distillation,简称OPD):一种让小模型(学生)跟大模型(老师)学习的技术,训练时老师不是单纯把自己写好的答案丢给学生背,而是看着学生自己生成的内容,一步步纠正它。Google的Gemini和阿里的Qwen都在用这套方法做后训练。
这篇论文的结论简单粗暴:OPD能让模型学会新的推理技巧,但几乎学不到新的事实知识。这个发现对所有想靠蒸馏给模型"补课"的人,都是个值得停下来想一想的事。
### 大模型蒸馏,到底在教什么
先说说为什么这个问题重要。
知识蒸馏这个概念最早是Hinton他们在2015年提出来的,核心想法很朴素:把一个大模型的"智慧"压缩进一个小模型里,让小模型用更低的成本干大模型的活。
但传统的蒸馏方式有个毛病。
它是让学生死记硬背老师写好的标准答案,可学生自己生成文字的时候,走的路径和老师完全不一样,等真正考试时遇到自己从没见过的情况,学生就懵了。这个问题有个专门名字,叫曝光偏差(exposure bias):训练时看到的都是标准答案,实战时却要自己一步步生成内容,训练和实战的分布不一致,导致学生学了一堆没用上的东西。
在线策略蒸馏就是来解决这个毛病的。
它让学生自己先生成一段内容,老师再看着学生写出来的这段内容,告诉它"你刚才这一步应该怎么调整"。这就好比学游泳,不是在岸上看教练示范一百遍动作就算学会了,而是你下水扑腾的时候,教练在旁边实时纠正你的动作。如果只在岸上学,你碰到水的瞬间该怎么打水花、怎么换气,根本没人教过你,因为岸上练习的场景和真实下水完全不是一回事。
这套方法确实有效,Qwen3的技术报告里就提到,用OPD能让数学推理能力明显提升。可问题是,没人说清楚学生到底从老师那学到了什么。
是学到了新的事实性知识?还是学会了怎么把已经会的知识组合起来用?这两者听起来像是一回事,其实天差地别。
### 两种能力的较量:记忆和编排
要搞清楚这个问题,研究者得先把两种能力彻底分开。这事儿说起来容易做起来难,因为真实世界的语言任务里,知识和推理永远是纠缠在一起的。你问模型一道数学应用题,它既要知道某个公式(知识),又要知道怎么一步步代入计算(推理),两者分不开,你压根没法单独测量其中一个。
于是研究者动手造了一个人工的"实验室环境"。
他们设计了一套叫查表的系统:每一个"事实"都是一张随机生成的查找表,输入两个数字,表里随机对应输出一个数字,这个对应关系完全是随机的,没有任何规律可循。
查找表(lookup table):一种事实知识的人工模拟,输入和输出之间没有任何可推导的规律,模型只能靠死记硬背来掌握,不能靠逻辑推理出答案。
为什么非要做成完全随机的,因为如果表里的数字有某种规律(比如输出永远是输入的和),那模型哪怕没见过这张表,也可能靠推理猜对答案。这样一来你就没法确定模型是真的记住了这个事实,还是靠别的本事蒙对的。只有彻底打乱、毫无逻辑的映射关系,才能逼着模型老老实实把这个对应关系记下来,答案才真正代表"知识"本身。
这就像考试作弊检测。如果你出的题目能靠公式推导出答案,那学生就算没背书也可能蒙对,你根本分不清他是真学了还是走了狗屎运。但如果你出的是一串完全随机的电话号码让学生去记,那答对了就只能说明他真的背下来了,没有别的解释。
光有知识还不够,研究者还得单独测量另一种能力,就是怎么把多个知识点组合起来用,论文里管这个叫组合技能。
他们设计了两种计算结构:链式和树形。
链式就是一步接一步,像多米诺骨牌,第一步的结果直接拿去做第二步的输入,第二步结果再拿去做第三步输入,一路往下传。
树形结构:计算过程像一棵倒着长的树,模型得先分别算出两个独立分支的结果,中间隔了好几步之后,再把这两个分支的结果合并起来,这要求模型在计算过程中必须记住并调取很早之前算出来的中间结果。
这个设计的巧妙之处在于,链式结构和树形结构用的是完全相同的事实、完全相同的计算步骤数量,唯一不同的是数据怎么被组织和调用。这就排除了"难度不一样"这个干扰因素,纯粹测的是模型会不会灵活安排计算顺序、记住并调用中间结果这件事。
你可以把这想象成做菜。链式结构就像照着菜谱一步步做,先切菜再炒菜再调味,每一步紧接上一步。树形结构则像同时准备两道配菜,一道凉拌、一道清蒸,两道菜各自要花好几个步骤准备,最后再把两道菜摆到一个盘子里组成一道拼盘。你会发现,如果厨师只会死记硬背一张菜谱的顺序,换一道需要同时兼顾两条线的菜,他就手忙脚乱了。这正是树形结构要测试的:模型是不是真学会了"统筹安排"这件事,而不是死记硬背了某一种固定套路。
### 四套实验设计:老师到底多会了什么
研究者接下来搭了一个精巧的对照实验。
他们先训练出一个基础学生模型,叫S0,这个模型只学过20张初始的查找表,也只练过链式结构的计算,从没见过另外5张"留存"的表,也没见过树形结构。
测试发现,S0对初始的20张表掌握得很扎实,但对那5张没见过的表,基本上一问三不知,对树形结构的题目,正确率也几乎为零。这说明S0确实是个"干净"的起点,它会什么、不会什么,边界非常清楚。
接下来研究者造了四位老师,各有不同的"加成"。
一位叫T?,什么都没加,跟S0一模一样,充当对照组。
一位叫Tf,额外学会了那5张留存的表(多了知识,没多技能)。
一位叫Ts,额外学会了树形结构的计算(多了技能,没多知识)。
最后一位叫Tfs,知识和技能都加了。
有了这四位性格迥异的老师,研究者就可以做一个干净利落的对照实验:分别让S0去跟每位老师学,看学完之后,学生到底从每位老师那里学到了什么。
这个设计就像药物试验里的对照组设置。如果你想知道一种药到底对血压有没有效果,你不能只给病人吃了药看血压降没降,你得设一个安慰剂组、一个只含某种成分的组、一个含全部成分的组,分别对比,才能确定到底是哪个成分在起作用。这里的四位老师,就是研究者精心设计的"成分对照组"。
### 实验结果:技能全通,知识几乎零
结果出来,差距大到让人意外。
用Tf(多了知识的老师)去教学生,学生在面对那5张没见过的留存表时,单步查询的正确率只有13.12%,而对照组是0.03%。看起来有点进步,但再往深一层看,让学生去做需要连续查询多张留存表的链式计算,正确率直接掉到0.54%。换句话说,学生好不容易记住了一点皮毛,但稍微要求它把这点知识用在稍微复杂点的场景里,立刻就露馅了。
反过来看Ts(多了技能的老师)教出来的学生,表现完全是另一个画面。
学生在从没见过的树形结构上,正确率飙到79.10%,而对照组只有0.72%。
这差距不是一星半点,而是从几乎答不出来,跳到十个题能对八个。更重要的是,这些树形结构的题目,学生在训练时压根没见过这种具体的排列组合方式,它却照样能解出来。
这说明学生真学会了一种通用的"组合思维",而不是背下了某几道具体的题。
这个实验结果如果换成人类学习的场景,会非常刺眼。想象一个学生,你给他补习了一个月数学,结果他的应用题解题能力突飞猛进,碰到任何新颖题型都能灵活套用公式,但你额外教他的那几个新单词,他转头就忘了九成。你会立刻意识到,这个"补习"对某一类能力有用,对另一类能力几乎没用,不能笼统地说"补习有效"。
在更大采样预算下(让模型针对同一道题反复生成32次答案,只要有一次对就算过),这种不对称依然顽固地存在。技能类的测试正确率能冲到88%以上,知识类测试却始终在15%上下徘徊。换多少次采样,知识这道坎都迈不过去。
### 拆开配方:到底哪个环节在拖后腿
发现这个不对称现象只是第一步,研究者更想知道背后的机理。
他们把OPD这套训练配方拆解开,发现里面其实藏着两个相对独立的设计选择。
第一个选择是训练用的"提示词前缀"从哪来。是让学生自己边生成边纠正(在线策略),还是老师事先写好标准答案让学生照着背(离线教学)。
第二个选择是衡量学生和老师输出差距的数学方式,专业上叫散度目标,这里涉及两种KL散度。
反向KL(Reverse KL):衡量差距的方式之一,它只在学生自己认为"有可能"的那些词上计较对错,如果学生压根没往某个正确答案方向想,反向KL几乎不会惩罚它。
正向KL(Forward KL):另一种衡量差距的方式,它站在老师的立场上看,只要学生没能覆盖老师认为正确的答案,不管学生自己信不信这个答案,都会被狠狠惩罚。
这两种KL的区别,听起来有点绕,但换个场景讲就清楚了。想象一个阅卷老师改作文,反向KL就像是这种改法:老师只盯着学生写出来的那几个词,去判断用得对不对,学生压根没想到的那个更好的表达,老师压根不管,反正学生自己也没往那想,不扣分。而正向KL则像另一种改法:老师心里有一份标准答案清单,只要学生的作文里漏掉了清单上的关键点,不管学生有没有往那想过,都扣分。标准OPD用的是反向KL,这就解释了为什么学生对完全陌生的知识几乎不会受罚,因为它压根不知道有这么回事,自然也谈不上往那个方向使劲。
研究者把这两个维度交叉组合,做了一个2乘2的对照实验,结果相当清楚。
把反向KL换成正向KL之后,factual recall(事实回忆)的正确率出现了大幅跃升:Qwen3-4B模型从10.95%蹦到54.10%,Gemma-2-2B模型从32.95%直接蹦到94.10%。而且不管前缀来自学生自己生成还是老师提供,只要用了正向KL,效果都差不多好。
这说明知识能不能学进去,关键看散度目标选对了没有,跟前缀来源没太大关系。
反过来,技能提升靠的则是另一个维度。不管用哪种KL,只要前缀是学生自己生成的,模型对未见过树形结构的处理能力就会明显更强,参考答案的负对数似然(可以理解为模型对正确答案的"信心程度",数值越低代表越自信)都有显著下降。
这意味着,学生自己动手生成、动手犯错、动手被纠正这个过程,恰恰是练出推理组合能力的关键,而光靠老师念标准答案是练不出这个的。
这背后的道理其实挺朴素的。反向KL只惩罚学生"自己以为可能对"但实际错了的地方,如果学生对一个事实完全没概念,它压根不会往那个答案方向猜,自然也就不会因为这件事被扣分,它可以心安理得地保持无知。而正向KL是老师主动揪着学生"你漏掉了这个",不管学生猜没猜过都要罚,这才逼着模型真正把陌生的知识点吸收进去。
### 看模型的"思维过程":哪里出错了
论文里有个特别生动的细节,研究者把学生模型生成答案的完整推理过程摊开来看,具体的出错方式一目了然。
在知识类任务里,用反向KL蒸馏出的学生,解题的步骤格式完全正确,一步一步查表、一步一步传递中间结果,结构工整得挑不出毛病。可是每一步查出来的具体数字,全是错的。它知道"该在这一步查表",但查出来的值是瞎编的。
而在技能类任务里,用了正向KL(只学了知识没学技能)的学生,表现正好反过来:每个事实都查对了,数字全部正确,但面对树形结构时,它死板地把本该分两路走的计算,强行拉成了一条直线,该先算右边分支再回头算左边的,它偏偏按从左到右的顺序一路平推下去,完全不会绕弯子处理分支结构。
这两类错误本质上完全不同:一种是记性不好,格式会了但内容记错了;一种是不懂变通,内容都对但思路僵化。这个对比特别直观地证实了论文的核心发现:知识和技能是两种截然不同的能力,出错的方式也完全不一样。
### 参数层面的证据:两种能力各管一摊
论文还往更深一层挖,去看模型内部的参数到底发生了什么变化。他们分析了蒸馏前后模型权重的变化情况,发现了两个挺扎实的规律。
LoRA(Low-Rank Adaptation):一种高效的模型微调技术,不用调整模型全部参数,只往模型里插入一小块可训练的"补丁"参数,大幅降低训练成本。
第一个规律是,知识类训练和技能类训练改动的参数方向几乎互不相干,用数学语言讲就是余弦相似度接近零,范围在0.004到0.046之间。这说明记忆事实和学会推理组合,动用的是模型内部完全不同的参数区域,两者互不打架,也互不借力。
第二个规律更有意思:这两类能力改动的网络深度也不一样。知识类的改动主要集中在网络最后几层,层数越深改动幅度越大,在Qwen3-4B模型里,第35层(也就是最靠近输出端的层)改动最明显。技能类的改动则主要发生在浅层和中间层,峰值出现在第3层和第11层附近。
这个发现其实和Transformer架构里一个被广泛接受的猜想对上了号:网络靠后的层负责处理具体的词汇级联想(比如"某个输入对应某个输出"这种死记硬背),而网络靠前和中间的层则负责路由信息、组织中间计算结果。知识存在后排,技能练在前排,物理位置上就是分开的。
这就好比一家公司的组织架构。记具体客户信息的台账放在前台柜员那里,随用随查;而统筹协调多个部门、安排工作流程的决策权,放在中层管理岗。你要是指望柜员去做跨部门协调,或者指望中层管理者把每个客户的电话号码都背下来,这公司是运转不起来的。知识和技能分属不同岗位,这不是偶然,是系统运转的必然结果。
### 换个散度目标,能不能两头兼顾
研究者没有止步于发现问题,还试着寻找解决方案。
他们测试了几种更灵活的散度目标,看能不能同时兼顾知识迁移和技能迁移。其中表现最亮眼的是一种叫ToDi的方法,它对每个词都用一个灵活权重,动态调配正向KL和反向KL的比例。
实验结果显示,ToDi在知识类测试上拿到64.3%的正确率,在技能类测试上拿到86.4%,两项都明显超过单纯用正向KL或反向KL的效果。这说明这个不对称现象不是无解的,通过更精细的目标函数设计,是有可能同时把两件事都做好的,只是标准的OPD配方(纯反向KL)天生就偏科。
### 跳出玩具实验,真实世界也是一个套路
光在人工设计的实验室环境里验证还不够有说服力,研究者又在真实场景里重新跑了一遍。
他们选了两个任务:一个是关于2026年最新发生事件的问答测试(这些内容肯定不在模型训练数据里,模型压根没见过),另一个是竞赛数学题。
结果和实验室里的发现高度一致。
在最新事实问答上,蒸馏前学生正确率是11.25%,蒸馏后变成9.64%,几乎没有任何进步,哪怕教它的那位"知识型老师"自己能答对84.55%的题。这组数字特别扎心,老师明明倾囊相授,学生却一点没学进去。
而在数学推理上,蒸馏后的正确率从17.41%提升到23.88%,实打实涨了6.47个百分点,而且这个提升在那些训练时完全没见过的题目上依然成立,说明学到的不是死记硬背某几道题的套路,而是真正学会了一种可迁移的解题思路。
这套从人工实验室一路验证到真实场景的做法,等于是给这个发现上了一道保险:不是实验室造出来的巧合,是真实世界里语言模型训练确确实实存在的规律。
### 写在后面
读完这篇论文,最触动我的其实是那张展示学生"犯错方式"的例子。一个是格式对、内容错,一个是内容对、顺序错,两种错误的样貌完全不一样,这比任何一个百分比数字都更直观地说明了知识和技能是两种东西。
这篇论文还有一个细节容易被忽略:反向KL之所以学不到知识,根源在于它"只纠正学生已经往那想的地方"。这意味着反向KL天生对模型"完全没概念"的盲区无能为力,它不是教学方法不够好,而是这套机制压根没法逼着学生去正视自己的无知。这让我想起一个很现实的教育场景:很多应试辅导其实也是这个逻辑,老师只会反复纠正你做错的那几道题,可你压根没往某个知识点上想过,那部分永远不会被纠正,因为它从没在你的"错题本"里出现过。
还有一点值得留意,论文里提到权重更新集中在不同网络深度这件事,某种程度上呼应了一个更大的问题:大语言模型的参数空间里,是不是本来就天然划分出了"记忆区"和"计算区"。如果真是这样,以后想往模型里"打补丁"添加知识,或许根本不该用现在这套端到端训练的思路,而应该学会精准定位该往哪一层动手术。这篇论文测的只是一个很小的合成任务,这个猜想能不能在更大规模、更真实的模型里站得住,还有很长的路要验证。
如果你现在手里正好在给某个模型做蒸馏训练,而目标是让它多懂点新知识,这篇论文算是一个提醒:先看看你用的是哪种散度目标,这个选择可能比你想象的更重要。
Q&A
Q1:在线策略蒸馏(OPD)是什么?
A:一种让小模型(学生)跟着大模型(老师)学习的训练方法,训练时老师不是直接给标准答案让学生死记硬背,而是看着学生自己生成的内容实时纠正,Gemini和Qwen等主流模型后训练都在用这套方法。
Q2:为什么OPD能学会新技能却学不会新知识?
A:论文发现关键在于散度目标的选择。标准OPD用的反向KL只惩罚学生自己觉得"有可能对"但错了的地方,对完全陌生的知识束手无策;换成正向KL后,知识迁移效果大幅提升,比如Gemma-2-2B模型正确率从32.95%跳到94.10%。
Q3:这个发现对实际使用大模型蒸馏有什么指导意义?
A:如果训练目标是提升模型的推理和组合能力,标准的反向KL在线蒸馏是合适的;但如果想让模型学到新的事实知识,应该考虑用正向KL目标,或者像ToDi这样能灵活调配两种KL的混合方案。
好文章,需要你的鼓励
RGPO用"临时脚手架"破解大模型强化学习的奖励稀疏难题:先让模型独立解题,失败则分段放出标准解法引导重写,仅采纳经验证更优的答案。难题测试准确率从0跃至99.5%,语言模型平均分高出最强基线5.0分。
论文提出用MoE模型的路由器输出作为跨语言对齐目标,通过持续预训练对翻译句对施加路由KL散度损失,在不改变分词和架构的前提下让隐藏表示更接近,并在四个开源MoE模型、七种语言上验证了下游任务性能的一致提升。
DiffGate提出难度门控的教师指导机制,让验证器决定何时需要教师介入,仅对失败且困难的轨迹提供有界教师指导,结合GRPO强化学习,在数学与代码任务上显著提升解题覆盖率与跨领域迁移能力。
研究者用固定不变的16位二进制编码替代传统可训练词嵌入表,在17亿参数规模模型上训练1000亿token,证明模型仍可获得实质语言能力,揭示输入表并非必需,但性能略逊于可学习方案。