![]()
你有没有想过,同一个孩子,用两种完全不同的方式辅导,会学出两种截然不同的毛病?
第一种辅导方式是这样的:家长只告诉孩子,这道题最后做对了还是做错了。对了就表扬,错了就批评。孩子知道结果,但不知道自己是哪一步开始跑偏的。这种方式简单粗暴,但反馈太稀疏了,孩子做十道题,可能只在最后知道对错,中间的思考过程完全是黑箱。
第二种辅导方式换了个思路:请一个学霸家教,让他手把手模仿孩子写题的节奏,每一步都告诉孩子"这一步你应该这么想"。这种方式细致到每一个字,但有个致命问题,学霸家教只管你像不像他,不管你做的题到底对不对。如果学霸自己某道题就理解有偏差,孩子学的也是偏差,而且孩子最终的水平,天花板就是学霸家教的水平,永远超不过去。
这两种辅导方式,在大语言模型的训练圈子里,分别对应两个如今炙手可热的技术路线。第一种叫做**带可验证奖励的强化学习**,第二种叫做**同策略蒸馏**。
强化学习与可验证奖励(RLVR):让AI模型根据任务结果对不对来自我调整的训练方法,比如数学题答案对不对、代码能不能跑通,都是可以自动判断的"硬指标"。
同策略蒸馏(OPD):让一个更强的"老师"模型,把自己生成每个字时的概率分布,一步步教给"学生"模型模仿,学生跟着老师的节奏走。
这篇来自清华大学LeapLab等机构的论文,标题是《On-policy Distillation with Verifiable Reward》,提出的方法叫OPDVR,就是想解决一个问题:这两种辅导方式,能不能合并成一种,既有老师的细致引导,又不会被老师的水平封顶,还不需要引入一堆需要手动调的参数?
当前两条路各自的坎
先说RLVR这条路。它现在是训练推理类大模型(比如做数学题、写代码)最主流的方法,DeepSeek-R1、OpenAI的o1系列背后都有它的身影。逻辑很直白:模型自己生成一整段解题过程,如果最后答案对了,就给个奖励信号,让模型未来更倾向于生成类似的内容;答案错了,就打压这条路径。
这套逻辑的问题在哪?奖励太"稀疏"了。一道题可能要生成几百上千个字符(token),但奖励只在最后一个字符落地的时候才出现一次。前面几百步到底哪一步走对了、哪一步走岔了,模型自己并不清楚,这在强化学习里叫"信用分配问题"(credit assignment)。就像老师只在期末告诉你总分,你永远不知道是哪道大题的哪个步骤扣了分。
再说OPD这条路。它反过来,提供的是极其密集的信号,老师模型在生成每一个字符时的概率分布,都被拿来当作教学素材,学生每写一个字都要对齐老师的"口味"。这信号密度足够了,但代价是它完全不关心对错,它只关心"像不像"。
论文里有个很关键的观察:OPD的优化目标是纯粹的分布匹配,不考虑生成的回答究竟是对还是错。这意味着,学生模型的能力上限,被老师模型死死地锁住了。老师做不到100分,学生也大概到不了100分。
这就好比,你花大价钱请了个家教,家教水平就是85分档次,你跟着他学得再像,你自己单独考试的水平,基本也就卡在85分附近,很难自己突破到95分。
OPDVR的核心洞察:OPD其实藏着一个"隐式奖励"
论文作者做了一件挺巧妙的事:他们没有直接去"魔改"OPD或者RLVR的公式,而是先反过来,把OPD的数学形式重新解剖了一遍,发现它骨子里其实也长得很像一个强化学习目标。
具体来说,OPD最常用的实现方式叫"采样token蒸馏"(sampled-token OPD),它不是去对比老师和学生在所有可能的词(整个词表)上的概率分布差异,而是只看学生实际采样出来的那一个字符,老师给这个字符的概率和学生给这个字符的概率,取个对数比值,当作一个损失来优化。
计算全词表的概率分布差异太贵了,词表动不动几万甚至十几万个词,每个位置都要算一遍,对大模型来说是沉重的计算负担。只看采样出来的那一个词,相当于抽样近似,省了大量算力。
论文作者把这个损失的梯度拆开一看,发现它的数学形式和标准强化学习的梯度公式,长得几乎一模一样。唯一的区别是,强化学习里那个决定"奖不奖励"的系数是人工设定的+1或-1(对了奖,错了罚),而OPD里这个系数,自动变成了老师和学生概率的对数比值,log(πT/πθ)。
这个发现意味着什么?意味着OPD其实暗中给每一个字符都发了一个"隐式奖励",但这个奖励的正负号,完全由老师和学生谁更自信来决定,和这句话到底是对是错,毫无关系。
论文用了这样一个拆分:如果这条推理路径最终是对的,隐式奖励就是log(πT/πθ)乘以+1;如果这条路径最终是错的,隐式奖励就是log(πθ/πT)乘以-1。
问题就出在这里。log(πT/πθ)这个值,可以是正的,也可以是负的,完全取决于老师和学生谁的概率更高,跟对错没关系。这就会出现两种很荒谬的情况。
第一种情况:这条推理路径其实是对的,但学生在某个字符上比老师更自信(学生概率更高)。这时候log(πT/πθ)是负的,乘以+1还是负的,于是模型被要求去压低这个本来正确的选择的概率。相当于孩子这道题做对了,但因为他答题时的自信程度和标准答案的家教不完全一致,反而被批评了一顿,让他以后别这么自信。
第二种情况反过来:这条路径其实是错的,但老师在某个字符上比学生更自信(老师概率更高)。这时候整个隐式奖励变成正的,模型被鼓励去提高这个错误选择的概率。就像孩子这道题做错了,但因为家教当时讲这个知识点时语气特别坚定,系统反而奖励孩子以后更坚定地重复这个错误。
这两种情况,论文里统称为"违反RLVR原则"的token,它们直接和"对的要奖励、错的要惩罚"这个所有主流强化学习算法(PPO、GRPO都不例外)共同遵守的铁律相冲突。
解决方案:一个ReLU函数,不多不少
发现了问题所在,解决方案反而出乎意料地简单。作者只是在原来的隐式奖励上,套了一层**ReLU门控**。
ReLU(Rectified Linear Unit):一个非常基础的数学函数,输入是正数就原样输出,输入是负数或零就直接变成0,写作max(0, x)。它在深度学习里几乎无处不在,通常用来给神经网络引入非线性。
具体做法是,对于正确的推理路径,奖励变成max(0, log(πT/πθ))乘以+1;对于错误的推理路径,奖励变成max(0, log(πθ/πT))乘以-1。
这个改动做了什么事?对正确路径,如果学生比老师更自信(那个原本会导致负奖励的情况),ReLU直接把它归零,不奖也不罚,相当于放过它;只有当老师确实比学生更自信、说明学生这里学得还不够到位时,才给一个正的奖励去强化。对错误路径,如果老师比学生更自信(那个原本会导致错误被鼓励的情况),ReLU也直接归零;只有当学生自己在错误路径上表现得比老师还自信时,才给一个更重的惩罚,把这种"自信的犯错"狠狠压下去。
这套逻辑,其实特别符合人类学习的直觉。你已经做对的题目,并且做得很扎实很有把握,老师没必要非得让你换个更磨蹭犹豫的方式重新做一遍;你做错的题目,如果你还错得特别理直气壮,那才是最需要被纠正的地方。
论文里还提供了一个更硬核的角度来理解这个门控机制,它相当于一个"条件遮罩"(conditional mask)。标准OPD会对所有采样到的字符都进行更新,不管这个更新方向是不是和最终对错南辕北辙;OPDVR则是精确地把那些"和验证结果对着干"的字符更新直接清零,保留剩下的那些真正有价值的更新。
论文的实验数据也支持了这一点:在训练过程中,大约一半左右的采样字符(具体是48%到50%,在跨架构实验里是40%到44%)会被这个门控机制清零。这个比例在整个训练过程中相当稳定,既不会滑向"全部清零"的极端,也不会滑向"一个都不清"的极端,说明这些"冲突token"是持续存在的一批,而不是训练初期的偶然现象。
一个思想实验:为什么学生真的能超过老师
论文里有一段特别有说服力的简化分析,值得拿出来单独说一说。
假设有一个简化到极致的场景:模型在某个位置只需要在两个候选字符里选一个,选A会导向最终答案正确,选B会导向最终答案错误。假设老师模型本身水平一般,选A的概率只有p,且p小于0.5(也就是老师自己也经常选错);而学生模型一开始的水平,选A的概率q0已经比p高了,也就是学生已经比老师更靠谱了。
在标准OPD下会发生什么?OPD的优化目标本质上是让学生的分布尽量贴近老师的分布,数学上这个损失的最优解就是学生的概率完全等于老师的概率,也就是q变成p。这意味着,学生原本比老师强的优势,被硬生生地拉低回老师的水平。最终期望正确率是2p-1,跟老师完全一样。
这就是文章开头那个比喻的数学版本:请了个85分的家教,即便你原来考到90分,跟着这个家教对齐蒸馏之后,你也被拉回到85分附近。
而在OPDVR下,情况完全不同。因为学生已经比老师更自信地选择了正确答案(q0大于p),ReLU门控会把这个方向上的更新直接清零,不会往回拉;同理,在错误答案那一侧,因为学生本来就比老师更不倾向于选错(1减q0小于1减p),门控同样清零,不会往错误方向推。
结果是,期望的梯度整体为零,学生的策略原地不动,还停留在原本比老师更强的q0上。最终期望正确率变成2q0-1,严格大于老师的2p-1。
这个数学推导虽然是理想化的简化场景,但它证明了一件事:OPDVR理论上是有可能突破教师能力天花板的,而不是像传统OPD那样,天然被老师的水平锁死。
顺手把GRPO也接上了:GRPD
论文没有止步于把OPD改造成一个符合规矩的RLVR方法,还顺势往前走了一步。
既然OPDVR已经把OPD重新表述成了一个标准的强化学习问题,那它自然就可以和任何现成的策略梯度算法搭配使用,包括眼下最常用的**GRPO**(Group Relative Policy Optimization,群体相对策略优化,DeepSeek系列模型训练中大量使用的一种强化学习算法,核心思路是让同一批采样出来的多个回答互相比较,谁比平均水平好就获得正的信号,谁比平均差就获得负的信号)。
作者把GRPO里那个"群体相对优势"的正负号,拿来替代原来简单粗暴的"对了+1、错了-1"二元奖励,套进同一个ReLU门控框架里,得到了一个新变体,叫做**GRPD**(Group Relative Policy Distillation,群体相对策略蒸馏)。
这就好比原来判断一个学生答得好不好,只看这道题对不对(二元判断);现在换成把全班同学这道题的答案放在一起比,谁的思路明显优于全班平均水平,谁就该被重点强化,谁明显拖了后腿,谁就该被重点纠正。信号更细腻,自然效果也更稳。
数据说话:几组实验结果
论文在两种设定下做了实验:一种是"同架构蒸馏",老师和学生用的是同一个基础模型架构(Qwen3-4B,老师是用GRPO在DeepMath数据集上训练过的强化版本,学生是原始版本);另一种是"跨架构蒸馏",老师是4B规模的模型,学生是更小的1.7B模型,规模不同,这更贴近实际场景中常见的"用大模型教小模型"的用法。
评测用了六个数学推理测试集:AIME24、AIME25、AMC、MATH500、Minerva、OlympiadBench,这些基本上是数学竞赛难度的题目集合,一个比一个刁钻。
| 方法 | AIME24 | AIME25 | AMC | MATH500 | Minerva | OlympiadBench | 平均 |
| 学生模型(未训练) | 24.0 | 15.8 | 60.8 | 80.9 | 27.6 | 42.9 | 42.0 |
| 老师模型 | 36.0 | 29.0 | 65.9 | 87.0 | 35.4 | 49.3 | 50.4 |
| 标准OPD | 34.2 | 26.0 | 63.1 | 85.5 | 31.6 | 46.5 | 47.8 |
| Top-64 OPD | 34.6 | 23.5 | 62.0 | 85.0 | 32.2 | 46.8 | 47.4 |
| **OPDVR** | **36.9** | **28.1** | **64.8** | 84.7 | **33.2** | **47.0** | **49.1** |
这是同架构设定下的结果。值得留意的一点是,OPDVR在AIME24这个测试集上拿到了36.9分,而老师模型自己也才36.0分,学生模型的表现超过了老师。这和前面那个"简化理论分析"里预测的方向是一致的,不是巧合,是设计带来的直接后果。
跨架构设定下的结果也类似:
| 方法 | AIME24 | AIME25 | AMC | MATH500 | Minerva | OlympiadBench | 平均 |
| 学生模型(未训练) | 4.1 | 1.7 | 23.2 | 48.9 | 8.9 | 17.1 | 17.3 |
| 老师模型 | 10.6 | 13.1 | 40.3 | 74.2 | 17.2 | 30.0 | 30.9 |
| 标准OPD | 6.5 | 2.1 | 24.8 | 59.1 | 11.5 | 21.6 | 20.9 |
| Top-64 OPD | 8.5 | 3.3 | 26.4 | 60.1 | 10.7 | 21.4 | 21.7 |
| **OPDVR** | **8.5** | **3.3** | **30.3** | **60.8** | **11.6** | **22.0** | **22.8** |
在AMC测试集上,OPDVR比标准OPD高出整整5.5个百分点,这在数学推理任务里不是一个小数目,意味着大约每20道题里,OPDVR能多做对一道。
GRPD这个变体的结果同样值得关注:
| 方法 | AIME24 | AIME25 | AMC | MATH500 | Minerva | OlympiadBench | 平均 |
| GRPO | 28.3 | 20.8 | 62.3 | 83.9 | 28.9 | 44.6 | 44.8 |
| 标准OPD | 32.0 | 31.7 | 65.6 | 85.4 | 28.9 | 46.6 | 48.4 |
| **GRPD** | **34.8** | 31.7 | **67.0** | **85.6** | **30.5** | **47.0** | **49.4** |
GRPD在AIME24上比单纯的GRPO高了6.5分,在AIME25上高了10.9分。这说明把群体相对优势和ReLU门控结合起来,产生的效果比单独用任何一种方法都更强。
反向做一遍:如果把门控方向搞反会怎样
论文里做了一个特别聪明的对照实验,叫"反向门控"(inverse-gated)。
思路很简单粗暴:既然OPDVR是保留"和验证信号方向一致"的字符更新、清零"冲突"的字符更新,那反过来做会怎样?把OPDVR保留的那部分清零,把OPDVR清零的那部分反而保留下来,masking的比例完全一致,只是保留和清零的对象互换。
如果ReLU门控这个设计真的是有效的,那反向操作应该表现得更差;如果只是随便清零一部分token就能带来提升(比如仅仅是一种正则化效果),那反向操作应该表现差不多。
结果很清楚:
| 方法 | AIME24 | AIME25 | AMC | MATH500 | Minerva | OlympiadBench | 平均 |
| 标准OPD | 34.2 | 26.0 | 63.1 | 85.5 | 31.6 | 46.5 | 47.8 |
| **OPDVR** | **36.9** | **28.1** | **64.8** | 84.7 | **33.2** | **47.0** | **49.1** |
| 反向门控 | 30.3 | 21.2 | 62.3 | 83.6 | 27.7 | 42.8 | 44.6 |
反向门控在所有六个测试集上的表现都比标准OPD更差,平均分掉到了44.6,比OPDVR整整低了4.5分。这直接证明了,门控的方向选择不是随意的,选对方向能带来提升,选错方向反而会拖后腿,而且是明显的拖后腿。
不过这里还有个挺有意思的细节:即便是这个"选错方向"的反向门控版本,它依然比训练前的初始模型表现更好。这说明老师模型的分布引导本身确实是有价值的信息,只是当这个信息的正负号和任务对错方向不一致的时候,它的价值被大幅打了折扣,但没有完全变成负价值。
写在后面
读这篇论文最触动我的地方,不是最终那几个百分点的提升,而是它处理问题的姿态。
面对"两个方法各有优劣、要不要把它们捏在一起"这种常见的研究困境,大部分论文的第一反应是加权重、加开关、加各种超参数,让研究者手动去调这两个信号谁多谁少。这篇论文反而先停下来问了一个更根本的问题:这两个东西,是不是本来就是同一个东西的不同表现形式?
答案是,是的,只是符号乱了。OPD骨子里一直藏着一个强化学习结构,只是它的奖励符号被教师学生的置信度差异绑架了,而不是被任务对错绑架。找到这一点之后,解决方案就变得极其简单,一个ReLU函数,不需要引入任何新的可调参数。
这让我想到一件事:很多看似复杂的"融合两种方法"的工程难题,也许根源不在于两种方法真的水火不容,而在于我们一开始就没看出它们其实共享着同一副骨架,只是穿了不同的皮。
那个简化的数学推导也值得多想一层。它证明的不是"蒸馏能让学生逼近老师",而是"蒸馏在特定条件下能让学生超过老师",前提是学生自己已经在某些地方比老师强,而系统足够聪明,知道在这些地方不去强行拉齐。这多少有点反常识:一个真正好的老师,未必是让你处处模仿他,而是知道什么时候该放手让你按自己的方式来。
Q&A
Q1:OPDVR是什么,它解决了什么问题?
A:OPDVR是清华大学LeapLab团队提出的一种大语言模型训练方法,全称是On-policy Distillation with Verifiable Reward(带可验证奖励的同策略蒸馏)。它解决的核心问题是,传统的同策略蒸馏(OPD)只让学生模型模仿老师模型的输出分布,不管对错,导致学生水平被老师锁死;而OPDVR通过一个简单的ReLU门控机制,让蒸馏信号和任务对错的方向保持一致,不需要额外的超参数就能让学生模型有机会超过老师。
Q2:OPDVR为什么能让学生模型的表现超过老师模型?
A:因为OPD原本的隐式奖励符号,是由老师和学生谁更自信决定的,跟任务对错没关系,这会导致学生已经做对且自信的地方被错误压低。OPDVR用ReLU把这种"和对错方向相反"的更新直接清零,只保留真正有价值的更新,实验中在AIME24测试集上,OPDVR得分36.9分甚至超过了老师模型的36.0分。
Q3:GRPD和OPDVR是什么关系?
A:GRPD(Group Relative Policy Distillation)是OPDVR和GRPO强化学习算法结合后的一个变体。它把OPDVR里简单的"对错二元奖励"换成了GRPO里更细腻的"群体相对优势"信号,实验显示GRPD比单独用GRPO在AIME25上高出10.9个百分点,效果比两种方法单独使用都更强。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.