微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

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

首页 强化学习微调,训练数据里到底谁在"划水"

强化学习微调,训练数据里到底谁在"划水"

2026-09-22 16:07
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-09-22 16:07 • 科技行者

你有没有想过,同样一批学生做同一套题,老师批改作业的时候,是不是应该对每道题一视同仁?

大概率不会。有些题目学生一看就会,反复练没什么意义;有些题目太难,讲了也白讲;真正值得花时间的,是那些"跳一跳够得着"的题目。可是现在很多训练大模型的方法,恰恰忽略了这个常识。

这篇来自港大和腾讯混元团队的论文,讲的就是这件事:在强化微调的过程里,怎么让模型自己判断,哪些训练样本此刻最值得学。

强化微调*:Reinforcement Fine-Tuning,简称RFT,是指用强化学习的方式继续训练已经预训练好的大模型,让它根据奖励信号(比如答案对不对)来调整自己的输出方式,而不是单纯模仿人类写好的答案。

先说说这件事为什么难

现在大模型能解数学题、能推理,很大程度上要归功于RFT。DeepSeek-R1就是个典型例子,它用了一种叫GRPO的算法,靠"答对给奖励,答错给惩罚"这种简单粗暴的信号,硬是把模型的推理能力顶了上去。

GRPO*:Group Relative Policy Optimization,一种强化学习算法,让模型针对同一个问题生成好几个答案,比较这些答案之间的相对好坏,从而计算出每个答案该被奖励还是惩罚,不需要额外训练一个打分模型。

但GRPO这类方法有个隐藏的前提:所有训练样本在训练过程中的价值是固定的。这就好比一个健身教练,从第一天到最后一天都用同一份训练计划,不管你现在体能怎么样,进步到哪一步了。听起来就不太对劲,对吧?

于是有人开始琢磨,能不能提前筛选出"好"的训练样本。比如LIMR方法会看奖励的变化趋势,挑出那些"进步空间大"的题目;HVS方法则偏爱奖励波动大的样本,因为波动意味着模型还没学稳。这些方法确实比完全不筛选要好,但它们有一个致命伤:判断标准是提前定好的,训练开始之后就不再变了。

这就好比开学第一周老师做了个摸底测验,然后整个学期都按这次测验的结果来分组教学,完全不管学生后来学得怎么样了。摸底测验当时可能挺准,但一学期下来,情况早变了,谁进步快谁退步了,这份名单根本反映不出来。如果不这样按需调整,结果就是:本该多练的题目没人管,已经学会的题目还在反复刷,时间全浪费在了错误的地方。

后来又出现了一些动态调整的思路,比如PCL会额外训练一个"价值模型"来评估题目难度,SPEED-RL则偏爱那些正确率处于中等水平的题目,觉得这样的题目"跳一跳够得着"。这些方法确实比静态选择聪明了一点,但它们依然依赖一些外部的、人为设定的指标,比如"难度分数"这种东西,说到底还是隔靴搔痒,没有真正问过模型自己:这道题对你现在的学习,到底有没有用?

DIEM:让模型自己给样本打分

论文提出的方法叫DIEM,全称是Dynamic Important Example Mining,动态重要样本挖掘。

DIEM*:一套在强化微调每一步训练中,自动判断每个样本此刻价值大小,并据此调整该样本对模型更新影响力的框架。

它的思路听起来其实挺直接:与其找个外部指标去猜哪些题目重要,不如直接问模型的梯度。

梯度*:在深度学习里,梯度表示模型参数应该往哪个方向调整、调整多少,才能让损失变小、表现变好,可以理解成模型学习时"迈出的那一步该往哪个方向走"。

DIEM做了两件事。第一件事叫动态数据重要性度量,简单说就是看每个样本产生的梯度,跟整个批次汇总起来的梯度方向是不是一致。如果一致,说明这个样本在"拉着"模型往大家共同认可的方向走,是个有价值的样本;如果南辕北辙,那这个样本此刻可能就是在拖后腿。

这里为什么要用梯度对齐来衡量重要性,而不是直接看这道题模型做对没做对?因为对错只是结果,梯度对齐反映的是这道题对模型这一步更新到底起了什么作用。举个例子,一道题模型蒙对了,但产生的更新方向其实很乱,这种"蒙对"对模型真实能力提升没什么帮助,只看对错是发现不了这个问题的。

这就好比一个乐队排练,指挥不会只看每个乐手有没有把音符弹对,而是听这个乐手弹的部分跟整体的旋律走向合不合拍。弹错音符但节奏对整体有帮助,可能比弹对了音符却完全跑调的乐手更值得关注。如果指挥只按"对错"来判断谁该多练,那些看似正确、实则拖累整体和声的演奏会被一直忽略下去。

论文里给这个重要性打分的公式其实很简洁,就是学习率乘以样本梯度和批次总梯度的内积。这个计算几乎不额外花什么钱,因为这些梯度在正常的反向传播里本来就要算一遍,DIEM只是把已经算出来的东西重新利用了一下。

论文还证明了一件挺让人安心的事:这个简化的估计方法,跟"真正应该算但算不起"的理想重要性指标之间,误差是有严格数学上界的,而且这个误差跟学习率、模型平滑程度这些量直接挂钩,不需要模型处于某个特殊的稳定状态才成立。这一点很关键,因为强化学习训练早期,模型状态往往很不稳定,很多传统的影响力分析方法在这种情况下根本不适用,而DIEM从一开始就是为这种不稳定场景设计的。

算完重要性,还要解决权重分配问题

光知道哪些样本重要还不够,还得决定怎么把这个"重要性"变成实际的权重,用来调整训练过程。这就是DIEM的第二步,动态数据重加权。

这一步论文把它写成了一个约束优化问题:目标是让整体样本的"重要性乘以权重"之和最大化,但同时要求加权之后的总梯度大小,跟原来不加权的总梯度大小保持一致。

约束优化*:在满足某个限制条件的前提下,寻找目标函数最大值或最小值的数学方法,这里的限制条件就是"梯度总量不能变"。

为什么要加这个约束?如果任由权重自由分配,很可能出现极端情况:极少数样本的权重被拉得极高,其他全部归零,训练一下子变得极其不稳定,就像油门突然踩到底,车子会失控打滑。加上这个约束之后,既能突出重要样本,又能保证每一步更新的"力度"跟平时差不多,不会忽大忽小。

这让我想起开车换挡这件事。经验丰富的司机换挡时会松油门保持车速平稳,而不是猛踩一脚离合再猛给油。如果每次换挡都伴随速度剧烈波动,乘客会很不舒服,车子也容易出问题。DIEM的约束条件干的就是这个活:突出重点的同时,不让整体"车速"忽快忽慢。

好消息是,这个看起来挺复杂的优化问题竟然有解析解,作者用拉格朗日乘子法把它解出来了,核心公式只需要对一个矩阵求一次逆。而且这个矩阵的大小只跟一个小批次里的样本数有关,通常也就几十个样本,跟一次训练动辄几分钟到几十分钟的耗时比起来,这点计算量几乎可以忽略不计。

拉格朗日乘子法*:一种处理带约束条件优化问题的经典数学工具,通过引入辅助变量把约束条件"融入"目标函数,从而把带约束的问题转化成没有约束的问题来求解。

算出来的权重里,有些可能是负数,意味着这个样本在这一步可能是有害的。论文的处理方式很干脆:直接把负权重砍成零,只保留那些真正对训练有正向贡献的样本权重。这一步保证了最终参与更新的信息,都是"往前推"的,不会有样本在拖后腿。

效果到底怎么样

论文在两条战线上做了验证,一条是纯语言模型,一条是多模态视觉语言模型。

语言模型这边,用了Qwen系列不同大小的模型,从17亿参数到70亿参数都测了,训练数据是1万5千道左右的数学题。结果显示,DIEM在所有模型上都跑赢了基础的GRPO方法,平均提升从1.68个百分点到3.36个百分点不等。

最让人意外的是在AIME25这个高难度竞赛数学题基准上的表现。Qwen2.5-7B模型上,GRPO只能拿到5.5分,DIEM直接提到10.8分,几乎翻倍。这不是一个小提升,意味着原来10道题里能对半道多一点,现在能对一道多。

视觉语言模型这边,用的是Qwen2.5-VL的7B和32B版本,训练数据来自MM-Eureka语料库。7B模型上,DIEM在六个评测基准里拿下五个第一,平均分61.8%,甚至超过了GPT-4o的60.9%。要知道GPT-4o是商业闭源大模型,参数量远超这个7B的开源模型,能在平均分上反超,说明这套数据筛选机制确实在帮小模型把每一分训练数据的价值都榨干了。

32B模型上表现更彻底,六个基准全部拿到最高分,平均分67.3%,比原始RFT高出2.4个百分点,比此前最强的动态方法SPEED-RL还高1.7个百分点。

速度上呢?论文专门做了个耗时对比。原始GRPO训练一次要70.3小时,加上DIEM之后变成71.2小时,只多了0.9小时,大概1.28%的额外开销。相比之下,LIMR和HVS这两个静态方法,因为需要提前训练一个独立的评估模型,耗时直接飙到122小时,几乎是原始训练时间的1.75倍。

这个对比其实很说明问题。很多方法提升效果,代价是大幅拉长训练时间,性价比未必划算。DIEM的巧妙之处在于,它没有引入任何额外的模型或者独立的训练流程,用的全是训练过程里本来就要算出来的梯度信息,相当于顺手把已经产生的"边角料"利用起来了,没有额外造新的东西。

意外发现:模型自己"生成"了一套学习节奏

论文里还有个挺有意思的实验,把训练样本按照通过率分成简单、中等、困难三档,然后观察DIEM在训练过程中给这三档样本分配的权重是怎么变化的。

结果显示了一条清晰的曲线:训练刚开始的时候,简单和中等难度的样本权重都比较高;随着训练推进,简单样本的权重迅速往下掉,几乎被模型"抛弃"了;与此同时,困难样本的权重持续攀升,虽然过程中有些波动,但整体趋势很明显。

这其实就是一种自然浮现出来的"先易后难"学习节奏,而且这个节奏不是人为设计的,是模型根据自己的学习进度自己"长"出来的。跟PCL、SPEED-RL这类依赖人工设定难度指标的方法比起来,这一点差异很关键:人工设定的难度曲线是死的,写好了就不会变;而DIEM这套节奏是活的,会随着模型的真实学习状态动态调整。

这就像一个自学成才的人安排复习计划。刚开始什么都不会,什么书都翻一翻找感觉;学到一定程度,简单的内容一扫而过,自然而然把时间挪到啃不动的难题上。没有人给他排课表,是他自己感觉到"这块我已经会了,不用再耗时间了",然后自己调整了节奏。如果非要按照开学第一天定好的课表走到学期结束,那些已经学会的内容还得被迫反复过一遍,真正卡住的难点反而没有额外时间去磨。

论文还做了细致的消融实验,验证这两个组件是不是都必不可少。把DIEM的重要性打分换成随机值,效果从58.0掉到53.0,掉了5个点;换成SPEED-RL用的通过率打分,掉到53.2;换成PCL的难度打分,掉到52.1,是所有替换方案里跌得最狠的。

权重分配这块,如果完全去掉重加权这一步,效果掉到55.4,掉了2.6个点;换成常见的Softmax归一化,掉到56.4。这说明重要性打分和重加权策略这两个组件都不是可有可无的装饰,少了任何一个,整个系统的效果都会打折扣。

写在后面

读到这篇论文的时候,我一直在想一个问题:为什么"让模型自己决定学什么"这件事,之前没有被更早地、更彻底地实现?

答案其实藏在计算成本里。真正精确地衡量一个样本的边际贡献,理论上需要把这个样本从批次里拿掉,重新做一次梯度更新,再对比训练效果的差异,论文里管这个理想指标叫Total Batch Reward差值。这个计算量跟批次大小成正比,几十个样本就要做几十次完整的梯度更新和评估,在动辄几十亿参数的大模型训练里,这是完全跑不起的。DIEM聪明的地方在于,它没有硬啃这个不可能完成的任务,而是找了一个数学上有误差保证的近似替代,把不可能变成了可能。

这让我意识到,很多看起来"应该早就有人做"的想法,卡住的往往不是想法本身,而是工程上算不起的那道坎。谁能把理论上正确但算不动的东西,变成一个几乎零成本的近似方案,谁就能把想法真正落地。

另一个让我意外的细节是那个AMC-23基准上的例外情况,Qwen3-4B模型用DIEM之后反而比GRPO低了3.5分。论文没有回避这个数据,坦率地说这可能是这个模型和这个基准的个例组合造成的意外,因为DIEM在其他所有模型上的AMC-23表现都是提升的。这种诚实标注异常值、不做选择性掩盖的态度,反而让整篇论文的可信度高了不少。

这套方法能不能用到强化学习之外的场景?比如监督学习的数据筛选,或者更早的预训练阶段?梯度对齐这个思路本质上不依赖强化学习特有的奖励机制,理论上是可以迁移的。这大概是留给后续研究者的一个开放问题。

Q&A

Q1:DIEM是什么?

A:DIEM全称Dynamic Important Example Mining,是一种在强化微调训练过程中,通过计算样本梯度与批次总梯度的对齐程度,动态判断每个训练样本此刻价值并调整其权重的框架,不需要额外训练评估模型。

Q2:DIEM和LIMR、HVS这些静态数据选择方法有什么区别?

A:LIMR和HVS在训练开始前就固定好挑选哪些样本,训练过程中不再变化;DIEM则在每一步训练中都重新计算样本重要性并调整权重,能跟上模型学习状态的实时变化,效果更稳定也更高。

Q3:使用DIEM会不会大幅增加训练时间?

A:不会。论文测试显示原始GRPO训练耗时70.3小时,加上DIEM后为71.2小时,只多了0.9小时,约1.28%的额外开销,远低于LIMR和HVS这类需要额外训练评估模型的方法(耗时122小时)。

分享至
0赞

好文章,需要你的鼓励

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