英伟达GDPO论文解读:多奖励强化学习的正确打开方式

英伟达GDPO论文解读:多奖励强化学习的正确打开方式

英伟达GDPO论文解读:多奖励强化学习的正确打开方式 英伟达GDPO论文解读:多奖励强化学习的正确打开方式 Modified January 12 这个任务有两个奖励: • 格式奖励 :输出格式是否正确 • 正确性奖励 :工具调用是否正确 在Berkeley Function Call Leaderboard(BFCL v3)上的结果: GDPO在两个指标上都更好。 任务二:数学推理 这个任务更有挑战性,因为两个奖励是 隐性竞争 的: • 正确性奖励 :答案是否正确 • 长度奖励 :回答是否在4000 token以内 模型想答对,往往需要更多思考步骤;但又要控制长度。 在AIME(美国数学邀请赛)上的结果: 注意看:原版模型91.5%的回答都超长了。GRPO虽然控制住了长度,但准确率从29.8%暴跌到23.1%。 GDPO不仅控制了长度,还保住了准确率。 在7B模型上,GDPO在AIME上比GRPO高出近3个百分点。 任务三:代码推理 这个任务最复杂,有 三个奖励 : • 通过率奖励 :代码能通过多少测试用例 • 长度奖励 :回答是否在规定长度内 • Bug奖励 :代码是否没有运行时错误 三个奖励同时优化,GDPO依然表现更好。 一个重要发现:奖励权重没你想的那么有用 如果老板说"好吃比省钱重要",你可能会想:那我把"好吃"的权重调高不就行了? 论文发现: 当两个目标难度差异很大时,调整权重几乎没用。 长度奖励很容易满足,正确性奖励很难。 即使把长度奖励的权重从1.0降到0.25,模型还是优先去满足长度约束。 就像让一个学生"语文重要,数学次要",但语文考100分很难,数学考100分很简单。 学生还是会先把数学刷满,因为这样"性价比最高"。 解决方案是:条件奖励。 条件奖励(Conditioned Reward) :只有当主要目标达成时,才给次要目标的奖励。比如"只有答对了,才计算长度奖励"。 使用条件奖励后: • 模型被迫先追求正确性 • 调整权重才能真正影响模型行为 设置 AIME准确率 超长比例 GRPO + 普通奖励 50.2% 2.1% GDPO + 普通奖励 53.1% 0.2% GRPO + 条件奖励 53.3% 29.2% GDPO + 条件奖励 57.7% 12.3% 条件奖励 + GDPO,在AIME上提升了4.6个百分点。 为什么这篇论文重要 第一,它指出了一个普遍但被忽视的问题。 之前的多奖励RL研究都在琢磨"怎么设计更好的奖励函数",却没人问:现有的优化算法适合多奖励吗? 答案是:不太适合。 第二,修复方法极其简单。 GDPO不需要额外的模型、额外的计算资源。只是改变了归一化的顺序。 论文还开源了三个主流框架的实现:HF TRL、verl、Nemo RL。拿来就能用。 第三,效果是实打实的。 不是某一个任务上的微小提升,而是在工具调用、数学推理、代码推理三个不同任务、多种模型规模上的一致性提升。 技术细节:算法的数学表达 GRPO的优势计算: Code block Plain Text A sum = (r 1 + r 2 + ... + r n mean) / std GDPO的优势计算: Code block Plain Text A 1 = (r 1 mean 1) / std 1A 2 = (r 2 mean 2) / std 2...A sum = A 1 + A 2 + ... + A nA final = (A sum batch mean) / batch std 核心差异就在这里。GRPO是"先合后分",GDPO是"先分后合"。 这让我想起一个老笑话: 有人问:"1+1等于几?" 数学家说:"2。" 会计师说:"你希望它等于几?" GRPO就像那个会计师,把所有数字混在一起,最后给你一个"综合评价"。GDPO则像数学家,每一项都算清楚,再汇总。 延伸思考:这对AI对齐意味着什么 这个任务有两个奖励: • 格式奖励 :输出格式是否正确 • 正确性奖励 :工具调用是否正确 在Berkeley Function Call Leaderboard(BFCL v3)上的结果: GDPO在两个指标上都更好。 任务二:数学推理 这个任务更有挑战性,因为两个奖励是 隐性竞争 的: • 正确性奖励 :答案是否正确 • 长度奖励 :回答是否在4000 token以内 模型想答对,往往需要更多思考步骤;但又要控制长度。 在AIME(美国数学邀请赛)上的结果: 注意看:原版模型91.5%的回答都超长了。GRPO虽然控制住了长度,但准确率从29.8%暴跌到23.1%。 GDPO不仅控制了长度,还保住了准确率。 在7B模型上,GDPO在AIME上比GRPO高出近3个百分点。 任务三:代码推理 这个任务最复杂,有 三个奖励 : • 通过率奖励 :代码能通过多少测试用例 • 长度奖励 :回答是否在规定长度内 • Bug奖励 :代码是否没有运行时错误 三个奖励同时优化,GDPO依然表现更好。 一个重要发现:奖励权重没你想的那么有用 如果老板说"好吃比省钱重要",你可能会想:那我把"好吃"的权重调高不就行了? 论文发现: 当两个目标难度差异很大时,调整权重几乎没用。 长度奖励很容易满足,正确性奖励很难。 即使把长度奖励的权重从1.0降到0.25,模型还是优先去满足长度约束。 就像让一个学生"语文重要,数学次要",但语文考100分很难,数学考100分很简单。 学生还是会先把数学刷满,因为这样"性价比最高"。 解决方案是:条件奖励。 条件奖励(Conditioned Reward) :只有当主要目标达成时,才给次要目标的奖励。比如"只有答对了,才计算长度奖励"。 使用条件奖励后: • 模型被迫先追求正确性 • 调整权重才能真正影响模型行为 设置 AIME准确率 超长比例 GRPO + 普通奖励 50.2% 2.1% GDPO + 普通奖励 53.1% 0.2% GRPO + 条件奖励 53.3% 29.2% GDPO + 条件奖励 57.7% 12.3% 设置 设置 AIME准确率 AIME准确率 超长比例 超长比例 GRPO + 普通奖励 GRPO + 普通奖励 50.2% 50.2% 2.1% 2.1% GDPO + 普通奖励 GDPO + 普通奖励 53.1% 53.1% 0.2% 0.2% GRPO + 条件奖励 GRPO + 条件奖励 53.3% 53.3% 29.2% 29.2% GDPO + 条件奖励 GDPO + 条件奖励 57.7% 57.7% 12.3% 12.3% 条件奖励 + GDPO,在AIME上提升了4.6个百分点。 为什么这篇论文重要 第一,它指出了一个普遍但被忽视的问题。 之前的多奖励RL研究都在琢磨"怎么设计更好的奖励函数",却没人问:现有的优化算法适合多奖励吗? 答案是:不太适合。 第二,修复方法极其简单。 GDPO不需要额外的模型、额外的计算资源。只是改变了归一化的顺序。 论文还开源了三个主流框架的实现:HF TRL、verl、Nemo RL。拿来就能用。 第三,效果是实打实的。 不是某一个任务上的微小提升,而是在工具调用、数学推理、代码推理三个不同任务、多种模型规模上的一致性提升。 技术细节:算法的数学表达 GRPO的优势计算: GDPO的优势计算: 核心差异就在这里。GRPO是"先合后分",GDPO是"先分后合"。 这让我想起一个老笑话: 有人问:"1+1等于几?" 数学家说:"2。" 会计师说:"你希望它等于几?" GRPO就像那个会计师,把所有数字混在一起,最后给你一个"综合评价"。GDPO则像数学家,每一项都算清楚,再汇总。 延伸思考:这对AI对齐意味着什么 我们训练AI,本质上是在教它"什么是好的"。 但"好"往往是多维度的:准确、安全、有帮助、不冗长、格式规范...... 如果我们的训练方法本身就会"压缩"这些维度的差异,AI学到的就是一个模糊的"好",而不是每个维度上精确的权衡。 GDPO提供了一种思路: 保留信息的颗粒度,让AI能更精细地学习人类的多元偏好。 这对于AI安全尤其重要。 当AI需要同时满足"有帮助"和"无害"两个目标时,我们不希望它把两者混为一谈。 我们希望它清楚地知道:这是一个有帮助但可能有风险的回答,那是一个安全但不太有用的回答。 只有保留这种区分度,AI才能做出真正符合人类意图的权衡。 GDPO不只是一个训练技巧。它是朝着更精细、更可控的AI对齐迈出的一步。 论文信息 • 标题:GDPO: Group reward Decoupled Normalization Policy Optimization for Multi reward RL Optimization • 作者:Shih Yang Liu, Xin Dong 等(NVIDIA) • 发布:2026年1月 • 开源实现:HF TRL, verl, Nemo RL 🔗 原文链接: https://mp.weixin.qq.com/s/ilMI3gJV... https://mp.weixin.qq.com/s/ilMI3gJV... 原创 向阳乔木 AI不插电2026年1月11日 22:34 天津 想象你是一位厨师,老板给你两个任务:做出好吃的菜,同时控制成本。 你做了三道菜,成本和美味程度各不相同。 老板想给你打分,于是他把"好吃程度"和"成本控制"两个分数加起来,然后在三道菜之间做个排名。 听起来很合理吧? 但问题来了。 假设三道菜的得分是这样的: • 菜A:好吃8分,成本控制2分,总分10 • 菜B:好吃5分,成本控制5分,总分10 • 菜C:好吃2分,成本控制8分,总分10 三道菜总分一样,排名无法区分。 但它们明明是完全不同的菜啊!菜A是高端美食,菜C是经济实惠,菜B是均衡之选。 这就是NVIDIA这篇论文要解决的核心问题:当AI同时追求多个目标时,传统方法会把不同的组合"压缩"成一样的评分,导致AI失去方向。 问题出在哪?GRPO的致命缺陷 GRPO(Group Relative Policy Optimization) :一种强化学习算法,通过在一组回答中进行相对排名来计算优势值,指导AI模型改进。可以理解为"组内相对评分法",不需要单独训练一个打分模型,简单高效。 GRPO是DeepSeek R1等模型背后的核心训练算法,最近非常火。 它的核心思想很简单:对于同一个问题,让模型生成多个回答,然后根据奖励分数在组内做个排名。 但这里有个隐藏的坑。 当你同时优化多个奖励(比如"回答正确"和"格式规范"),GRPO的做法是: 先把所有奖励加起来,再做组内归一化。 归一化(Normalization) :一种数学处理方法,把不同范围的数值转换到统一的标准范围内。就像把100分制和5分制的成绩都转换成百分比,方便比较。 论文作者做了一个精妙的实验来展示问题。 假设有两个二元奖励(要么0分要么1分),模型对每个问题生成两个回答。那么每个回答的总分可能是0、1或2。 在一组两个回答中,可能出现这些组合: • (0, 1):一个0分,一个1分 • (0, 2):一个0分,一个2分 • (1, 2):一个1分,一个2分 按理说,(0, 2)应该产生更强的学习信号——因为2分的回答同时满足了两个条件,而1分的回答只满足一个。 但GRPO归一化后,(0, 1)、(0, 2)和(1, 2)得到的优势值完全相同! 都变成了( 0.7071, 0.7071)。 这就像老师批改作文,明明一篇是90分一篇是60分,另一组是100分和60分,但老师给出的评语完全一样:"一篇好,一篇差。"具体好多少?不知道。 论文把这个现象叫做 奖励信号崩塌(Reward Signal Collapse) 。 崩塌带来的后果 这不只是理论问题。 作者在训练Qwen2.5 1.5B做工具调用任务时发现:使用GRPO训练,正确性奖励在400步后开始下降,训练部分崩溃。 指标 GRPO GDPO 格式奖励收敛值 约0.6 约0.9 正确性奖励收敛值 约0.8(后期下降) 约1.0(持续提升) 训练稳定性 400步后不稳定 全程稳定 指标 指标 GRPO GRPO GDPO GDPO 格式奖励收敛值 格式奖励收敛值 约0.6 约0.6 约0.9 约0.9 正确性奖励收敛值 正确性奖励收敛值 约0.8(后期下降) 约0.8(后期下降) 约1.0(持续提升) 约1.0(持续提升) 训练稳定性 训练稳定性 400步后不稳定 400步后不稳定 全程稳定 全程稳定 在数学推理任务中,问题更严重。模型需要同时优化"答对"和"回答简洁"两个目标。GRPO训练的模型在400步后,正确率开始下滑,同时回答反而变长了。 模型迷失了方向。 GDPO:解耦归一化 GDPO(Group reward Decoupled Normalization Policy Optimization) :一种改进的强化学习算法,对每个奖励分别做组内归一化,再把归一化后的优势值加起来。可以理解为"分科打分再汇总"。 GDPO的核心改进很简单,但效果惊人。 GRPO的做法是:先加总,再归一化。 GDPO的做法是:先分别归一化,再加总。 就像评选优秀员工,与其把"业绩"和"态度"两项加起来再排名,不如在业绩上排一次名,在态度上排一次名,然后综合两个排名。 这样,一个业绩第一态度第三的员工,和一个业绩第二态度第二的员工,就能被区分开来。 回到之前的例子,(0, 2)和(0, 1)在GDPO下会得到不同的优势值: • (0, 1) → ( 0.7071, 0.7071) • (0, 2) → ( 1.4142, 1.4142) 信息被保留下来了。 论文还做了一个定量分析:随着rollout数量或奖励数量增加,GDPO能保留的"不同优势值组合数"远远超过GRPO。 rollout数量 GRPO不同组合数 GDPO不同组合数 4 约10 约25 8 约25 约100 16 约50 约175 rollout数量 rollout数量 GRPO不同组合数 GRPO不同组合数 GDPO不同组合数 GDPO不同组合数 4 4 约10 约10 约25 约25 8 8 约25 约25 约100 约100 16 16 约50 约50 约175 约175 GDPO提供了更精细的学习信号。 批次归一化:锦上添花 但光是解耦还不够。 当奖励数量增加时,总优势值的范围会变大。三个奖励的总优势值范围是两个奖励的1.5倍。这会导致训练不稳定。 所以GDPO在加总后,还要做一次 批次级别的归一化 。 批次归一化(Batch wise Normalization) :在整个训练批次上进行归一化,而不是在单个问题的回答组内。这样可以保证优势值的数值范围稳定,不会因为奖励数量增加而膨胀。 实验表明,去掉批次归一化后,部分训练会失败。 这就像调音量。每个乐器的音量可以不同,但总音量要控制在合理范围内,否则音响会爆。 三大任务,全面验证 论文在三个任务上验证了GDPO的效果。 任务一:工具调用 工具调用(Tool Calling) :让AI模型学会调用外部工具(比如搜索引擎、计算器)来完成任务。模型需要决定调用哪个工具、传什么参数,同时输出格式要规范。

在 小宇宙note 阅读完整内容