26年1月来自Nvidia的论文“GDPO: Group reward-Decoupled Normalization Policy Optimization for Multi-reward RL Optimization”。
随语言模型能力的不断提升,用户不仅期望它们能够提供准确的响应,还期望它们能够在各种场景下展现符合人类多样化偏好的行为。为了实现这一目标,强化学习(RL)流程开始引入多种奖励,每种奖励都代表一种不同的偏好,以此引导模型朝着这些期望的行为发展。然而,近期的研究默认在多奖励设置下应用群相对策略优化(GRPO),而没有对其适用性进行评估。本文证明,直接应用GRPO对不同的展开(rollout)奖励组合进行归一化会导致它们合并成相同的优势值,从而降低训练信号的分辨率,导致次优收敛,甚至在某些情况下导致训练过早失败。为此,提出一种策略优化方法——群奖励-解耦归一化策略优化(GDPO),通过解耦各个奖励的归一化来解决这些问题,更忠实地保留它们之间的相对差异,从而实现更精确的多奖励优化,并显著提高训练稳定性。在工具调用、数学推理和编码推理这三个任务上比较GDPO和GRPO的性能,并评估正确性指标(准确率、错误率)和约束遵守性指标(格式、长度)。在所有设置下,GDPO的性能始终优于GRPO,证明其在多奖励强化学习优化方面的有效性和泛化能力。
随着语言模型能力的不断提升,人们对其行为的期望也随之提高。人们不仅要求模型能够提供准确的响应,还希望它们能够在各种场景下展现符合人类广泛偏好的行为。这些偏好涵盖效率[1, 2, 3]、安全性[4]、响应的连贯性和逻辑性[5, 6]、性别偏见[7]以及其他诸多方面。在单个模型中满足如此多样化的需求是一项极具挑战性的任务。
强化学习(RL)已成为训练大语言模型以满足这些多样化人类偏好的事实标准。尤其值得一提的是,近年来基于强化学习的方法开始在训练过程中引入多种奖励机制,每种奖励机制都旨在捕捉不同的人类偏好,并共同引导模型朝着人类偏好的行为发展。尽管人们对多奖励强化学习的兴趣日益浓厚,但近期的研究[1, 3, 5]大多集中于奖励设计本身,并且通常直接应用群相对策略优化(GRPO)进行多奖励强化学习优化,而往往忽略GRPO是否适用于优化异构奖励组合。
本文重新审视GRPO在多奖励场景下的适用性,并指出直接应用GRPO对不同组合的展开奖励进行归一化会导致它们趋同为相同的优势值,从而有效地限制训练信号的精度,如图所示。这种趋同消除奖励维度之间的重要区别,导致策略更新不准确、奖励收敛效果欠佳,并且在许多情况下会导致训练过早失败。

为了克服这些挑战,本文提出群奖励解耦归一化策略优化(GDPO),如下图 a 所示,它将每个个体奖励的群归一化解耦,以确保不同奖励组合之间的差异得到更好的保留,并更准确地反映模型响应的相对差异。这使得多奖励优化更加精确,并显著提高训练收敛速度。在解耦的群归一化之后,应用批次优势归一化,以确保优势幅度不会随着个体奖励数量的增加而增大。

从工具调用、数学推理和代码推理三个任务对 GDPO 和 GRPO 进行比较。这些任务涵盖广泛的目标,包括工具调用准确率和格式正确性、数学推理准确率和推理长度约束的遵守情况,以及代码通过率和错误率。在所有任务中,GDPO 的收敛性都优于 GRPO。例如,在上图 b 中,使用 GDPO 训练 Qwen2.5-1.5B-Instruct 在工具调用任务上获得比 GRPO 更高的正确率和格式合规性。在具有挑战性的数学任务上,GDPO 的性能始终优于 GRPO。例如,与 GRPO 相比,使用 GDPO 训练 DeepSeek-R1-1.5B 和 Qwen3-4B-Instruct 在 AIME 上的准确率分别提高6.3% 和 2.3%,同时保持更短的响应。
近年来,诸如群相对策略优化(GRPO)[8]及其变型(包括DAPO[9]和Reinforce+±Baseline[10])等算法因其高效性和简洁性而成为广泛应用的强化学习算法。与近端策略优化(PPO)[11]不同,GRPO利用群体相对优势估计进行策略更新,无需构建价值模型。
目前,GRPO主要用于优化单目标奖励,通常侧重于准确率。然而,随着模型能力的不断提升,为了更好地契合人类偏好,近期的研究越来越多地致力于优化多个奖励,例如响应长度约束和格式质量[1, 12, 3]。现有的多目标强化学习方法通常采用一种直接的策略:将所有奖励分量相加,然后直接应用GRPO。
形式上,对于给定的问题-答案对 (𝑞_𝑖, 𝑜_𝑗),其中行为策略 𝜋_𝜃_old 采样一组 G 个响应 {𝑜_𝑗},并假设有 𝑛 个目标,则第 𝑗 个响应的聚合奖励计算为每个目标奖励之和:
𝑟(𝑖,𝑗)_sum = 𝑟^(𝑖, 𝑗)^_1 + · · · + 𝑟^(𝑖, 𝑗)^_n (1)
然后,通过对群聚合奖励进行归一化,即可得到第 𝑗 个响应的群相对优势:
𝐴(𝑖,𝑗)_sum = [𝑟(i,j)_sum −mean{𝑟(i,1)_sum,…,𝑟(i,G)^_sum}] / std{𝑟(i,1)_sum,…,𝑟(i,G)^_sum} (2)
相应的多奖励 GRPO 优化目标可以表示为:

其中 𝑠_𝑡(𝜃) = 𝜋_𝜃 (𝑜𝑡_j | 𝑞, 𝑜<𝑡_j) / 𝜋_𝜃_old (𝑜𝑡_j | 𝑞, 𝑜<𝑡_j),𝜖 表示裁剪阈值。为清晰起见,在此公式中省略 KL 散度损失项。
首先回顾将 GRPO 应用于多奖励强化学习优化的常见做法,并指出一个先前被忽略的问题,即 GRPO 本质上会压缩奖励信号,导致优势估计中的信息丢失。为了说明这一点,从一个简单的训练设置开始,然后将其扩展到更一般的情况。考虑这样一种场景:为每个问题生成两个展开(rollout) 来计算群内相对优势,并且该任务涉及两个二元奖励 𝑟_1, 𝑟_2 ∈ {0,1}。因此,每个展开的总奖励可以取值于 {0, 1, 2}。
前面上上图枚举群内所有可能的展开奖励组合,表示为(展开 1 的总奖励,展开 2 的总奖励),以及相应的归一化优势,表示为(展开 1 的归一化优势,展开 2 的归一化优势)。尽管忽略顺序时存在六种不同的组合,但在应用群奖励归一化后,仅出现两个独特的优势群。具体而言,(0, 1)、(0, 2) 和 (1, 2) 产生相同的归一化优势 𝐴_sum (−0.7071, 0.7071),而 (0,0)、(1,1) 和 (2,2) 的结果均为 (0,0)。
这表明 GRPO 在多奖励优化中的优势计算存在一个根本性的局限性,即过度压缩丰富的组间奖励信号。直观地说,(0, 2) 应该比 (0, 1) 产生更强的学习信号,因为总奖励为 2 表示同时满足两个奖励,而奖励为 1 则对应于只获得一个奖励。因此,当另一个推广活动仅获得零奖励时,(0, 2) 应该比 (0, 1) 产生更大的相对优势。由于优势估计不准确,这种限制也可能导致训练不稳定。
最近,Dr.GRPO [13] 和 DeepSeek-v3.2 [6] 采用 GRPO 的一个变型,该变体从公式 (2) 中移除标准差归一化项,即 A(i,j)_sum = 𝑟(i,j)_sum − mean{𝑟^(i,1)_sum ,…,𝑟(i,G)_sum} 。尽管这些工作引入此修改是为了缓解问题级别的难度偏差,但乍一看,这一改变似乎也解决了发现的问题。具体而言,移除标准差归一化可以缓解这个问题:(0,1) 和 (0,2) 现在分别产生不同的优势 (−0.5,0.5) 和 (−1.0,1.0)。然而,当将此设置推广到更多次的展开,同时保持奖励数量不变时,与 GRPO 相比,这种改进仅略微增加不同优势组的数量。在展开次数固定为 4,但奖励数量逐渐增加的情况下,也可以观察到类似的趋势。在这种情况下,不同优势群的数量仅有适度的提升。
分群奖励解耦归一化策略优化
为了克服这些挑战,提出分群奖励解耦归一化策略优化(GDPO)方法。该方法旨在更好地保持不同奖励组合之间的区别,并更准确地捕捉它们在最终优势中的相对差异。与直接对聚合奖励总和进行分组归一化的GRPO不同,GDPO通过在聚合之前分别对每个奖励进行分组归一化来解耦这一过程。具体而言,GDPO并非先将所有n个奖励相加(如公式(1)所示),然后再应用分组归一化得到A_sum(如公式(2)所示),而是计算第i个问题第j次推广中每个奖励的归一化优势,如下所示:

用于策略更新的总体优势是通过首先将所有目标的标准化优势相加而得到的:

然后,对多奖励优势之和应用分批优势归一化,以确保最终优势 𝐴^(𝑖,𝑗 )^_sum 的数值规模保持稳定,不会随着额外奖励的引入而增长。经验表明,这个归一化步骤提高训练稳定性,其中移除分批归一化有时会导致收敛失败。
通过对每个奖励进行单独的归一化,GDPO 缓解 GRPO 优势估计中存在的信息丢失问题,如上上图所示。需要注意的是,由于 GDPO 中的分批归一化步骤不会改变不同优势群的数量,为了清晰起见,在此省略该步骤。从图中可以看出,采用 GRPO 时,不同的奖励组合(例如 (0, 2) 和 (0, 1))会产生相同的归一化优势,掩盖它们之间的细微差别。相比之下,GDPO 通过为每种组合分配不同的优势值来保留这些细微的差异。例如,GDPO 归一化后,奖励组合 (0,1) 变为 (−0.7071,0.7071),而 (0,2) 变为 (−1.4142,1.4142),这更恰当地反映 (0,2) 应该比 (0, 1) 产生更强的学习信号。类似地,当将展开次数扩展到三次时,GRPO 会将优势值 (0, 0, 0) 分配给 (1, 1, 1)。然而,(1, 1, 1) 可能源于异质奖励划分,例如 r_s1 = (1, 1, 0) 或 r_s2 = (0, 0, 1),对于这些划分,GDPO 会产生非零优势,从而保留奖励维度上的显著差异。
通过比较两种实验设置下 GDPO、GRPO 和无标准差 GRPO 的不同优势群数量来进一步量化 GDPO 的有效性。在双奖励场景下,随着展开次数的变化,GDPO 始终产生显著更高的不同优势群数量,且随着展开次数的增加,差距进一步扩大。另一方面,当展开次数固定为四次并增加奖励数量时,也出现类似的模式,即随着目标数量的增加,GDPO 的优势粒度逐渐增大。这表明,所提出的解耦归一化方法有效地增加所有强化学习设置下不同优势群的数量,并实现更精确的优势估计。除了这些理论上的改进之外,使用 GDPO 能够始终获得更稳定的训练曲线和更好的收敛性。GDPO 还消除 GRPO 在数学推理任务中出现的训练崩溃问题,使用 GDPO 训练的模型在整个训练过程中持续提高正确性奖励得分。
有效纳入优先级差异
到目前为止,一直假设所有目标同等重要。但在实际应用中,这一假设并非总是成立。
通常的做法是为每个奖励分配不同的权重,以编码目标之间的不同优先级,例如 𝑟_sum = 𝑤_1 𝑟_1 + · · · + 𝑤_𝑛 𝑟_𝑛,从而控制每个奖励对用于策略更新的最终优势贡献。对于 GDPO,这些权重应用于每个奖励的归一化优势,如下所示:
𝐴(𝑖,𝑗)_sum =𝑤_1𝐴(𝑖,𝑗)_1 +···+𝑤_n 𝐴(𝑖,𝑗)_n (7)
然而,当底层目标的难度差异很大时,调整奖励权重并不总是能产生预期的效果。如果某个目标比其他目标容易得多,模型通常会优先最大化该目标的奖励,而忽略其他目标的权重分配。因此,为了更有效地迫使模型将更多注意力分配给更具挑战性目标的奖励,必须将权重差异设置得足够大,以弥补难度上的差距。然而,即使进行这样的调整,模型仍然可能倾向于优化更容易的奖励,而不是用户想要优先考虑的目标,
因此,一些近期的研究 [1, 14] 通过将更容易的奖励与更难的奖励挂钩来解决这种奖励机制问题。具体而言,给定两个奖励 𝑟_𝑘 和 𝑟_𝑙,可以对 𝑟_𝑘 进行 𝑟_𝑙 的条件化,如下所示:

通过这种奖励函数设计,模型只有在奖励 𝑟_𝑙 满足预定义的分数阈值 𝑡 时才能获得奖励 𝑟_𝑘。因此,模型被迫始终优先最大化人为设定的奖励,从而彻底缓解上述问题。使用条件化奖励函数训练的模型在优先目标上取得比未进行条件化训练但仅赋予优先奖励更大权重的模型更高的性能。在解决容易获得的奖励占主导地位的问题之后,为细粒度优先级调整分配不同的奖励权重也能更真实地反映在最终模型的行为中。



