微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

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

首页 训练大模型做数学题时,为什么"表现好的能力"反而被过度关照?

训练大模型做数学题时,为什么"表现好的能力"反而被过度关照?

2026-08-26 15:09
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-08-26 15:09 科技行者

你有没有想过这样一个场景:一个学生同时准备两门考试,一门是他已经能考95分的英语,一门是他还在及格线徘徊的数学。如果老师给他布置作业的方式,是不管现状永远按照"英语3小时、数学1小时"的固定比例来分配,会发生什么?

大概率是,这个学生的英语会越来越接近满分,但边际收益越来越小,而数学的短板可能一直没被真正弥补。可现实中的老师会怎么做?大概率会说,英语你都95分了,先放一放,数学多花点时间吧。

这篇论文讨论的,正是大语言模型训练里一模一样的问题。当我们用强化学习让模型同时优化"答案要正确""格式要规范""长度要合规"这几件事时,现有的主流方法,恰恰就是那个死板的老师。

先搞懂问题出在哪:一个叫GRPO的训练方法

要理解这篇论文在解决什么,得先知道现在大模型是怎么"刷题"的。

**GRPO*:Group Relative Policy Optimization,一种让大模型在没有额外打分模型的情况下自我提升的强化学习方法。它的做法是让模型针对同一个问题生成一组(通常8个左右)不同的回答,然后比较组内谁的回答更好,谁就获得正向的"信号"(术语叫优势值),谁差就获得负向信号。

这个方法最早由DeepSeekMath团队提出,后来在DeepSeek-R1里发挥了关键作用,成了大模型做数学推理、代码生成这类任务后训练的标准做法。它聪明的地方在于,不需要单独训练一个价值网络去打分,直接靠"组内比较"就能算出每个回答该往哪个方向调整,省了不少计算资源。

但问题来了:现实中一个回答往往需要同时满足好几个目标。数学题不仅要答案对,还得格式规范(比如必须用指定的标签包裹推理过程),篇幅不能太长。那么多个目标的奖励怎么合并成一个信号呢?

行业里的标准做法,是先把几个奖励按固定权重加权求和,比如"正确性权重0.7,格式权重0.3",算出一个总分,再对这个总分在组内做标准化。

这个做法藏着两个致命缺陷。

第一个缺陷是信息丢失。假设正确性和格式各占权重0.5,一个回答格式满分但答案错了,另一个回答格式差点意思但答案对了一半,两者加权后可能刚好得到同样的总分。于是这两个"画风完全不同"的回答,会被系统当成完全一样的东西对待,获得一模一样的优势值。

这就像给两个学生打综合分:一个语文95分数学5分,另一个语文50分数学50分,算术平均都是50分,看起来"一样好"。但这两种情况需要的辅导策略完全不同啊,把他们混为一谈,老师根本没法对症下药。

第二个缺陷更隐蔽,也是这篇论文真正想解决的核心问题:固定权重从头到尾都不变。哪怕格式这个目标已经被模型学得炉火纯青(比如100次里99次都符合格式要求),系统依然按照最初设定的权重去关注它,跟关注那个还在及格线挣扎的正确性目标一视同仁。

论文管这个现象叫"目标饱和"(objective saturation),意思是某个优化目标已经接近它能达到的理论上限,再怎么使劲推,能拿到的额外收益也很有限了。

GDPO先解决了一半问题,但没解决全部

在这篇论文之前,已经有研究者注意到"信息丢失"这个问题,提出了一个叫GDPO的方法。

**GDPO*:Group reward-Decoupled Policy Optimization,一种先把每个奖励目标单独在组内做标准化,再加权求和的方法,避免了不同奖励profile被合并成同一个数字的问题。

GDPO的思路很直接:既然合并太早会丢信息,那就先别合并。让"正确性"自己在组内比较一次,算出一个标准化的优势值;让"格式"也自己算一次;最后再按权重把这些独立算出来的优势值加起来。这样至少能区分出"格式好答案错"和"格式差答案对"这两种完全不同的情况。

但GDPO依然没有解决第二个问题:权重还是固定的。哪怕格式目标已经饱和到99分,它的权重依旧和正确性目标平起平坐。这就好比老师终于学会分开批改语文和数学的卷子了,但布置作业的时间分配,还是死板的"各占一半",完全不看学生现在哪科更需要练。

论文用一张图(原文Figure 1)非常直观地展示了这个问题。设想一组4个回答,格式目标已经接近满分(97-100分),正确性目标普遍很低(0-5分)。GRPO因为总分相同,会给两个截然不同的回答打出同样的零优势值。GDPO虽然区分开了,但由于两个目标权重相等,反而给一个"格式满分但正确性为零"的回答打出了比另一个"正确性稍高"的回答更高的分数,这显然是反着来的,因为格式早就学会了,这时候还继续强化格式,等于在做无用功。

SA-MRPO:让模型自己知道"这门课该收手了"

这篇论文提出的方法叫SA-MRPO,全称Saturation Aware Advantage Reweighting for Multi-Reward Policy Optimization(饱和感知的优势重加权多奖励策略优化)。

它的核心思路,用一句话概括就是:不再让每个目标的权重一成不变,而是根据这个目标当前"学到了多满"来动态调整它的分量。学得越满,越往后放;学得越差,越往前提。

具体怎么衡量"学到多满"呢?论文引入了一个叫"饱和度"(saturation ratio)的指标。

**饱和度*:用当前训练批次里这个目标的平均奖励,相对于这个目标能达到的理论最高分和最低分之间的位置来衡量。比如格式奖励的最高分是1,最低分是0,如果当前批次平均得分是0.98,那饱和度就是0.98,意味着这个目标已经接近它能达到的天花板了。

有了饱和度,SA-MRPO给每个目标的权重乘上一个折扣因子:(1减去饱和度)的γ次方,这里γ是一个可以调节的参数,控制折扣的力度有多狠。

饱和度越高,这个折扣因子就越接近0,意味着这个目标对最终优化信号的贡献被大幅压低了。反过来,一个还远没饱和的目标,折扣因子接近1,几乎不受影响,还是按原来的权重发挥作用。

这就好比一个健身教练在安排你的训练计划:如果你的深蹲已经能举起你自身体重的3倍,练到瓶颈了,教练不会继续把主要时间都花在深蹲上,而是会把更多时间挪到你还没练好的引体向上上。如果不这么做,会发生什么?你可能会在深蹲上继续小幅进步,但引体向上永远也练不起来,因为你压根没有分配足够的时间去攻克它。SA-MRPO做的就是这件事,只不过它是自动、动态地在训练过程中做这个判断,而不是靠人工事先定好一个固定比例。

论文里那张对比图(Figure 1)也给出了SA-MRPO重加权后的效果:面对格式已经饱和、正确性还很差的那组回答,SA-MRPO会主动压低格式目标的权重,转而给正确性更高的回答分配更大的正向优势,给正确性为零的回答分配更负的优势值,方向完全对了。

论文还从数学上证明了一件挺有意思的事:这种重加权不只是"调整幅度"这么简单,它甚至能够反转一次更新的方向。原本GDPO可能给某个回答一个正向的优势值(鼓励模型往这个方向学),但SA-MRPO重新计算后可能给出负的优势值(阻止模型往这个方向学)。这说明饱和感知带来的不是量变,是质变,它能让原本"看起来不错"的回答被重新识别成"其实不该学"的回答。

值得一提的是,这个方法是有"退化路径"的:当γ设成0的时候,折扣因子恒等于1,SA-MRPO就完全退化成GDPO;如果只有一个优化目标,它又退化成最原始的GRPO。这种设计上的"向下兼容"说明SA-MRPO并不是另起炉灶,而是在GDPO的基础上加了一层更聪明的调度机制。

但这套机制不是万能药:饱和度高不代表可以放心放弃

论文很坦诚地讨论了这个方法可能带来的副作用,这也是我觉得整篇论文比较扎实的地方,没有回避矛盾。

如果两个优化目标之间存在冲突(比如让答案更简短的梯度方向,和让答案更正确的梯度方向刚好相反),那么当你把"格式"这个目标的权重压低之后,原本用来保护格式表现的"自我提升力"也跟着变弱了。这时候如果正确性目标的梯度足够强、且和格式目标的梯度方向冲突够剧烈,格式这个已经学好的能力反而有可能被拉退步。

论文给出了一个数学条件(不等式2)来精确刻画这种"退步"什么时候会发生,本质上是说:当其他目标对本目标的负面拖拽力,超过本目标自身的正向提升力时,退步就会出现。

这就像前面那个健身教练的例子,如果教练把深蹲的训练时间压缩太多,转而全力练引体向上,而这两个动作恰好需要相反的核心发力方式(现实中不一定有这么强的冲突,这里只是假设),那深蹲的成绩说不定还真会退步一点点。教练需要判断的是,练引体向上换来的收益,能不能盖过深蹲退步的损失。

论文还提醒了一个更微妙的问题:饱和度这个指标衡量的是"名义上还剩多少奖励空间没拿到",但这不等于"模型实际上还能不能拿到这些奖励"。

也就是说,即便一个目标的分数离满分还差得远,也可能是因为当前模型的能力天花板就摆在那里,不是靠调整训练权重就能突破的。论文认为这不算这个方法本身的缺陷,饱和度指标确实精确反映了"奖励范围内的进度",至于模型能不能真的够到那个上限,那是模型容量的问题,跟怎么调度奖励权重是两回事。

实验:三个场景,看SA-MRPO到底行不行

说了这么多设计原理,最终还是要看数据说话。论文在数学推理、自适应推理(一种专门设计出的、饱和现象更明显的场景)和代码生成三个任务上做了实验。

**第一个场景:标准数学推理。**

研究者在Qwen2.5-3B-Instruct和Qwen2.5-7B-Instruct两个模型上,分别测试了"正确性+长度"两目标组合,以及"正确性+长度+格式"三目标组合,在AIME24、Minerva、AMC23、MATH500、Olympiad五个数学竞赛级别的测试集上评估。

| 模型/设置 | 基准 | Acc(GDPO) | Acc(SA-MRPO) |

|---|---|---|---|

| Qwen2.5-7B, 三目标, AIME24 | 11.7% | 11.5% | **16.5%** |

| Qwen2.5-7B, 三目标, MATH500 | 50.0% | 64.2% | **67.7%** |

| Qwen2.5-3B, 两目标, AIME24 | 0.6% | 5.0% | **8.5%** |

| Qwen2.5-3B, 两目标, AMC23 | 10.7% | 33.2% | **34.9%** |

| Qwen2.5-3B, 三目标, AIME24 | 0.6% | 6.7% | **8.1%** |

在全部15组基准对比里,SA-MRPO有12组的正确率超过了GDPO,AIME24这个最难的赛题上甚至有5个百分点的提升。而且这个提升不是靠放弃长度控制换来的,超长回答的比例(EXCEED指标)在两种方法之间差异很小,说明模型确实是在正确性上学得更扎实了,而不是靠废话堆篇幅蒙混过关。

**第二个场景:专门设计的自适应推理任务,饱和现象更极端。**

这个实验更有意思。研究者故意设计了一个"渐变式"的长度奖励:只要回答长度不超过1024个token,长度奖励就直接拉满,超过这个点之后奖励开始线性下降,直到2048个token归零。这意味着长度这个目标存在一个明确的"饱和区间",模型一旦压缩到1024以内,再怎么继续压缩篇幅,也拿不到额外奖励了。

| 基准 | SA-MRPO准确率 | SA-MRPO平均长度 | GDPO准确率 | GDPO平均长度 | 准确率差距 |

|---|---|---|---|---|---|

| AIME24 | **7.3** | 804 | 5.2 | 566 | +2.1 |

| AMC23 | **37.5** | 417 | 28.3 | 290 | +9.2 |

| MATH500 | **51.5** | 270 | 47.1 | 187 | +4.4 |

| Olympiad | **20.9** | 529 | 18.1 | 406 | +2.8 |

| 平均 | **26.6** | 459 | 22.8 | 333 | +3.8 |

平均提升3.8个百分点,AMC23上更是从28.3%飙到37.5%,涨了将近9.2个百分点。值得注意的是,SA-MRPO用的回答确实变长了(从333个token涨到459个),但依然远低于1024这个饱和阈值。也就是说,模型没有傻乎乎地把篇幅拉得很长去硬凑正确性,它只是不再拼命地把已经饱和的长度目标压到极限,把这部分省下来的"优化预算",转而用来把答案想得更透彻。

**第三个场景:代码生成,验证方法跨领域的通用性。**

这里用的两个目标是"能否成功执行"(executability)和"测试用例通过率"(pass rate)。可执行性是个相对容易满足的基础门槛,通过率则要求代码不仅能跑,还得跑对结果,明显是个更难的目标。

| 数据集 | 基准通过率 | GDPO通过率 | SA-MRPO通过率 |

|---|---|---|---|

| APPS | 43.8% | 53.2% | **53.8%** |

| CodeContests | 12.4% | 19.2% | **20.6%** |

| Codeforces | 8.7% | 10.6% | **12.9%** |

| TACO | 29.0% | **36.0%** | 35.6% |

在4个基准里3个上SA-MRPO都超过了GDPO,Codeforces上提升最明显,涨了2.3个百分点。只有TACO这一个数据集上稍微低了0.4个百分点,但两种方法的错误率(Bug指标)基本持平,说明可执行性这个已经学好的能力没有被明显牺牲掉。

**第四个实验:饱和折扣力度γ到底该怎么调。**

论文还专门做了一组消融实验,测试了γ取0、0.25、0.5、0.75、1.0五个值时的表现。数据显示,γ越大,训练过程中正确性奖励涨得越快,但长度奖励也相应地慢慢往下掉(尤其在γ=0.75和1.0的时候掉得比较明显)。最终在下游评测里,γ=0.5这个中等强度的设置,取得了最好的平均准确率表现,在AIME24和AMC23上尤其突出。而γ过大时,虽然正确性还能保持竞争力,但超长回答的比例开始上升,说明力度太猛也会带来副作用。

这提示我们,饱和折扣这个杠杆,并不是越用力越好,中等力度往往是收益和风险之间比较舒服的平衡点,就跟前面健身教练的例子一样,把深蹲时间压缩到零去死磕引体向上,大概率也不是最优策略,总得留一点余力维持住已经练出来的成果。

写在后面

读这篇论文的时候,最让我停下来想了一会儿的地方,是它对"饱和度不等于优化上限"这件事的坦诚。很多方法论文写到实验有效就结束了,但这篇论文专门花了一段篇幅去讨论:如果一个目标的名义分数很低,但模型本身就没能力冲得更高,那这套动态调度机制岂不是在瞎努力?这种自我质疑反而让整个方法显得更可信。

另一个值得单独拿出来说的细节是,论文明确证明了饱和感知重加权可以反转优势值的符号,不只是调整大小。这在直觉上不难理解,但很少有论文愿意专门用数学语言把这件"质变而非量变"的事情讲清楚。这让我联想到人力资源管理里"投入产出边际递减"的概念,一个团队里资源永远是有限的,把已经跑顺的项目继续加码资源,边际收益注定越来越小,而这个道理套在AI训练的奖励分配上,居然也严丝合缝地成立。

这篇论文没有解决的问题是,当多个目标之间存在深层次冲突时(比如"简洁"和"详尽解释"天然对立),单靠饱和度这一个维度去调度权重,会不会漏掉更复杂的目标间博弈关系?这个问题留给了后续研究者去回答。

Q&A

Q1:SA-MRPO是什么?

A:SA-MRPO全称Saturation Aware Advantage Reweighting for Multi-Reward Policy Optimization,是一种训练大语言模型的强化学习方法,它会根据每个优化目标当前的"饱和程度"动态调整这个目标在训练中的权重,让模型把更多精力放在还没学好的目标上,而不是继续死磕已经学得很好的目标。

Q2:SA-MRPO和之前的GDPO有什么区别?

A:GDPO解决了把多个奖励目标合并成一个数字导致的信息丢失问题,但它给每个目标的权重从头到尾是固定不变的。SA-MRPO在GDPO基础上增加了饱和度检测机制,会根据目标当前完成度动态压低已经饱和目标的权重,这是两者最核心的差别。

Q3:这个方法有没有可能让已经学好的能力变差?

A:论文承认这种风险确实存在,如果两个优化目标的梯度方向存在冲突,压低某个目标权重可能导致该目标性能小幅下降。但实验数据显示,在数学推理、自适应推理和代码生成三类任务里,SA-MRPO总体上都能在提升较难目标的同时,让已经饱和的目标基本维持在原有水平。

分享至
0赞

好文章,需要你的鼓励

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