Jiahong 的个人博客

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

NLP——LLM对齐微调-DPO

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:Direct Preference Optimization: Your Language Model is Secretly a Reward Model, NeurIPS 2023, Stanford University
    • 论文阅读笔记:DPO——RLHF 的替代之《Direct Preference Optimization: Your Language Model is Secretly a Reward Model》论文阅读
    • 一些较为高阶的讨论:RLHF的替代之DPO原理解析:从RLHF、Claude的RAILF到DPO、Zephyr
    • DPO 的应用:利用直接偏好优化算法(DPO)微调语言模型, 消除幻觉

Paper Summary

  • 核心总结:
    • 写在前面:本文的理论推导非常漂亮,值得细看
    • DPO 是一个简单的训练范式,用于从偏好中训练语言模型而无需强化学习(24 年底补充:DPO 已经成为了某些领域在 RL 前必不可少的一个基线)
    • DPO 识别了语言模型策略和奖励函数之间的映射(区别于传统 RL 的偏好学习方法)
      • 使得能够直接训练语言模型以满足人类偏好,使用简单的交叉熵损失,无需强化学习或损失一般性
    • 在作者的实验上,在几乎不需要调整超参数的情况下,DPO 的表现与现有的 RLHF 算法(包括基于 PPO 的算法)相当或更好;
      • DPO 有降低了从人类偏好训练更多语言模型的门槛
      • 实际上比 PPO 好是需要打问号的,PPO 的理论上限是更高的
  • 背景:RLHF 是一个复杂且通常不稳定的过程,需要拟合一个反映人类偏好的奖励模型,然后使用 RL 来微调以最大化这个估计的奖励,同时不能偏离原始模型太远
  • 论文介绍了 RLHF 中奖励模型的一个新参数化(parameterization)方法(DPO),能够 以闭式(closed form)解提取相应的最优策略
    • 这使得我们仅使用一个简单的分类损失来解决标准的 RLHF 问题

Introduction and Discussion

  • 论文展示了如何直接优化语言模型以遵循人类偏好,而无需显式的奖励建模或强化学习
  • 论文提出了直接偏好优化 (DPO) 算法
    • DPO 隐式地优化了与现有 RLHF 算法相同的目标(带有 KL 散度约束的奖励最大化),但实现简单且训练直接
  • 直观地说
    • DPO 更新增加了优选响应相对于非优选响应的相对对数概率,但它引入了一个动态的、每个样本的重要性权重,防止了论文发现的在朴素概率比目标下发生的模型退化
  • 与现有算法类似
    • DPO 依赖于一个理论偏好模型(例如 Bradley-Terry 模型 (1952)),该模型衡量给定奖励函数与经验偏好数据的对齐程度
  • 现有方法使用偏好模型来定义训练奖励模型的偏好损失,然后训练一个优化所学奖励模型的策略
    • DPO 使用变量变换将偏好损失直接定义为策略的函数
    • 给定一个关于模型响应的人类偏好的数据集,DPO 可以使用简单的二元交叉熵目标来优化策略,产生拟合到偏好数据的隐式奖励函数的最优策略
  • 论文的主要贡献就是 DPO,一种简单的、无 RL 的从偏好中训练语言模型的算法
  • 实验表明,在使用多达 6B 参数的语言模型进行情感调节、摘要和对话等任务的偏好学习中,DPO 至少与现有方法(包括基于 PPO 的RLHF)一样有效

Related Work

  • 规模不断增长的自监督语言模型学会零样本 (2019) 或少样本提示 (2020; 2021; 2022) 完成某些任务
    • 但它们在下游任务上的表现和与用户意图的对齐可以通过在指令和人类编写的补全数据集上进行微调来显著提高 (2022; 2022; 2022; 2022)
  • 这种“指令微调”过程使得大型语言模型能够泛化到指令微调集之外的指令,并通常提高其可用性 (2022)
    • 但响应质量的相对人类判断通常比专家演示更容易收集,因此后续工作使用人类偏好数据集微调了大型语言模型,提高了在翻译 (2018)、摘要 (2020; 2022)、故事讲述 (2022) 和指令遵循 (2022; 2023) 方面的熟练度
  • 这些方法的大致流程是:
    • 首先在诸如 Bradley-Terry 模型 (1952) 等偏好模型下,优化一个神经网络奖励函数以与偏好数据集兼容
    • 然后通常使用强化学习算法,如 REINFORCE (1992)、PPO 或其变体 (2023),来微调语言模型以最大化给定的奖励
  • 这些方法代表了两类工作的融合:
    • 一类是关于使用强化学习训练语言模型以实现各种目标的工作 (2015; 2018; 2018)
    • 另一类是关于从人类偏好中学习的通用方法的工作 (2017; 2018)
  • 尽管使用相对人类偏好具有吸引力,但使用强化学习微调大型语言模型仍然是一个重大的实际挑战;
    • DPO 提供了一种理论上有依据的方法来优化相对偏好而无需 RL

在语言领域之外

  • 从偏好中学习策略已在赌博机和强化学习设置中都得到了研究,并且已经提出了几种方法
  • 使用偏好或行动排序而非奖励的情境赌博机学习被称为情境对决赌博机 (Contextual Dueling Bandit, CDB; (2012; 2015))
    • 在没有绝对奖励的情况下,CDB 的理论分析用冯·诺依曼赢家 (von Neumann winner) 的概念替代了最优策略,即一个对任何其他策略的期望获胜率至少为 50% 的策略 (2015)
    • 在 CDB 设置中,偏好标签是在线给出的
      • 在从人类偏好学习中,通常从固定的离线偏好标注行动对批次中学习 (2022)
  • 基于偏好的 RL (Preference-based RL, PbRL) 从由 未知“评分” 函数生成的二元偏好中学习,而不是从奖励中学习 (2014; 2023)
    • 存在各种 PbRL 算法,包括可以重用离策略偏好数据的方法,但通常涉及首先显式估计潜在评分函数(即奖励模型),然后对其进行优化 (2013; 2014; 2017; 2018; 2018)
  • 论文提出了一种单阶段策略学习方法,直接优化策略以满足偏好

Preliminaries

  • 论文回顾一下 Ziegler 等人(以及后来的 (2020; 2022; 2022))中的 RLHF 流程,它通常包括三个阶段:
    • 1)监督微调 (Supervised Fine-Tuning, SFT);
    • 2)偏好采样和奖励学习;以及
    • 3)RL 优化

SF

  • RLHF 通常首先在下游感兴趣任务(对话、摘要等)的高质量数据上,使用监督学习对预训练的语言模型进行微调,以获得一个模型 \(\pi^{\text{SFT} }\)

奖励建模阶段

  • 使用提示 \(x\) 来提示 SFT 模型,产生成对的答案
    $$(y_{1},y_{2})\sim\pi^{\text{SFT} }(y \mid x)$$
  • 然将这些答案呈现给人类标注者,他们表达对其中一个答案的偏好,记为
    $$ y_{w}\succ y_{l} \mid x$$
    • 其中 \(y_{w}\) 和 \(y_{l}\) 分别表示 \((y_{1},y_{2})\) 中优选和非优选的补全
    • 假设偏好是由某个论文无法访问的潜在奖励模型 \(r^{*}(y,x)\) 生成的
  • 有多种方法用于建模偏好,Bradley-Terry (BT) 模型 (1952) 是一个流行的选择(尽管如果论文能访问多个排名的答案,更通用的 Plackett-Luce 排序模型 (1975; 2012) 也与该框架兼容)
  • BT 模型规定人类偏好分布 \(p^{*}\) 可以写成:
    $$p^{*}(y_{1}\succ y_{2} \mid x)=\frac{\exp\left(r^{*}(x,y_{1})\right)}{\exp\left(r^{*}(x,y_{1})\right)+\exp\left(r^{*}(x,y_{2})\right)} \tag{1}$$
  • 假设我们可以访问一个从 \(p^{*}\) 中采样的静态比较数据集
    $$ \mathcal{D}=\left\{x^{(i)},y^{(i)}_{w},y^{(i)}_{l}\right\}^{N}_{i=1}$$
  • 我们可以参数化一个奖励模型 \(r_{\phi}(x,y)\) 并通过最大似然估计参数
  • 将问题构建为二元分类,论文得到负对数似然损失:
    $$\mathcal{L}_{R}(r_{\phi},\mathcal{D})=-\mathbb{E}_{(x,y_{w},y_{l})\sim\mathcal{D} }\big{[}\log\sigma(r_{\phi}(x,y_{w})-r_{\phi}(x,y_{l}))\big{]} \tag{2}$$
    • 其中 \(\sigma\) 是 logistic 函数
    • 在语言模型的上下文中,网络 \(r_{\phi}(x,y)\) 通常从 SFT 模型 \(\pi^{\text{SFT} }(y \mid x)\) 初始化,并在最终 transformer 层之上添加一个线性层,该层为奖励值产生单个标量预测 (2022)
  • 为了确保奖励函数具有较低的方差,先前的工作对奖励进行了归一化,使得对于所有 \(x\),有
    $$\mathbb{E}_{x,y\sim\mathcal{D} }\left[r_{\phi}(x,y)\right]=0$$

RL 微调阶段

  • 在 RL 阶段,学习到的奖励函数用于向语言模型提供反馈
  • 遵循先前的工作 (2017; 2020),优化问题表述为
    $$\max_{\pi_{\theta} }\mathbb{E}_{x\sim\mathcal{D},y\sim\pi_{\theta}(y|x)}\big{[}r_{\phi}(x,y)\big{]}-\beta\mathbb{D}_{\text{KL} }\big{[}\pi_{\theta}(y \mid x) \ | \ |\ \pi_{\text{ref} }(y \mid x)\big{]} \tag{3}$$
    • 其中 \(\beta\) 是一个控制与基础参考策略 \(\pi_{\text{ref} }\)(即初始 SFT 模型 \(\pi^{\text{SFT} }\))偏离程度的参数
  • 在实践中,语言模型策略 \(\pi_{\theta}\) 也被初始化为 \(\pi^{\text{SFT} }\)
  • 添加的约束很重要,因为它防止模型偏离奖励模型准确的分布太远,同时保持生成多样性并防止模式崩溃到单一高奖励答案
  • 由于语言生成的离散性质,该目标不可微,通常使用强化学习进行优化
    • 标准方法 (2022; 2020; 2022; 2022) 是构建奖励函数
      $$r(x,y)=r_{\phi}(x,y)-\beta(\log\pi_{\theta}(y \mid x)-\log\pi_{\text{ref} }(y \mid x))$$
      • 并使用 PPO (2017) 进行最大化

Direct Preference Optimization

  • 目标是推导出一种使用偏好直接进行策略优化的简单方法
  • 与先前学习奖励然后通过 RL 优化它的 RLHF 方法不同,论文的方法利用了一种特定的奖励模型参数化选择,使得无需 RL 训练循环即可闭式解提取其最优策略
  • 论文的关键见解是利用从奖励函数到最优策略的解析映射 ,这使论文能够将关于奖励函数的损失函数转换为关于策略的损失函数
    • 这种变量变换方法避免了拟合显式的、独立的奖励模型,同时仍然在现有的人类偏好模型(如 Bradley-Terry 模型)下进行优化
    • 本质上,策略网络同时代表了语言模型和(隐式的)奖励

推导 DPO 目标

  • 论文从与先前工作相同的 RL 目标开始,即公式 3,在一个通用的奖励函数 \(r\) 下
  • 遵循先前的工作 (2007; 2019; 2022; 2023),很容易证明公式 3 中 KL 约束的奖励最大化目标的最优解形式为:
    $$\pi_{r}(y \mid x)=\frac{1}{Z(x)}\pi_{\text{ref} }(y \mid x)\exp\left(\frac{1}{\beta}r(x,y)\right) \tag{4}$$
    • 其中 \(Z(x)=\sum_{y}\pi_{\text{ref} }(y \mid x)\exp\left(\frac{1}{\beta}r(x,y)\right)\) 是配分函数
    • 完整的推导见附录 A.1
  • 即使论文使用真实奖励函数 \(r^{*}\) 的 MLE 估计 \(r_{\phi}\),估计配分函数 \(Z(x)\) 仍然很昂贵 (2022; 2023),这使得这种表示在实践中难以利用
  • 我们可以重新排列公式 4,用其对应的最优策略 \(\pi_{r}\)、参考策略 \(\pi_{\text{ref} }\) 和未知的配分函数 \(Z(\cdot)\) 来表示奖励函数
    • 论文首先对公式 4 的两边取对数,然后进行一些代数运算得到:
      $$r(x,y)=\beta\log\frac{\pi_{r}(y \mid x)}{\pi_{\text{ref} }(y \mid x)}+\beta\log Z(x). \tag{5}$$
  • 我们可以将这个重新参数化应用于真实奖励 \(r^{*}\) 和相应的最优模型 \(\pi^{*}\),注意:Bradley-Terry 模型仅依赖于两个补全之间奖励的差异,即
    $$ p^{*}(y_{1}\succ y_{2} \mid x)=\sigma(r^{*}(x,y_{1})-r^{*}(x,y_{2}))$$
  • 将公式 5 中 \(r^{*}(x,y)\) 的重新参数化代入偏好模型公式 1,配分函数会抵消掉,我们可以仅用最优策略 \(\pi^{*}\) 和参考策略 \(\pi_{\text{ref} }\) 来表示人类偏好概率
  • 因此,在 Bradley-Terry 模型下,最优的 RLHF 策略 \(\pi^{*}\) 满足偏好模型:
    $$p^{*}(y_{1}\succ y_{2} \mid x)=\frac{1}{1+\exp\left(\beta\log\frac{\pi^{*}(y_{2} \mid x)}{\pi_{\text{ref} }(y_{2} \mid x)}-\beta\log\frac{\pi^{*}(y_{1} \mid x)}{\pi_{\text{ref} }(y_{1} \mid x)}\right)} \tag{6}$$
    • 推导过程在附录 A.2 中
  • 虽然公式 6 使用了 Bradley-Terry 模型,但我们可以在更一般的 Plackett-Luce 模型 (1975; 2012) 下类似地推导出表达式,如附录 A.3 所示
  • 现在论文有了用最优策略而非奖励模型表示的人类偏好数据的概率,我们可以为参数化策略 \(\pi_{\theta}\) 制定一个最大似然目标;类似于奖励建模方法(即公式 2),论文的策略目标变为:
    $$\mathcal{L}_{\text{DPO} }(\pi_{\theta};\pi_{\text{ref} })=-\mathbb{E}_{(x,y_{w},y_ {l})\sim\mathcal{D} }\bigg{[}\log\sigma\left(\beta\log\frac{\pi_{\theta}(y_{w} \mid x)}{\pi_{\text{ref} }(y_{w} \mid x)}-\beta\log\frac{\pi_{\theta}(y_{l} \mid x)}{\pi_{\text{ref} }(y_{l} \mid x)}\right)\bigg{]}. \tag{7}$$
  • 这样,论文使用一种替代参数化来拟合一个隐式奖励,其最优策略简单地就是 \(\pi_{\theta}\)
  • 此外,由于论文的过程等同于拟合一个重新参数化的 Bradley-Terry 模型,它在偏好数据分布的适当假设下享有某些理论性质,例如一致性 (2022)
    • 在第 5 节中,论文将进一步讨论 DPO 相对于其他工作的理论性质

DPO 更新做了什么?

  • 为了从机制上理解 DPO,分析损失函数 \(\mathcal{L}_{\text{DPO} }\) 的梯度是很有用的
  • 关于参数 \(\theta\) 的梯度可以写成:
    $$\nabla_{\theta}\mathcal{L}_{\text{DPO} }(\pi_{\theta};\pi_{\text{ref } })=\ -\beta\mathbb{E}_{(x,y_{w},y_{l})\sim\mathcal{D} }\bigg{[}\underbrace{\sigma(\hat{r}_{\theta}(x,y_{l})-\hat{r}_{\theta}(x,y_{w}))}_{\text{higher weight when reward estimate is wrong} }\quad\bigg{[}\underbrace{\nabla_{\theta}\log\pi(y_{w} \mid x)}_{\text{increase likelihood of } y_{w}}-\underbrace{\nabla_{\theta}\log\pi (y_{l} \mid x)}_{\text{decrease likelihood of } y_{l} }\bigg{]}\bigg{]}$$
  • 其中 \(\hat{r}_{\theta}(x,y)=\beta\log\frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)}\) 是由语言模型 \(\pi_{\theta}\) 和参考模型 \(\pi_{\text{ref} }\) 隐式定义的奖励(更多内容在第 5 节)
  • 直观地说,损失函数 \(\mathcal{L}_{\text{DPO} }\) 的梯度增加了优选补全 \(y_{w}\) 的似然,并降低了非优选补全 \(y_{l}\) 的似然
  • 样本的权重由隐式奖励模型 \(\hat{r}_{\theta}\) 对非优选补全评分高出多少来衡量,按 \(\beta\) 缩放,即隐式奖励模型对补全排序的错误程度,同时考虑了 KL 约束的强度
  • 论文的实验表明了这种加权的重要性,因为没有加权系数的朴素版本的方法会导致语言模型退化(附录表 3)

DPO outline

  • 一般的 DPO 流程如下:
    • 1)为每个提示 \(x\) 采样补全 \(y_{1},y_{2}\sim\pi_{\text{ref} }(\cdot \mid x)\),用人类偏好进行标注,以构建离线偏好数据集 \(\mathcal{D}=\{x^{(i)},y^{(i)}_{w},y_{l})^{(i)}\}_{i=1}^{N}\);
    • 2)优化语言模型 \(\pi_{\theta}\) 以最小化给定 \(\pi_{\text{ref} }\)、\(\mathcal{D}\) 和期望 \(\beta\) 的 \(\mathcal{L}_{\text{DPO} }\)
  • 在实践中,人们可能希望重用公开可用的偏好数据集,而不是生成样本并收集人类偏好
    • 由于偏好数据集是使用 \(\pi^{\text{SFT} }\) 采样的,只要可用,论文就初始化 \(\pi_{\text{ref} }=\pi^{\text{SFT} }\)
    • 但当 \(\pi^{\text{SFT} }\) 不可用时,论文通过最大化优选补全 \((x,y_{w})\) 的似然来初始化 \(\pi_{\text{ref} }\),即
      $$\pi_{\text{ref} }=\arg\max_{\pi}\mathbb{E}_{x,y_{w}\sim\mathcal{D} }\left[\log\pi(y_ {w} \mid x)\right]$$
    • 理解:
      • 当生成数据的模型不可访问时,可以考虑将损失函数中的 \(\pi_\text{ref}\) 替换为这个?
      • 上面的公式本质是找到一个策略 \(\pi\) 使得已知 \(x\) 时 \(y_ {w}\) 出现的对数概率最大化的策略 \(\pi_\text{ref}\)
  • 这个过程有助于缓解真实参考分布(不可用)与 DPO 使用的 \(\pi_{\text{ref} }\) 之间的分布偏移
  • 与实现和超参数相关的更多细节可以在附录 B 中找到

Theoretical Analysis of DPO

  • 本节进一步阐释 DPO 方法,提供理论支持,并将 DPO 的优势与用于 RLHF 的 Actor-Critic 算法(如 PPO (2017))存在的问题联系起来

Your Language Model Is Secretly a Reward Model

  • DPO 能够绕过显式拟合奖励函数和执行强化学习这两个步骤,仅使用一个最大似然目标来学习策略
  • 优化目标方程 5 等价于一个具有奖励参数化 的 Bradley-Terry 模型:
    $$ r^{*}(x,y)=\beta\log\frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)} $$
    • 并且在变量变换下,论文优化参数化模型 \( \pi_{\theta} \) 等价于方程 2 中的奖励模型优化
  • 在本节中,论文将建立这种重新参数化背后的理论,证明它不会约束所学奖励模型的类别,并且允许精确恢复最优策略
  • 论文首先定义奖励函数之间的等价关系
    • 定义 1.
      • 两个奖励函数 \( r(x,y) \) 和 \( r’(x,y) \) 是等价的,当且仅当 \( r(x,y)-r’(x,y)=f(x) \) 对于某个函数 \( f \) 成立
      • 很容易看出这确实是一个等价关系,它将奖励函数集合划分为不同的类
      • 理解:因为 \(f(x) \) 与 \(y\) 没有关系!
    • 我们可以陈述以下两个引理:
      • 引理 1.
        • 在 Plackett-Luce(特别是 Bradley-Terry)偏好框架下,来自同一等价类的两个奖励函数诱导出相同的偏好分布
      • 引理 2.
        • 来自同一等价类的两个奖励函数在约束强化学习问题下诱导出相同的最优策略
  • 证明是直接了当的,论文将它们推迟到附录 A.5
    • 第一个引理是 Plackett-Luce 模型族 (1975) 中存在的一个众所周知的欠定(under-specification)问题
      • 由于这种欠定性,论文通常必须施加额外的可识别性约束,以保证从方程 2 得到的 MLE 估计具有某些性质 (2022)
    • 第二个引理指出,来自同一类的所有奖励函数产生相同的最优策略,因此对于论文的最终目标,论文只关心恢复最优类中的任意一个奖励函数
  • 论文在附录 A.6 中证明了以下定理:
    • 定理 1.
      • 在温和的假设下,与 Plackett-Luce(特别是 Bradley-Terry)模型一致的所有奖励类都可以用重新参数化 \( r(x,y)=\beta\log\frac{\pi(y|x)}{\pi_{\text{ref} }(y|x)} \) 来表示,对于某个模型 \( \pi(y \mid x) \) 和给定的参考模型 \( \pi_{\text{ref} }(y \mid x) \)
    • 证明概要.
      • 考虑任何奖励函数 \( r(x,y) \),它诱导出一个相应的最优模型 \( \pi_{r}(y \mid x) \),由方程 4 指定
      • 论文将证明,\( r \) 的等价类中的一个奖励函数可以使用上面给出的重新参数化来表示
      • 论文定义投影 \( f \) 为:
        $$
        f(r;\pi_{\text{ref} },\beta)(x,y)=r(x,y)-\beta\log\sum_{y}\pi_{\text{ref} }(y \mid x)\exp\left(\frac{1}{\beta}r(x,y)\right)
        $$
        • 算子 \( f \) 只是用 \( \pi_{r} \) 的配分函数的对数对奖励函数进行归一化
        • 由于添加的归一化项仅是前缀 \( x \) 的函数,所以 \( f(r;\pi_{\text{ref} },\beta)(x,y) \) 是 \( r(x,y) \) 等价类中的一个奖励函数
      • 最后,将 \( r \) 替换为方程 5 的右边(这对任何奖励函数都成立),论文有 \( f(r;\pi_{\text{ref} },\beta)(x,y)=\beta\log\frac{\pi_{r}(y|x)}{\pi_{\text{ref} }(y|x)} \)
      • 也就是说,投影 \( f \) 产生了 \( r \) 等价类中具有所需形式的一个成员,并且论文提出的重新参数化没有损失奖励模型的任何一般性
  • 也可以将定理 1 视为精确指定了 DPO 重新参数化在每个等价类中选择哪个奖励函数,即满足以下条件的奖励函数:
    $$
    \sum_{y}\underbrace{\pi_{\text{ref} }(y \mid x)}_{\equiv\pi(y|x), \text{ using Thm. 1 reparam.} }\exp\left(\frac{1}{\beta}r(x,y)\right)=1,
    $$
    • 也就是说,\( \pi(y \mid x) \) 是一个有效的分布(概率为正且和为 1)
    • 然而,遵循方程 4,我们可以看到方程 9 是由奖励函数 \( r(x,y) \) 诱导的最优策略的配分函数
  • DPO 算法的关键见解是,我们可以对欠定的 Plackett-Luce(特别是 Bradley-Terry)偏好模型族施加某些约束,使得论文能够保留可表示的奖励模型的类别,但同时显式地使得方程 4 中的最优策略对于所有提示 \( x \) 都是解析可解的

Instability of Actor-Critic Algorithms(AC 算法的不稳定性)

  • 也可以使用论文的框架来诊断用于 RLHF 的标准 Actor-Critic 算法(如 PPO)的不稳定性
  • 论文遵循 RLHF 流程,并专注于第 3 节概述的 RL 微调步骤
  • 我们可以与约束强化学习问题的控制即推断框架 (2018) 建立联系
  • 论文假设一个参数化模型 \( \pi_{\theta}(y \mid x) \),并最小化
    $$ \mathbb{D}_{\text{KL} }[\pi_{\theta}(y|x) \mid \mid \pi^{*}(y \mid x)] $$
    • 其中 \( \pi^{*} \) 是由奖励函数 \( r_{\phi}(y,x) \) 诱导的方程 7 中的最优策略
  • 经过一些代数运算,这可以推出优化目标:
    $$
    \max_{\pi_{\theta} }\mathbb{E}_{\pi_{\theta}(y|x)}\bigg{[}\underbrace{r_{\phi}(x ,y)-\beta\log\sum_{y}\pi_{\text{ref} }(y \mid x)\exp\left(\frac{1}{\beta}r_{\phi}(x,y)\right)}_{f(r_{\phi},\pi_{\text{ref} },\beta)}-\underbrace{\beta\log\frac{\pi_{\theta}(y \mid x)}{\pi_{\text{ref} }(y \mid x)} }_{\text{KL} }\bigg{]}
    $$
    • 这是先前工作 (2022; 2020; 2022; 2022) 使用与 \( r_{\phi} \) 的奖励类等价的 DPO 奖励所优化的相同目标
  • 在这种设置下,我们可以将 \( f(r_{\phi},\pi_{\text{ref} },\beta) \) 中的归一化项解释为参考策略 \( \pi_{\text{ref} } \) 的软价值函数
    • 虽然这个项不影响最优解,但没有它,目标的策略梯度可能具有高方差,使得学习不稳定
  • 我们可以使用一个学习的价值函数来适应这个归一化项,但这可能也难以优化
    • 或者,先前的工作使用人类完成基线来归一化奖励,本质上是归一化项的单样本蒙特卡洛估计
    • 相比之下,DPO 重新参数化产生了一个不需要任何基线的奖励函数

Experiments

  • 在本节中,论文实证评估 DPO 直接从偏好中训练策略的能力
  • 在一个受控良好的文本生成环境中,论文提出:
    • 与常见的偏好学习算法(如 PPO)相比,DPO 在最大化奖励和最小化与参考策略的 KL 散度之间进行权衡的效率如何?
  • 论文在更大的模型和更困难的 RLHF 任务上评估 DPO 的性能,包括摘要和对话
  • 在几乎不需要调整超参数的情况下,DPO 的表现往往与像基于 PPO 的 RLHF 这样的强基线一样好甚至更好,并且在学习的奖励函数下也优于从 \( N \) 个采样轨迹中返回最佳结果的方法

Experiment Setup

  • 注:更多细节在附录 C 中
Tasks
  • 论文的实验探索了三种不同的开放式文本生成任务
  • 对于所有实验,算法从下面的偏好数据集中学习一个策略
    $$ \mathcal{D}=\{x^{(i)},y_{w}^{(i)},y_{l}^{(i)} \}_{i=1}^{N} $$
  • 在受控情感生成(controlled sentiment generation)中
    • \( x \) 是来自 IMDb 数据集 (2011) 的电影评论前缀,策略必须生成具有积极情感的 \( y \)
    • 为了进行受控评估,在这个实验中,论文使用预训练的情感分类器生成关于生成的偏好对,其中
      $$ p(\text{positive} \mid x,y_{w})>p(\text{positive} \mid x,y_{l}) $$
    • 对于 SFT,论文在 IMDB 数据集的训练分割中的评论上微调 GPT-2-large 直到收敛(更多细节见附录 C.1)
  • 在摘要(summarization)任务中
    • \( x \) 是来自 Reddit 的论坛帖子;策略必须生成一个总结帖子要点的摘要 \( y \)
    • 遵循先前的工作,论文使用 Reddit TL;DR 摘要数据集 (2017) 以及 Stiennon 等人收集的人类偏好
    • 论文使用在人类撰写的论坛帖子摘要上微调的 SFT 模型,并使用 TRLX (2023) 框架进行 RLHF
    • 人类偏好数据集是由 Stiennon 等人在一个不同但训练方式相似的 SFT 模型的样本上收集的
  • 在单轮对话(single-turn dialogue)中
    • \( x \) 是一个人类查询,可能涉及从天体物理学问题到关系建议的任何内容;策略必须对用户的查询产生一个引人入胜且有用的响应 \( y \);
    • 论文使用 Anthropic Helpful and Harmless 对话数据集 (2022),包含 17 万个人类与自动助手之间的对话
    • 每个记录都以一个大型(尽管未知)语言模型生成的一对响应结束,并带有一个表示人类偏好响应的人类偏好标签
    • 在这种设置下,没有预训练的 SFT 模型可用;因此,论文仅在偏好完成上微调一个现成的语言模型以形成 SFT 模型
Evaluation
  • 论文的实验使用两种不同的评估方法
  • 为了分析每种算法在优化约束奖励最大化目标方面的有效性,在受控情感生成设置中,论文通过其实现的奖励和与参考策略的 KL 散度的边界来评估每种算法;
    • 这个边界是可计算的,因为我们可以访问真实奖励函数(一个情感分类器)
  • 但在现实世界中,真实奖励函数是未知的;
    • 论文使用算法与基线策略的胜率来评估算法,使用 GPT-4 作为摘要质量和响应帮助度的代理评估,分别用于摘要和单轮对话设置
  • 对于摘要,论文使用测试集中的参考摘要作为基线;对于对话,论文使用测试数据集中的偏好响应作为基线。虽然现有研究表明 LM 可以比现有指标更好的自动评估器 (2023),但论文在第 6.4 节进行了一项人类研究来证明论文使用 GPT-4 进行评估的合理性。论文发现 GPT-4 的判断与人类高度相关,人类与 GPT-4 的一致性通常与人类注释者之间的一致性相似或更高
Methods
  • 除了 DPO,论文还评估了几种现有的训练语言模型以符合人类偏好的方法
  • 论文在摘要任务中探索了使用 GPT-J (2021) 的零样本提示,在对话任务中探索了使用 Pythia-2.8B (2023) 的 2-shot 提示
  • 论文还评估了 SFT 模型以及 Preferred-FT
    • 这是一个在选自 SFT 模型(在受控情感和摘要中)或通用 LM(在单轮对话中)的所选完成 \( y_{w} \) 上使用监督学习进行微调的模型
  • 另一种伪监督方法是 Unlikelihood (2019)
    • 它简单地优化策略以最大化分配给 \( y_{w} \) 的概率,并最小化分配给 \( y_{l} \) 的概率;
    • 论文在“非似然”项上使用一个可选的系数 \( \alpha\in[0,1] \)
  • 论文还考虑了使用从偏好数据学习的奖励函数的 PPO (2017) 和 PPO-GT ,后者是在受控情感设置中可访问真实奖励函数的 Oracle
    • 在论文的情感实验中,论文使用了 PPO-GT 的两种实现,一个现成的版本 (2023) 以及一个修改版本,该版本归一化奖励并进一步调整超参数以提高性能(论文在运行使用学习奖励的“普通”PPO 时也使用这些修改)
  • 最后,论文考虑了 Best of \( N \) 基线,从 SFT 模型(或对话中的 Preferred-FT)采样 \( N \) 个响应,并返回根据从偏好数据集学习的奖励函数得分最高的响应
  • 这种高性能方法将奖励模型的质量与 PPO 优化解耦,但在计算上是不切实际的,即使对于中等的 \( N \),因为它在测试时需要为每个查询采样 \( N \) 个完成
  • 图 2:
    • 左图:期望奖励与相对于参考策略的 KL 散度的边界。DPO 在所有 KL 值下提供了最高的期望奖励,证明了优化的质量
    • 右图:TL;DR 摘要相对于人工撰写摘要的胜率,使用 GPT-4 作为评估器
    • DPO 在摘要任务上超过了 PPO 的最佳性能,同时对采样温度的变化更加鲁棒

How well can DPO optimize the RLHF objective?

  • 典型 RLHF 算法中使用的 KL 约束奖励最大化目标在利用奖励的同时限制策略偏离参考策略太远之间取得平衡
  • 因此,在比较算法时,论文必须同时考虑实现的奖励以及 KL 差异;
    • 实现略高的奖励但 KL 高得多并不一定是可取的
  • 图 2 显示了在情感设置中各种算法的奖励-KL 边界
    • 论文对每种算法执行多次训练运行,每次运行使用不同的策略保守性超参数(PPO 的目标 KL \( \in\{3,6,9,12\} \),DPO 的 \( \beta\in\{0.05,0.1,1,5\} \),Unlikelihood 的 \( \alpha\in\{0.05,0.1,0.5,1\} \),Preferred-FT 的随机种子)
    • 扫描总共包括 22 次运行
    • 在每 100 个训练步骤直到收敛后,论文在一组测试提示上评估每个策略,计算在真实奖励函数下的平均奖励以及
  • 与参考策略的平均序列级 KL3 \( \text{KL} (\pi \mid \mid \pi_{\text{ref} }) \)
    • 论文发现 DPO 产生了迄今为止最有效的边界,实现了最高的奖励,同时仍然实现了低 KL
    • 这个结果尤其引人注目,原因有几个
      • 首先,DPO 和 PPO 优化相同的目标,但 DPO 明显更有效;
        • DPO 的奖励/KL 权衡严格优于 PPO
      • 其次,DPO 实现了比 PPO 更好的边界,即使 PPO 可以访问真实奖励(PPO-GT)
  • 图 3:
    • 左图:由 GPT-4 计算的 Anthropic-HH 单轮对话胜率;DPO 是唯一一个在 Anthropic-HH 测试集上优于所选摘要的方法
    • 右图:在训练过程中不同采样温度的胜率
    • 对于不同的采样温度,DPO 相对于数据集标签的改进在训练过程中相当稳定

Can DPO scale to real preference datasets?(将 DPO 扩展到真实的偏好数据集中)

  • 接下来,论文评估 DPO 在摘要和单轮对话上的微调性能
  • 对于摘要,自动评估指标如 ROUGE 可能与人类偏好相关性很差 (2020),并且先前的工作发现使用 PPO 在人类偏好上微调 LM 可以提供更有效的摘要
    • 论文通过在 TL;DR 摘要数据集的测试分割上采样完成来评估不同方法,并计算相对于测试集中参考完成的平均胜率
    • 所有方法的完成都是在从 0.0 到 1.0 变化的温度下采样的,胜率如图 2(右)所示
    • DPO、PPO 和 Preferred-FT 都微调了相同的 GPT-J SFT 模型4
      • 论文发现 DPO 在温度为 0.0 时胜率约为 61%,超过了 PPO 在其最佳采样温度 0.0 时的 57%
      • 与 Best of \( N \) 基线相比,DPO 也实现了更高的最大胜率
      • 论文没有刻意调整 DPO 的 \( \beta \) 超参数,所以这些结果可能低估了 DPO 的潜力
    • 论文还发现 DPO 对采样温度的鲁棒性远高于 PPO,后者的性能在高温度下可能退化到基础 GPT-J 模型的水平
      • Preferred-FT 相对于 SFT 模型没有显著改进
      • 论文还在第 6.4 节中在人类评估中比较了 DPO 和 PPO,其中温度为 0.25 的 DPO 样本在 58% 的情况下比温度为 0 的 PPO 样本更受偏好
  • 在单轮对话上,论文在 Anthropic HH 数据集 (2022) 测试分割的子集上评估不同方法,该子集包含一步人机交互
    • GPT-4 评估使用测试集上的偏好完成作为参考,计算不同方法的胜率
    • 由于此任务没有标准的 SFT 模型,论文从一个预训练的 Pythia-2.8B 开始,使用 Preferred-FT 在所选完成上训练一个参考模型,使得完成在模型的分布内,然后使用 DPO 进行训练
    • 论文还与从 Preferred-FT 完成中选出的最佳 128 个完成进行比较(论文发现 Best of \( N \) 基线在此任务上在 128 个完成时达到稳定;见附录图 4)以及一个 2-shot 提示的 Pythia-2.8B 基础模型版本,发现 DPO 在每种方法的最佳性能温度下表现相当或更好
    • 论文还评估了一个在 Anthropic HH 数据集5 上使用 PPO 训练的 RLHF 模型,该模型来自一个知名来源6,但未能找到能够提供优于基础 Pythia-2.8B 模型性能的提示或采样温度
    • 基于论文从 TL;DR 得到的结果以及两种方法优化相同奖励函数的事实,论文将 Best of 128 视为 PPO 级别性能的粗略代理
    • 总体而言,DPO 是唯一一个在计算上高效且改进了 Anthropic HH 数据集中偏好完成的方法,并且提供了与计算量大的 Best of 128 基线相似或更好的性能
    • 最后,图 3 显示 DPO 相对较快地收敛到其最佳性能

Generalization to a new input distribution

  • 为了进一步比较 PPO 和 DPO 在分布偏移下的性能,论文在不同的分布上评估了来自论文 Reddit TL;DR 摘要实验的 PPO 和 DPO 策略,即 CNN/DailyMail 数据集 (2016) 测试分割中的新闻文章,使用来自 TL;DR 的最佳采样温度(0 和 0.25)
  • 结果呈现在表 1 中
    • 论文计算了相对于数据集中真实摘要的 GPT-4 胜率,使用了论文用于 Reddit TL;DR 的相同 GPT-4 (C) 提示,但将“论坛帖子”一词替换为“新闻文章”
    • 对于这个新的分布,DPO 继续以显著优势优于 PPO 策略。这个实验提供了初步证据,表明 DPO 策略可以像 PPO 策略一样很好地泛化,尽管 DPO 没有使用 PPO 使用的额外的未标记 Reddit TL;DR 提示
  • 表 1:对于分布外的 CNN/DailyMail 输入文章,相对于真实摘要的 GPT-4 胜率
    • 理解:因为是跟 Ground Truth 的对比,所以他们的省略都不足 50%

Validating GPT-4 judgments with human judgments(用 Human Judgment 验证 GPT-4 judgment 是否准确)

  • 论文进行了一项人类研究来验证 GPT-4 判断的可靠性 ,使用了 TL;DR 摘要实验的结果和两种不同的 GPT-4 提示
    • GPT-4 (S)(简单)提示简单地询问哪个摘要更好地总结了帖子中的重要信息
    • GPT-4 (C)(简洁)提示还询问哪个摘要更简洁;
    • 论文评估这个提示是因为论文发现使用 GPT-4 (S) 提示时,GPT-4 比人类更喜欢更长、更重复的摘要
    • 完整的提示见附录 C.2
  • 论文进行了三次比较,使用了性能最高(DPO,温度 0.25)、最低(PPO,温度 1.0)和中等性能(SFT,温度 0.25)的方法,旨在覆盖多样性的样本质量;
    • 所有三种方法都与贪婪采样的 PPO(其最佳性能温度)进行比较
    • 论文发现,使用两种提示,GPT-4 与人类一致的程度通常与人类彼此一致的程度相似,这表明 GPT-4 是人类评估的合理代理(由于人类评分者有限,论文只收集了 DPO 和 PPO-1 比较的多人判断)
  • 总体而言,GPT-4 (C) 提示通常提供更能代表人类的胜率;因此论文在第 6.2 节的主要结果中使用此提示
  • 关于人类研究的更多细节,包括呈现给评分者的网络界面和人类志愿者列表,见附录 D.3
  • 表 2:
    • 在 TL;DR 摘要样本上比较人类和 GPT-4 的胜率以及每次判断的一致性
    • 人类与 GPT-4 的一致程度与人类彼此之间的一致程度大致相同
    • 每个实验将所述方法的摘要与温度为 0 的 PPO 摘要进行比较

Limitations & Future Work

  • 论文的结果提出了几个未来工作的重要问题
  • 第一:与从显式奖励函数学习相比,DPO 策略在分布外的泛化能力如何?
    • 论文的初步结果表明 DPO 策略可以类似于基于 PPO 的模型一样泛化,但需要更全面的研究
    • 例如,使用来自 DPO 策略的自标注进行训练是否同样能有效利用未标记的提示?
  • 第二:在直接偏好优化设置中,奖励过度优化(over-optimization)如何表现
    • 图 3 右侧性能的轻微下降是否是它的一个实例?
  • 第三:虽然论文评估了最多 6B 参数的模型,但将 DPO 扩展到数量级更大的最先进模型是未来工作的一个令人兴奋的方向
  • 关于评估
    • 论文发现 GPT-4 计算的胜率受到提示的影响;未来的工作可能会研究从自动化系统中引出高质量判断的最佳方式
  • 最后,DPO 的许多可能应用存在于从人类偏好训练语言模型之外,包括在其他模态中训练生成模型

附录 B:DPO Implementation Details and Hyperparameters

  • DPO 的实现相对简单;下面提供了 DPO 损失的 PyTorch 代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import torch.nn.functional as F

    def dpo_loss(pi_logps, ref_logps, yw_idxs, yl_idxs, beta):
    """
    pi_logps: policy logprobs, shape (B,)
    ref_logps: reference model logprobs, shape (B,)
    yw_idxs: preferred completion indices in [0, B-1], shape (T,)
    yl_idxs: dispreferred completion indices in [0, B-1], shape (T,)
    beta: temperature controlling strength of KL penalty
    Each pair of (yw_idxs[i], yl_idxs[i]) represents the indices of a single preference pair.
    """

    pi_yw_logps, pi_yl_logps = pi_logps[yw_idxs], pi_logps[yl_idxs]
    ref_yw_logps, ref_yl_logps = ref_logps[yw_idxs], ref_logps[yl_idxs]

    pi_logratios = pi_yw_logps - pi_yl_logps
    ref_logratios = ref_yw_logps - ref_yl_logps

    losses = -F.logsigmoid(beta * (pi_logratios - ref_logratios))
    rewards = beta * (pi_logps - ref_logps).detach()

    return losses, rewards
  • 论文默认使用 \(\beta = 0.1\),批量大小为 64,以及学习率为 1e-6 的 RMSprop 优化器

  • 论文在前 150 步中将学习率从 0 线性预热到 1e-6

  • 对于 TL;DR 摘要任务,论文使用 \(\beta = 0.5\),其余参数保持不变


附录 C:Further Details on the Experimental Set-Up

  • 在本节中,论文包含了与实验设计相关的额外细节

C.1 IMDb 情感实验和基线细节 (C.1 IMDb Sentiment Experiment and Baseline Details)

  • 提示是来自 IMDB 数据集中长度为 2-8 个词符的前缀
  • 论文使用预训练的情感分类器 siebert/sentiment-roberta-large-english 作为真实奖励模型,并使用 gpt2-large 作为基础模型
  • 论文发现默认模型生成的文本质量较低且奖励有些不准确,因此使用了这些更大的模型
    • 论文首先在 IMDB 数据的一个子集上进行了 1 个周期的监督微调
    • 然后,论文使用该模型为 25000 个前缀生成了 4 个补全,并使用 ground-truth 奖励模型为每个前缀创建了 6 个偏好对
      • 问题:这里的 ground-truth 奖励模型是什么?
    • RLHF 奖励模型从 gpt2-large 模型初始化,并在偏好数据集上训练了 3 个周期,论文选择了在验证集上准确率最高的检查点
    • “TRL” 运行使用了 TRL 库中的超参数
    • 论文的实现在每个 PPO 步骤中使用更大的批量样本,为 1024

C.2 用于计算摘要和对话胜率的 GPT-4 提示 (C.2 GPT-4 prompts for computing summarization and dialogue win rates)

  • 论文实验设置的一个关键组成部分是 GPT-4 的胜率判断
  • 在本节中,论文包含了用于生成摘要和对话实验胜率的提示
  • 论文所有的实验都使用 gpt-4-0314
  • 每次评估时,摘要或响应的顺序是随机选择的
摘要 GPT-4 胜率提示 (S) (Summarization GPT-4 win rate prompt (S))
  • 提示词:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Which of the following summaries does a better job of summarizing the most \
    important points in the given forum post?
    Post:
    <post>
    Summary A:
    <Summary A>
    Summary B:
    <Summary B>
    FIRST provide a one-sentence comparison of the two summaries, explaining which \
    you prefer and why. SECOND, on a new line, state only "A" or "B" to indicate your \
    choice. Your response should use the format:
    Comparison: <one-sentence comparison and explanation>
    Preferred: <"A" or "B">
摘要 GPT-4 胜率提示 (C) (Summarization GPT-4 win rate prompt (C))
  • 提示词:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Which of the following summaries does a better job of summarizing the most \
    important points in the given forum post, without including unimportant or \
    irrelevant details? A good summary is both precise and concise.
    Post: <post>
    Summary A:
    <Summary A>
    Summary B:
    <Summary B>
    FIRST provide a one-sentence comparison of the two summaries, explaining which \
    you prefer and why. SECOND, on a new line, state only "A" or "B" to indicate your \
    choice. Your response should use the format:
    Comparison: <one-sentence comparison and explanation>
    Preferred: <"A" or "B">
Dialogue GPT-4 win rate prompt
  • 提示词:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    For the following query to a chatbot, which response is more helpful?
    Query: <the user query>
    Response A:
    <either the test method or baseline>
    Response B:
    <the other response>
    FIRST provide a one-sentence comparison of the two responses and explain \
    which you feel is more helpful. SECOND, on a new line, state only "A" or \
    "B" to indicate which response is more helpful. Your response should use \
    the format:
    Comparison: <one-sentence comparison and explanation>
    More helpful: <"A" or "B">

C.3 非似然基线 (C.3 Unlikelihood baseline)

  • 虽然论文在情感实验中包含了非似然基线 (2019)(简单地最大化偏好响应的对数概率 \(\log p(y_{w}|x)\),同时最小化非偏好响应的对数概率 \(\log p(y_{l}|x)\)),但论文没有在摘要或对话实验中将之作为基线,因为它通常会产生无意义的响应,作者认为这是无约束似然最小化的结果

附录 D:Additional Empirical Results

D.1 不同 N 值的 Best of N 基线性能 (D.1 Performance of Best of N baseline for Various N)

  • 论文发现 Best of N 基线在论文的实验中是一个强大(尽管计算成本高,需要多次采样)的基线
  • 论文评估了 Best of N 基线在 Anthropic-HH 对话和 TL;DR 摘要任务中不同 N 值的性能;结果如图 4 所示

D.2 样本回复和 GPT-4 判断 (D.2 Sample Responses and GPT-4 Judgments)

  • 在本节中,论文展示了 DPO 与基线(摘要任务为 PPO temp 0,对话任务为数据集中选择的真实响应)之间比较的示例
  • 摘要示例见表 4-6,对话示例见表 7-10
  • 论文未列出,详情见博客

D.3 人类研究细节 (D.3 Human study details)

  • 为了验证使用 GPT-4 计算胜率的做法,论文的人类研究在 TL;DR 摘要设置中收集了几组对比的人类偏好数据
  • 论文选择了三种不同的算法对比,评估了 DPO (temp. 0.25)、SFT (temp. 0.25) 和 PPO (temp 1.0) 与参考算法 PPO (temp 0.) 的比较
  • 通过选择三种独特算法以及相对于参考算法胜率范围广泛的算法,论文捕捉了人类和 GPT-4 胜率在不同响应质量谱上的相似性
  • 论文对 DPO vs PPO-0 进行了 150 次随机比较采样,对 PPO-1 vs PPO-0 进行了 100 次随机比较采样,每次比较分配两个人进行标注,为 DPO-PPO’10 产生了 275 个判断,为 PPO-PPO 产生了 200 个判断
  • 论文对 SFT 进行了 125 次比较采样,每次分配一个人进行标注
  • 论文忽略了人类标记为平局的判断(仅占所有判断的约 1%),并测量了人类 A 和人类 B 之间(对于论文有两个人标注的比较,即不包括 SFT)以及每个人与 GPT-4 之间的原始一致百分比
  • 论文总共有 25 名志愿者人类评估者,每人比较了 25 个摘要(一名志愿者较晚完成调查,未纳入最终分析,但在此列出)
  • 评估者是斯坦福大学的学生(从本科到博士),或近期的斯坦福毕业生或访问学者,主修 STEM(主要是 CS)领域
  • 调查界面截图见图 5

附录:DPO 推导过程

  • 根据RLHF中的定义,策略 \(\pi_\theta\) 的训练目标是:在不太偏离 Reference Model 的情况下,最大化 reward,其定义可以写为如下形式
    $$
    \max_{\pi_\theta} \mathbb{E}_{x\sim D, y\sim \pi_\theta(y|x)} [r_{RM}(x,y)]-\beta \mathbb{D}_{KL}[\pi_\theta(y|x)||\pi_\text{ref}(y|x)]
    $$
    • \(r_{RM}(x,y)\) 是 Reward Model 的返回值
    • \(\beta\) 是控制目标策略和 Reference Model 差异的参数
    • 在强化学习中,可通过修改使用 reward(Reward Engineering)来实现训练目标:
      $$
      r(x,y) = r_{RM}(x,y) - \beta(\log\pi_\theta(y|x) - \log\pi_\text{ref}(y|x) )
      $$
  • DPO推导:
    • DPO-最优策略推导 :将原始目标进行转换有
      • 理解:(论文中未明确给出说明)上述证明中,转换 KL 散度形式为对形式时,要求 \(y \sim \pi\),即回答 \(y\) 是从当前策略采样的(实际中我们无法严格满足,只能近似做到)
      • 公式(12)最后一步推导为:将左边式子中括号内容按照对数法则全部展开,即可发现变化前后的式子相等
      • 实际上,推导公式(12)时, \(\log Z(x)\) 可以是任意函数,为了使得 \(\pi^{*}(y|x)\) 是一个分布,所以特意将 \(Z(x)\) 取值为分配函数的形式(物理学中的分配函数是一个统计量)
      • 注:可以证明这样构造的 \(\pi^*\) 正是原始 PPO 约束优化问题的最优解(这也是后续推导可以看到后续的目标就是让目标策略和 \(\pi^*\) 的 KL 散度变小),详细证明参考 RL——CQL 的附录部分
    • DPO-最优奖励形式推导 :进一步推导得到最优策略对应的奖励形式有
      • 这里由于 \(Z(x)\) 并不依赖于策略 \(\pi\),所以最小化公式14 的结果就是最小化其第一项的结果(注:第二项可以单独分出来),且 \(\pi\) 满足下面的形式时取得最小值,即在 KL 约束下,奖励最大化目标的 \(\pi(y|x)\) 的最优解形式为:
        $$
        \pi^{*}(y|x) = \frac{1}{Z(x)}\pi_\text{ref}(y|x)exp(\frac{1}{\beta}r(x,y))
        $$
      • 两边同时取对数可得:
        $$
        \log \pi^{*}(y|x) = -\log Z(x) + \log \pi_\text{ref}(y|x) + \frac{1}{\beta}r(x,y)
        $$
      • 进一步有:
        $$
        \frac{1}{\beta}r(x,y) = \log \pi^{*}(y|x) + \log Z(x) - \log \pi_\text{ref}(y|x)
        $$
      • 即最优策略对应的奖励形式为:
        $$
        r(x,y) = \beta \log \frac{\pi^{*}(y|x)}{\pi_\text{ref}(y|x)} + \beta\log Z(x)
        $$
        • 对上述奖励形式的理解:如果已知 公式11 问题中的 最优解 ,即 策略 \(\pi\) 的最优策略 \(\pi^{*}\) ,那么 最优的奖励值(最大奖励值)\(r^*(x,y)\) 的形式可以通过上述的形式来表示
    • DPO-损失函数推导 :在使用 Bradley-Terry (BT)方法建模人类偏好时 ,有 DPO 的训练损失函数如下:
      • 推导精髓:上述推导中消除了 \(Z(x)\) ,是通过引入 Bradley-Terry 偏好模型来实现的
      • 理解:上述基本推导思路是
        • 奖励和策略的关系:由上面已经已知,即指定任意策略为最优策略,则其对应的最优奖励就已知;反过来也一样
        • 奖励和概率的关系:借助 BT 偏好建模,可以建模 正样本 优于 负样本的概率 \(p(y_1 \succ y_2|x)\) 和奖励 \(r(x,y_1),r(x,y_2)\) 的关系
        • 由此,可以得到概率和策略的关系(注意:这样的好处是,不再需要预估奖励了,直接从优化概率即可优化策略)
        • 下面再进一步,最小化负对数概率即可得到目标,当负对数概率最小时,也就是策略最优时
      • 目标是让上面的概率 \(p^*(y_1 \succ y_2 )\) 越大越好,最终的损失函数可以定义为负对数概率在数据集上的期望:
        $$
        Loss_{\text{DPO}}(\pi_\theta;\pi_\text{ref}) = - \mathbb{E}_{(x,y_w,y_l) \sim D}\left [ \log \sigma \left( \beta\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} - \beta\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right)\right ]
        $$
      • 通过最小化上面的损失函数,即可求得最优参数 \(\theta^*\)

附录:DPO 训练流程

  • 一句话总结:用 \(\pi_\text{ref}\) 收集数据 + 人类离线标记偏好 + 按照 DPO 损失函数训练
  • 【与 RLHF Reward Model 训练相同】使用SFT模型对同一个Prompt重复生成多个不同Response,记为 \(y_a, y_b, y_c, y_d\)
  • 【与 RLHF Reward Model 训练相同】让人类对回答进行排序打分: \(y_a \succ y_b \succ y_c \succ y_d\) ,最终可获得数据集 \(D = \{x^{(i)}, y^{(i)}_w, y^{(i)}_l\}_{i=1}^N\)
    • 实际上,对于一个 \(x\) 对应K个 \(y\) 的情况,可以拆开成 \(C_K^2\) 个样本,然后按照Bradley-Terry(BT)Model来建模,在OPENAI原始论文:Training language models to follow instructions with human feedback中训练RM时是这样表述的,论文均按照BT模型来写
    • 实际上,DPO原始论文:Direct Preference Optimization: Your Language Model is Secretly a Reward Model中还给出了一种不做样本拆分的等价表达形式:Plackett-Luce Model,在论文最后我们会进行讨论
  • 【与 RLHF 不同】对于给定的 \(\pi_\text{ref}\) 和数据集 \(D\) ,优化语言模型 \(\pi_\theta\) 以最小化loss:
    $$
    Loss_{\text{DPO}}(\pi_\theta;\pi_\text{ref}) = - \mathbb{E}_{(x,y_w,y_l) \sim D}\left [ \log \sigma \left( \beta\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} - \beta\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right)\right ]
    $$
    • 注: \(\sigma(\cdot)\) 表示Sigmod函数 \(\sigma(x) = \frac{1}{1+e^{-x}}\)
    • 策略 \(\pi_\text{ref}\) 和数据集 \(D\) 必须是对应的,即数据集 \(D\) 应该是按照策略 \(\pi_\text{ref}\) 中采样得到的;
      • 一般来说:数据集 \(D\) 都是策略 \(\pi^{SFT}\) 采样得到的,此时 \(\pi_\text{ref}\) 就是 \(\pi^{SFT}\)
      • 当数据集 \(D\) 为公开数据集时,可以使用下面的方法先训练一个 \(\pi_\text{ref}\) (原始论文中描述 \(\pi_\text{ref}\) 的训练过程为initialize \(\pi_\text{ref}\) ,但实际上, \(\pi_\text{ref}\) 在DPO训练 \(\pi_\theta\) 过程中是不会被更新的):
        $$
        \pi_\text{ref} = \arg\max_{\pi} \mathbb{E}_{(x,y_w) \sim D} log \pi(y_w|x)
        $$
        • 理解:这种情况下 \(\pi_\text{ref}\) 的训练就是在数据集 \((x, y_w) \sim D\) 上的SFT
        • 这种设定可以减少未知的真实行为策略与 DPO 使用的 \(\pi_\text{ref}\) 之间的分布偏移(mitigate the distribution shift between the true reference distribution which is unavailable, and \(\pi_\text{ref}\) used by DPO)
    • 问题 :如何理解收集数据的行为策略必须和参考策略一致?
    • 回答(待补充):在推导过程中并未看到必须要求数据和参考策略一致,但是 DPO-最优策略推导过程中变换 KL 散度形式时,要求 \(y\sim\pi\),即回复 \(y\) 必须从当前策略采样,考虑到参考模型常常作为目标策略的初始值,且更新过程中数据无法变更,则保证数据从参考策略(目前策略初始值)采样是最合适的
      • 其他角度的进一步理解:如果能针对当前策略生成的样本进行反馈,则可以最大程度上对当前模型进行高效优化,重点优化模型可能会生成的样本,给与或正或负的高效反馈
  • 问题:为什么不能直接用 SFT 的结果作为 \(\pi_\theta\) ?DPO 相对普通 SFT 有什么优点?
  • 回答:因为 SFT 没有使用到 \(y_l\) 样本,没有体现出来人类偏好,而 DPO 可以

附录:DPO 更新梯度分析

  • DPO-loss 关于参数 \( \theta \) 的梯度可以写成:
    $$\begin{aligned}
    \nabla_{\theta} \mathcal{L}_{\mathrm{DPO} }\left(\pi_{\theta} ; \pi_{\text {ref } }\right) = -\beta \mathbb{E}_{\left(x, y_{w}, y_{l}\right) \sim \mathcal{D} }[\underbrace{\sigma\left(\hat{r}_{\theta}\left(x, y_{l}\right)-\hat{r}_{\theta}\left(x, y_{w}\right)\right)}_{\text {奖励估计错误时权重更高 } }[\underbrace{\nabla_{\theta} \log \pi\left(y_{w} | x\right)}_{\text {增加 } y_{w} \text { 的概率 } }-\underbrace{\nabla_{\theta} \log \pi\left(y_{l} | x\right)}_{\text {降低 } y_{l} \text { 的概率 } }]]
    \end{aligned}$$
    • 其中 \(\hat{r}_\theta(x,y) = \beta \log\frac{\pi_\theta(y|x)}{\pi_\text{ref}(y|x)}\) 在原始论文中被称为隐式奖励模型,\( \hat{r}_{\theta}(x, y)=\beta \log \frac{\pi_{\theta}(y | x)}{\pi_{\text {ref } }(y | x)} \) 是由语言模型 \( \pi_{\theta} \) 和参考模型 \( \pi_{\text {ref } } \) 隐式定义的奖励
    • 从梯度上可以看出:当 \(y_l\) 的奖励大于 \(y_w\) 的奖励时,梯度越大,而损失函数的梯度会增加生成 \(y_w\) 的概率,降低 \(y_l\) 的概率(对应负号 \(-\))
    • 直观地说,损失函数 \( \mathcal{L}_{\text {DPO} } \) 的梯度增加了偏好完成项 \( y_{w} \) 的可能性,并降低了非偏好完成项 \( y_{l} \) 的可能性
    • 由隐式奖励模型 \( \hat{r}_{\theta} \) 对非偏好完成项的评分高出多少来加权,由 \( \beta \) 缩放(详细讨论见附录),即隐式奖励模型对完成项排序的错误程度,考虑了 KL 约束的强度
      • 注:作者在论文中给出了实验来验证隐式奖励模型 \( \hat{r}_{\theta} \) 加权的重要性(注意不是 \(\beta\) 的实验,是整体加权系数的实验),没有加权系数的朴素版本会导致语言模型退化(原文附录表3)
  • 补充:梯度的推导过程

附录:DPO 与 RLHF 的关系是什么?

  • 对于给定的 \(\pi_\text{ref}\) 和数据集 \(D\)
  • DPO是在优化语言模型 \(\pi_\theta\) 以最小化loss:
    $$
    Loss_{\text{DPO}}(\pi_\theta;\pi_\text{ref}) = - \mathbb{E}_{(x,y_w,y_l) \sim D}\left [ \log \sigma \left( \beta\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} - \beta\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right)\right ]
    $$
  • RLHF的Reward Model则在优化Reward Model打分模型 \(r_\theta\) 以最小化loss:
    $$
    Loss_{\text{RM}}(\theta) = -\frac{1}{C_K^2} \mathbb{E}_{(x,y_w,y_l)\sim D}[\log \sigma(r_\theta(x, y_w) - r_\theta(x, y_l))]
    $$
  • 可以看到 DPO 的损失函数与 RLHF 中 Reward Model 的损失函数很相似,可以理解为 DPO 隐式建模了 Reward Model(在原始论文中 \(\hat{r}(x,y) = \beta \log\frac{\pi_\theta(y|x)}{\pi_\text{ref}(y|x)}\) 被称为隐式奖励模型,与 \(r_\theta(x,y)\) 替换后即和RM中的损失函数形式完全一致)
  • DPO 可以看做是一个 off-policy 且 offline 的 RL 方法(实际上不是 RL 方法),而 RLHF 中的 PPO 是 online 且 on-policy 的方法

附录:对于大于2个回答偏好的情况如何处理?

  • 处理方法一:Bradley-Terry(BT)Model,如论文所述,对多个偏好进行两两匹配生成多个样本,然后转换为只有两个回答偏好的情况
  • 处理方法二:Plackett-Luce Model,使用如下损失函数来训练:
    • 可以看到Plackett-Luce Model的损失函数展开以后就是 \(C_K^2\) 个偏好样本对,与先两两匹配生成样本,然后再利用Bradley-Terry Model建模的方法完全一致
    • 原论文附录中有关于 Plackett-Luce Model 的详细介绍和推导

附录:DPO 损失函数中 KL 散度和超参数 \(\beta\) 的理解

  • 从原始问题定义中理解 :在原始约束优化问题的定义中:
    $$
    \max_{\pi_\theta} \mathbb{E}_{x\sim D, y\sim \pi_\theta(y|x)} [r_{RM}(x,y)]-\color{red}{\beta} \mathbb{D}_{KL}[\pi_\theta(y|x)||\pi_\text{ref}(y|x)]
    $$
    • \(\beta\) 是作为控制 KL 散度的约束严格程度存在的: \(\beta\) 越大,KL 散度约束越强; \(\beta\) 越小,KL 散度约束越弱
  • 在 DPO 最终的损失函数中理解 :从损失函数的数学形式看
    $$
    Loss_{\text{DPO}}(\pi_\theta;\pi_\text{ref}) = - \mathbb{E}_{(x,y_w,y_l) \sim D}\left [ \log \sigma \left( \color{red}{\beta}\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} - \color{red}{\beta}\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right)\right ]
    $$
    • 从损失函数中不容易理解 \(\beta\) 的作用,需求导以后才好理解,参见下面梯度中的理解
  • 在 DPO 更新的梯度中理解 :从梯度更新的式子看:
    $$\begin{aligned}
    \nabla_{\theta} \mathcal{L}_{\mathrm{DPO} }\left(\pi_{\theta} ; \pi_{\text {ref } }\right) = -\color{red}{\beta} \mathbb{E}_{\left(x, y_{w}, y_{l}\right) \sim \mathcal{D} }[\underbrace{\sigma\left(\hat{r}_{\theta}\left(x, y_{l}\right)-\hat{r}_{\theta}\left(x, y_{w}\right)\right)}_{\text {奖励估计错误时权重更高 } }[\underbrace{\nabla_{\theta} \log \pi\left(y_{w} | x\right)}_{\text {增加 } y_{w} \text { 的概率 } }-\underbrace{\nabla_{\theta} \log \pi\left(y_{l} | x\right)}_{\text {降低 } y_{l} \text { 的概率 } }]]
    \end{aligned}$$
    • 其中 \(\hat{r}_\theta(x,y) = \color{red}{\beta} \log\frac{\pi_\theta(y|x)}{\pi_\text{ref}(y|x)}\)
    • 理解:从梯度公式看
      • \(\color{red}{\beta \rightarrow 0}\) 时, \(\sigma(\cdot) \rightarrow \sigma(0) = 0.5\),相当于是个固定值,此时模型专注于优化以增大正样本概率,减小负样本概率,几乎没有任何约束
      • \(\color{red}{\beta \rightarrow +\infty}\) 时:
        • 当 \(\left(\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} -\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} \right) > 0\),则 \(\sigma(\cdot) \rightarrow \sigma(+\infty) = 1\),梯度对模型的影响正常,模型会优化这种样本,使得 \(y_w\) 出现的概率变大, \(y_l\) 出现的概率变小
        • 当 \(\left(\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} -\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} \right) < 0\),则 \(\sigma(\cdot) \rightarrow \sigma(-\infty) = 0\),梯度对模型影响为 0,模型不再学习这种样本(即使 \(y_w\) 出现的概率比参考策略只大一点点,或\(y_l\) 出现的概率比参考策略仅小一点点)
        • 综上,\(\color{red}{\beta \rightarrow +\infty}\) 时,会导致模型学习时,刚刚好学到一个 \(y_w\) 出现的概率比参考策略只大一点点,或\(y_l\) 出现的概率比参考策略仅小一点点的策略即收敛,这会导致策略不再继续偏离参考策略,也就实现了对 KL 散度的极大约束
  • \(\beta\) 取值最佳实践 :原始论文中提到 \(\beta\) 默认取值为 \(\beta=0.1\),在 TL;DR summarization 任务(一个摘要生成任务)中取值为 \(\beta=0.5\)

附录:DPO Loss 的代码实现

  • 来自原始 DPO 论文的代码实现:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    def dpo_loss(pi_logps, ref_logps, yw_idxs, yl_idxs, beta):
    """
    pi_logps: policy logprobs, shape (B,)
    ref_logps: reference model logprobs, shape (B,)
    yw_idxs: preferred completion indices in [0, B-1], shape (T,)
    yl_idxs: dispreferred completion indices in [0, B-1], shape (T,)
    beta: temperature controlling strength of KL penalty
    Each pair of (yw_idxs[i], yl_idxs[i]) represents the
    indices of a single preference pair.
    """
    pi_yw_logps, pi_yl_logps = pi_logps[yw_idxs], pi_logps[yl_idxs]
    ref_yw_logps, ref_yl_logps = ref_logps[yw_idxs], ref_logps[yl_idxs]
    pi_logratios = pi_yw_logps - pi_yl_logps
    ref_logratios = ref_yw_logps - ref_yl_logps
    losses = -F.logsigmoid(beta * (pi_logratios - ref_logratios))
    rewards = beta * (pi_logps - ref_logps).detach()
    return losses, rewards

附录:针对 DPO 的改进

  • DPO 中只保证目标策略生成整个句子 \(y_w\) 或 \(y_l\) 的概率与参考策略一致,并不限制中间每个 Token 生成的过程中概率一致
  • DPO 中的损失函数要求的是 \(\left(\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} -\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right) \) 变大;实际上,模型可能学习到的是,让 \(\pi_\theta(y_w|x)\) 和 \(\pi_\theta(y_l|x)\) 同时变小,只要正样本变小的幅度较小即可

附录:DPO 训练时的 \(\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)}\) 应该保证始终大于 1 吗?

  • 副标题:DPO 训练时的 \(\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)}\) 应该保证始终小于 1 吗?
  • 现象:在训练时发现 \(\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} < 1\) 且持续降低(此时 \(\beta=0.1\))
    • 设置 \(\beta=0.5\) 后 \(\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} > 1\) 波动
    • 其他指标均正常:
      • \(\left(\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} -\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right) \) 逐步变大
      • \(\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} < 1\) 且持续降低
  • 问题:让 \(\pi_\theta(y_w|x)\) 和 \(\pi_\theta(y_l|x)\) 同时变小的结果不是我们想要的吧,我们至少不想要 \(\pi_\theta(y_w|x)\) 降低
  • 如何理解 通过调整 \(\beta\) 值可以缓解这个问题呢?
    • 个人理解:DPO 的本质是让 \(\left(\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} -\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right) \) 越大越好
    • 进一步分析有:
      • 当 \(\beta\) 过小时 ,KL 散度约束小,可能导致 \(\pi_\theta(y_w|x)\) 和 \(\pi_\theta(y_l|x)\) 同时变小(持续变小)
      • 当 \(\beta\) 过大时 ,KL 散度约束大,可能导致 \(\pi_\theta(y_w|x)\) 和 \(\pi_\theta(y_l|x)\) 都波动很小
        • 从梯度上体现就是,当 \(\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)}\) 比 \(\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)}\) 大一点点就不学了
      • 当 \(\beta\) 适中时 ,KL 散度约束适中,可约束 \(\pi_\theta(y_w|x)\) 和 \(\pi_\theta(y_l|x)\) 不能偏离当前策略太多,让 \(\pi_\theta(y_w|x)\) 变大, \(\pi_\theta(y_l|x)\) 变小,从而实现

附录:对齐人类偏好的其他方法

  • RLHF: 基于人类反馈的强化学习方法,基于人类偏好训练 RM 再 RL,ChatGPT 的训练方式
  • RLAIF: 基于AI反馈的强化学习方法,基于 AI 偏好模型训练 RM 再 RL,Claude 的训练方式
  • 其他参考RLHF的替代之DPO原理解析:从RLHF、Claude的RAILF到DPO、Zephyr:

    整个从 SFT 到 RLHF 或 RLAIF 的训练中,ChatGPT 只有最后 1/3 摆脱了人工参与的训练,而 Claude 则希望超过 1/2 摆脱人工参与的训练

NLP——LLM对齐微调-ETO

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:Trial and Error: Exploration-Based Trajectory Optimization for LLM Agents, PKU & AllenAI, 202407
    • 开源代码:https://arxiv.org/pdf/2403.02502

Paper Summary

  • 整体总结:
    • 论文提出了一种旨在提升大语言模型 Agent 能力的方法 称为 ETO(Exploration-based Trajectory Optimization)
      • 论文的方法通过试错学习(trial and error)优化基于行为克隆的基础 Agent
    • ETO 采用探索-训练迭代框架(持续提升 Agent 性能):
      • 在探索阶段, Agent 与环境交互并收集失败轨迹,构建轨迹偏好对
      • 在训练阶段, Agent 通过 DPO 损失从偏好信息中学习
    • 特别说明:ETO 展现出卓越的任务解决效率,并在缺乏专家轨迹的场景中表现出巨大潜力
  • 更详细一些的说明:论文提出了一种基于探索的轨迹优化方法 ETO
    • 与以往仅依赖成功专家轨迹的研究不同,论文的方法允许 Agent 从其探索失败中学习,通过迭代优化框架提升性能
    • 在探索阶段,Agent 通过与环境交互完成任务,收集失败轨迹以构建对比轨迹对;在随后的训练阶段,Agent 利用这些轨迹偏好对,通过对比学习方法(如 DPO)更新策略
    • 这种探索与训练的迭代循环促进了 Agent 的持续改进
  • 论文在三个复杂任务上的实验表明,ETO 始终以显著优势超越基线方法

Introduction and Discussion

  • LLM 通过为环境和工具交互制定行动计划,展现了解决复杂交互任务的强大能力(2023a; 2023)
  • 以 ChatGPT(OpenAI, 2022)和 GPT-4(OpenAI, 2023)为核心控制器的系统已被开发用于多种应用,包括网页浏览(2023; 2023)、具身任务(2022a; 2023)、多模态推理(2023)以及复杂问答
  • 然而,近期研究表明,开源 LLM 在构建 Agent 时的效果远不及 GPT-4(2023; 2023a; 2023)
  • 构建开源 LLM Agent 的标准方法是模仿学习(Imitation Learning),即基于专家轨迹对 LLM 进行微调
    • 行为克隆(BC, Behavioral Cloning)(Pomerleau, 1991)是一种简单有效的模仿学习技术,通过从观察-动作对中进行监督学习来推导策略
    • 近期研究(2023; 2023)如 Agent Lumos(2023)探索了使用 BC 通过专家轨迹的监督微调(SFT, Supervised Fine-Tuning)开发开源 LLM Agent
    • 这些方法采用 teacher-forcing 算法训练 LLM,使其能够基于观察和过去动作学习生成后续动作的策略
    • 然而,这些完全依赖专家演示的 SFT 方法可能由于对目标环境探索不足而产生次优策略,从而限制其泛化能力
  • 人类学习的过程不仅包括观察成功示范,还包含通过与环境的试错交互体验和探索失败 ,受此启发,论文提出了一种新颖的 LLM Agent 学习方法,称为 基于探索的轨迹优化(ETO)
    • 与以往仅依赖成功轨迹的方法不同,论文的方法利用当前策略的探索失败来增强 Agent 的学习过程
  • 具体而言,论文首先使用基于 SFT 的行为克隆构建 Base Agent(如图1 所示)
    • 在探索阶段,Base Agent 与目标环境交互以完成给定任务,并从环境中获取反馈。论文收集 Base Agent 的失败轨迹 ,并将其与先前为这些任务收集的专家轨迹配对
    • 在训练阶段,论文应用 DPO 损失(2023)通过这些对比轨迹对微调 LLM 策略,从而进一步提升 Agent
    • ETO 可以通过从先前调优的 Agent 中收集失败案例扩展到多轮迭代
  • 论文在三个代表性数据集上评估了论文的方法:
    • 用于网页导航的 WebShop(2022a)
    • 用于模拟科学实验的 ScienceWorld(2022)
    • 用于具身家庭任务的 ALFWorld(2021)
    • 在这些数据集上,ETO 始终以显著优势超越 SFT 行为克隆和其他强基线方法,证明了从探索失败中学习的有效性
  • 其他扩展实验和分析:
    • 论文的方法在 ScienceWorld 的挑战性分布外测试集上实现了 22% 的性能提升,展现了强大的泛化能力
    • 论文的方法在任务解决效率上表现优异,能够以更少的动作步骤获得更高的奖励
    • 在极端缺乏专家轨迹的场景下,ETO 在自博弈模式下仍能表现出色,进一步凸显了其潜力
  • 论文的贡献总结如下:
    • 方法 :论文提出了基于探索的轨迹优化方法 ETO,这是一种通过迭代收集失败轨迹并利用对比学习优化 Agent 策略的学习算法
    • 评估 :在三个复杂交互任务上的大量实验表明,论文的方法以显著优势超越了 SFT 行为克隆和其他强基线方法
    • 分析 :论文通过多角度深入分析验证了 ETO 的有效性,包括分布外泛化、动作效率以及无需专家轨迹的可行性

任务形式化

  • 具有环境反馈的 Agent 任务可以形式化为部分可观测马尔可夫决策过程(POMDP, Partially Observable Markov Decision Process)\((\mathcal{U}, \mathcal{S}, \mathcal{A}, \mathcal{O}, \mathcal{T}, \mathcal{R})\)
    • \(\mathcal{U}\) 是指令空间(instruction space)
    • \(\mathcal{S}\) 是状态空间
    • \(\mathcal{A}\) 是动作空间
    • \(\mathcal{O}\) 是观测空间
    • \(\mathcal{T}: \mathcal{S} \times \mathcal{A} \rightarrow \mathcal{S}\) 是状态转移函数
    • \(\mathcal{R}: \mathcal{S} \times \mathcal{A} \rightarrow [0,1]\) 是奖励函数
    • 注意:在论文的 LLM-based Agent 场景中,\(\mathcal{U}, \mathcal{A}, \mathcal{O}\) 均为自然语言空间的子集
  • 交互过程可总结为:
    • 给定任务指令 \(u \in \mathcal{U}\)
    • 参数为 \(\theta\) 的 LLM Agent 根据其策略 \(\pi_{\theta}\) 生成动作 \(a_1 \sim \pi_{\theta}(\cdot|u) \in \mathcal{A}\)
    • 该动作引发潜在状态空间 \(s_t \in \mathcal{S}\) 的变化,并产生执行反馈作为观测 \(o_t \in \mathcal{O}\)
    • Agent 在第 \(t+1\) 步生成相应动作 \(a_{t+1} \sim \pi_{\theta}(\cdot|u, a_1, o_1, …, o_{t-1}, a_t, \color{red}{o_t}) \in \mathcal{A}\)(注:红色部分 \(\color{red}{o_t}\) 是原始论文中没有加的,这里应该加上才对)
    • 交互循环持续至任务完成或超过最大步数,轨迹 \(e\) 表示为:
      $$
      e = (u, a_1, o_1, …, o_{n-1}, a_n) \sim \pi_{\theta}(e|u), \tag{1}
      $$
      • 其中策略为(\(n\) 为轨迹长度):
        $$
        \pi_{\theta}(e|u) = \prod_{j=1}^n \pi_{\theta}(a_j|u, a_1, o_1, …, o_{j-1}), \tag{2}
        $$
    • 最终计算任务完成度对应的奖励 \(r(u,e) \in [0,1]\),1 表示任务成功完成

Method

  • 论文的方法 ETO 首先通过行为克隆(Behavioral Cloning, BC)训练一个 Base Agent
  • 基于该 Base Agent,论文的框架通过迭代式的试错过程持续优化策略

Behavioral Cloning

  • 行为克隆(BC)通过在专家交互轨迹数据上进行 SFT ,已展现出良好的效果,为构建强大的 Agent 奠定了坚实基础
  • 在本工作中,论文采用 ReAct-style(2022b)的轨迹进行 BC,该方法在生成每个动作前还会生成链式推理(Chain-of-Thought, CoT)的理性解释(rationale)
  • 由于 CoT 和动作在 ReAct 框架中是一起生成的,为简化表示,论文用 \( a \) 表示带有 CoT 的动作
  • 给定专家轨迹数据集 \( \mathcal{D} = \left\{(u, e)^{(i)}\right\}_{i=1}^{|\mathcal{D}|} \),其中 \( |\mathcal{D}| \) 是轨迹数量,论文通过自回归损失对一个 LLM 进行微调,得到 Base Agent \( \pi_{\text{base} } \):
    $$
    \mathcal{L}_{\text{SFT} }(\pi_{\theta}) = -\mathbb{E}_{e \sim \mathcal{D} } \left[\pi_{\theta}(e|u)\right], \tag{3}
    $$
    • 其中 \( e = (u, a_1, o_1, …, o_{n-1}, a_n) \sim \mathcal{D} \) 是一条专家交互轨迹
  • 由于 \( \pi_{\theta}(e|u) = \prod_{j=1}^{n} \pi_{\theta}(a_j|u, …, o_{j-1}) \),在实践中,论文首先将轨迹 \( e \) 中的指令、动作和观察拼接为一个文本序列 \( t \):
    $$
    t = \text{concat}(u, a_1, o_1, …, o_{n-1}, a_n) = (t_1, t_2, …, t_l),
    $$
    • 其中 \( t_k \) 是结果序列中的第 \( k \) 个 词元(token)
    • 注意 token \(t_k\) 和 \(a_j\) 不是一一对应的关系,一个 \(a_j\) 可能对应多个 token \(t_k\)
  • 然后,公式 (3) 中的轨迹概率可以通过直接计算动作的概率(同时掩码任务描述和观察中的 token )得到:
    $$
    \pi_{\theta}(e|u) = -\sum_{k} \log \pi_{\theta}(t_k|t_{<k}) \times \mathbf{1}(t_k \in A),
    $$
    • 其中 \( \mathbf{1}(t_k \in A) \) 是一个指示函数,用于判断 \( t_k \) 是否属于 Agent 生成的动作 token

Learning From Exploration Failures

  • 行为克隆完全依赖于专家轨迹,缺乏对环境探索的能力,这可能导致策略次优
  • 为了训练更强大的 Agent,模型需要能够从失败轨迹中学习
  • 实现这一目标的一种可行方法是 RL ,它使 Agent 能够主动探索环境以获取奖励,并通过试错优化策略(2022):
    $$
    \max_{\pi_{\theta} } \mathbb{E}_{u \sim \mathcal{D}, e \sim \pi_{\theta}(e|u)} \left[r(u, e)\right] - \beta \mathbb{D}_{\text{KL} } \left[\pi_{\theta}(e|u) \mid \mid \pi_{\text{ref} }(e|u)\right], \tag{6}
    $$
    • 其中 KL 项与权重参数 \( \beta \) 用于控制与基础参考策略 \( \pi_{\text{ref} } \)(即 Base Agent \( \pi_{\text{base} } \))的偏离程度
  • 在实践中,待训练的 Agent 策略 \( \pi_{\theta} \) 也初始化为 \( \pi_{\text{base} } \)。然后,公式 (6) 中的优化问题可以通过 RL 方法(如 PPO,2017)求解
  • 然而,直接在 LLM Agent 上应用在线 RL 会面临实际挑战,例如不稳定性和低效率(2023; 2023)。因此,论文设计了一种迭代式离线学习框架 ,通过对比轨迹数据训练 Agent
  • 如图2 所示,训练过程可以表述为一个迭代的探索-训练循环(iterative exploration-training loop)
    • 在 ETO 的探索阶段,Agent 探索环境以收集失败轨迹;
    • 在 ETO 的训练阶段,Agent 从“失败-成功”(failure-success)轨迹对中学习对比信息以更新策略
Exploration Phase
  • 在探索阶段 ,Base Agent \( \pi_{\text{base} } \) 探索环境,收集训练数据中指令对应的轨迹:
    $$
    \hat{e} = (u, \hat{a}_1, \hat{o}_1, …, \hat{o}_{m-1}, \hat{a}_m) \sim \pi_{\text{base} }(e|u). \tag{7}
    $$
  • 环境随后返回轨迹 \( \hat{e} \) 对应的奖励 \( \hat{r} \)
  • 然后,论文基于最终奖励构建“失败-成功”轨迹对,记为 \( e_w \succ e_l \mid u \)
    • \( e_w \) 表示从专家轨迹 \( e \) 中选出的奖励较高的轨迹
    • \( e_l \) 表示从 Agent 生成轨迹 \( \hat{e} \) 中选出的奖励较低的轨迹
  • 注意,论文仅收集奖励不同的轨迹对。如果 \( \hat{e} \) 和 \( e \) 都成功完成任务,则直接丢弃该对
  • 最终,论文得到对比轨迹数据集:
    $$ \mathcal{D}_p = \left\{(u, e_w, e_l)^{(i)}\right\}_{i=1}^{|\mathcal{D}_p|} $$
Training Phase
  • 在训练阶段 ,通过建模轨迹对数据中的“失败-成功”对比信息来更新 Agent 策略
  • 给定轨迹对 \( e_w \succ e_l \mid u \),其“失败-成功”关系可以通过 Bradley-Terry(BT)模型(Bradley and Terry, 1952)建模:
    $$
    p(e_w \succ e_l|u) = \frac{\exp \left(r(u, e_w)\right)}{\exp \left(r(u, e_w)\right) + \exp \left(r(u, e_l)\right)}. \tag{8}
    $$
  • 在公式 (6) 的最优策略 \( \pi_r(e|u) \) 下,环境中的奖励函数 \(r(u, e)\) 可以表示为(2019; 2023):
    $$
    r(u, e) = \beta \log \frac{\pi_r(e|u)}{\pi_{\text{ref} }(e|u)} + \beta \log Z(x), \tag{9}
    $$
    • 其中 \( Z(u) = \sum_{e} \pi_{\text{ref} }(e|u) \exp \left(\frac{1}{\beta} r(u, e)\right) \) 是配分函数
  • 将公式 (9) 代入公式 (8),得到关于策略的 BT 模型:
    $$
    p(e_w \succ e_l|u) = \sigma \left(\beta \log \frac{\pi_{\theta}(e_w|u)}{\pi_{\theta}(e_l|u)} - \beta \log \frac{\pi_{\text{ref} }(e_w|u)}{\pi_{\text{ref} }(e_l|u)}\right),
    $$
    • 其中 \( \sigma \) 是 sigmoid 函数
  • 然后,通过极大似然估计可以得到最优策略 \( \pi_{\theta} \):
    $$
    \mathcal{L}_{\text{DPO} }(\pi_{\theta}; \pi_{\text{ref} }) = -\mathbb{E}_{(u, e_w, e_l) \sim \mathcal{D}_p} \left[\log \sigma \left(\beta \log \frac{\pi_{\theta}(e_w|u)}{\pi_{\theta}(e_l|u)} - \beta \log \frac{\pi_{\text{ref} }(e_w|u)}{\pi_{\text{ref} }(e_l|u)}\right)\right].
    $$
  • 这一优化目标旨在增加成功轨迹 \( e_w \) 的似然,同时降低失败轨迹 \( e_l \) 的似然,并通过约束项保持 Base Agent 的能力。此外,作为公式 (6) 的 RL 目标的重构,公式 (11) 直接最大化最终奖励,同时避免了执行 RL 优化的需求
Iteration
  • 为了进一步提升 Agent 的性能,ETO 采用迭代式的探索-训练方式
  • 在训练阶段后,Agent 策略可用于收集新的失败案例并创建对比轨迹对
  • 这些新数据随后通过轨迹对比学习进一步优化 Agent
  • ETO 的完整学习过程如算法 1 所示

Experiments

  • 在本节中,论文进行了广泛的实验以验证 ETO 的有效性
  • 论文的方法在三个数据集上均表现出优于基线的性能,并且在处理分布外未见任务时展现出更强的优势
  • 分析进一步展示了论文方法的高效性
  • 此外,论文的方法在专家轨迹不可用的场景中也表现出了潜力(注:可解决没有专家轨迹的问题)

Experimental Settings

  • 数据集(Datasets) 论文在三个具有代表性的 Agent 数据集上进行了实验:
    • 用于网页导航的 WebShop(2022a)
    • 用于具身科学实验的 ScienceWorld(2022)
    • 用于具身家务任务的 ALFWorld(2021)
  • WebShop 和 ScienceWorld 环境提供了从 0 到 1 的密集最终奖励
  • ALFWorld 仅提供二进制奖励,表示任务是否完成
  • 这三个环境均可形式化为部分可观测马尔可夫决策过程(POMDP)
  • 关于数据集和专家轨迹收集过程的详细信息,请参阅附录 A
  • 表 1 展示了论文数据集的统计信息
    • 值得注意的是,除了分布内测试集外,ScienceWorld 和 ALFWorld 还包含分布外未见变体的测试集
    • 这些额外的测试集使论文能够评估不同 Agent 的泛化能力
  • Training Setup 论文主要使用 Llama-2-7B-Chat(2023)作为构建 LLM Agent 的基础模型。为了提供更全面的结果,论文还对 Llama-2-13B-Chat 和 Mistral-7B(2023)进行了实验
    • 论文使用了 AdamW 优化器
    • 在 SFT 阶段:
      • 批大小为 64
      • 学习率设置为 1e-5(warmup 后的初始学习率)
      • 预热比例为 3%
      • 使用余弦调度器(cosine scheduler)
      • epochs = 3
    • 随后,Base Agent 将为训练集中的每个实例探索一次以收集失败轨迹
    • 在 ETO 的训练阶段:
      • 批大小为 32
      • 学习率设置为 1e-6(注:一般来说,为了稳定性考虑 DPO/RL的学习率比 SFT 要更小些)
      • DPO 损失中的 \(\beta\):在 WebShop 和 ScienceWorld 中设置为 0.1;在 ALFWorld 中设置为 0.5
      • epochs = 3
    • ETO 的迭代次数:在 WebShop 和 ScienceWorld 中设置为 2;在 ALFWorld 中设置为 1
    • 所有实验均在 8 块 NVIDIA A100 80G GPU 上进行
  • Baselines :论文将 ETO 与 SFT 行为克隆(Behavioral Cloning, BC)和其他后模仿基线方法进行了比较:
    • 1)SFT(2023;)在专家轨迹上进行行为克隆,这是 ETO 和其他基线的 Base Agent
    • 2)Best-of-N 采样 使用 SFT Base Agent,并在 N 次采样中选择奖励最高的轨迹。此处论文将 N 设置为 10
    • 3)RFT(Rejection sampling Fine-Tuning, 2023)是一种强大的基线方法,它将成功轨迹添加到专家轨迹数据集中,并在新的增强轨迹上训练 Agent
    • 4)PPO(Proximal Policy Optimization, 2017)是一种强化学习方法,直接优化 SFT Agent 以最大化最终任务奖励
      论文还纳入了 GPT-3.5-Turbo(OpenAI, 2022)、GPT-4(OpenAI, 2023)以及未调优的 Llama-2-7B-Chat 进行比较
  • Evaluation :所有方法均使用 ReAct-style 的交互格式(2022b)进行评估,并在动作前生成 CoT 推理
    • 每个任务的指令提示中包含 1-shot 上下文示例
    • LLM 的解码温度设置为 0.0 以实现确定性生成,Best-of-N 方法除外
    • 论文主要采用平均奖励(Average Reward)作为指标,表示测试集中所有任务实例的平均奖励
    • 附录 B 中还 Report 了成功率(Success Rate)以供参考

Results

  • 表2 展示了 ETO 和基线方法在三个 Agent 数据集上的性能对比
  • 结果显示,ETO 在 SFT 模仿学习的基础上实现了显著提升,使 WebShop 和 ScienceWorld 的平均奖励分别提高了 8% 和 9.5%
  • 论文的方法在所有数据集上均优于其他基线方法
  • 在 WebShop 数据集上,ETO 的平均奖励甚至超过了 GPT-4,展现了论文方法的卓越性能
  • 尽管 RFT 方法相比 SFT 也有所改进,但其性能仍然受限,因为它是行为克隆的增强版本,仅从成功轨迹中学习
    • 这一对比表明,失败轨迹与专家轨迹的对比对于提升 Agent 性能至关重要
  • 尽管 PPO 在 WebShop 上取得了性能提升,但由于强化学习优化过程固有的不稳定性,它在其他两个数据集上难以取得令人满意的结果,尤其是在仅提供二进制最终奖励的 ALFWorld 数据集上
  • 附录 D 展示了论文方法在任务解决轨迹上的案例分析
  • 泛化性方面:
    • ETO 在分布外未见场景中展现出更强的优势,在 ScienceWorld-Unseen 上实现了 20% 的性能提升;
    • 此外,ETO 在 ALFWorld 的未见场景中也表现出强大的有效性,优于 RFT 和 PPO 基线,后两者均出现了性能下降
    • 这些结果表明,通过试错学习可以进一步提升 Agent 的泛化能力,尤其是在分布外未见场景中
  • 不同 LLM 的结果(Results on Different LLMs):为了进一步证明论文方法的有效性,论文展示了基于其他基础 LLM(包括 Llama-2-13B-Chat 和 Mistral-7B)的结果
    • 表 3 表明,ETO 在不同 LLM 上均能一致提升 Agent 性能
    • 值得注意的是,与 Llama-2-7B 相比,13B 模型在两个数据集上的性能提升相对较小,这表明论文的方法可以为较弱的 Agent 带来更大的收益
    • 尽管 Mistral-7B 是一个比 Llama-2-13B 更强大的 LLM,但在经过 SFT 或 ETO 后,其性能仍不及 Llama-2-7B
    • 这一发现表明,基础 LLM 能力与 Agent 能力之间并无强相关性
  • 效率分析(Analysis on Efficiency):论文在 ScienceWorld 环境中评估了 Agent 的任务解决效率,该环境为每个任务提供了细粒度的子目标,任务的奖励会根据子目标的完成情况更新
    • 通过评估 Agent 在更少动作步骤内实现更高奖励的能力 ,我们可以确定其效率
    • 图3 展示了 ScienceWorld-Seen 测试集的得分轨迹,对比了 ETO、SFT Base Agent 和 Oracle Agent
    • 如图3 所示,ETO 能够在更少的动作步骤内达到更高的奖励
    • 有趣的是,在某些案例(如 15-90 和 19-23)中,论文的方法甚至超过了 Oracle Agent,更早地达到了 100 分
    • 这些结果表明,通过学习失败轨迹,论文的方法还获得了更强大的任务解决效率(更少动作步骤内实现更高奖励)

Ablation of Iterations

  • 本节论文研究了 ETO 中迭代次数的影响,结果如图4 所示
  • 如图所示,ETO 在 WebShop 和 ScienceWorld 数据集上的前两次迭代中能够提升 Agent 性能 ,但进一步增加迭代次数并不会带来持续改进,性能在第三次迭代后开始下降
  • 对于 ALFWorld 数据集,仅第一次迭代的 ETO 表现出改进 ,而第二次和第三次迭代的性能甚至落后于 SFT Base Agent
  • 对此的解释是:
    • ETO 的学习过程依赖于固定的专家轨迹集,而 Agent 的探索阶段是在相同的训练集上进行的,因此,失败-成功对比轨迹数据的多样性和数量受到限制
    • 最初,策略可以通过从过去的错误中学习得到改进,但模型在后续迭代中会过度拟合对比信息 ,导致性能下降
      • 问题:如何理解过度拟合对比信息?
    • 在 ALFWorld 中,粗粒度的二进制奖励进一步阻碍了 Agent 通过迭代训练获得改进
      • 问题:为何粗粒度的二进制奖励会阻碍 Agent 通过迭代训练获得奖励?
    • 作为潜在的解决方案,未来的工作可以探索利用 GPT-4 动态构建更多样化的对比轨迹数据

Strategy of Contrastive Data Construction

  • 本节论文深入探讨了方法中使用的对比轨迹对构建策略
    • 在原文 3.2 节中,论文直接从失败-成功轨迹对中学习(公式 (11)),称为轨迹级对比(trajectory-wise contrastive)
  • 受先前工作(2023b)启发,论文引入了 ETO 的一种细粒度变体,通过比较“good-bad”动作对来捕捉步骤级对比(step-wise contrastive)信息
    • 为此,论文使用专家轨迹在前 \(t-1\) 步进行教师强制(Teacher Forcing) ,然后让 Agent 预测第 \(t\) 步的动作
    • 第 \(t\) 步动作的质量由最终奖励决定(注意:是最终奖励而不是当前时间步 \(t\) 动作的奖励)
      • 问题:怎么由最终奖励决定呢?每一步都是教师给定的,而且只走了 \(t\) 步,教师需要完整序列才能评估奖励吧
      • 回答:详情见附录 C 的内容
  • 论文还实现了一种混合变体,结合了上述两种策略。关于 ETO 步骤级变体的更多细节,请参阅附录 C
  • 表 4 展示了不同方法的对比结果:结果表明,轨迹级对比取得了最佳性能
  • 另一方面,论文发现步骤级对比建模的稳定性较差 ,需要更低的学习率和更高的约束参数 \(\beta\) 以保持 Agent 的基本能力
    • 这种不稳定性可能归因于动作质量的不准确估计 ,因为论文仅使用最终奖励来构建步骤级对比对
    • 此外,混合策略的性能也不及轨迹级对比

Self-Play w/o Expert Trajectory

  • 本节论文探索了一个具有挑战性的场景,即专家轨迹不可用
  • 在这种情况下,Agent 被迫探索环境并依赖自博弈来提升能力
  • 为此,论文移除了 ETO 的行为克隆阶段 ,允许 LLM Agent 以解码温度 1.0 探索环境
  • 随后,论文根据最终奖励比较同一指令下的不同轨迹,构建轨迹偏好数据
  • 最后,Agent 仅基于自身生成的偏好数据进行训练
  • 在 WebShop 上,未调优的 Llama-2-7B-Chat 取得了相对较高的奖励,因此论文使用该数据集进行实验
  • 论文采用了拒绝采样微调(RFT)作为基线
  • 表5 的结果显示
    • 在没有行为克隆的情况下,仅使用 ETO 无法提升性能
    • RFT 在不依赖专家轨迹的情况下展现出了提升 Agent 能力的潜力
    • 然而,当将 RFT 与 ETO 结合时,论文观察到 Agent 性能的进一步提升
    • 这些结果表明,在专家轨迹不可用的场景中,可以先使用 RFT,然后让 Agent 从探索失败中学习
    • 这些结果进一步凸显了论文方法在专家轨迹不可用时的潜力

Related Work

Imitation Learning

  • 模仿学习是一种通过模仿专家示范来学习策略的范式(2017; 2019)
  • 行为克隆(Behavioral Cloning, BC)(Pomerleau, 1991)是模仿学习中一种流行的方法,它利用专家轨迹学习从状态到动作的直接映射
  • 为了缓解行为克隆的局限性,已有多种方法被提出(2011; Ross and Bagnell, 2014)
  • 论文的方法 ETO 与 DAgger(2011)有相似之处,后者通过从失败案例中学习来提升 Agent 性能
    • 然而,与 DAgger 不同,ETO 通过对比轨迹对(contrastive trajectory pairs)优化策略,而非收集额外的专家轨迹

LLM Agents

  • 随着 LLM 展现出多种涌现能力,研究人员开始探索 LLM-based Agent 系统(2023)
  • 近期项目如 AutoGPT(Richards, 2023)、BabyAGI(Nakajima, 2023)和 RestGPT(2023)将 LLM 作为核心控制器,构建了能够解决现实任务的强大 Agent 框架
  • 尽管 GPT 系列模型展现了强大的 Agent 智能,开源 LLM 的表现仍远落后于 GPT-4(2023; 2023a)
  • 为了缩小这一差距,FireAct(2023)、AgentTuning(2023)和 Lumos(2023)等研究从教师 Agent(如 GPT-4)中构建专家轨迹数据,并对开源 LLM 进行行为克隆
  • Aksitov 等 (2023) 进一步通过在前一策略生成的轨迹上进行迭代行为克隆来优化 Agent
  • 与论文的工作同时,Yang 等 (2023) 使用 DAgger 框架(2011)并采用 DPO 损失来开发多模态具身 Agent

LLM Policy Learning

  • 从偏好中学习对于提升 LLM 策略表现具有潜力,尤其是在 LLM 对齐研究中
  • RLHF 通过学习奖励模型并利用近端策略优化(PPO)更新策略模型(2017; 2022)。尽管 RLHF 具有吸引力,但其训练效率低且不稳定
  • 为解决这些问题,Rafailov 等 (2023) 重新形式化了 RLHF 的优化目标,提出 DPO 损失以直接建模偏好
  • 与论文的工作类似,ReST(2023)通过从当前策略生成新样本,并利用离线强化学习方法优化策略
  • 近期研究还探索了 LLM 策略学习在其他领域的应用(2023; 2023b)
    • 例如,Wang 等 (2023b) 训练了一个逐步奖励模型以提升 LLM 在数学推理中的表现
  • 表 6 对比了 ETO 与其他方法,凸显了论文的方法在大语言模型 Agent 策略学习中的优势

Limitations

  • 尽管 ETO 通过试错学习有效提升了 LLM Agent 的能力,但本研究仍存在一些局限性:
    • 1)ETO 假设 Agent 从一开始就执行错误动作,但实际中错误可能发生在中间步骤。若能识别错误动作(如第 3 步的 \(\hat{a}_3\)),则可针对剩余步骤 \(a_{t>3}\) 收集专家轨迹
      • 但当前环境缺乏此类信息,难以实现细粒度的奖励建模
      • 未来可探索利用 GPT-4 识别错误动作并构建更精细的对比轨迹数据
    • 2)本研究专注于针对特定任务开发专用 Agent ,对通用 Agent 的构建探索有限。未来将研究 ETO 训练策略的迁移性,并尝试在多任务场景中应用该方法

附录 A:Datasets

  • WebShop :
    • WebShop (2022a) 是一个在线购物网站环境,Agent需要根据用户指令在平台上导航并完成购买
    • 当 Agent 选择“购买”动作时,环境会提供一个最终奖励(reward),该奖励基于产品属性和价格的匹配程度计算
  • ScienceWorld :
    • ScienceWorld (2022) 是一个基于文本的虚拟环境,专注于完成基础科学实验,包括热力学和电路等10种不同的任务类型
    • Agent 需要通过具身交互环境(embodied interactive environments)与科学概念互动并理解它们
    • 每个任务包含若干可选子目标,最终奖励基于这些子目标的完成情况计算
  • 特别说明:ScienceWorld 的原始测试集包含关键未见任务变体(unseen task variations)
    • 例如,训练集中的任务可能是“烧开水”,而测试集中的任务则是“熔化铅”
    • 因此,论文使用原始测试集来评估模型在未见场景下的泛化性能
    • 论文将原始开发集作为“已见场景”(seen scenarios)的测试集
    • 由于任务9 和任务10 的解决轨迹过长,论文将其排除
    • 为了公平且高效地比较,论文遵循 Lin 等 (2023) 的方法,对于测试变体超过 10个 的任务类型,仅使用前 10个 实例
  • ALFWorld :
    • ALFWorld (2021) 包含与 ALFRED (2020) 数据集中的具身世界(embodied worlds)平行的交互式文本世界(TextWorld)环境
    • 在该环境中,Agent 需要探索并完成高级家务指令
    • 原始 ALFWorld 数据集包含“seen”和“unseen”评估集
    • “seen”集用于评估分布内泛化(in-distribution generalization),而“unseen”集包含新任务实例,用于评估 Agent 的分布外泛化(out-of-distribution generalization)能力
  • 思维链(CoT)标注 :
    • WebShop 和 ALFWorld 提供了少量人工标注的轨迹(trajectories)用于模仿学习(imitation learning)
    • 论文还使用 GPT-4 作为教师 Agent(teacher agent)在 WebShop 环境中探索,并选择奖励大于 0.7 的轨迹
    • ScienceWorld 环境提供了启发式搜索算法为每个子任务生成黄金轨迹(golden trajectories)
    • 由于原始轨迹不包含每个动作步骤的思维链信息,论文使用 GPT-4 生成相应的推理过程

附录 B:Success Rate

  • 论文在表7 中报告了实验的成功率(success rate)
  • 需要注意的是,三个任务的成功率定义不同:
    • 对于 WebShop,成功率定义为最终奖励为 1.0 的实例比例
    • 对于 ScienceWorld,原始论文未提供成功率的定义。但根据其官方环境,当环境达到预定义的潜在状态(latent state)时,即使奖励未精确达到 1.0,轨迹也会被视为成功
    • 对于 ALFWorld,由于仅提供二元最终奖励,成功率等于平均最终奖励

附录 C:Details for Step-Wise Contrastive(分步对比学习的细节)

  • 论文实现了一种 ETO 变体,该变体从“good-bad”动作对(good-bad action pairs)中学习
  • 具体来说,对于任务指令 \( u \) 和专家轨迹 \( e = (u, a_1, …, o_{n-1}, a_n) \),论文使用教师强制(teacher forcing)执行前 \( t-1 \) 步 \( (a_1, o_1, …, a_{t-1}, o_{t-1}) \),并让 Agent 从第 \( t \) 步开始预测动作,生成轨迹:
    $$
    \hat{e} = (u, a_1, o_1, …, o_{t-1}, \hat{a}_t, \hat{o}_t, …, \hat{o}_{m-1}, \hat{a}_m)
    $$
  • 环境会为轨迹 \( \hat{e} \) 返回奖励 \( \hat{r} \):如果将前 \( t-1 \) 步的黄金轨迹记为 \( e_{(t-1)} \),则“good-bad”动作对 \( a_w \succ a_l \mid u, e_{(t-1)} \) 基于最终奖励构建。其中,\( a_w \) 和 \( a_l \) 分别表示从 \( (a_t, \hat{a}_t) \) 中选择的奖励较高和较低的动作。随后,动作对的对比关系可用于 DPO 损失(DPO loss)中以改进策略:
    $$
    \mathcal{L}_{\text{DPO} }(\pi_\theta; \pi_{\text{ref} }) = -\mathbb{E}\left[\log \sigma\left(\beta \log \frac{\pi_\theta(a_w|u, e_{(t-1)})}{\pi_\theta(a_l|u, e_{(t-1)})} - \beta \log \frac{\pi_{\text{ref} }(a_w|u, e_{(t-1)})}{\pi_{\text{ref} }(a_l|u, e_{(t-1)})}\right)\right].
    $$

附录 D:Case Study

  • 论文通过案例分析比较 ETO Agent 与 SFT 行为克隆(behavioral cloning)Agent 的表现。图5 和 图6 分别展示了 WebShop 和 ScienceWorld 的示例
  • 在 WebShop 场景中,SFT Agent 未能选择“3pc”颜色选项,导致次优轨迹
    • 而 ETO 能够从过去的失败中学习,并熟练地选择正确的属性选项
  • 在 ScienceWorld 示例中,任务是“找到一个动物”
    • SFT Agent 持续执行错误动作,专注于非生物对象,且动作选择与思维链(CoT)不一致。相比之下,ETO 成功完成了任务,展示了试错学习的有效性

附录 E:Prompt for Evaluation

  • 论文在 图7、图8 和 图9 中分别展示了 WebShop、ScienceWorld 和 ALFWorld 的指令提示(instruction prompts)。、

NLP——LLM对齐微调-GDPO

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:GDPO: Group reward-Decoupled Normalization Policy Optimization for Multi-reward RL Optimization, 20260108, NVIDIA

Paper Summary

  • 整体总结:
    • 本研究重新审视了一个基本但常被忽视的问题:GRPO 是否真的适用于多 Reward 优化
    • GDPO 不同于先前主要专注于为多 Reward 强化学习设计新 Reward 函数(这些方法常常将 GRPO 作为默认优化方法)
      • 论文的分析表明,将 GRPO 直接应用于求和后的 Reward,会导致不同的 Reward 组合坍缩为相同的 Advantage 值
      • 这种坍缩消除了跨 Reward 维度的重要区别,导致不准确的策略更新和较弱的优化性能,并且在许多情况下可能导致早期训练失败
    • Group-wise Decoupled Policy Optimization (GDPO) 是为多 Reward 强化学习量身定制的、对 GRPO 的一种简单而有效的修改
      • GDPO 对每个 Reward 分别进行归一化,以保留跨 Reward 的差异,并融入 Batch-wise Advantage 归一化,以在纳入更多 Reward 时保持稳定的数值范围
      • 这些改变带来了更好的收敛行为,以及能更忠实地反映预期偏好结构的模型
    • 论文进一步系统地研究了如何将人类偏好优先级融入训练过程,并解释了当目标之间难度差异较大时如何调整 Reward 函数
      • 通过在工具调用、数学推理和代码推理上的大量实验,论文表明 GDPO 始终优于 GRPO
      • 其优势适用于不同数量的 Reward、不同的模型和不同的 Reward 函数
    • 对于多 Reward 强化学习, GDPO 是比 GRPO 更稳定、更准确、与偏好更对齐的优化方法
  • 背景:
    • 为实现在不同场景中展现出与多样化人类偏好相一致的行为这一目标
    • RL 流程已开始纳入多个奖励,每个奖励对应一种特定偏好,共同引导模型趋向期望的行为
  • 问题提出:
    • 近期工作默认在多奖励设置下应用 GRPO ,却未检验其适用性
    • 论文证明直接将 GRPO 用于归一化不同的 rollout 奖励组合会导致它们坍缩为相同的优势值,从而降低训练信号的分辨率,导致次优收敛甚至训练早期失败
  • 论文提出 Group reward-Decoupled Normalization Policy Optimization (GDPO)
    • GDPO 是一种新的策略优化方法,通过解耦单个奖励的归一化来解决上述问题,从而更忠实地保留奖励间的相对差异,实现更准确的多奖励优化,并大幅提升训练稳定性
  • 论文在三个任务上比较 GDPO 与 GRPO :工具调用、数学推理和代码推理,评估了正确性指标(准确率、bug 率)和约束遵循指标(格式、长度)
    • 在所有设置下, GDPO 均稳定优于 GRPO ,证明了其对于多奖励强化学习优化的有效性和泛化能力

Introduction and Discussion

  • 语言模型能力的持续进步,对其行为的期望也相应提高
    • 要求模型不仅能提供准确的回答,还能在多样化场景中展现出与广泛人类偏好相一致的行为,这种需求在持续增长
  • 这些偏好涉及效率(2025, 2025, 2025)、安全性(2024)、回答连贯性与逻辑性(2025, 2025)、性别偏见(2025)等诸多目标
    • 在单一模型中满足这些异质性要求是一项具有挑战性的任务
  • RL 已成为将大型语言模型与这类多样化人类偏好对齐的事实(de facto)训练流程
    • 特别是,近期基于 RL 的方法已开始将多个奖励纳入训练,每个奖励被设计来捕捉不同的人类偏好,共同引导模型朝向人类偏好的行为
    • 尽管对多奖励 RL 的兴趣日益增长,但近期工作(2025, 2025, 2025)主要聚焦于奖励设计本身,并且常常直接依赖 GRPO 应用于多奖励 RL 优化,通常并未检验 GRPO 是否真正适用于优化异质性奖励的组合
  • 论文重新审视 GRPO 在多奖励设置下的适用性,并表明直接将 GRPO 应用于归一化不同的 rollout 奖励组合可能导致它们坍缩为相同的优势值
    • 如图2所示,这实际上限制了训练信号的精度
    • 这种坍缩消除了跨奖励维度的重要区分,导致不准确的策略更新、次优的奖励收敛,并且在许多情况下会导致训练早期失败
  • 为克服这些挑战,论文提出了Group reward-Decoupled Normalization Policy Optimization (GDPO),该方法解耦了对每个个体奖励的组内归一化,如图 1(a) 所示,以确保不同奖励组合之间的区分得以更好保留,并能更准确地反映模型响应间的相对差异
    • 这带来了更精确的多奖励优化和显著改善的训练收敛性
    • 在解耦组内归一化之后,论文应用批间优势归一化,以确保优势值的大小不会随着个体奖励数量的增加而增大
  • 论文在三个任务上比较了 GDPO 和 GRPO :工具调用、数学推理和代码推理
    • 这些任务涵盖了广泛的目标,包括工具调用的准确性和格式正确性、数学推理的准确性和对推理长度约束的遵循,以及代码通过率和 bug 率
    • 在所有任务中, GDPO 收敛得更好
      • 例如,在图 1(b)中,使用 GDPO 训练 Qwen2.5-1.5B-Instruct 在工具调用任务上获得了比 GRPO 更高的正确性和格式遵循度
    • 在具有挑战性的数学任务上, GDPO 也持续优于 GRPO
      • 例如,使用 GDPO 训练 DeepSeek-R1-1.5B 和 Qwen3-4B-Instruct 相比 GRPO 在 AIME 上分别获得了高达 \(6.3%\) 和 \(2.3%\) 的准确率提升,同时保持更多的简短响应
  • 总而言之,这些结果证明了 GDPO 的有效性和泛化能力,表明其是多奖励 RL 优化中优于 GRPO 的更好替代方案
  • 论文的贡献如下:
    • GRPO 奖励坍缩分析(Analysis of GRPO reward collapse) :论文证明,天真地应用 GRPO 进行多奖励RL优化可能导致不同的rollout奖励组合坍缩为相同的优势值,从而削弱学习信号的分辨率
    • GRPO 奖励坍缩的修正(Remediation of GRPO reward collapse) :论文提出 GDPO ,该方法对每个奖励分别执行组间解耦归一化,以更好地保留跨奖励的区分,实现更准确的多奖励优化
    • 除了 GDPO 之外,论文还系统性概述了如何修改奖励函数和调整奖励权重,以更忠实地符合不同优先级的人类偏好
    • 论文在三个任务上进行了广泛的实验:工具调用、数学推理和代码推理,并比较了 GDPO 在优化对应准确性、格式正确性、长度约束和代码质量等广泛奖励方面的有效性。在所有设置下, GDPO 均一致地优于 GRPO ,展现出改进的训练收敛性和更强的下游性能,更紧密地符合多样化偏好集

GRPO ‘s propensity for reward signal collapse in multi-reward RL(注:GRPO 在多奖励 RL 中有导致奖励信号坍缩的倾向)

  • GRPO (2024)及其变体,包括 DAPO(2025)和 REINFORCE++(或 REINFORCE++ Baseline)(2025),由于效率高且简单,已成为广泛采用的强化学习算法
    • 与 PPO(2017)相比, GRPO 通过利用组相对优势估计进行策略更新,消除了对价值模型的需求
  • 目前, GRPO 主要用于优化单目标奖励,通常聚焦于准确性
    • 然而,随着模型能力持续增长,近期的研究工作越来越多地寻求在准确性之外优化多个奖励,例如响应长度约束和格式质量(2025, 2024, 2025),以更好地与人类偏好对齐
    • 现有的多奖励RL方法通常采用一个直接的策略:将所有奖励分量求和,然后直接应用 GRPO
  • 形式上,对于给定的问答对 \((q_{i},o_{j})\),其中行为策略 \(\pi_{\theta_{\text{old} } }\) 采样一组 \(G\) 个响应 \(\{o_{j}\}_{j=1}^{G}\),并假设有 \(n\) 个目标,第 \(j\) 个响应的聚合奖励计算为每个目标奖励的总和:
    $$r_{\text{sum} }^{(i,j)}=r_{1}^{(i,j)}+\cdots+r_{n}^{(i,j)} \tag{1}$$
  • 然后,通过对组级聚合奖励进行归一化来获得第 \(j\) 个响应的组相对优势:
    $$A_{\text{sum} }^{(i,j)}=\frac{r_{\text{sum} }^{(i,j)}-\text{mean}\{r_{\text{sum} }^{(i,1)},\ldots,r_{\text{sum} }^{(i,G)}\} }{\text{std}\{r_{\text{sum} }^{(i,1)},\ldots,r_{\text{sum} }^{(i,G)}\} } \tag{2}$$
  • 相应的多奖励 GRPO 优化目标可以表达为:
    $$\mathcal{J}_{\text{ GRPO } }(\theta)=\mathbb{E}_{(q_{i},o_{j})\sim D, \{o_{j}\}_{j=1}^{G},\sim\pi_{\theta_{\text{old} } }(\cdot|q)}\left[\frac{1}{G}\sum_{j=1}^{G}\frac{1}{|o_{j}|}\sum_{t=1}^{|o_{j}|}\min\left(s_{i,t}(\theta),A_{\text{sum} }^{(i,j)},\text{clip}(s_{i,t}(\theta),1-\epsilon,1+\epsilon),A_{\text{sum} }^{(i,j)}\right)\right] \tag{3}$$
    • 其中 \(s_{t}(\theta)=\frac{\pi_{\theta}(o_{j}^{\dagger},|,q,o_{j}^{ < t})}{\pi_{\theta_{\text{old} } }(o_{j}^{\dagger},|,q,o_{j}^{>t})}\),\(\epsilon\) 表示裁剪阈值
    • 为清晰起见,在此公式中论文省略了 KL 散度损失项
  • 论文首先重新审视这种应用 GRPO 进行多奖励 RL 优化的常见做法,并发现一个先前被忽视的问题,即 GRPO 固有地压缩了奖励信号,导致优势估计中的信息丢失
    • 为说明这一点,论文从简单的训练设置开始,然后扩展到更一般的情况
  • 考虑一个场景,论文为每个问题生成两个 Rollout 用于计算组相对优势,任务涉及两个二元奖励 \(r_{1},r_{2}\in\{0,1\}\)
    • 因此,每个 Rollout 的总奖励可以取值为 \(\{0,1,2\}\)
  • 如图 2 所示,论文枚举了组内所有可能的 Rollout 奖励组合,表示为(Rollout 1 的总奖励, rollout 2 的总奖励)以及对应的归一化优势为(rollout 1 的归一化优势, rollout 2 的归一化优势)
  • 尽管忽略顺序时有六种不同的组合,但在应用组内奖励归一化后,只出现两个独特优势组
  • 具体来说,\((0,1)\)、\((0,2)\) 和 \((1,2)\) 产生相同的归一化优势 \(A_{\text{sum} }\),为 \((-0.7071,\ 0.7071)\),而 \((0,0)\)、\((1,1)\) 和 \((2,2)\) 都导致 \((0,0)\)
  • 这揭示了 GRPO 在多奖励优化中优势计算的根本局限性,即过度压缩了丰富的组内奖励信号
    • 直观上,\((0,2)\) 应该比 \((0,1)\) 产生更强的学习信号,因为总奖励为2表示同时满足两个奖励,而奖励为 1 仅对应达成一个奖励
    • 因此,当另一个rollout只获得零奖励时,\((0,2)\) 应该比 \((0,1)\) 产生更大的相对优势
    • 这种局限性还可能因不准确的优势估计而引入训练不稳定的风险
  • 如图 5 所示,使用 GRPO 训练时,正确性奖励分数在大约 400 个训练步后开始下降,表明发生了部分训练坍缩
  • 最近,Dr.GRPO (2025)和 DeepSeek-v3.2(2025)采用了一种 GRPO 变体,从公式(2)中去除了标准差归一化项,使得
    $$ A_{\text{sum} }^{(i,j)}=r_{\text{sum} }^{(i,j)}-\text{mean}\{r_{\text{sum} }^{(i,1)},\ldots,r_{\text{sum} }^{(i,G)}\}$$
  • 这些工作引入此修改以缓解问题级难度偏差,但乍看之下,这个改变似乎也能解决论文识别的问题
    • 具体来说,去除标准差归一化确实缓解了该问题:\((0,1)\) 和 \((0,2)\) 现在分别产生不同的优势 \((-0.5,0.5)\) 和 \((-1.0,1.0)\)
    • 然而,当将此设置推广到更多rollout同时保持奖励数量固定时,如图 3 所示,论文观察到与 GRPO 相比,这种修复仅略微增加了独特优势组的数量
    • 在 Rollout 数量固定为四个,但奖励数量逐渐增加的情况下,也能观察到类似的趋势
      • 在这种情况下,论文也只观察到独特优势组数量有适度的改善
      • 论文在第4.1.1节中经验性地检验了去除标准差归一化项的有效性,发现此修改并未带来改进的收敛性或更好的下游评估性能

Method

Group reward-Decoupled normalization Policy Optimization

  • 为克服这些挑战,论文提出了Group reward-Decoupled Normalization Policy Optimization (GDPO)
    • 这是一种旨在更好地保持不同奖励组合之间的区分,并更准确地捕捉其在最终优势中的相对差异的方法
    • 与 GRPO 直接对聚合奖励总和应用组内归一化不同, GDPO 通过先对每个奖励分别执行组内归一化再进行聚合来解耦此过程
  • 具体而言, GDPO 不是先对所有 \(n\) 个奖励求和(如公式(1)),然后应用组内归一化获得 \(A_{\text{sum} }\)(公式(2)),而是计算第 \(i\) 个问题第 \(j\) 个rollout的每个奖励的归一化优势:
    $$A_{1}^{(i,j)}=\frac{r_{1}^{(i,j)}-\text{mean}\{r_{1}^{(i,1)},\ldots,r_{1}^{(i,G)}\} }{\text{std}\{r_{1}^{(i,1)},\ldots,r_{1}^{(i,G)}\} },\quad\ldots,\quad A_{n}^{(i,j)}=\frac{r_{n}^{(i,j)}-\text{mean}\{r_{n}^{(i,1)},\ldots,r_{n}^{(i,G)}\} }{\text{std}\{r_{n}^{(i,1)},\ldots,r_{n}^{(i,G)}\} } \tag{4}$$
  • 用于策略更新的整体优势随后通过首先对所有目标的归一化优势求和获得:
    $$A_{\text{sum} }^{(i,j)}=A_{1}^{(i,j)}+\cdots+A_{n}^{(i,j)} \tag{5}$$
    • 注意:这里优势和是直接相加的,实际中,可能还可以根据不同维度 Rule/RM 的重要性进行加权缩放?
  • 然后,对多奖励优势的和应用批间优势归一化,以确保最终优势 \(\hat{A}_{\text{sum} }^{(i,j)}\) 的数值范围保持稳定,且不会随着引入额外奖励而增长:
    $$\hat{A}_{\text{sum} }^{(i,j)}=\frac{A_{\text{sum} }^{(i,j)}-\text{mean}\left\{A_{\text{sum} }^{(i^{\prime},j^{\prime})}\mid i^{\prime}\in D_{\text{Batch} },j^{\prime}=1,\ldots,G \right\} }{\text{std} \left\{A_{\text{sum} }^{(i^{\prime},j^{\prime})}\mid i^{\prime}\in D_{\text{Batch} },j^{\prime}=1,\ldots,G \right\}+\epsilon} \tag{6}$$
  • 经验上,论文还发现这个归一化步骤提高了训练稳定性,如附录 A 所示,其中去除批间归一化偶尔会导致收敛失败
  • 通过分离每个奖励的归一化, GDPO 缓解了 GRPO 优势估计中存在的信息丢失问题,如图 2 所示
    • 请注意,由于 GDPO 中的批间归一化步骤不会改变不同优势组的数量,为清晰起见,论文在此省略
  • 从图中可以看出,当采用 GRPO 时,不同的奖励组合,例如 \((0,2)\) 和 \((0,1)\),会导致相同的归一化优势,掩盖了它们之间的细微差别
    • 相比之下, GDPO 通过为每个组合分配不同的优势值来保留这些细粒度差异,例如,\((0,1)\) 的奖励组合在 GDPO 归一化后变为 \((-0.7071,0.7071)\),而 \((0,2)\) 变为 \((-1.4142,1.4142)\),这更恰当地反映了 \((0,2)\) 应比 \((0,1)\) 产生更强的学习信号
    • 类似地,当将 rollout 数量扩展到三个时, GRPO 会将优势值 \((0,0,0)\) 分配给 \((1,1,1)\)
    • 然而,\((1,1,1)\) 可能由异质的奖励分配产生,例如 \(r_{1}=(1,1,0)\) 或 \(r_{2}=(0,0,1)\),而 GDPO 将产生非零优势,从而保留了跨奖励维度的有意义的差异
  • 论文通过比较 GDPO 、 GRPO 和去除标准差的 GRPO 在两种实验设置下的独特优势组数量,进一步量化了 GDPO 的有效性,如图 3 所示
    • 在奖励数量为两个且 rollout 数量变化的情况下, GDPO 始终产生显著更多的独特优势组数量,并且随着 rollout 数量增加,差距扩大
    • 另一方面,当固定 rollout 数量为四个并增加奖励数量时,也出现了类似的模式, GDPO 随着目标数量增长展现出逐渐增大的优势粒度
    • 这证明了解耦归一化方法有效地增加了所有 RL 设置中独特优势组的数量,并实现了更精确的优势估计
  • 除了这些理论改进之外,论文观察到使用 GDPO 始终能产生更稳定的训练曲线和改善的收敛性,例如:
    • 如图 4 所示, GDPO 在 工具调用任务 的格式奖励和正确性奖励上都实现了更好的收敛
    • 如图 5 所示, GDPO 也消除了在 数学推理任务 中观察到的 GRPO 训练坍缩问题,其中使用 GDPO 训练的模型在整个训练过程中持续改进正确性奖励分数
    • 第4节中的额外实证结果进一步证实了 GDPO 在广泛下游任务中实现与目标偏好更强对齐的能力

Effective incorporation of priority variation(考虑优先级差异)

  • 到目前为止,论文假设所有目标同等重要
    • 实际上,这个假设在现实应用中并不总是成立
  • 在本节中,论文系统性地概述了如何调整与不同目标相关的奖励权重或修改奖励函数,以强制优先处理更重要的目标
    • 论文还讨论了当基础奖励在难度上差异显著时,这两种设计选择的不同表现
  • 常见的做法是为每个奖励分配不同的权重,以编码目标间的不同优先级,使得 \(r_{\text{sum} }=w_{1}r_{1}+\cdots+w_{n}r_{n}\),从而控制每个奖励对用于策略更新的最终优势的贡献
  • 对于 GDPO ,此类权重应用于每个奖励的归一化优势,如下:
    $$A_{\text{sum} }^{(i,j)}=w_{1}A_{1}^{(i,j)}+\cdots+w_{n}A_{n}^{(i,j)} \tag{7}$$
  • 然而,论文发现,当基础目标的难度水平差异显著时,调整奖励权重并不总能产生预期的行为
    • 如果一个目标比其他目标容易得多,模型往往会专注于最大化该目标的奖励 ,而不管分配的权重如何
    • 因此,为了更有效地迫使模型分配更多注意力到更具挑战性的目标相关的奖励,必须使权重差异足够大以补偿难度差距
    • 然而,即使进行此类调整,模型可能仍然倾向于优化更容易的奖励,而不是用户意图优先的目标,这一现象论文将在第4.2.1节进行经验性展示
  • 因此,一些近期工作(2025,2024)通过将较容易的奖励条件化于较难的奖励来解决此类 Reward Hacking 问题
    • 具体来说,给定两个奖励 \(r_{k}\) 和 \(r_{l}\),将 \(r_{k}\) 条件化于 \(r_{l}\) 可以表述为:
      $$r_{k}=\begin{cases}r_{k},&\text{if }r_{l}\geq t\\ 0,&\text{otherwise}.\end{cases} \tag{8}$$
    • 通过这样的奖励函数设计,模型只有在奖励 \(r_{l}\) 满足预定义的分数阈值 \(t\) 时才能获得 \(r_{k}\) 的奖励,因此,模型被迫首先最大化人类优先的奖励,从而完全缓解上述问题
    • 这种策略的经验有效性展示在第 4.2.1 节,其中使用条件化奖励函数训练的模型,相比仅对优先奖励分配更大权重而未使用条件化的模型,在优先目标上实现了更高的性能
    • 论文还观察到,在解决了较易奖励占主导的问题之后,为细粒度优先级调整分配不同的奖励权重也能更忠实地反映在最终模型行为中

Experiments

  • 论文首先在工具调用任务上评估 GDPO 与 GRPO 的有效性(第 4.1 节),该任务涉及优化两个 Reward:
    • 工具调用正确性和格式符合性
  • Next, 论文进行了一项消融研究,检验了带或不带标准差归一化的 GRPO 的训练收敛性和下游性能
  • 然后论文在数学推理任务上比较了 GDPO 和 GRPO ,该任务优化了两个隐含竞争的 Reward:
    • 准确性和长度约束(第 4.2 节)
  • 论文进一步广泛分析了融入不同 Reward 权重和修改 Reward 函数以更好地反映人类偏好中不同优先级的影响,特别是在 Reward 难度差异显著时
  • Finally,论文将优化的 Reward 数量扩展到三个,并在代码推理任务上比较了 GRPO 和 GDPO (第 4.3 节),联合优化了代码生成准确性、对长度约束的遵守程度以及缺陷率,进一步证明了 GDPO 能有效推广到具有三个 Reward 目标的任务场景

Tool calling

  • 论文遵循 ToolRL (2025) 的设置,在工具调用任务上比较 GDPO 与 GRPO
  • 具体来说,模型被训练学习如何将外部工具整合到推理轨迹中,以按照附录 B 所示的输出格式解决用户任务,其中推理步骤必须包裹在 <think></think> 中,工具调用必须出现在 <tool_call></tool_call> 内,而模型的最终答案必须放置在 <response></response> 内
  • 论文采用与 ToolRL 相同的训练集进行 RL 训练,该数据集包含来自 ToolACE (2024) 的 2k 个样本、来自 Hammar (2024) 的 1k 个样本和来自 xLAM (2025) 的 1k 个样本
    • 每个训练实例包含一个问题及其对应的真实工具调用
  • 训练涉及两个 Reward:
    • 格式 Reward (Format reward) : 格式 Reward \( \mathcal{R}_{\text{format} } \in \{0,1\} \) 检查模型输出是否满足所需的结构,并是否以正确的顺序包含所有必要的字段
    • 正确性 Reward (Correctness reward) : 正确性 Reward \( \mathcal{R}_{\text{correct} } \in [-3,, 3] \) 使用三个指标将模型生成的工具调用与真实调用进行比较:工具名称匹配、参数名称匹配和参数内容匹配
    • Reward 公式的完整描述见附录 C
  • 论文使用 verl (2024) 框架,按照 ToolRL 的 GRPO 配方中的原始超参数设置,使用 GRPO 和 GDPO 训练 Qwen-2.5-Instruct(1.5B 和 3B)(2025) 100 个 step
    • 每个训练问题使用 4 个 Rollout,Batch 大小为 512,最大 Response 长度为 1024
    • 完整的超参数配置列于附录 D
  • 论文在伯克利函数调用排行榜(BFCL-v3)上评估训练好的模型,这是一个涵盖广泛挑战的综合基准测试,包括单步推理、多步工具使用、实时执行、无关工具拒绝、同时多工具选择和多工具执行
    • 论文用 GRPO 和 GDPO 对模型进行了五次微调,并在表 1 中报告了在 BFCL-v3 上的平均准确率和平均格式正确率
    • 此外,论文在图 4 中绘制了两种方法在五次运行中的训练曲线中位数和四分位距
  • 从训练曲线中,论文观察到在所有运行中, GDPO 在格式和正确性 Reward 得分上都持续收敛到更高的值
    • 尽管 GDPO 在格式 Reward 上的收敛所需 step 数方面表现出更大的方差,但最终获得的格式符合性仍优于 GRPO
    • 对于正确性 Reward, GDPO 在早期阶段显示出更快的改进,并在后期阶段达到比 GRPO 基线更高的 Reward 分数,这证明了 GDPO 在提供更准确的 Advantage 估计从而实现更好优化方面的有效性
  • 在表 1 所示的 BFCL-v3 评估中,与 GRPO 训练的模型相比, GDPO 也持续提高了平均工具调用准确率和格式正确率
    • 在训练 Qwen2.5-Instruct-1.5B 时,与 GRPO 相比, GDPO 在实时/非实时任务上的准确率提升了近 5% 和 3%,整体平均准确率提升了约 2.7%,正确格式比率提升了 4% 以上
    • 在 3B 模型上也观察到了类似的改进, GDPO 在所有子任务上继续优于 GRPO ,实现了高达 2% 的准确率提升,并提供了更好的格式符合率
Does removing the standard deviation normalization term in GRPO provide any benefit?
  • 从图 3 回顾可知,移除 GRPO 中的标准差归一化项(记为 GRPO w/o std)会略微增加不同 Advantage 组的数量
  • 在本节中,论文从经验上检验了这种修改的有效性。遵循之前的实验,论文运行 GRPO w/o std 五次,并报告在 BFCL-v3 上的平均准确率和平均格式正确率
  • 在图 1(b) (注:需要结合图 4 看)所示的 Reward 训练曲线中,论文观察到,尽管 GRPO w/o std 收敛到的正确性 Reward 与 GDPO 相似且高于标准 GRPO ,但它完全未能改进格式 Reward
  • 这种失败导致了在 BFCL-v3 上 0% 的正确格式比率(见表 2),表明模型没有学会所需的输出结构
  • 这也表明,仅仅为了增加 Advantage 多样性而移除标准差归一化项,可能会给训练带来不稳定性,最终可能阻止多 Reward 强化学习的成功收敛

Mathematical reasoning

  • 论文考虑一个数学推理任务,它优化两个隐含竞争的 Reward:
    • 准确性和对长度约束的遵守(accuracy and adherence to a length constraint)
    • 目标是提高模型在具有挑战性的数学问题上的性能,同时将生成的输出保持在预定义的 Response 长度内 ,以鼓励高效的问题解决
  • 论文使用 GRPO 和 GDPO 在 DeepScaleR-Preview 数据集 (2025) 上训练 DeepSeek-R1-1.5B、DeepSeek-R1-7B (2025) 和 Qwen3-4B-Instruct (2025) 500 个 step,该数据集包含 40K 个竞赛级数学问题
  • 训练使用 verl (2024) 进行,论文遵循原始的 DeepSeek-R1 提示格式 (2025)
    • 遵循 DLER 设置 (2025),论文融入了动态采样、更高的 Clipping 阈值以及来自 DAPO (2025) 的 Token 平均损失,并使用 16 个 Rollout,Batch 大小为 512,最大 Response 长度为 8000 个 Token
    • 完整的超参数集在附录 E 中提供
  • 训练使用两个 Reward:
    • 长度 Reward (Length reward) : 长度 Reward \( \mathcal{R}_{\text{length} } \in \{0,1\} \) 检查模型的输出是否保持在目标长度 \( l \) 内,在所有后续实验中设置为 4000 个 Token:
      $$
      \mathcal{R}_{\text{length} }=\begin{cases}1, &\text{if response length}\leq l\\ 0, &\text{otherwise.}\end{cases}
      $$
    • 正确性 Reward (Correctness reward) : 正确性 Reward \( \mathcal{R}_{\text{correct} } \in \{0,1\} \) 表示从模型 Response 中提取的最终答案是否与真实答案匹配
  • 论文在 AIME-24 (2024)、AMC(AMC 2022 和 AMC 2023)(2024)、MATH (2021)、Minerva (2022) 和 Olympiad Bench (2024) 上比较了 GRPO 和 GDPO 训练的模型
    • 所有评估均使用 vLLM 作为推理后端,采样温度为 0.6,\( top_{p}=0.95 \),最大 Response 长度为 32k 个 Token
    • 对于每个评估问题,论文生成 16 个样本,并报告平均 pass@1 分数和平均超长比率(记为 Exceed),该比率衡量模型 Response 超过预定义长度限制(4000 个 Token)的百分比
  • 从图 5 所示的 GRPO 和 GDPO 在 DeepSeek-R1-1.5B 上的训练曲线中
    • 论文首先观察到,无论使用哪种优化方法,模型都倾向于最大化较容易的 Reward。在这种情况下,长度 Reward 更容易优化, GRPO 和 GDPO 在大约前 100 个训练 step 内都达到了满分长度分数
    • 论文还看到,长度 Reward 的快速上升与正确性 Reward 的早期下降同时发生,这表明两个 Reward 在竞争
      • 在训练的初始阶段,模型优先满足长度约束,通常以牺牲更具挑战性的正确性目标为代价
      • 然而,从正确性 Reward 的轨迹来看,论文观察到 GDPO 比 GRPO 更有效地恢复了正确性 Reward,在可比的训练 step 数上取得了更高的正确性分数
    • 论文还看到, GRPO 训练在 400 步后开始变得不稳定,正确性 Reward 分数逐渐下降,而 GDPO 则继续提高正确性分数
      • 此外,尽管 GDPO 和 GRPO 在整个训练过程中都保持了近乎完美的长度分数,论文还记录了每个训练 Batch 内的最大 Response 长度,以评估模型在更极端情况下对长度约束的遵守程度
      • 结果显示,尽管获得了几乎满分的长度 Reward,但 GRPO 的最大 Response 长度在大约 400 个训练 step 后开始急剧增加,而 GDPO 的最大 Response 长度继续下降
  • 在附录中的图 9 和图 10 中,在 DeepSeek-R1-7B 和 Qwen3-4B-Instruct 的训练曲线上也观察到了类似的情况,我们可以看到 GDPO 始终能提供更好的长度约束对齐
    • 这种对比进一步说明了 GDPO 在多 Reward 优化方面相较于 GRPO 的有效性
  • 此外,表 3 中的基准测试结果表明, GDPO 训练的模型不仅在推理效率上相比原始模型有显著提高(在 AIME 上超长比率降低了高达 80%),而且在大多数任务上实现了更高的准确性
    • 而且, GDPO 在准确性和长度约束目标上通常都优于 GRPO
    • 对于 DeepSeek-R1-1.5B, GDPO 在所有基准测试中都优于 GRPO ,在 MATH、AIME 和 Olympiad 上的准确率分别提高了 2.6%/6.7%/2.3%,同时也在所有任务中降低了超长比率
      • 问题:数字似乎没有严格对上?
    • 类似的趋势也适用于 DeepSeek-R1-7B 和 Qwen3-4B-Instruct, GDPO 实现了更强的准确性-效率权衡
    • 在更具挑战性的 AIME 基准测试上,收益尤为显著:与 GRPO 下 DeepSeek-R1-7B 和 Qwen3-4B-Instruct 分别为 2.1% 和 2.5% 的超长率相比, GDPO 将准确率提高了近 3%,同时将超长率降至 0.2% 和 0.1%
  • 总之,这些结果表明, GDPO 不仅在一系列数学任务上提高了推理准确性,而且更有效地遵守了长度约束,突显了其在多 Reward 优化方面的优势
Impact analysis of different reward priority variation configurations(Reward 优先级变化配置的影响)
  • 到目前为止,论文假设所有 Reward 都具有同等的优先级
    • 然而,如图 5 所示,即使两个目标被分配了相同的 Reward 权重,模型也常常以牺牲更具挑战性的目标为代价来最大化较容易的目标
  • 在本节中,论文研究当期望模型优先最大化正确性 Reward 而非长度 Reward 时,并且当两个目标的难度差异明显时,调整 Reward 权重是否能够引导模型实现这种偏好
  • 论文首先将 \( \mathcal{R}_{\text{correct} } \) 的 Reward 权重(记为 \( w_{\text{correct} } \) )固定为 1,并将 \( \mathcal{R}_{\text{length} } \) 的 Reward 权重(记为 \( w_{\text{length} } \) )在集合 \( \{0.25,0.5,0.75,1.0\} \) 中变化
    • 这个设置允许论文研究降低 \( w_{\text{length} } \) 是否会鼓励模型优先最大化更具挑战性的正确性 Reward
  • 论文在 DeepSeek-R1-7B 上进行了这个实验,并将 MATH 和 AIME 的平均准确率和平均超长比率绘制在图 6 中(其中 \(\tilde{\mathcal{R}}_{\text{length}}\) 表示 Conditional Length Reward; \(\mathcal{R}_{\text{length}}\) 表示 normal Length Reward;从图中可以看到,GDPO 准确率不及 GRPO 的地方,一般都是因为长度降低太多导致)
    • 其余任务的完整结果在附录 G 中提供(注:表 8 和表 9)
  • 从结果中,论文观察到将 \( w_{\text{length} } \) 降低到 0.75 或 0.5 对平均超长比率影响甚微,对于 GRPO 在 AIME 上仅分别变化了 0.4% 和 0.2%,对于 GDPO 分别变化了 1.3% 和 0.6%
    • 此外,降低 \( w_{\text{length} } \) 并不一定会放宽长度约束,因为将 \( w_{\text{length} } \) 从 0.75 降低到 0.5 并没有在 GRPO 或 GDPO 的 AIME 或 MATH 上持续增加超长比率
    • 这表明,当基础目标在难度上存在显著差异时,仅仅调整 Reward 权重并不能可靠地诱导出预期的优先级排序
    • 只有当 \( w_{\text{length} } \) 降低到 0.25,使其足够小以补偿目标之间的难度差距时,论文才观察到 GRPO 和 GDPO 在 AIME 上以及 GDPO 在 MATH 上的超长比率明显增加
  • 接下来,论文研究了将较容易的长度 Reward 条件化在更具挑战性的正确性 Reward 上,是否有助于缓解两个目标之间的难度差异,并有助于改进优先级对齐
    • 遵循第 3.2 节的公式,论文将原始长度 Reward \( \mathcal{R}_{\text{length} } \) 替换为一个条件化的长度 Reward,其定义如下:
      $$
      \tilde{\mathcal{R} }_{\text{length} }=\begin{cases}1, &\text{if response length}\leq l\text{ and }\mathcal{R}_{\text{correct} }=1\\0, &\text{otherwise.}\end{cases}
      $$
    • 在这个公式下,只有当生成的 Response 也是正确的时候,模型才会获得长度 Reward
  • 首先,论文观察到采用修改后的 Reward 函数 \( \tilde{\mathcal{R} }_{\text{length} } \) 可以防止模型在训练开始时过度最大化长度 Reward
    • 这种 Reward 设计也有助于避免当模型试图满足长度约束时正确性 Reward 分数的大幅下降
    • 从图 7 中可以看出,平均正确性 Reward 仅在训练初期略微下降,随后逐渐恢复
  • 从表 4 中,论文还观察到,与仅仅调整 \( \mathcal{R}_{\text{length} } \) 的权重 \( w_{\text{length} } \) 相比,使用 \( \tilde{\mathcal{R} }_{\text{length} } \) 会导致 GRPO 和 GDPO 的平均超长比率有更大的增加,这表明对长度约束的更有效放宽
    • 然而, GRPO 未能将这种放宽的约束转化为有意义的准确率提升
    • 相比之下, GDPO 更有效地优先考虑正确性 Reward,并在训练中实现了比不使用 \( \tilde{\mathcal{R} }_{\text{length} } \) 时更一致的准确率提升,同时引入的超长违规增加幅度要小得多
    • 例如,与使用相同 Reward 函数的 GRPO 相比,在 GDPO 中使用 \( \tilde{\mathcal{R} }_{\text{length} } \) 在 AIME 上带来了 4.4% 的准确率提升,同时超长比率降低了 16.9%;在 AMC 上获得了 3% 的准确率增益,同时超长违规减少了 4.8%
  • 接下来,论文研究了在通过条件化长度 Reward 缓解了难度差异之后,改变 \( \tilde{\mathcal{R} }_{\text{length} } \) 的 Reward 权重(记为 \( \hat{w}_{\text{length} } \))是否能更忠实地反映细粒度的偏好调整
    • 论文固定正确性 Reward 的权重,并变化 \( \hat{w}_{\text{length} } \in \{0.25,0.5,0.75,1.0\} \)
    • 如图 6 所示,使用条件化 Reward 训练的模型表现得更可预测
      • 例如,将 \( \hat{w}_{\text{length} } \) 从 1.0 降低到 0.25,稳步增加了 GRPO 和 GDPO 在 MATH 和 AIME 上的超长比率,这与调整原始 \( \mathcal{R}_{\text{length} } \) 权重时观察到的不稳定结果形成对比
  • 最后,在所有设置下,包括不同的 Reward 公式和不同的 Reward 权重, GDPO 始终比 GRPO 提供更好的准确性和效率权衡

Coding reasoning

  • 论文考察了在优化多于两个 Reward 的代码推理任务上, GDPO 是否继续优于 GRPO
    • 与数学推理设置类似,目标是提高模型的代码性能,同时将其输出限制在预定义的目标长度内
  • 论文引入了第三个目标,即鼓励模型生成无缺陷的代码
  • 论文通过在 Eurus-2-RL 数据集 (2025) 上训练 DeepSeek-R1-7B 来比较 GDPO 和 GRPO
    • 该数据集包含 24K 个编码问题,每个问题有多个测试用例
  • 训练使用 verl (2024) 框架进行 400 个 step,并采用与数学推理实验中相同的超参数配置
  • 训练优化三个 Reward:
    • 通过率 Reward (Passrate reward) : 通过率 Reward \( \mathcal{R}_{\text{pass} } \in [0,1] \) 衡量生成代码通过的测试用例比例:
      $$
      \mathcal{R}_{\text{pass} }=\frac{\text{number of passed test cases} }{\text{total test cases} }.
      $$
    • 条件化长度 Reward (Conditioned Length reward) : 长度 Reward \( \tilde{\mathcal{R} }_{\text{length} } \in \{0,1\} \) 检查模型的 Response 是否保持在目标长度 \( l \) 内,以及生成的代码是否满足正确性要求:
      $$
      \tilde{\mathcal{R} }_{\text{length} }=\begin{cases}1, &\text{if response length }\leq l\text{ and }\mathcal{R}_{\text{pass} }=1,\\0, &\text{otherwise}.\end{cases}
      $$
    • 缺陷 Reward (Bug reward) : 缺陷 Reward \( \mathcal{R}_{\text{bug} } \in \{0,1\} \) 表示生成的代码是否在运行时或编译时没有错误
  • 对于评估,论文在来自 PRIME (2025) 的验证集上评估训练好的模型,其中包括 Apps (2021)、CodeContests (2022)、Codeforces 和 Taco (2023)
    • 遵循与数学推理评估相同的设置,论文使用采样温度 0.6,\( top_{p} \) 值为 0.95,最大 Response 长度为 32k 个 Token。对于每个评估问题,论文生成 16 个 Rollout,并报告平均测试用例通过率、平均超长比率和平均缺陷率,其中缺陷率衡量导致运行时错误或编译错误的生成代码的比例
  • 论文在两种配置下比较 GDPO 和 GRPO :
    • (1) 使用 \( \mathcal{R}_{\text{pass} } \) 和 \( \tilde{\mathcal{R} }_{\text{length} } \) 的两 Reward 设置
    • (2) 使用 \( \mathcal{R}_{\text{pass} } \)、\( \tilde{\mathcal{R} }_{\text{length} } \) 和 \( \mathcal{R}_{\text{bug} } \) 的三 Reward 设置
  • 论文将 GRPO 的两 Reward 和三 Reward 版本分别记为 \( GRPO _{2\text{-obj} } \) 和 \( GRPO _{3\text{-obj} } \), GDPO 也使用相同的记法
    • 如表 5 所示,与 \( GRPO _{2\text{-obj} } \) 相比,\( GDPO _{2\text{-obj} } \) 在所有任务上都提高了通过率,同时保持了类似的超长比率
      • 注:从表 5 中看起来,优势似乎不是很明显
    • 例如,\( GDPO _{2\text{-obj} } \) 将 Codecontests 的通过率提高了 2.6%,而超长比率仅增加了 0.1%;与 \( GRPO _{2\text{-obj} } \) 相比,在 Taco 上实现了 3.3% 的通过率提升,同时超长违规减少了 1%
    • 在三种 Reward 设置中也可以观察到类似的模式,\( GDPO _{3\text{-obj} } \) 在所有目标上实现了明显更好的平衡,保持了与 \( GRPO _{3\text{-obj} } \) 相似的通过率,同时还显著降低了超长比率和缺陷率
  • 总的来说,这些结果表明,随着 Reward 信号数量的增加, GDPO 仍然有效
    • 在两种 Reward 和三 Reward 配置中,它始终比 GRPO 在所有目标上实现更有利的权衡

Related Work

GRPO 变体

  • 已经提出了几种 Group Relative Policy Optimization ( GRPO ) (2025) 的扩展,以增强该框架的稳定性、有效性和效率
  • 这些方法探索了 Group-wise 归一化或策略更新的替代公式,同时仍基于 GRPO 的核心原理,例如,
    • 为了提高稳定性,Group Sequence Policy Optimization (GSPO) (2025) 基于序列可能性而非 Token 级别定义重要性比率,执行序列级别的 Clipping、Rewarding 和优化
    • 为了提高 RL 性能,Decoupled Clip and Dynamic sAmpling Policy Optimization (DAPO) (2025) 引入了四项关键技术:Clip-Higher、Dynamic Sampling、Token-Level Policy Gradient Loss 和 Overlong Reward Shaping
    • 为了促进高效推理,Group Filtered Policy Optimization (GFPO) (2025) 通过在训练期间为每个问题采样更大的组,并根据其长度和每 Token 奖励率筛选 Response,来解决长度爆炸问题
      • 沿着同一方向,Doing Length pEmalty Right (DLER) (2025) 提出了一种结合了 Batch-wise Reward 归一化、Higher Clipping、Dynamic Sampling 和简单截断长度惩罚的训练配方,实现了 SOTA 准确性-效率权衡

Multi-Reward Reinforcement Learning

  • 越来越多的工作研究了融入多种 Reward 信号的 RL 方法,一个主要用途是建模多样化的人类偏好,例如
    • Safe Reinforcement Learning from Human Feedback (2023) 将人类关于有用性和无害性的偏好解耦,在微调期间动态调整两个目标之间的平衡
    • 类似地,Reinforcement Learning from Personalized Human Feedback (RLPHF) (2023) 通过为每种偏好训练不同的策略模型并在推理时合并它们,来优化具有多种(有时是冲突的)偏好的 LLM
    • ALARM (Align Language Models via Hierarchical Rewards) (2024) 引入了分层 Reward 结构,共同捕捉 Response 质量、风格、公平性和连贯性等维度
  • LLM 的最新进展也整合了多 Reward 优化来处理复杂任务,例如
    • DeepSeek V3.2 (2025) 集成了基于规则的结果 Reward、长度惩罚和语言一致性 Reward,以增强推理和代理能力
  • 多 Reward RL 的另一个重要近期应用是在保持任务性能的同时提高推理模型的效率,主要是通过引入基于长度的 Reward 函数以及基于结果的 Reward,例如,
    • O1-Pruner (2025) 和 (2025) 应用归一化的长度惩罚来确保比例压缩
    • 类似地,(2025) 通过惩罚与采样组内最短正确 Response 的偏差来促进简洁性
    • L1 (2025) 引入了长度控制策略优化(Length Controlled Policy Optimization,LCPO),以优化准确性同时确保 Response 不超过目标长度
    • 最后,(2025) 提出了一种自适应 Reward 塑造方法,根据模型性能动态调整准确性和 Response 长度之间的权衡

附录 A:Training stability issue of GDPO without batch-wise advantage normalization

  • 图 8:使用和未使用批量优势归一化的 GDPO 训练稳定性对比,未进行归一化的运行偶尔会无法收敛

附录 B:ToolRL Training Prompt Format

  • System Prompt for ToolRL Training

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    You are a helpful dialogue assistant capable of leveraging tool calls to solve user tasks and provide structured chat responses.

    # Available Tools
    In your response, you can use the following tools:
    { { Tool List } }

    # Steps for Each Turn
    1. Think: Recall relevant context and analyze the current user goal.
    2. Decide on Tool Usage: If a tool is needed, specify the tool and its parameters.
    3. Respond Appropriately: If a response is needed, generate one while maintaining consistency across user queries.

    # Output Format
    <think> Your thoughts and reasoning </think>
    <tool_call> {“name”: “Tool name”, “parameters”: {“Parameter name”: “Parameter content”, “ ... ...”:
    “ ... ...”}}
    {“name”: “ ... ...”, “parameters”: {“ ... ...”: “ ... ...”, “ ... ...”: “ ... ...”}}
    ...
    </tool_call>
    <response>AI’s final response </response>

    # Important Notes
    1. You must always include the <think> field to outline your reasoning. Provide at least one of <tool_call> or <response>. Decide whether to use <tool_call> (possibly multiple times), <response>, or both.
    2. You can invoke multiple tool calls simultaneously in the <tool_call> fields. Each tool call should be a JSON object with a “name” field and a “parameters” field containing a dictionary of parameters. If no parameters are needed, leave the “parameters” field an empty dictionary.
    3. Refer to the previous dialogue records in the history, including the user’s queries, previous <tool_call>, <response>, and any tool feedback noted as <obs> (if exists).
    • 中文版(ToolRL 训练系统 Prompt):
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      你是一个有用的对话助手,能够利用工具调用来解决用户任务并提供结构化的聊天响应

      可用工具
      在你的回复中,你可以使用以下工具:{ { 工具列表 } }

      每个回合的步骤

      1. **思考 (Think)**:回忆相关上下文并分析当前的用户目标
      2. **决定工具使用 (Decide on Tool Usage)**:如果需要使用工具,请指定工具及其参数
      3. **恰当响应 (Respond Appropriately)**:如果需要生成响应,请在响应用户查询时保持一致

      输出格式
      <think>
      你的想法和推理过程
      </think>
      <tool_call>
      {"name": "工具名称", "parameters": {"参数名": "参数内容", "... ...": "... ..."} }
      {"name": "... ...", "parameters": {"... ...": "... ...", "... ...": "... ..."} }
      ...
      </tool_call>
      <response>
      AI 的最终响应
      </response>

      重要说明
      1. 你必须始终包含 `<think>` 字段来概述你的推理。至少提供 `<tool_call>` 或 `<response>` 中的一个。决定是使用 `<tool_call>`(可能多次使用)、`<response>` 还是两者都用
      2. 你可以在 `<tool_call>` 字段中同时调用多个工具调用。每个工具调用应是一个包含 "name" 字段和 "parameters" 字段的 JSON 对象,"parameters" 字段包含参数字典。如果不需要参数,请将 "parameters" 字段留空字典
      3. 参考历史对话记录,包括用户的查询、之前的 `<tool_call>`、`<response>`,以及任何标记为 `<obs>` 的工具反馈(如果存在)
  • User Prompt for ToolRL Training

    1
    2
    3
    4
    5
    6
    7
    8
    ## Dialogue History
    <user> { { Initial User Input } } </user>
    <think> Round 1 Model Thought </think>
    { { Round 1 model output <tool_call> or <response> } }
    <obs> Round 1 Observation </obs>
    ... ...
    <user> { { User Input } } </user>
    ... ...
    • 中文版(ToolRL 训练用户 Prompt)
      1
      2
      3
      4
      5
      6
      7
      8
      9
      ## 对话历史

      <user> { { 初始用户输入 } } </user>
      <think> 第 1 轮模型思考 </think>
      { { 第 1 轮模型输出 <tool_call> 或 <response> } }
      <obs> 第 1 轮观察 </obs>
      ... ...
      <user> { { 用户输入 } } </user>
      ... ...

附录 C:工具调用奖励函数

Format Reward

  • 格式奖励 \(\mathcal{R}_{\text{format} }\in\{0,1\}\) 检查模型输出是否满足所需结构并按正确顺序包含所有必要字段:
    $$
    \mathcal{R}_{\text{format} }=\begin{cases}1, & \text{if all required fields appear and are in the correct order},\\ 0, & \text{otherwise}.\end{cases}
    \tag{9}
    $$

Correctness Reward

  • 正确性奖励 \(\mathcal{R}_{\text{correct} }\in[-3,,3]\) 将预测的工具调用 \(P=\{P_{1},\ldots,P_{m}\}\) 与真实调用 \(G=\{G_{1},\ldots,G_{n}\}\) 进行比较,正确性奖励由三个部分组成:
    • 工具名称匹配 (Tool Name Matching):
      $$
      r_{\text{name} }=\frac{|N_{G}\cap N_{P}|}{|N_{G}\cup N_{P}|}\in[0,1],
      $$
      • 其中 \(N_{G}\) 和 \(N_{P}\) 分别是真实调用和预测调用的工具名称集合
    • 参数名称匹配 (Parameter Name Matching):
      $$
      r_{\text{param} }=\sum_{G_{j}\in G}\frac{|\text{keys}(G_{j})\cap\text{keys}(P_{j})|}{|\text{keys}(G_{j})\cup\text{keys}(P_{j})|}\in[0,|G|],
      $$
      • 其中 \(\text{keys}(G_{j})\) 和 \(\text{keys}(P_{j})\) 分别是真实调用和预测调用的参数名称
    • 参数内容匹配 (Parameter Content Matching):
      $$
      r_{\text{value} }=\sum_{G_{j}\in G}\sum_{k\in\text{keys}(G_{j})}\mathbf{1}[P_{G}[k]=P_{P}[k]]\in\left[0,\sum_{G_{j}\in G}|\text{keys}(G_{j})|\right],
      $$
      • 其中 \(P_{G}[k]\) 和 \(P_{P}[k]\) 分别是真实调用和预测调用的参数值
    • 总匹配分数 (Total Match Score):
      $$
      r_{\text{match} }=r_{\text{name} }+r_{\text{param} }+r_{\text{value} }\in[0,S_{\text{max} }],
      $$
      • 其中
        $$
        S_{\text{max} }=1+|G|+\sum_{G_{j}\in G}|\text{keys}(G_{j})|.
        $$
  • 最终的正确性奖励通过寻找 \(P\) 和 \(G\) 之间的最优匹配以最大化总匹配分数来计算:
    $$
    \mathcal{R}_{\text{correct} }=6\cdot\frac{R_{\text{max} } }{S_{\text{max} } }-3\in[-3,,3].
    $$
    • 其中 \(R_{\text{max} }\) 表示来自最优匹配的总匹配分数

附录 D:ToolRL Hyperparameters Setting

  • 表 6: GDPO verl 训练配置
    • 所有超参数设置均与 ToolRL (2025) 中使用的保持一致

附录 E:数学/代码推理超参数设置(Math/Coding Reasoning Hyperparameters Setting)

  • 表 7: GDPO verl 训练配置

附录 F:使用 \(\mathcal{R}_{\text{length} }\) 和 \(\mathcal{R}_{\text{correct} }\) 在数学推理数据上训练 DeepSeek-R1-7B 和 Qwen3-4B-Instruct 时 GRPO 和 GDPO 的训练曲线(Training curves of GRPO and GDPO when training DeepSeek-R1-7B and Qwen3-4B-Instruct with \(\mathcal{R}_{\text{length} }\) and \(\mathcal{R}_{\text{correct} }\) on math reasoning data.)

  • 图 9:在数学推理数据上优化 DeepSeek-R1-7B 时, GRPO 和 GDPO 在正确性奖励、长度奖励和批次最大响应长度上的训练行为。我们可以看到 GDPO 在保持正确性提升的同时,对长度约束的遵循也优于 GRPO
  • 图 10:在数学推理数据上优化 Qwen3-4B-Instruct 时, GRPO 和 GDPO 在正确性奖励、长度奖励和批次最大响应长度上的训练行为。我们可以看到 GDPO 在保持正确性提升的同时,对长度约束的遵循也优于 GRPO

附录 G:在数学推理任务上,对比 GRPO / GDPO 微调的 DeepSeek-R1-7B 模型在不同长度奖励权重 \(\{1.0,0.75,0.5,0.25\}\) 下,使用和不使用条件化长度奖励 \(\tilde{\mathcal{R} }_{\text{length} }\) 的效果(Comparison of GRPO/GDPO finetuned DeepSeek-R1-7B models under varying length reward weights \(\{1.0,0.75,0.5,0.25\}\) with and without the conditioned length reward \(\tilde{\mathcal{R} }_{\text{length} }\) on math reasoning tasks)

  • 表 8:在数学推理任务上,对比 GRPO / GDPO 微调的 DeepSeek-R1-7B 模型在不同长度奖励权重 \(\{1.0,0.75,0.5,0.25\}\) 下,使用普通长度奖励 \(\mathcal{R}_{\text{length} }\) 的效果
  • 表 9:在数学推理任务上,对比 GRPO / GDPO 微调的 DeepSeek-R1-7B 模型在不同长度奖励权重 \(\{1.0,0.75,0.5,0.25\}\) 下,使用条件化长度奖励 \(\tilde{\mathcal{R} }_{\text{length} }\) 的效果

NLP——LLM对齐微调-GFPO

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:Sample More to Think Less: Groupx Filtered Policy Optimization for Concise Reasoning, 20250813, Microsoft

Paper Summary

  • 整体总结
    • 论文提出了组过滤策略优化(Group-Filtered Policy Optimization, GFPO)(是 GRPO 的一种扩展方法)
    • 通过 采样更多响应 并 选择性地学习 与目标属性(如简洁性或 Token 效率)最匹配的样本来优化模型
      • 这种选择性学习作为一种隐式的奖励塑造机制,引导策略生成更高质量的输出,同时抑制诸如响应长度膨胀等不良行为,而无需复杂的奖励工程
    • 问题:Token 效率部分有点像是 Kimi K1.5 的内容?
  • 背景 & 问题:
    • RLVR-based RL 训练的 LLM 往往会以长度换取准确性
    • 更长的回答可能适用于更难的问题,但许多 Token 仅仅是“填充内容”:重复、冗长的文本并未真正推动问题解决
  • GFPO 可解决上述问题:
    • 在训练时对每个问题采样更大的群组
    • 根据两个关键指标过滤回答来抑制这种长度爆炸:
      • (1) 回答长度;
      • (2) Token 效率(奖励与 Token 数量的比值)
    • 通过在训练时采样更多,论文教会模型在推理时思考更少
      • 在 Phi-4-reasoning 模型上,GFPO 在具有挑战性的 STEM 和编程基准测试(AIME 24/25、GPQA、Omni-MATH、LiveCodeBench)中将 GRPO 的长度膨胀削减了 46-71%,同时保持准确性
      • 优化奖励与 Token 比进一步将长度膨胀的减少幅度提升至 71-85%
  • 论文还提出了 自适应难度 GFPO(Adaptive Difficulty GFPO)
    • 根据实时难度估计动态分配更多训练资源给更难的问题,从而在计算效率和准确性之间实现更好的平衡,尤其是在困难问题上
  • GFPO 证明
    • 增加训练时的计算量可以直接转化为减少测试时的计算量(注:核心结论)
    • 这是一种简单而有效的权衡,旨在实现高效推理

Introduction and Discussion

  • RLVR 方法(如 GRPO (2024) 和 PPO (2017)),在实现测试时扩展方面发挥了关键作用
    • 使得像 O3 (2025) 和 DeepSeek-R1 (2025) 这样的模型能够“思考更久”,并在 AIME 和 IMO 等具有挑战性的推理任务中取得前所未有的性能
  • 虽然更长的推理链对于解决更难的问题是预期的,但先前的研究表明,长度膨胀可能与正确性无关,而更短的链实际上可能带来更好的准确性。例如:
    • Balachandran 等人 (2025) 报告称,在 AIME 25 上,DeepSeek-R1 生成的回答长度几乎是 Claude 3.7 Sonnet 的 5 倍,尽管两者的准确性相近
    • 类似地,Hassid 等人 (2025) 发现,在 AIME 和 HMMT 上,QwQ-32B 的最短回答在减少 31% Token 使用量的同时,比随机采样的回答准确率高 2%
    • 这表明更长的链并不等同于更好的推理
  • 更长的回答可能显得准确性更低,仅仅是因为它们通常来自更难的问题
  • 为了区分由问题难度驱动的真实长度增加和不必要的膨胀,论文分析了 Phi-4-reasoning-plus (2025) 中同一问题的多个回答长度与正确性之间的相关性
    • 在 AIME 25 上,论文发现,在生成了正确和错误回答的问题中,72% 的情况下,更长的回答比更短的更容易出错
  • 已有一些方法被提出来抑制 RLVR 训练模型中持续的长度膨胀现象,例如 Dr.GRPO (2025) 和 DAPO (2025) 的 Token-level 损失归一化
    • 但即使在 Phi-4-reasoning-plus 的训练中应用了 Token-level 归一化,论文仍然观察到在仅 100 步 GRPO 训练后,回答长度从 4k 迅速增长到 14k Token
    • 论文假设,虽然 Token-level 归一化更严厉地惩罚了长而错误的回答,但它也放大了对长而正确链的奖励
      • 无意中强化了经过大量逐步推理 SFT 的强大基础模型(如 Phi-4-reasoning (2025) 和 DeepSeek-R1-Distill-Qwen (2025))固有的冗长性
      • 这凸显了仅依赖损失归一化来对抗 GRPO 显著长度膨胀的困难
  • 基于这些观察,论文的目标是开发高效的推理模型,这些模型能够保留 GRPO 提供的推理准确性,同时生成显著更短的推理链
  • 为实现以上一目标,论文做出了以下贡献:
    • GFPO(群组过滤策略优化) :
      • 论文提出了 GFPO(图 1,第 3 节),这是 GRPO 的一种简单而有效的变体,旨在显式抑制回答长度膨胀
      • GFPO 将拒绝采样与标准 GRPO 相结合:
        • 对于每个问题,论文采样更大的候选推理链群组 \( G \),以增加对理想输出的接触,根据目标指标过滤它们,并仅从保留的前 \( k \) 条链的策略梯度中学习
        • 虽然可以设计多种拒绝指标,但论文主要关注回答长度(保留最短的链以鼓励模型在推理时“思考更少”)
        • 当优化长度时,GFPO 在 AIME 25 上将 GRPO 的长度膨胀减少了 46.1%,在 AIME 24 上减少 59.8%,在 GPQA 上减少 57.3%,在 Omni-MATH 上减少 71%,在 LiveCodeBench 上减少 57%,同时保持准确性(第 5.2、5.3 节)
    • Token 效率(Token Efficiency)(第 5.4 节):
      • 除了仅针对长度外,论文引入了 Token 效率指标(定义为奖励与回答长度的比值)
      • 该指标促进那些通过提供更高奖励来证明其长度的推理链,鼓励模型既简洁又有效
      • 通过 GFPO 优化 Token 效率,长度膨胀在 AIME 25 上减少了 70.9%,在 AIME 24 上减少 84.6%,在 GPQA 上减少 79.7%,在 Omni-MATH 上减少 82.6%,在 LiveCodeBench 上减少 79.7%(定性示例见附录 A)
    • 自适应难度 GFPO(Adaptive Difficulty GFPO)(第 5.5 节):
      • 论文进一步引入了 GFPO 的自适应变体 ,其中保留的回答数量 \( k \) 基于轻量级、无监督的问题难度估计动态调整
      • 这种自适应策略将更多探索 (更大的 \( k \))分配给更难的问题 ,同时对较简单的问题进行更激进的缩短
    • 分布外泛化(Out-of-Distribution Generalization)(第 5.6 节):
      • 论文展示了 GFPO 在分布外任务上保持准确性的同时抑制长度膨胀的能力
    • GFPO 对回答长度和问题难度的分析(Analysis of GFPO on Response Length and Question Difficulty)(第 6 节):
      • 论文详细分析了 GFPO 在简单与困难问题上的准确性和长度减少情况,并研究了其对长回答准确性的影响
  • GFPO 利用了训练时和推理时计算之间的基本权衡,将成本从推理(更短的链带来显著的效率提升)转移到训练,通过采样和评估更多的候选回答
  • 这种权衡特别有利,因为训练计算是一次性投入,而推理计算的节省在整个部署过程中持续实现
  • 通过这种方式,GFPO 提供了一种简单而有效的解决方案,解决了推理模型中固有的回答长度膨胀问题(在保留 GRPO 最先进性能的同时,生成显著更短的推理链)

Preliminaries

  • GRPO (2024) 是一种强化学习算法:通过消除对值模型估计基线优势的需求,简化了 PPO (2017)
  • 通过为每个问题采样多个回答并使用其平均奖励作为基线实现,同时仍然优化与 PPO 类似的裁剪代理目标
  • 设 \( \theta \) 表示模型参数,\( q \) 表示问题,\( o \) 表示从旧策略 \( \pi_{\theta_{\text{old} } } \) 采样的回答,则
    • GRPO 目标可以表示为:
      $$
      \mathcal{J}_{\text{GRPO} }(\theta) = \mathbb{E}_{[\hat{\eta}\sim P(O), \{o_i\}_{i=1}^C \sim \pi_{\theta_{\text{old} } }(O|q)]} \frac{1}{G} \sum_{i=1}^G \frac{1}{|o_i|} \sum_{t=1}^{|o_i|} \min \left( r_{i,t} \widehat{A}_{i,t}, \text{clip}(r_{i,t},1-\varepsilon,1+\varepsilon) \widehat{A}_{i,t} \right) - \beta \mathcal{D}_{KL}(\pi_{\theta} | \pi_{\theta_{\text{old} } } ) + \gamma \text{Entropy}(\pi_{\theta})
      $$
    • 其中优势为:
      $$
      \widehat{A}_{i,t} = \frac{R(q,\rho_i) - \frac{1}{k} \sum_{j=1}^C R(q,\rho_j)}{\sqrt{\frac{1}{k} \sum_{l=1}^G \left( R(q,\rho_i) - \frac{1}{k} \sum_{j=1}^C R(q,\rho_j) \right)^2} }, \quad r_{i,t} = \frac{\pi_{\theta}(o_{i,t} | q,\rho_{i,<t})}{\pi_{\theta_{\text{old} } }(o_{i,t} | q,\rho_{i,<t})}
      $$
    • 且 \( \beta \mathcal{D}_{KL}(\pi_{\theta} | \pi_{\theta_{\text{old} } } ) \) 表示 KL 惩罚
  • 需要注意的是,虽然论文展示了标准的 GRPO 损失归一化方程,但包括 verl (2024) 和 TRL (2020) 在内的多个开源强化学习库默认使用 DAPO 的 Token-level 损失归一化进行 GRPO 训练 ,这也是论文在实验中使用的方法
  • GRPO 的一个关键限制是其依赖单一标量奖励信号 ,这使得同时优化多个理想的回答属性(如简洁性和准确性)变得困难
    • 这通常导致以显著的回答长度膨胀为代价换取准确性的提升
  • 为了解决这一问题,论文引入了 GFPO,以实现对多个回答属性的联合优化

Group Filtered Policy Optimization, GFPO

  • 论文提出了 GFPO,一种简单而有效的方法,用于有针对性地优化响应属性
  • GFPO 为每个问题采样更大的候选响应组 ,扩大响应池以包含更多具有理想特征的候选 ,然后在计算策略梯度时明确根据这些特征进行过滤
    • 将理想属性(如简洁性或信息量)直接编码到标量奖励中看似自然,但对于多个属性的优化可能会非常具有挑战性
      • 尤其是已经需要捕捉正确性的情况下
    • 数据过滤作为一种隐式、灵活的奖励塑造形式,类似于通过选择性采样来放大特定模型行为的迭代自我改进方法 (2022)
  • 在完成这一显式过滤步骤以隔离优选响应后,标准的奖励仅用于在选定组内计算相对优势
  • GFPO 能够同时优化多个理想属性(如长度和准确性),而无需复杂的奖励工程
  • 由于论文的目标是减少强化学习中的响应长度膨胀 ,论文专注于使用 GFPO 优化更短的响应,同时匹配 GRPO 的准确性
    • 给定一个问题 \( q \),论文从当前策略中采样一组较大的响应 \( \mathcal{G} = \{o_1, \ldots, o_G\} \)
    • GFPO 根据用户指定的指标应用选择步骤,过滤出大小为 \( k \) 的最理想响应子集用于训练
    • 论文为每个响应计算指标得分并排序,选择前 \( k \) 个响应形成保留子集 \( \mathcal{S} \subseteq \mathcal{G} \)(算法 1)
    • 论文定义一个二元掩码 \( m \in \{0, 1\}^G \),其中 \( m_i = 1 \) 表示选中的响应,\( m_i = 0 \) 表示被拒绝的响应
  • 形式上,论文将 GFPO 的目标函数定义为:
    $$
    \mathcal{J}_{\text{GFPO} }(\theta) = \mathbb{E}_{q \sim P(\mathcal{Q}), \{o_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\mathcal{O}|q)} \frac{1}{\sum_{i=1}^G |o_i|} \sum_{i=1}^G \sum_{t=1}^{|o_i|} \min(r_{i,t} \widehat{A}^{(m)}_{i,t}, \text{clip}(r_{i,t}, 1 - \varepsilon, 1 + \varepsilon) \widehat{A}^{(m)}_{i,t}) - \beta \mathcal{D}_{KL}(\pi_\theta \parallel \pi_{\theta_{\text{old} } }) + \gamma \text{Entropy}(\pi_\theta)
    $$
    • 其中:
      $$
      \mathcal{S}, m = \text{RejectionSample}(\mathcal{G}, k, \text{metric}, \text{order}), \quad m_i = \mathbb{I}_{ \{i \in \mathcal{S} \} } \\
      \mu_S = \frac{1}{k} \sum_{i \in \mathcal{S} } R(q, o_i), \quad \sigma_S = \sqrt{\frac{1}{k} \sum_{i \in \mathcal{S} } (R(q, o_i) - \mu_S)^2}, \quad \widehat{A}^{(m)}_{i,t} = \frac{R(q, o_i) - \mu_S}{\sigma_S} m_i \\
      r_{i,t} = \frac{\pi_\theta(o_{i,t} | q, o_{i,<t})}{\pi_{\theta_{\text{old} } }(o_{i,t} | q, o_{i,< t})}
      $$
      • 注意:均值和方差的计算也仅仅使用选中的 \(k\) 个响应
  • 论文对选定子集 \( \mathcal{S} \) 中的响应优势进行归一化,使用 \( \mathcal{S} \) 中响应级奖励的均值 \( \mu_S \) 和标准差 \( \sigma_S \)
    • 这使得在已经表现出理想属性的响应之间进行有意义的比较成为可能,确保 GFPO 在过滤后的子集中优先考虑最高奖励的响应
  • 不在 \( \mathcal{S} \) 中的响应优势为零,从而有效地将它们排除在策略更新的影响之外
    • 问题:为什么不直接对不符合的样本进行惩罚,而是选择丢弃?
  • GFPO 的主要干预是在优势估计层面,使其与任何 GRPO 变体(如 DAPO (2025)、Dr.GRPO (2025) 或带有 Dual-Clip PPO 损失的 GRPO (2020))兼容
  • GFPO 通过采样更多响应增加了训练时的计算成本,但由于学习到的策略生成的响应比 GRPO 更短,这部分成本得到了部分抵消
  • GFPO 是通用的,可以适应各种评分指标,但论文的实验特别利用了旨在减少响应长度膨胀的指标:
    • 响应长度(Response Length) :训练短响应直接鼓励简洁性
    • Token 效率(Token Efficiency, reward/length) :训练高 Token 效率的响应鼓励简洁性,但如果响应长度被相应更高的奖励“证明合理”,则仍允许较长的响应
  • 其他指标(如事实性、多样性或外部质量评分)也可以集成到 GFPO 中,以优化不同的目标属性

Adaptive Difficulty GFPO

  • 论文还引入了 GFPO 的自适应难度变体(算法 2),旨在根据问题的实时难度估计动态分配更多的训练信号到更难的问题上
    • 在训练的每一步,论文通过计算每个问题的采样响应的平均奖励来估计问题难度(较低的平均奖励表示较高的难度)
  • 为了自适应地调整保留响应的数量 \( k \),论文使用轻量级的 t-digest 数据结构维护问题难度的流式摘要
    • t-digest 高效地近似所有已见问题的难度(奖励均值)的四分位数,使论文能够将新问题分类到相对难度桶中
    • 基于此分类,论文为每个问题分配目标保留响应数量 \( k \)(注:从 16 个采样中保留):
      • 简单问题为 4
      • 中等难度问题为 6
      • 困难和非常困难问题为 8
    • 这种动态课程设计使得在简单问题上进行更激进的过滤,而在困难问题上进行更多的探索
    • 难度桶的数量和每个桶的 \( k \) 是超参数
  • 自适应难度 GFPO 高效利用训练计算资源,将梯度更新集中在最需要的地方
    • GFPO 帮助模型在简单示例上减少冗余(在这些问题上正确性已经很高)
    • 同时通过保留更多的推理链在困难问题上保持准确性
  • 据论文所知,这是第一个基于问题难度动态调整有效组大小的算法

Setup

  • 模型(Model)
    • 论文通过 Phi-4-reasoning(2025)作为基础模型来验证 GFPO 的有效性
    • 该模型是通过对 14B 参数的 Phi-4(2024)在 STEM 领域的合成 O3-mini 推理轨迹上进行广泛的 SFT 得到的,未经过任何 RL 调整
    • 在结果和分析中,论文将 Phi-4-reasoning 称为 SFT 基线
  • Baseline
    • 论文将经过 GFPO 调优的模型与使用 GRPO 训练的基线模型 Phi-4-reasoning-plus(2025)进行比较
    • 需要注意的是,论文使用了带有 DAPO Token-level 损失聚合的 GRPO,并对裁剪替代目标进行了轻微修改以提高训练稳定性,具体细节见第 3 节
    • 论文复制了 Phi-4-reasoning-plus 的训练设置,如下所述。在结果和分析中,论文将 Phi-4-reasoning-plus 称为 GRPO 基线
  • 数据集(Dataset)
    • 论文的 RL 训练专注于提升数学推理能力
    • 训练数据集包含从更大的训练语料库(2025)中选出的 72k 道数学问题
    • 论文将 RL 训练限制为 100 步,批次大小为 64,因此模型在训练期间仅看到 6.4k 道问题(与用于训练 Phi-4-reasoning-plus 的数据集相同)
  • 奖励函数(Reward Function)
    • 论文使用了训练 Phi-4-reasoning-plus(2025)时采用的奖励函数
    • 该奖励是“长度感知”的 0/1 准确度奖励与 n-gram 重复惩罚的加权和
    • 二元准确度奖励 \( R_{\text{acc} } \) 通过从响应中提取最终答案并验证其与真实答案的等价性来计算,如果简单的答案提取失败,则依赖于 LLM 验证器
    • 随后,该奖励被缩放到 -1.0 到 1.0 之间的浮点数,基于响应长度对正确答案的长响应进行惩罚
    • 格式违规会通过最低奖励进行惩罚
    • 最终的奖励函数 \( R \) 是这种长度感知准确度奖励与基于 5-gram 重复频率的重复惩罚的加权组合:
      $$
      R = w_{\text{acc} } \text{LENGTHSCALE}(R_{\text{acc} }) + w_{\text{rep} } R_{\text{rep} },
      $$
      • 其中 \( R_{\text{acc} } \in \{0,1\} \) 且 \( R \in [-1,1] \)
    • 更多细节见 Abdin 等(2025)的第 4.1 节
    • 值得注意的是,奖励中的长度惩罚不足以抑制 GRPO 引起的响应长度膨胀,这促使论文提出了 GFPO
  • 训练配置(Training Configuration)
    • 论文使用 ver1(2024)框架进行 GFPO 训练,并采用上述奖励函数
    • 为了与 Phi-4-reasoning-plus 的训练设置保持一致,论文在 32 个 H100 GPU 上对 Phi-4-reasoning 进行 GFPO 调优,全局批次大小为 64,训练 100 步,使用学习率为 \( 1 \times 10^{-7} \) 的 Adam 优化器,前 10 步采用余弦预热,采样温度 \( T = 1.0 \)
    • 论文应用了 KL 正则化(\( \beta = 0.001 \))和熵系数(\( \gamma = 0.001 \))
    • 模型的训练上下文长度最大为 32k Token ,其中 1k Token 保留给 Prompt
  • 组大小(Group Size)
    • Phi-4-reasoning-plus 的训练组大小为 \( G = 8 \)
    • GFPO 通过增加 \( G \) 来增加对理想响应的曝光,以更多的训练时计算换取更短的推理时响应长度
    • 论文为 GFPO 尝试了 \( G \in \{8, 16, 24\} \),但为了与 GRPO 公平比较,所有实验中 GFPO 的保留组大小 \( k = |\mathcal{S}| \leq 8 \),确保模型接收策略梯度信号的响应数量一致
  • Evaluation
    • 论文在以下基准上评估检查点:
      • AIME 25(AIME,2025)和 AIME 24(AIME,2024)每个 Prompt 采样 32 次
      • GPQA(2024)采样 5 次
      • Omni-MATH(2025)采样 1 次
      • LiveCodeBench(2024)采样 3 次
    • 论文在温度 \( T = 0.8 \) 下采样响应,最大长度为 32k Token,其中 1k Token 保留给 Prompt
    • 对于 AIME 25、AIME 24、GPQA 和 Omni-MATH,论文首先使用基于正则表达式的答案提取 ,如果提取失败则使用 GPT-4o 进行 LLM-based 提取
    • 尽管论文的 RL 训练集中没有编码数据,但论文通过在 LiveCodeBench 上的评估来衡量 GFPO 优化短响应时对响应长度和准确性的分布外影响
  • 论文报告所有模型和数据集的平均 pass@1 准确率、原始响应长度(\( L \))以及超额长度减少(Excess Length Reduction, ELR)(表 1、2)
  • 论文将超额长度减少定义为 GFPO 相对于 GRPO 在 SFT 模型基础上减少的响应长度膨胀程度,公式如下:
    $$
    ELR = \frac{L_{\text{GRPO} } - L_{\text{GFPO} } }{L_{\text{GRPO} } - L_{\text{SFT} } }.
    $$
    • 问题:为什么分子不使用 GFPO - SFT ?
  • 为了评估 GFPO 的准确率是否与 GRPO 相当,论文使用 Wilcoxon 符号秩检验(1992)检验 GRPO 与 GFPO 变体之间 pass@1 准确率的差异是否显著
    • 这种非参数配对检验在不假设正态分布的情况下比较每个问题的 pass@1 准确率差异

Results

  • 论文评估了三种 GFPO 变体:
    • 最短 \(k/G\)(Shortest \(k/G\)) :从 \(\mathcal{G}\) 中保留最短的 \(k\) 条响应,通过调整 \(k\) 和组大小 \(G\) 研究其对长度缩减的影响
    • Token 效率(Token Efficiency) :从 \(\mathcal{G}\) 中保留 \(k\) 条 reward-per-token 最高的响应,使用 \(k=8\) 和 \(G=16\)(与最短 \(k/G\) 的基线设置一致)
    • 自适应难度(Adaptive Difficulty) :从 \(\mathcal{G}\) 中保留最短的 \(k\) 条响应,其中 \(k\) 根据实时难度估计动态选择(简单问题保留 4 条,中等 6 条,困难和非常困难问题保留 8 条),\(G=16\)
  • 论文测量了 pass@1 准确率和超额长度缩减(Excess Length Reduction, ELR)(公式 4)
  • Wilcoxon 符号秩检验显示,GFPO 变体与 GRPO 在各任务上的准确率差异无统计学意义,表明 GFPO 在缩减长度的同时保持了准确率

Think Less Without Sampling More?(不增加采样量而实现减少思考)

  • 一个自然的问题是:仅通过拒绝采样(不增加总采样量)能否显著缩减响应长度?
  • 论文实验了 Shortest 6/8 GFPO,从组大小 \(G=8\) 中保留最短的 \(k=6\) 条响应
  • 结果显示
    • Shortest 6/8 GFPO 在 AIME 25、AIME 24、GPQA 和 Omni-MATH 上的准确率与 GRPO 相当,但超额长度缩减效果有限:
      • 在 AIME 25、AIME 24 和 GPQA 上分别仅缩减了 1.8%、9.5% 和 11.5%
      • 在 Omni-MATH 上甚至出现轻微长度增加(+5.5%)(表 1、2)
    • 这表明,虽然从小规模组中采样可以带来轻微的长度缩减,但更显著的缩减可能需要增加 \(G\) 以暴露更多短链
      • 这促使论文进一步探索是否通过采样更多能让模型在推理时思考更少

GFPO Enables Efficient Reasoning

  • 基于“增加采样量可能显著缩减链长度”的观察,论文研究了 Shortest 8/16 GFPO 变体的效果
  • 该方法将组采样量增至 \(G=16\),仅保留最短的 8 条响应(即训练模型使用最短的 50% 采样链),被拒绝的样本优势值设为零
  • 应用 Shortest 8/16 GFPO 后,论文在多个基准上观察到长度通胀显著缩减:
    • AIME 25 缩减 23.8%,AIME 24 缩减 33%,GPQA 缩减 23.7%,Omni-MATH 缩减 31.5%,且准确率无统计学显著下降(表 1、2)
    • 总体而言,GFPO 在保持 GRPO 强大推理性能的同时,大幅缩减了响应长度
  • 发现(Finding)
    • “Thinking Less” Requires Sampling More: Reducing retained responses without increasing group size (Shortest 6/8 GFPO) does not reduce response length.

调整 \(k\) 和 \(G\) 对长度缩减的影响(Effect of Varying \(k\) and \(G\) on Length Reductions)

  • 论文进一步研究了保留组大小 \(k\) 和采样组大小 \(G\) 的变化如何影响长度缩减
  • 直觉上,减少保留比例(\(k \downarrow\))或增加采样量(\(G \uparrow\))均可进一步缩短推理链
  • 与 Shortest 8/16 GFPO 相比,略微减少保留集(Shortest 6/16 GFPO)带来中等额外缩减:
    • AIME 25 额外缩减 1.8%,AIME 24 额外缩减 2.6%,GPQA 额外缩减 15.1%,Omni-MATH 额外缩减 12.2%
    • 进一步降低 \(k\)(Shortest 4/16 GFPO)比 Shortest 8/16 实现更强改进,在上述基准上分别额外缩减 14.2%、13.8%、22% 和 15.8%(表 1、2)
  • 论文还研究了将采样组大小 \(G\) 从 16 增至 24 的效果(固定 \(k\))
    • 从 Shortest 8/16 到 8/24 带来显著额外超额长度缩减(AIME 25、AIME 24、GPQA 和 Omni-MATH 分别额外缩减 30.6%、19.7%、28.5% 和 20.4%)
    • 从 Shortest 6/8 到 6/16 实现大幅额外缩减(23.4%、26.2%、27.3% 和 49.2%),进一步增至 6/24 时改进较小(15.4%、9.3%、9.8% 和 14.5%)
    • 从 Shortest 4/16 到 4/24 在上述数据集上分别额外缩减 8.1%、13%、11.5% 和 23.7%(表 1、2)
  • 这些结果表明,控制响应长度的关键因素是保留比例 \(k/G\),通过降低 \(k\) 或增加 \(G\) 来减小 \(k/G\) 可实现响应长度缩减(图 4)
  • 论文通过比较两种配置(Shortest 4/16 和 Shortest 6/24)验证了这一点:两者保留比例均为 25%,但绝对 \(k\) 和 \(G\) 不同
    • Shortest 6/24 的平均长度缩减略优(2.9%)(表 2,图 4),反映更大的采样组 \(G\) 增加了遇到高质量短链的机会
      • 这是相对 Shortest 4/16 而言的
    • 若采样组足够大(\(G\) 从 8 增至 16),仅调整 \(k\) 即可高效实现显著长度缩减,无需进一步采样
      • 但保留比例过低时(如从 8/24 降至 4/24),改进边际递减(平均仅额外缩减 4.1%)(表 2)
      • 要突破这一限制,需采用更智能的采样策略
  • 发现(Finding)
    • 保留比例 \(k/G\) 控制长度压力 :
      • 降低 \(k\) 或提高 \(G\) 可进一步缩减长度;
      • 保留 25-33% 响应为最优比例,更小比例收益递减
      • Shortest 4/24 是长度优化最佳 GFPO 变体,实现最强的超额长度缩减

Reinforcing Token Efficiency(强化 Token 效率)

  • 先前实验表明,仅降低保留比例 \(k/G\) 最终会触及天花板:超过一定组规模后,难以生成更短的推理链
  • 为突破这一瓶颈,论文引入 Token Efficiency GFPO,一种“智能采样”方法,按奖励与 Token 比(reward/length)对响应排序
    • 其直觉很简单:策略应优先选择高效提供高奖励的链;仅当长链的奖励足够高时才保留
  • 具体实现中,Token Efficiency GFPO 保留 \(\mathcal{G}\) 中奖励与 Token 比 \(R_i/|o_i|\) 最高的前 \(k\) 条响应
  • 在此过滤集中计算优势值,使得短正确链获得最强的正梯度,长正确链获得适度奖励或轻微惩罚 ,长错误链则承受最严厉惩罚
    • 这种对长错误链的额外梯度压力可剪除“填充” Token ,而最短 \(k\) GFPO 无法直接针对这些 Token,因其仅提供不超过最长保留链长度的梯度信号
    • 最短 \(k\) 依赖 KL 惩罚隐式压低后期 Token 概率,而 Token Efficiency GFPO 通过显式负梯度主动抑制这些低价值 Token 位置
  • 论文以 \(k=8\) 和 \(G=16\) 训练该方法
  • Token Efficiency GFPO 在所有任务上实现最大的超额长度缩减
    • AIME 25 缩减 70.9%,AIME 24 缩减 84.6%,GPQA 缩减 79.7%,Omni-MATH 缩减 82.6%,优于最短 \(k\) 变体(表 1、2),且 \(G\) 更小或相当
    • 这些额外长度缩减伴随轻微代价:训练曲线显示策略性能方差更高(图 2),准确率出现微小(无统计学意义)下降(表 1、2)
  • 发现(Finding)
    • Token 效率(reward/length)优化实现最大缩减 :在 AIME 25、AIME 24、GPQA、Omni-MATH 和 LiveCodeBench 上分别缩减 70.9%、84.6%、79.7%、82.6% 和 79.7% ,同时保持准确率,这些缩减伴随训练方差略增
  • 这种方差可能源于长正确和错误链中 Token 段的噪声梯度,导致奖励和惩罚信号冲突
    • 尽管如此,Token Efficiency GFPO 在不牺牲准确率的情况下实现了最强的 Token 节省,证实奖励与 Token 比是简洁推理的有效代理指标

Adaptive Difficulty GFPO

  • 除改进拒绝指标的智能采样外,论文还引入 Adaptive Difficulty GFPO,根据问题难度动态调整保留组大小 \(k\),将更多训练资源分配给难题
  • 在 Adaptive Difficulty GFPO(第 3.1 节)中,论文通过每问题的响应平均奖励估计难度,使用轻量级 t-digest 数据结构实时计算难度四分位数,并将问题分为四个难度桶:非常困难(后 25%)、困难(25-50%)、中等(50-75%)和简单(前 25%)
  • 基于此分类,论文为每个问题分配目标保留响应数 \(k\):简单问题 4 条,中等 6 条,困难和非常困难问题 8 条(从 \(G=16\) 采样中保留)(算法 2)
  • 对于该配置,Adaptive Difficulty GFPO 的每问题平均 \(k\) 为 6.5,因此论文将其与保留响应数和组大小相近的 Shortest 6/16 GFPO 比较
    • Shortest 6/16 GFPO 在 Omni-MATH 上实现更强的超额长度缩减(43.7% vs. 35.1%)
    • Adaptive Difficulty GFPO 在 AIME 25(50.8% vs. 25.6%)、AIME 24(52.9% vs. 35.6%)和 GPQA(41.7% vs. 38.8%)上表现更优
      • 尽管 Shortest 6/16 GFPO 应用了稍激进的响应剪枝
    • 与过滤更激进的 Shortest 4/16 GFPO 相比,Adaptive Difficulty GFPO 在 AIME 25(50.8% vs. 38%)和 AIME 24(52.9% vs. 46.8%)上仍实现更优长度缩减(表 1、2)
  • 发现(Finding)
    • 自适应难度 GFPO 在等量计算下优于最短 \(k\) :根据问题难度动态调整 \(k\),在 4/5 基准上实现比最短 \(k\) 更强的长度缩减
  • Adaptive Difficulty GFPO 在 GPQA 上达到最高准确率(70.8%)(表 1),在 AIME 25 最难题上(27%)也优于 GRPO 和所有 GFPO 变体(图 6a)。这些结果凸显了基于问题难度分配采样预算的有效性
    • 注意,Adaptive Difficulty GFPO 可与 Token 效率指标结合,进一步优化结果

Out-of-Distribution Effects of GFPO

  • 论文的 RL 训练方案旨在提升数学推理性能
  • 为研究 GFPO 对短响应的偏置是否产生负面影响,论文在编码基准 LiveCodeBench 上评估分布外泛化能力
    • 注意,编码数据未包含在 RL 训练集中
  • 论文发现,GRPO 甚至在分布外任务上也导致显著响应长度膨胀,平均响应长度从 10.3k Token (SFT)增至 13.9k Token ,且未提升准确率(56.7% GRPO vs. 57.7% SFT)
    • 对于分布内更难题,更长思考可能合理,但这种长度膨胀在分布外任务中出乎意料且不理想,尤其当更长输出未伴随准确率提升时
  • 发现(Finding)
    • GFPO 缓解分布外长度膨胀 :GRPO 在分布外任务上增加响应长度但未提升准确率;GFPO 抑制此现象,同时小幅提升准确率
  • GFPO 有效缓解了这种非预期冗余
    • 在 LiveCodeBench 上,Token Efficiency GFPO 实现最显著的超额长度缩减(79.7%)
    • GFPO 变体甚至在 LiveCodeBench 编码任务上带来轻微准确率提升:Shortest 8/24 GFPO 准确率略优于 SFT 和 GRPO(59.2% vs. 57.7% 和 56.7%),同时缩减超额长度 57%
  • 这些结果凸显了 GFPO 在显式管理响应长度增长的同时,保持甚至略微增强分布外泛化的能力

Accuracy-Length Pareto Comparison

  • 图 3 全景展示了准确率与响应长度的前沿关系
  • 在五个基准中的四个上,至少一个 GFPO 变体严格帕累托优于 GRPO(落入绿色区域),证实 GFPO 可同时提供更短且更准确的答案,实现双轴改进
  • 在 AIME 25 上,GRPO 准确率略高,但多个 GFPO 变体仍位于帕累托前沿,以无统计学显著准确率下降换取显著长度缩减
    • 注:AIME 25 上看,效果相对 GRPO 确实一般
  • 聚合各任务(右下子图)显示,Shortest 4/24、Adaptive Difficulty 和 Shortest 8/16 是最一致简洁且准确的方法,Token Efficiency 准确率略低但紧随其后

Analysis

  • 论文基于 AIME 2025 数据集分析了 GFPO 的行为,通过将问题难度定义为 \(1 - \text{SFT accuracy}\) 来量化每个问题对基础 SFT 模型的挑战程度
  • 根据难度将问题分为四个等级(简单、中等、困难、极难),研究 GFPO 在不同难度下对响应长度和准确率的影响
  • 随后,论文考察了固定难度下长响应的准确率,并分析了 GFPO 如何重塑长度与准确率的联合分布
  • 最后,论文研究了 GFPO 修剪了响应的哪些部分,并在附录 A 中提供了 GFPO 与 GRPO 的定性对比示例

Length Reductions on Easy vs Hard Problems

  • 论文分析了 GFPO 在 AIME 2025 上对不同难度问题的长度缩减效果
  • 如图 5a 所示,响应长度随问题难度显著增加
    • 从简单问题的约 4k Token 到极难问题的超过 20k Token
  • GFPO 在所有难度级别上均有效减少了长度(图 5b)
  • Token Efficiency GFPO
    • 实现了最强的整体缩减效果,尤其在简单问题上(相比 GRPO 减少了 121.6% 的冗余长度,图 5b),甚至比 SFT 模型更简短的同时提升了准确率,证明了长度与准确率可以同步优化
    • 但其缩减效果在更困难的问题上减弱(中等难度减少 79.1%,困难减少 63.5%,极难减少 56.5%),因为 Token Efficiency 指标允许长响应存在,前提是其奖励足够高,而这类情况常见于需要复杂推理的难题
  • Adaptive Difficulty GFPO
    • 冗余长度缩减随难度递增(简单问题 37.7%,极难问题 60.3%),有效修剪了长尾响应(图 5b)
    • Adaptive Difficulty 和 Shortest 8/16 GFPO 对困难问题均保留 8 条最短响应,Adaptive Difficulty 实现了更强的长度缩减
    • 这种简洁性可能源于从简单问题中学习到的梯度,使得策略即使在挑战性任务中也能避免不必要的 Token
  • Shortest 8/24 GFPO 在所有难度级别上均比 Shortest 8/16 表现更好
    • Shortest 8/24 在极难问题上实现了最大的长度缩减,优于保留高奖励长响应的 Token Efficiency GFPO 和为困难问题保留更多响应的 Adaptive Difficulty GFPO(图 5b)
  • Finding
    • GFPO shortens responses across all difficulty levels.
    • Token Efficiency GFPO delivers the largest reductions on easy, medium, and hard questions—on easy questions producing responses even shorter than the SFT model while matching GRPO’s accuracy.
    • Shortest 8/24 GFPO achieves the greatest reductions on the hardest questions due to its stronger filtering.

Accuracy on Easy vs Hard Problems

  • 接下来,论文考察了 GFPO 在 AIME 2025 不同难度级别上的准确率(图 6a)
  • 所有方法在简单问题上均接近完美准确率(98-99%)
  • 随着难度增加,SFT 准确率急剧下降,而 RL 微调(GRPO 和 GFPO)始终优于 SFT
  • Token Efficiency GFPO
    • 实现了显著的长度缩减(图 5b),但与 GRPO 相比准确率略有下降(图 6a),差异无统计学意义
  • Adaptive Difficulty GFPO
    • 在简单、中等和极难问题上匹配或超过 GRPO 的准确率,尤其在中等问题上表现更优(90.2% vs. 88.4%),同时减少冗余长度 47%
    • 在极难问题上,其他 GFPO 变体准确率略有下降,而 Adaptive Difficulty 与 GRPO 持平(27% vs. 26.6%),通过动态分配计算资源在保持准确率的同时减少冗余长度 60%(图 5b)
  • 关键发现(Findings):
    • Adaptive Difficulty GFPO 在中等和极难问题上超越 GRPO 准确率 ,同时减少冗余长度 47%-60%
    • 更大的组规模(\(G\))提升困难问题的准确率 :Adaptive Difficulty(\(k=8\),\(G=16\))在困难问题上略有下降,但 Shortest 8/24 通过采样更多响应匹配了 GRPO 的准确率

Accuracy of Long Responses under GFPO

  • 长响应通常准确率较低,但这一趋势可能与问题难度混杂,难题自然需要更长输出,因此准确率下降可能源于问题本身而非冗余内容
  • 为消除混淆,论文固定难度并分析响应长度对模型表现的影响
  • 将每个模型对困难和极难问题的响应按长度分为四分位(图 7),结果显示:
    • 随着长度增加,准确率持续下降 ,证实了长响应往往准确率更低(即使问题难度相同)
      • 在困难问题上,多数模型在中等长度(12k-16k Token ,表 3)达到峰值,表明存在一个“甜区(sweet spot)”:足够长以支持推理,但避免过度思考
      • Finding:即使在难度固定的情况下,较长的回复准确度也较低:在处理难题时,推理的最佳长度大约在 12 k到 16k 个词元之间

        Finding:Longer responses are less accurate even at fixed difficulty: Across hard problems, the sweet spot for reasoning emerges around 12k–16k tokens.

    • 超出此范围后,准确率持续下降
      • GFPO 变体在最长分位上的表现优于 GRPO(困难问题 66.7% vs. 52.1%,极难问题 20.3% vs. 17.2%,表 4),因为其最长响应更简短(困难问题 20.8k vs. 23.8k,极难问题 26.9k vs. 27.5k,表 3)且更准确
      • Finding:GFPO outperforms GRPO accuracy in the lengthiest response quartiles
  • 论文进一步通过绝对长度分析补充了这一结论(图 6b),固定响应长度并评估每个长度区间内对应问题的准确率、响应占比和难度
    • GFPO 将长尾响应( \(\ge\)20k Token )的占比从 GRPO 的 32% 降至 22-23%,同时提升了短响应(< 15k)的比例
    • 这些更短的 GFPO 响应通常解决更困难的问题:在 \(\le\)5k 区间,问题难度是 GRPO 的 9 倍(16-18% vs. 2%),而准确率仅轻微下降(例如 100% -> 97%)
    • GFPO 最长区间准确率略低,反映了许多问题已在更短长度下解决,剩余长响应对应的是最难题目的罕见情况
    • 综上,相对和绝对长度分析表明,冗余内容(而非难度)是 GRPO 长链错误的主因,而 GFPO 以更简洁的方式解决难题且保持竞争力
    • Finding:GFPO cuts extreme verbosity: dropping the fraction of \(\ge\) 20k-token responses from 32% to 22%, while solving harder problems at shorter lengths (questions answered in \(\le\) 5k tokens are 9× harder in GFPO than GRPO).

Distribution-Level Effects of GFPO

  • 为可视化 GFPO 如何重塑准确率-长度分布,论文绘制了 AIME 25 上响应长度的核密度估计(图 8)和 32 次独立运行的 pass@1 准确率分布(图 9)
    • 长度分布 :所有 GFPO 变体压缩了长尾,将质量向短响应转移(图 8)
    • 准确率分布 :SFT 的准确率分布左偏,表明平均表现较低;GRPO 分布右移,反映更高典型准确率;GFPO 变体介于两者之间。Token Efficiency GFPO 分布最集中,表现最稳定;Shortest 8/24 接近 GRPO 的中心质量;Adaptive Difficulty 呈现轻微双峰,部分重复达到 GRPO 水平,部分略低
  • 论文量化了 AIME 25 上准确率与长度的权衡:
    • GRPO 生成长响应的比例最高(46.8% vs. SFT 的 28%),GFPO 变体将其降至 42.1%(Shortest 8/16)、35%(Shortest 8/24)、37.8%(Adaptive Difficulty)和 32.7%(Token Efficiency)
    • GRPO 70% 的问题准确率 \(\ge\)70%,GFPO 变体略低但差异无统计学意义
    • 总体而言,Shortest 8/24 和 Adaptive Difficulty 在缩短响应与保持高准确率之间实现了最佳平衡

What is GFPO trimming?(讨论分析:GFPO 到底修剪了什么?)

  • 为探究 GFPO 长度缩减的来源,论文使用 GPT-4o 标注了五个模型(SFT、GRPO、Shortest 8/24 GFPO、Token Efficiency GFPO、Adaptive Difficulty GFPO)在 AIME 25 和 GPQA 上的推理轨迹,将每段文本按功能角色分类:
    • 问题 :与问题表述和理解相关的文本;
    • 解决方案 :提出或发展候选解决方案的句子;
    • 验证 :重新检查或验证中间结果的步骤;
    • 最终 :输出答案的结论性陈述
  • GRPO vs GFPO 定性的比较如下所示,关于 AIME 25 和 GPQA 的更多示例见 附录A
  • 图 10 展示了各模型在 AIME 25 和 GPQA 上各部分的平均 Token 数。结果显示:
    • GRPO 显著扩展了中段推理(Solution 和 Verification)
      • 例如 AIME 25 的 Solution 部分从 SFT 的 6.5k Token 增至 8.3k,Verification 从 1.9k 增至 3.1k
    • GFPO 变体 有效压缩了这些阶段
      • Shortest 8/24 将 AIME 25 的 Solution 从 8.3k 减至 6.6k(冗余长度减少 94.4%),表明 GFPO 减少了提出错误或无关候选方案的冗余;Verification 从 3.1k 减至 2.3k(减少 66.7%),修剪了 GRPO 典型的重复性检查
    • Token Efficiency GFPO 在所有部分(除 AIME 25 的 Solution 外) Token 使用更少;
      • Adaptive Difficulty 也显著压缩了 Solution 和 Verification,但不如其他方法激进(GPQA 上趋势类似)
  • 关键发现(Finding):
    • GFPO 大幅削减了推理过程中 解决方案 和 验证 阶段的冗余——在 AIME 25 上分别减少 94.4% 和 66.7% 的冗余长度
    • GFPO 变体对 Problem 和 Final 部分基本保持不变(与 SFT 差异在 10% 以内),表明其专门针对核心推理步骤的冗余,同时保留了问题表述和最终答案的完整性

Related Work

GRPO Loss Modifications

  • 近期的工作(如 Dr.GRPO (2025) 和 DAPO (2025)) 通过改进 GRPO 的损失归一化方法,提升了模型的 Token 效率和训练稳定性
    • 标准的 GRPO 在每个响应内部对损失进行归一化后再求平均,这使得所有响应对梯度更新的权重相同,但会导致长输出中的 Token 权重被低估
      • 理解:GRPO 中模型会倾向于生成短的正样本和长的负样本
    • Dr.GRPO 改为按批次中的最大响应长度归一化,而 DAPO 则按总 Token 数归一化
      • 问题:这里的描述错了吧?应该是 Dr.GRPO 没有做归一化,DAPO 则按当前批次的 Token 数归一化
    • 这两种方法都增加了长链中 Token 的权重 ,从而更严厉地惩罚错误的长链
  • 在开源强化学习训练框架(如 ver1 (2024) 和 TRL (2020))中,GFPO 采用了 DAPO 的 Token-level 归一化
    • 但这种方法不仅会惩罚错误的长链,还会放大正确长链的奖励 ,从而导致经过 SFT 的推理模型(如 Phi-4-reasoning-plus 和 DeepSeek-R1-Distill-Qwen)倾向于生成更冗长的输出
      • 这凸显了仅依赖损失归一化来控制输出长度的局限性
      • 问题:不会放大正确长链的奖励吧,相当于是对齐了所有奖励权重了啊
    • GFPO 通过仅对保留链计算优势函数来改进优势估计,这一改进与损失归一化无关;
    • 尽管论文的实验将其与 DAPO 的损失聚合方法结合使用,但未来也可以与其他方法(如 Dr.GRPO)结合

Length-Aware Penalties

  • 除了归一化,还有一些工作通过在 GRPO 的奖励中添加显式的长度感知惩罚来抑制长推理链 :
    • Hou 等人 (2025) 在强化学习过程中设置了 Token 上限(超过上限则奖励为零),并逐步收紧限制;
    • Su 和 Cardie (2025) 使用了一种自适应的直接长度惩罚,其强度随训练动态调整以避免过度压缩或不足压缩;
    • Xiang 等人 (2025) 根据每个问题的解决率反比调整惩罚强度,使得简单问题对额外 Token 的惩罚更大;
    • Cheng 等人 (2025) 结合全局长度奖励和针对冗余思维的压缩奖励;
    • Aggarwal 和 Welleck (2025) 则在给定目标长度的条件下优化准确性,对偏离目标长度的输出进行惩罚
  • 在论文的初步实验中,简单地调整长度感知奖励中的惩罚强度并未显著减少输出长度,或者以牺牲准确性为代价
  • 相比之下,GFPO 的拒绝步骤通过决定哪些样本用于学习来隐式地塑造奖励,提供了一种更简单的方法来同时优化多个属性(如长度、安全性),而无需复杂的奖励工程
  • 当然,将 GFPO 与更精心设计的奖励结合可能会带来进一步的提升
  • 问题:GFPO 本质上对丢弃掉的样本的梯度是 0,既不鼓励,也不惩罚,像是浪费了生成的样本,且梯度为 0 本身也有一定的含义,当一个样本被打压时,梯度为 0 的样本相当于被鼓励了(反之亦然)
    • 注:丢弃掉的样本还不参与奖励均值和方差的计算
    • 建议:是否可以做一个补充实验,将丢弃掉的样本使用起来,且针对正负奖励给与一定的长度惩罚

Inference-time Interventions

  • 其他工作也探索了如何在推理时纯粹通过干预控制推理长度
  • 与论文的工作类似:
    • Hassid 等人 (2025) 表明较短的链通常更准确(即使在控制问题难度后) ,并提出对 \(k\) 个样本中最短的 \(m\) 个进行投票
    • Muennighoff 等人 (2025) 提出了 “预算强制”(budget forcing) ,通过特殊短语(如“Wait”或“Final Answer”)控制推理停止时机而无需重新训练
    • 其他方法通过监控中间生成信号,在模型表现出高置信度或答案在连续推理块中稳定时停止生成 (2025; 2025)
    • 这些方法与 GFPO 是互补的,可以结合使用以进一步降低推理成本或在训练后强制执行长度约束

Rejection Sampling Methods

  • 拒绝采样已被应用于多种 LLM 的训练和解码场景中
    • Kim 等人 (2024) 探索了在强化学习后通过采样每个问题的多个解并进行长度缩减的方法,包括
      • (i)对最短的正确响应进行微调,或
      • (ii)使用最短正确输出作为正例、较长输出作为负例应用 DPO(Direct Preference Optimization)
  • 相比之下,GFPO 将拒绝采样整合到强化学习更新中
    • 为每个问题采样更大的组,并根据长度或 reward-per-token 选择训练链
    • 避免了额外的蒸馏、长度对齐阶段或显式惩罚项
  • DAPO (2025) 采用“动态采样”丢弃所有响应均正确或错误的 Prompt 以稳定批次梯度
  • Xiong 等人 (2025) 表明,一个简单的 RAFT 基线 (2023) 仅训练正向奖励样本即可与 GRPO 表现相当
    • 他们的过滤基于正确性奖励,但 GFPO 根据长度或 Token 效率过滤,并能根据问题难度动态调整过滤强度
  • 其他应用包括 Khaki 等人 (2024) 将拒绝采样与 DPO 结合,通过为每个 Prompt 采样更多响应并使用奖励分数选择对比对;
  • Lipkin 等人 (2025) 使用自适应加权拒绝采样实现高效约束生成;
  • Sun 等人 (2024) 通过早期拒绝低分候选加速 Best-of-\(N\) 解码

附录 A:Qualitative Examples

  • AIME 25 I Problem 8: GRPO v/s Token Efficiency GFPO
  • 更多 Case 比较见原始论文

NLP——LLM对齐微调-GHPO

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:GHPO: Adaptive Guidance for Stable and Efficient LLM Reinforcement Learning, 20250616, Huawei, CityU
    • 开源代码:github.com/hkgc-1/GHPO

Paper Summary

  • 整体内容
    • 论文提出了一种新颖的难度感知强化学习框架 GHPO(Guided Hybrid Policy Optimization),解决了 LLM 在 RLVR 中面临的训练不稳定和低效问题(这些问题主要源于能力与任务难度之间的不匹配,导致奖励信号稀疏)
    • GHPO 通过自适应 Prompt 优化动态校准任务难度,平衡模仿学习(用于当前模型难以解决的问题)和探索式强化学习(用于更易处理的任务),从而形成平滑且优化的学习课程
    • GHPO 显著提高了训练稳定性(能智能调整学习过程以适应模型能力的动态变化)
  • 背景:
    • RLVR 已成为促进 LLM 自我提升的强大范式(尤其在复杂推理任务中)
    • 当前主流的 On-policy 强化学习方法常面临严重的训练不稳定(training instability)和低效(inefficiency)问题
      • 这主要源于能力与难度的不匹配(capacity-difficulty mismatch) :即训练数据的复杂性往往超出模型当前能力,导致奖励信号极度稀疏和学习停滞
    • 这一挑战对于更轻量级的 LLM 尤为突出
  • 论文提出一种新颖的难度感知(difficulty-aware)强化学习框架 :GHPO
    • GHPO 通过自适应 Prompt 细化动态校准任务难度,提供针对性引导
    • GHPO 创新性地平衡了两种学习模式构建平滑优化的学习课程(smooth and optimized learning curriculum):
      • 对于超出模型当前能力的问题采用直接模仿学习
      • 对较易任务则采用探索式强化学习
  • 实验结果部分:GHPO 在多个高难度数学基准测试中平均性能提升约5%,持续优于强大的在策略强化学习和课程学习基线
  • 论文分析证实,GHPO 显著提高了训练稳定性和最终的推理性能 ,为开发强大且稳健的推理模型提供了一种可扩展且高效的解决方案
  • 开源情况:实现代码已开源

Introduction and Discussion

  • 新一代大推理模型在复杂推理任务中取得了最先进成果
    • 这些大模型包括 OpenAI-o3 (2025)、DeepSeek-R1 (2025) 和 Kimi-1.5 (2025) 等
    • 这些模型的关键特征是其生成链式思维(2022)和 进行反思式推理的能力

      A key characteristic of these models is their proficiency in producing extended Chains-of-Thought (CoT) and engaging in what appears to be reflective reasoning

  • 这种被称为”测试时扩展(test-time scaling)”的现象已被证明能有效解决数学和编程难题
    • 核心训练方法是 Zero-RL 范式,该范式采用 RLVR
  • 基于 RL 的后训练在增强推理能力方面展现出比 SFT 更优的泛化性
    • SFT 的本质是模仿学习,SFT 依赖于从人工标注数据或更强模型提炼的 CoT 中进行模仿学习 (2025)
  • 当前 RLVR 方法存在显著局限,以 GRPO 为例,作为 On-policy 方法,它们高度依赖当前策略模型的性能,导致两大挑战:
    • 1)能力-难度失配导致的奖励稀疏性(Reward Sparsity from Capacity-Difficulty Mismatch) :训练数据固有难度与模型演化能力间的严重不匹配会导致奖励稀疏,即均匀无信息的奖励阻碍学习过程 (2025)

      A significant mismatch between the inherent difficulty of the training data and the model’s evolving capabilities often results in reward sparsity, where uniform and uninformative rewards impede the learning process

    • 2)次优样本效率(Suboptimal Sample Efficiency) : On-policy 算法常受限于次优样本效率
      • 当训练数据集引入更难题以提升基准性能时,策略模型难以有效学习
      • 这一局限在容量受限的轻量化模型中更为突出
  • 现有解决方案包括
    • 课程学习(Curriculum Learning, CL)(2025) 通过逐步引入复杂样本来对齐任务难度与模型能力 ,但需人工启发式划分数据集,缺乏扩展性
    • DAPO (2025) 采用动态采样(dynamic sampling)过滤 完全正确 或 完全错误 的 Prompt,但会丢弃大量训练数据
    • 另一类研究探索 Off-policy 或混合 RL 方法以缓解 On-policy 学习的不稳定性 (2025),但这些方法需要辅助 LLM,增加了训练成本和复杂度
  • 受 SFT 等模仿学习技术启发,论文提出一种简单有效的解决方案:用部分真实解题步骤引导模型
    • 具体做法:通过条件化这些解题步骤,将模型的输出分布导向正确答案 ,缓解难题的奖励稀疏问题
    • 但直接应用该技术可能使训练数据过于简单,降低模型独立解题的学习效率
  • 论文提出 GHPO 框架:
    • GHPO 巧妙地将在线RL与模仿学习统一:
      • 先动态评估样本难度
      • 再通过自适应 Prompt 细化提供差异化引导
    • 对于模型可处理的问题,主要采用标准 On-policy RL鼓励探索;
    • 对于困难样本,则无缝切换至模仿学习模式,提供显式解题步骤
    • 这种混合方法自动平衡探索与直接引导,在提升训练稳定性的同时优化样本效率
  • 论文主要贡献总结如下:
    • 揭示 RLVR 中能力对齐与奖励稀疏问题的关键作用,提出 GHPO 框架以提升训练稳定性与效率
    • 提出 GHPO,通过自适应 Prompt 细化动态检测样本难度,并在 On-policy RL与引导模仿学习间切换
    • 在六个数学基准测试上开展广泛实验,证明 GHPO 优于最先进 RL 方法,且在不同模型家族中均表现稳健

Preliminaries

  • 核心问题:GRPO 训练中的奖励稀疏性挑战

Reinforcement Learning with Verifiable Rewards, RLVR

  • RLVR 范式中,LLM 可表示为 \(\pi_{\theta}\),输入 Prompt \(q\),LLM 生成 Token 序列(轨迹)\(\tau = (o_1, o_2, \ldots, o_T)\)
  • 上述轨迹生成过程被建模: finite-horizon、 Token-level MDP(注:核心是 Token-level):
    • 状态(State) \(s_t\):在生成步骤 \(t\),状态是初始 Prompt \(q\) 与已生成 Token 序列的拼接:\(s_t = (q, o_1, o_2, \ldots, o_{t})\),初始状态 \(s_0 = q\)
    • 动作(Action) \(a_t\):从模型词表 \(\mathcal{V}\) 中选择下一个 Token \(o_t\)
    • 策略(Policy) \(\pi_{\theta}\):即 LLM 本身,给定当前状态提供下一个动作( Token )的概率分布:\(a_t = o_t \sim \pi_{\theta}(\cdot|s_t)\)
    • 奖励(Reward) \(R\):RLVR 采用验证器分配的稀疏终端奖励(仅当完整轨迹结束时分配奖励 ,验证器根据最终答案正确性分配二元奖励):
      $$ R = \begin{cases}
      1 & \text{if the answer is correct} \\
      0 & \text{otherwise}
      \end{cases} $$
  • 训练目标是学习最优策略参数 \(\theta^*\) 以最大化 Prompt 分布 \(\mathcal{D}\) 上的期望终端奖励。目标函数 \(\mathcal{J}(\theta)\) 定义为:
    $$ \mathcal{J}(\theta) = \mathbb{E}_{q\sim\mathcal{D},\tau\sim\pi_{\theta}(\cdot|q)}[R(\tau)] $$
    • 该目标通常通过策略梯度算法优化(策略更新通过增加高优势轨迹对应 Token 的对数概率实现)

GRPO

  • GRPO 在提升 LLM 数学和编程推理能力方面表现卓越,其核心创新是基于组内比较而非绝对奖励值的优势估计方法
  • 对于给定 Prompt \(q\),GRPO 首先从策略模型 \(\pi_{\theta_{\text{old} } }\) 采样 \(G\) 个不同响应 \(\{o_i\}_{i=1}^G\),每个轨迹的优势 \(\hat{A}_{i,t}\) 通过其奖励 \(R_i\) 相对于整组统计量归一化计算:
    $$ \hat{A}_{i,t} = \frac{R_i - \mu_{\mathcal{R} } }{\sigma_{\mathcal{R} } + \epsilon} $$
    • \(\mu_{\mathcal{R} } = \frac{1}{G}\sum_{j=1}^G R_j\) 是组内奖励的均值
    • \(\sigma_{\mathcal{R} } = \sqrt{\frac{1}{G}\sum_{j=1}^G (R_j - \mu_{\mathcal{R} })^2}\) 是组内奖励的标准差
    • \(\epsilon\) 为数值稳定性常数
  • GRPO 方法的关键在于同一响应 \(o_i\) 内所有 Token 生成步骤共享此 Response-level 优势
  • GRPO 复用了 PPO 框架实现训练稳定性,同时策略梯度目标的简化为:
    $$ \mathcal{J}_{\text{GRPO} }(\theta) = \mathbb{E}_{(q,a)\sim D,\{o_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|q)} \left[\frac{1}{G}\sum_{i=1}^G \frac{1}{|o_i|}\sum_{t=1}^{|o_i|} \left(\min\left(\frac{\pi_{\theta}(o_{i,t} \mid q,o_{i,<t})}{\pi_{\theta_{\text{old} } }(o_{i,t} \mid q,o_{i,<t})}\hat{A}_{i,t},\text{clip}\left(\frac{\pi_{\theta}(o_{i,t} \mid q,o_{i,<t})}{\pi_{\theta_{\text{old} } }(o_{i,t} \mid q,o_{i,<t})},1-\epsilon,1+\epsilon\right)\hat{A}_{i,t}\right) -\beta D_{\text{KL} }(\pi_{\theta}|\pi_{\text{ref} })\right)\right] $$
    • 实际应用中,完整目标可能包含剪切机制和 KL 散度惩罚项以正则化策略更新
    • 但近期许多实现发现省略 KL 项(即 \(\beta=0\))仍能成功 (2025; 2025),从而简化优化过程

The Challenge of Reward Sparsity in GRPO

  • GRPO 易受训练低效和不稳定性影响(这在实践复现中很常见)
  • 论文发现其脆弱性的主因是训练数据难度与策略模型能力间的根本性失配 ,表现为严重的奖励稀疏性 ,这对有效强化学习构成重大障碍
  • 当 Query \(q\) 对当前策略 \(\pi_{\theta}\) 来说过于困难时,模型生成的 \(G\) 个响应可能全部错误,导致奖励向量全零(即所有 \(i\in\{1,\ldots,G\}\) 有 \(R_i=0\))
    • 此时组内奖励均值与标准差均为零,公式(2)的优势计算对所有轨迹返回 \(\hat{A}_{i,t}=0\)
    • 这引发两个关键问题:
      • 1)训练低效 :零优势导致该 Query 的梯度消失(模型无法获得学习信号,生成和评估 \(G\) 个响应的计算资源完全浪费)
        • 当批次中包含大量此类难题时,多数数据无法贡献策略改进,极大降低整体训练效率
      • 2)训练不稳定(Training Instability) :能提供非零学习信号的 “effective” Query 数量在梯度更新间剧烈波动
        • 有效批次大小的方差会为梯度估计引入显著噪声,破坏训练稳定性并阻碍可靠收敛
        • 问题:这里是指批次大小的方差,而不是梯度本身的方差
  • 奖励稀疏性挑战在容量受限模型(如设备端部署模型,on-device Model)中尤为严峻
  • 为量化能力-难度失配,论文在包含约 900K 竞赛级数学题的 NuminaMath-1.5 (2024) 数据集上评估 Qwen2.5-7B-Instruct (2025) 模型性能。
    • 结论是无法解决 52 的问题
    • 这一重要发现说明该数据集大部分内容远超对应 Qwen2.5-7B-Base 模型 (2025) 的固有推理能力,更遑论能力更有限的小型 LLM
  • 这清晰表明设备端模型面临的奖励稀疏性问题严重性:
    • 强化学习中超半数数据集可能产生零奖励轨迹 ,无法提供有效梯度信号,严重阻碍模型学习

The Proposed Framework

From Static Guidance to a Dynamic Framework

  • 论文的核心策略是将引导(guidance)直接整合到强化学习循环中 ,通过将策略(policy)与部分真实解轨迹(partial ground-truth traces)结合,以解决第2.3节中详述的奖励稀疏性问题
  • 这一方法的动机基于如下的 Assumption 1 ,即对于困难问题,此类引导能够提高成功概率 ,从而在原本无法获得有效学习信号的情况下提供支持
    • 对于大多数数学数据,真实解轨迹形式的引导通常是可用的,但在 RLVR 训练过程中,这些宝贵的解轨迹信息通常被忽略,仅使用最终的真实答案
  • Assumption 1 :设 \(\mathcal{D}_{in}\) 和 \(\mathcal{D}_{OOD}\) 分别为域内(in-domain)和域外(out-of-distribution)问题分布,\(\pi_{\theta_{0} }\) 为基策略(base policy)
    • 策略 \(\pi\) 的域外性能通过其期望奖励 \(\mathcal{R}(\pi):=\mathbb{E}_{b\sim\mathcal{D}_{OOD},\tau\sim\pi(\cdot|b)}[R(\tau)]\) 衡量
  • 考虑一个基策略无法解决的问题 \(q \sim \mathcal{D}_{in}\),此时其期望奖励非正(\(\mathbb{E}_{\tau\sim\pi_{\theta_{0} }(\cdot|q)}[R(\tau)] \leq 0\))
    • 设 \(h\) 为 \(q\) 的部分真实解轨迹(partial ground-truth solution trace)
  • 从 \(\pi_{\theta_{0} }\) 微调两个策略,通过最大化目标 \(\mathcal{J}_{GRPO}\):
    • \(\pi_{\theta_{q},h}\),使用轨迹:\(\theta_{q,h}=\arg\max_{\theta}\mathcal{J}_{GRPO}(\theta;\{(q,h)\})\)
    • \(\pi_{\theta_{q} }\),不使用轨迹:\(\theta_{q}=\arg\max_{\theta}\mathcal{J}_{GRPO}(\theta;\{q\})\)
  • 论文假设 ,对于失败问题使用真实轨迹能提升域外泛化能力:
    $$
    \mathbb{E}_{b\sim\mathcal{D}_{OOD},\tau\sim\pi_{\theta_{q},h} (\cdot|b)}[R(\tau)] \geq \mathbb{E}_{b\sim\mathcal{D}_{OOD},\tau\sim\pi_{\theta_{q} } (\cdot|b)}[R(\tau)]
    $$
    • 注:这里是只有假设和实验验证吗,是否能给出理论证明?
  • 第4节的实验验证了这一假设的有效性。
  • 利用这个性质,我们可以获取合法的学习信号,即使在困难样本中(原本会返回 0 奖励并导致梯度消失的样本),但静态应用这一原则(例如预先标记一组固定问题为“困难”并始终对其应用引导)是次优的,存在两个关键限制:
    • 人工精选与可扩展性(Manual Curation and Scalability) :静态方法需要繁琐的离线流程来确定何时需要引导
      • 静态方法不仅难以扩展,而且具有主观性,可能与模型的实际知识缺口不完全匹配
    • 进化中的模型能力(Evolving Model Capability) :训练初期对策略无法解决的问题可能在多次更新后变得简单
      • 静态引导策略无法适应模型的动态能力,可能导致对已能通过探索解决的问题“过度引导”,抑制新颖推理路径的学习,降低样本效率

Guided Hybrid Policy Optimization, GHPO

  • 论文提出一种自动化框架引导混合策略优化(GHPO) ,旨在提升强化学习效率
  • 如图2 所示,GHPO 动态评估样本难度,并自适应地在标准策略强化学习与引导学习之间切换
    • 这种创新方法确保仅在真正需要时提供引导,保留对模型当前能力范围内问题的探索,同时对更具挑战性的场景提供自适应优化
  • GHPO 包含两个核心模块:
    • 自动化难度检测(Automated Difficulty Detection) :评估当前问题的固有难度,决定后续学习流程
    • 自适应 Prompt 优化(Adaptive Prompt Refinement) :根据检测到的难度,通过融入不同级别的真实引导来优化 Prompt
  • 对于给定 Query \(q\) 和真实答案 \(a\),GHPO 首先生成 \(G\) 个独立响应 \(\{o_{i}\}_{i=1}^{G}\),并通过奖励模型获取其二元奖励 \(\{r_{i}\}_{i=1}^{G}\)
    • 与 GRPO 不同,这些组级奖励不直接用于优势估计,而是由难度检测模块分析其稀疏性,并根据预设策略优化 Prompt
  • 数学上,GHPO通过以下目标优化策略:
    $$
    \mathcal{J}_{\text{GHPO} }(\theta) =\mathbb{E}_{(q,a)\sim D,\{o_{i}\}_{i=1}^{G}\sim\pi_{\theta_{old} } }(\cdot|q)
    \left[\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|o_{i}|}\sum_{t=1}^{|o_{i}|}\Big{(}\min\big{(}r_{i,t}(\theta)\hat{A}_{i,t},\text{clip},(r_{i,t}(\theta),1-\epsilon,1+\epsilon),\hat{A}_{i,t}\big{)} -\beta D_{\text{KL} }(\pi_{\theta}|\pi_{\text{ref} })\Big{)}\right] \\
    \text{s.t.} \quad q^{*}=\begin{cases}
    q & \sum_{i=1}^{n}f(a,o_{i})>0 \\
    q+\omega*h_{f,q} & \text{otherwise}
    \end{cases}. \\
    r_{i,t}(\theta)=\frac{\pi_{\theta}(o_{i,t}\mid q^{*},o_{i,<t})}{\pi_{\theta_\text{old}}(o_{i,t}\mid q^{*},o_{i,<t})}, \tag{4-6}
    $$
    • 函数 \(f\) 判断预测是否等价于真实答案
    • \(h_{f,q}\) 是 Query \(q\) 的完整真实解序列
    • \(\omega\) 为分阶段调整的 Hint 比例 (Hint Ratio)
  • 通过无缝整合这两个模块,GHPO 能高效切换策略强化学习与引导模仿学习,显著提升训练效率
  • 图3 展示了 GHPO 的 Prompt 模板
  • 相较于原始 GRPO Prompt ,GHPO 引入增强结构,从真实解中提取 Hints 并附加引导句:“以下文本是答案的开头部分,可供参考以解决问题:”

    The following text is the beginning part of the answer, which you can refer to for solving the problem

Automated Difficulty Detection

  • 如Assumption 1 所述,通过融入离线真实 Hints,可以为最困难的问题获取有效学习信号
    • 然而,静态预定义哪些问题需要引导的方法因第3.2节所述限制而难以扩展
  • 论文提出难度检测模块(difficulty detection module) ,在不增加人工成本的情况下评估当前问题的固有难度
    • 与其他基于模型的高成本方法不同,论文的方法利用学习过程中固有的准确率奖励
  • 对于训练批次中的每个 Query \(q\),论文通过分析其 \(G\) 个响应的组级奖励 \(\{r_{i}\}_{i=1}^{G}\)(公式6定义)来评估其相对于当前策略模型 \(\pi_{\theta}\) 的难度
    • 若某 Query 的所有 \(G\) 个奖励均为零,表明即使从其输出分布中采样多次,当前策略模型也未能生成正确推理路径
    • 此时,这些稀疏奖励无法为策略改进提供有效梯度信息,因此该 Query \(q\) 被标记为对当前策略模型 \(\pi_{\theta}\) 困难(difficult) ,需自适应引导

Adaptive Prompt Refinement with Multi-Stage Guidance(多阶段指导的自适应 Hint 优化)

  • 难度检测模块能够识别出当前策略模型 \(\pi_{\theta}\) 难以处理的 Query 问题
    • 此时根据假设 1(Assumption 1),引入真实解答的 Hints (ground-truth solution hints)可以为这些难题提供有效的学习信号
  • 这种指导通过 Hint 比例参数 \(\omega\) 来控制(即引入真实解答的特定比例)
    • 但确定一个固定的最优 \(\omega\) 值具有挑战性,且对于不同难度分布的逻辑推理任务往往效果不佳,因为更复杂的问题天然需要更大比例的 Hint
  • 为了解决这一问题,并确保策略改进过程中的持续学习,论文提出了一种多阶段指导的自适应 Hint 优化策略(Adaptive Prompt Refinement strategy with Multi-stage Guidance)
    • 该策略能够动态调整 Hint 比例 \(\omega\)
    • 核心设计目标是避免因 Hint 冗余而导致任务过度简化 ,即防止因过度偏离原始 Query 而降低学习效果
    • 动态 Hint 注入的核心思想是通过学习阶段的线性调度来控制 Hint 比例
    • 论文首先注入一小部分真实解答作为初始 Hint ,若模型仍无法生成正确答案,则在后续阶段逐步增加 Hint 的长度
  • 在学习过程的第一阶段 ,论文设置 Hint 比例 \(\omega = 0.25\),旨在平衡数据难度与策略模型当前能力之间的关系
    • 如公式 (6) 所定义,对于训练批次中被识别为困难的 Query 问题,论文从真实解答轨迹 \(h_{f,q}\) 中提取 25% 的内容作为辅助 Hint ,并将其与原始 Query 拼接,形成优化后的 Query \(q^{*} = q + \omega \cdot h_{f,q}\),随后用于模型推理
  • 在学习过程的第二阶段 :
    • 若难度检测模块评估至少有一个生成的响应是正确的 ,则保留原始 Query 用于后续组优势计算;
    • 若所有响应均未通过评估(表明问题难度较高),则将 Hint 比例提升至 \(\omega = 0.5\) 以提供更多指导
    • 论文采用最多三阶段的线性调度策略,\(\omega\) 的取值序列为 \(\{0.25, 0.5, 0.75\}\)
    • 这一策略能够充分利用训练数据提升训练效率,无需直接剔除困难 Query
  • 除了自适应优化高难度 Query 外,该策略还可视为一种动态数据增强方法
    • 随着策略模型能力在学习过程中逐步提升,最初需要较高 \(\omega\) 的 Query 可能最终仅需较低比例的指导,甚至完全无需指导
    • 理解:这种方法也可以看做是一种课程学习的思路

Cold-Start Strategy

  • 在初始优化阶段,策略模型常难以遵循特定格式指令(如将答案括在指定框内),导致预测与真实答案不匹配,准确率奖励低下
    • 此时,自动化难度检测模块可能错误地将多数 Query 标记为困难,引入偏差并浪费计算资源
  • 论文提出可选的冷启动策略(Cold-Start Strategy)
    • 在前 \(N\) 步优化(实验中设为 20步)中,暂时禁用难度检测机制,仅使用原始 GRPO 训练流程
    • 该方法在初期节省计算资源,同时让模型掌握基础格式能力,避免在引入自适应引导前产生早期偏差

Hint Extraction Example

  • 图4展示了 GHPO 如何有效处理检测到的困难问题
  • 以原问题“若三角形两边长为5和7单位,第三边可能的整数长度有多少种?”为例,当前模型多次采样均无法生成正确推理响应,导致奖励稀疏问题
  • 为此,GHPO 智能干预,提取真实解的 50% 作为 Hint ,与原问题拼接并附加引导句
  • 如图4左侧所示,新构建的 GHPO Prompt 包含针对性 Hint ,从而引导模型更有效地推理

Experiment

Training Datasets

  • 使用可验证的数学任务评估 GHPO 算法的有效性
  • 论文从 MATH (2021) 和 NuminaMath-1.5 (2024) 数据集中构建了两个不同难度的训练数据集:
    • Math3to5 :该数据集包含 8,890 道竞赛数学题,难度范围为 3 至 5 级,每道题均附带逐步的真实解答
      • 该数据集代表中等难度水平
    • NuminaMath-S :这是一个更具挑战性的数据集,包含从 NuminaMath-1.5 中精选的 18,300 道问题,整合了 Math3to5 数据集以及来自 OlympiadBench 和 AMC 的额外问题
      • 该数据集中的每道问题也附带 step-by-step 的真实解答
      • 该数据集代表困难难度级别
  • 这两个数据集旨在模拟现实世界中 RLVR 训练场景中常见的中等和困难问题级别

Baseline Models

  • 为了全面评估 GHPO,论文选择了两个基础 LLM ,并实现了多种 RLVR 方法:
    • Qwen2.5-Base-7B (2025):Qwen2.5-7B 的基础模型
    • Qwen2.5-Math-7B (2024):基于 Qwen2.5-7B 的专用数学大语言模型
    • Qwen2.5-7B-GRPO :使用 GRPO 训练流程 (2025) 微调的 Qwen2.5-Base-7B
    • Qwen2.5-Math-7B-GRPO :使用 GRPO 训练流程微调的 Qwen2.5-Math-7B
    • Qwen2.5-7B-GRPO-CL :该模型采用两阶段训练流程
      • 第一阶段:Qwen2.5-Base-7B 在 math3to5 数据集上使用 GRPO 进行训练;
      • 第二阶段:使用来自 OlympiadBench 和 AMC 的更困难问题对模型进行微调 ,显著提升第一阶段的难度级别
    • Qwen2.5-7B-GRPO-CL-H :该变体在 Qwen2.5-7B-GRPO-CL 的第二训练阶段应用了恒定 Hint 注入策略(constant hint injection strategy) ,旨在通过提供一致的指导来平衡学习过程
      • 论文在第二训练阶段应用恒定提示注入,以平衡学习过程

Implementation Details

  • 论文使用 openr1 (2025) 代码库和 TRL (2020) 框架进行实验
  • GHPO 训练在 8 块高性能 GPU 上完成,每块 GPU 配备 80GB 内存和高带宽
  • 奖励设置(Reward Setting) :
    • 论文采用 Rule-based 奖励函数,正确答案奖励 +1,错误答案奖励 0
    • 论文还引入了Format-based 奖励 ,鼓励模型在给出最终答案前显式执行推理步骤
    • 格式奖励的权重与 Rule-based 奖励的比例设置为 2:1
  • 超参数与训练配置(Hyperparameters and Training Configuration) :
    • 使用 AdamW 优化器 (2017)
    • 初始学习率为 \(1 \times 10^{-6}\)
    • 采用余弦调度将学习率衰减至零
    • 10% 的全局步数预热阶段
    • 训练批次大小为 112
    • 每个 Query 采样 8 个响应
    • 梯度更新的累积步数为 8
    • 在训练阶段:
      • 采样配置包括温度为 1.0
      • 每个响应的最大生成长度为 2048 个 token
    • 没有使用 KL 正则化损失或 KL 惩罚

Evaluation Details

  • 论文使用 Lighteval 工具包 (2023) 构建评估脚本
  • 评估时,温度设置为 0.0 或 1.0(根据基准难度调整),最大生成长度为 4096 个 token
  • 为确保一致性,论文使用与训练阶段完全相同的 Prompt 模板,在此阶段不使用任何 Extracted Hint 或 Hint-guided Prompts
  • 论文评估了标准数学推理基准上的性能
    • 包括:MATH_500 (2021)、OlympiadBench (2024)、Minerva Math (2022)、GPQA-Diamond (2023)
  • 论文还评估了竞赛级基准上的性能
    • 如 AMC2023 和 AIME2024 上的性能
  • 报告指标:
    • 对于大多数基准,论文报告 pass@1 结果;
    • 对于 AIME2024,论文报告平均准确率(avg@32),即每个问题生成 32 个样本的平均值

Overall Performance

  • 论文的实验评估证明了所提出的 GHPO 方法相较于传统方法的显著有效性和优越性
  • 论文在不同难度数据集和不同基线模型上展示了实验结果
  • 中等难度任务的性能(Performance on Medium-Difficulty Tasks) :
    • 首先在 math3to5 训练数据集上进行了初步实验
    • 如表 1 所示,标准 GRPO 方法成功将 Qwen-7B 基础模型训练为强大的推理代理,甚至优于经过大量数学数据微调的 Qwen2.5-Math-7B
    • 但论文的 GHPO 进一步提升了性能,平均准确率比 GRPO 提高了 4.4%
    • 这一提升主要是因为 GHPO 缓解了奖励稀疏性问题
    • 在六个评估基准上,GHPO 训练的模型始终表现出更优的推理能力
    • 特别是在 AMC2023 和 GPQA-Diamond 上,GHPO 的准确率比 GRPO 提高了超过 8%
  • 困难任务的性能(Performance on Challenging Tasks) :
    • 为了进一步评估 GHPO 的鲁棒性,论文使用更具挑战性的 NuminaMath-S 数据集训练 Qwen2.5-7B 基础模型
    • 除了原始 GRPO,论文还引入了课程学习基线(Qwen2.5-7B-GRPO-CL) ,该基线手动按难度划分训练数据集
    • 如表 2 所示,Qwen2.5-7B-GHPO 模型在五个基准上均优于 Qwen2.5-7B-GRPO 和 Qwen2.5-7B-GRPO-CL
      • 这表明奖励稀疏性严重阻碍了有效学习,尤其是对于超出模型当前能力的问题
      • 例如,在 AIME2024 问题上,GHPO 的准确率从 0.122 提升至 0.163
  • 课程学习和固定 Hints 的影响(Impact curriculum learning and Fixed Hints) :
    • 虽然课程学习部分解决了模型能力与问题难度不匹配的问题,但其效果始终不及 GHPO
    • 在某些基准(如 AIME2024 和 GPQA-Diamond)上,课程学习的性能甚至可能比原始 GRPO 更差
    • 课程学习的一个关键限制是:课程学习依赖于数据集的严格细粒度难度划分(这在实践中往往难以可靠实现)
    • 论文还研究了固定 Hints 的场景,结果显示其效果低于 GHPO
      • Qwen2.5-7B-GHPO-CL-H0.5 融入了固定 50% 的真实轨迹比例(针对困难问题),实验展示了标准课程学习的提升,从0.415 提升至 0.422(详情见表2),但其效果不如 GHPO

Training Dynamics

  • 理解 GHPO 框架在训练期间的行为对于认识其优势至关重要
  • 图 5 展示了奖励稀疏性的持续挑战:
    • 图5 显示了小批次中需要添加 Hints 以缓解此问题的比例
    • 在初始训练阶段,大多数问题对当前大语言模型来说过于困难(且这一趋势并未迅速减弱;)
    • 即使在后续训练阶段,约 60% 的问题仍超出模型当前能力 ,凸显了奖励稀疏性在强化学习过程中的普遍性
  • 为了更深入理解 GRPO 和 GHPO 在训练期间的独特行为,论文仔细检查了四个代表性指标:
    • 格式奖励、准确率奖励、平均响应长度和梯度范数
  • 这些动态如图 6 所示:
    • 格式奖励(Format Reward) :GRPO 和 GHPO 两种算法在训练早期均达到了接近最大值的格式奖励,并始终保持高水平
    • 准确率奖励 :GHPO 在所有训练阶段均表现出明显的准确率奖励优势
    • 平均响应长度 :GRPO 和 GHPO 两种方法的平均响应长度均随时间稳步增加,但 GHPO 在后期生成的响应显著更长
    • 梯度范数 :GHPO 的梯度范数始终显著小于 GRPO,表明其优化过程更平滑稳定
  • 以上这些观察结果表明,GHPO 不仅任务性能更优 ,还能促进更详细的推理 ,并在训练过程中实现更稳定的优化轨迹

Generalization to Other Models

  • 为了进一步证明论文方法的普适性和鲁棒性,论文使用更强大的基础模型 Qwen2.5-Math-7B 评估了 GHPO 的有效性
  • 如表 2 所示,GHPO 始终能生成更强大的推理模型,其性能优于相同基础模型上应用的原始 GRPO 方法
  • 这表明 GHPO 的适应性指导机制有效补充了高级预训练,为复杂推理任务提供了更高效的微调

Case Study

  • 论文提供了一个详细案例研究,以说明 GRPO 和 GHPO 在解决一个特别困难的数学问题时的比较有效性
  • 表 3 展示了该问题及其真实解答
    • 在原始 GRPO 框架下,模型通常无法生成正确的推理路径,导致奖励稀疏性问题
    • GHPO 通过智能使用 Hint 引导的输入解决了这一挑战
  • 如表 4 所示,GHPO 通过将真实解答的前 50% 拼接至原始问题中,成功引导模型生成至少一条正确的推理路径
    • 标准 GRPO 训练生成的推理路径往往偏离真实解答,导致错误答案

Related Work

  • RL 在提升 LLM 的推理能力方面取得了显著成功
    • DeepSeek-R1 (2025) 提出了一种纯强化学习范式,称为 Zero RL training,该方法使用简单但高效的 Rule-based 奖励模型直接从 Base LLM 进行训练
    • SimpleRL-Zoo (2025) 通过在不同基础模型和规模上进行全面的实证研究,进一步探索了 Zero RL 训练的行为模式
    • 一些变体方法通过优化底层机制或引入新设计元素,进一步推动了 Zero RL 训练的进展
    • DAPO (2025) 从策略优化目标的角度分析了 Zero RL 训练的核心机制(DAPO 并不是特别为 Zero RL 做的吧),并提出了四项关键技术,以提高 RL 训练的效率、稳定性和生成长链思维(Chain-of-Thought, CoT)的能力
    • Dr. GRPO (2025) 提出了一种无偏优化方法,从原始 GRPO 公式中移除了长度和标准差惩罚项,从而在保持强大推理性能的同时提高了标记效率
    • LUFFY (2025) 通过将 Off-policy 推理演示与在策略 Zero RL 训练相结合,平衡模仿与探索,使 LLM 能够超越其固有能力的边界
    • VAPO (2025) 提出了首个 value-model-based RL 训练框架(之前的都是 value-model-free),整合了七项创新技术以提升训练稳定性和整体性能
  • 以上这些研究推动了 RL 在 LLM 训练中的应用,但奖励稀疏问题在复杂推理任务中仍然是一个持续存在的挑战
    • 课程学习(Curriculum Learning, CL)(2025) 通过逐步引入更复杂的样本来对齐任务难度与模型能力
    • DAPO (2025) 采用动态采样过滤掉模型认为过于简单或困难的问题
  • 这些方法可能会丢弃大量有价值的训练数据
  • 论文提出的 GHPO 方法通过自适应难度检测和 Prompt 优化机制,充分利用所有训练数据,提供了一种更高效且稳健的解决方案

附录 A:Supplementary Case

  • 详情见原文

NLP——LLM对齐微调-IcePop

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(IcePop)Small Leak Can Sink a Great Ship—Boost RL Training on MoE with IcePop!, 20250919, AntGroup
      • 有趣的标题:小漏洞可沉巨轮
    • 本工作是 TIS(Truncated Importance Sampling)的续作,TIS 的参考链接为 Your Efficient RL Framework Secretly Brings You Off-Policy RL Training
    • 本文似乎是 MIS(Masked Importance Sampling)的提出者,但命名来源于其他博客
      • 相关博客:When Speed Kills Stability: Demystifying RL Collapse from the Training-Inference Mismatch
      • 相关 PR:【PR to TRL】[GRPO] Sequence-level TIS + MIS(20251106)

TLDR

  • 整体内容总结:
    • 26年1月回顾补充:本文的方法已经被很多文章用到,比如 GLM 4.7,MiMo-V2 等技术博客
    • 论文对 MoE 模型上训练-推理概率不匹配的问题进行了初步分析
    • On-policy RL 训练的不稳定性可能源于训练引擎与推理引擎之间不断增大的概率差异
    • IcePop 通过在损失函数层面校正这种不匹配来解决该问题(本工作是 TIS 的续作)
    • 作者提出:未来的一个重要研究方向是正式刻画 崩溃边界(collapse boundary) 定义为 On-policy 训练变得不稳定时的临界概率差异,并研究该边界如何随模型规模、批次配置和引擎不匹配程度而变化
  • 近期工作 (2024) 强调了当前强化学习训练框架中模型训练与生成阶段之间存在不匹配的问题
    • 论文观察到,这个问题在 混合专家模型 中会 加剧
    • 特别是当模型倾向于生成长回复时,这种差异会 进一步放大
  • 尽管先前工作 (2024) 提出通过引入重要性采样校正来缓解此问题,但作者认为这种技术在训练进行时可能会在基准测试上遇到性能瓶颈
  • 论文提出了一种简单而有效的方法 IcePop ,即使在强大的经过监督微调的 MoE 模型上,也能通过 RL 实现稳定的训练和卓越的下游性能

The Mismatch Issue on MoE

  • 不匹配问题指的是当前 RL 训练框架中训练后端和推理引擎之间的概率差异,这不可避免地使 On-policy 训练变成了 Off-policy (2024)
  • 论文观察到,这种实现上的差距在 MoE 模型的 RL 训练期间变得更加显著
    • 与稠密模型不同,为了实现更高的参数效率,MoE 架构采用了一种路由机制,该机制在训练和推理期间仅为每个 Token 选择少数排名靠前的“专家”
    • 论文发现这种结构设计加剧了 On-policy RL 训练期间的不匹配问题,阻碍了 MoE 模型完全释放强化学习的潜力
  • 图 1. MoE 和稠密模型之间 \( |\log p_{\rm infer} - \log p_{\rm train}| \) 的比较
    • 论文选择了三个代表性模型:Ring-mini-2.0 (MoE)、Qwen3-4B (Dense)、Qwen3-30B-A3B (MoE),这表明 MoE 模型通常在训练和推理引擎之间表现出更大的差异
  • 根据下面的策略梯度方程,我们可以看到另一个不匹配问题出现了,即 \( \color{red}{\theta_{\rm infer} } \) 和 \( \color{blue}{\theta_{\rm train} } \)
  • 在 MoE 模型中,路由函数 \( \texttt{TopK}(\cdot) \) 为每个输入 Token 动态激活一个“专家”子集
  • 理想情况下,对于固定的输入,\( \texttt{TopK}(\cdot) \) 的输出应该与策略模型部署在哪个引擎上无关
  • 然而,当 \( \color{red}{\theta_{\rm infer} } \) 和 \( \color{blue}{\theta_{\rm train} } \) 之间存在显著差距时,将不可避免地导致 \( \color{red}{\pi_{\rm infer} } \) 和 \( \color{blue}{\pi_{\rm train} } \) 之间产生更大的分歧
    $$ \small{\begin{equation}\theta \leftarrow \theta + \mu \cdot \mathbb{E}_{a\sim \color{red}{\pi_{ {\rm{infer} } } }(\color{red}{\theta_{\rm infer} } ), \ \color{red}{\theta_{\rm infer} } \sim \mathtt{TopK}_{\rm infer}(a)}\left[ R(a) \cdot \nabla_{\theta}\log \color{blue}{\pi_{\rm{train} } }(a;\color{blue}{\theta_{\rm train} });\color{blue}{\theta_{\rm train} } \sim \texttt{TopK}_{\rm train}(a) \right]\end{equation} } $$
  • 对于 MoE 模型,论文确定了训练-推理差异问题的两个主要原因:
    • 训练和推理阶段选择的专家可能不同 (The selected experts may vary between training and inference stages.)
      • 论文之前的分析表明,即使在第一个 MoE 层,也已经有极少部分的 Token 在训练后端和推理引擎中激活了不同的专家
      • 例如,当选择 Top-k 和 Top-(k+1) 专家的概率非常接近时,即使微小的精度差异也可能导致在训练和推理期间选择不同的专家,从而导致计算出的概率出现巨大差异
    • 随着堆叠的路由网络增多,不匹配问题变得明显 (The mismatch becomes pronounced as more routing networks are stacked.)
    • 论文进一步注意到,随着 MoE 层数的加深,在训练后端和推理引擎中调用相同专家的 Token 比例迅速下降了约 10%
    • 在每一层,路由网络决定激活哪些专家。在一个深层的 MoE 模型中,它每层选择多个专家,因此每次调用 \(\texttt{TopK}(\cdot)\) 时即使是很小的差异也会累积起来,并随着深度的增加而被不断放大

What Effects Will It Bring to MoE RL?

概率差异会放大,尤其是对于长序列

  • The probability discrepancy becomes magnified, especially for long sequences.
  • 在训练刚开始时,论文发现某些 Token 位置已经存在明显的概率差异
  • 由于预测的自回归特性,出现在较后位置的 Token 更容易受到差异累积的影响,导致变化范围更广
  • 随着训练的进行,问题加剧:训练和推理引擎之间同一 Token 的概率差距在多个 Token 位置上持续增加,甚至影响到长序列中前面的 Token ,并使优化过程不稳定

不匹配问题会迅速导致 On-policy MoE RL 训练崩溃

  • The mismatch issue quickly causes crashes during on-policy MoE RL training.
  • 在 On-policy RL 训练中,与稠密模型相比,论文观察到负责生成长序列的 MoE 模型更容易受到此类不匹配问题的影响,常常导致训练崩溃
  • 例如,上图显示差异在 150 步后逐渐增加,一旦差异超过 0.05,训练基本上就失败了
  • 由于实现方式不同,概率差异可能会因复合效应而变得更大

附录:引理 (Compounding Probability Discrepancy,复合概率差异)

  • 令 \(\pi_{\text{infer} }(\cdot;\theta)\) 和 \(\pi_{\text{train} }(\cdot;\theta)\) 分别表示推理策略和训练策略
  • 定义第 \(t\) 步的概率差异为
    $$
    \delta_t = D_{\mathrm{KL} }\big(\pi_{\text{infer} }(\cdot;\theta_t)|\pi_{\text{train} }(\cdot;\theta_t)\big).
    $$
  • 该差异衡量了推理引擎的分布偏离训练引擎分布的程度
  • 在使用不匹配引擎进行 RL 训练期间,参数更新为
    $$
    \theta_{t+1} = \theta_t + \mu g_t,
    \qquad
    g_t = \mathbb{E}_{a\sim \pi_{\text{infer} }(\theta_t)} \big[R(a)\nabla_\theta \log \pi_{\text{train} }(a;\theta_t)\big].
    $$
  • On-policy 更新为 \(g_t^* = \mathbb{E}_{a\sim \pi_{\text{train} }(\theta_t)}[R(a)\nabla_\theta \log \pi_{\text{train} }(a;\theta_t)]\),偏差为 \(b_t = g_t - g_t^*\)
  • 假设以下局部条件对 \(\theta\) 成立
    • 1)平滑差异(Smooth discrepancy)
      • \(\delta(\theta)\) 是 \(L\)-平滑(\(L\)-smooth)的,满足 \(\big|\delta(\theta+\Delta)-\delta(\theta)\big| \le L|\Delta| + c_0 |\Delta|^2\),其中 \(c_0\) 是曲率常数
      • 这意味着小的参数更新仅导致差异发生小的变化
    • 2)偏差与差异成比例(Bias scales with discrepancy)
      • \(|b_t| \ge c_1\delta_t, ~~\big\langle \nabla_\theta \delta(\theta_t), b_t \big\rangle \ge c_2\delta_t\),其中 \(c_1\) 是偏差幅度系数,\(c_2\) 是偏差对齐系数
      • 不匹配越大,偏差推动其恶化的方向上的作用就越强
    • 3)有界的 On-policy 漂移(Bounded on-policy drift)
      • 存在 \(M\ge 0\),使得 \(\big|\langle \nabla_\theta \delta(\theta_t), g_t^* \rangle\big| \le M\)
      • 仅 On-policy 训练不会导致失控的发散;不稳定性主要源于偏差

Unleash MoE RL with IcePop: Discard All Noisy Gradient Updates(释放 MoE RL 的潜力:丢弃有噪声的梯度更新)

  • 为了解决上述问题,论文提出了一种简单而有效的技术,IcePop
  • 论文应用双向掩码来减轻概率差异的有害复合效应,仅保留健康的梯度更新
    • 双向裁剪(Double-sided clipping) :不仅裁剪那些 训练概率 远大于 推理概率 的 Token ,也裁剪那些 训练概率 远小于 推理概率 的 Token
    • 掩码(Masking) :差异过大 的 Token 将从梯度更新中移除
      $$ \small{\begin{align}\mathcal{J}_{ {\text{IcePop} } }(\theta) &= \mathbb{E}_{x \sim \mathcal{D}, \{y_i\}_{i=1}^G \sim \pi_{\color{red}{\text{infer} } }(\cdot \mid x; \theta_{\rm old})} \left[ \frac{1}{G} \sum_{i=1}^G \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \Big[\mathcal{M}\Bigl(\frac{\pi_{\color{blue}{\text{train} } }(y_{i,t} \mid x, y_{i,<t};\theta_{\text{old} })}{\pi_{\color{red}{\text{infer} } }(y_{i,t} \mid x, y_{i,<t}; \theta_{\mathrm{old} })}; \alpha, \beta\Bigr) \cdot \min \left( r_{i,t}\widehat{A}_{i,t}, \text{clip} \left( r_{i,t}, 1 - \varepsilon, 1 + \varepsilon \right) \widehat{A}_{i,t} \right) \right]\Bigg] &\end{align} } $$
      • \(r_{i,t}\) 的定义如下:
        $$ r_{i,t} = \frac{\pi_{\color{blue}{\text{train} } }(y_{i,t} \mid x, y_{i,< t}; \ \theta)}{\pi_{\color{blue}{\text{train} } }(y_{i,t} \mid x, y_{i,< t}; \ \theta_{\text{old} })} $$
      • 掩码函数:
        $$ \begin{equation} \mathcal{M}(k) =\begin{cases} k & \text{if } k \in [\alpha, \beta] \\ 0 & \text{otherwise}\end{cases} \end{equation} $$
        • 注:这个掩码方式在后来被其他文章称为 MIS(Masked Importance Sampling) ,相关博客When Speed Kills Stability: Demystifying RL Collapse from the Training-Inference Mismatch or 【PR to TRL】[GRPO] Sequence-level TIS + MIS
      • 两个超参数 \( \alpha \), \( \beta \) 来控制下限和上限
  • IcePop 的梯度为:
    $$ \small{\nabla_\theta \mathcal{J}_{\text{IcePop} }(\theta) \sim \small{\begin{equation}\mathbb{E}_{a \sim \color{red}{\pi_{\text{infer} } }(\theta_{\text{old} })} \Bigg[\mathcal{M}\Bigg(\frac{\color{blue}{\pi_{\text{train} } }(a;\theta_{\text{old} })}{\color{red}{\pi_{\text{infer} } }(a;\theta_{\text{old} })}\Bigg ) \cdot \nabla_\theta \log \color{blue}{\pi_{\text{train} } }(a;\theta) \cdot \hat{A} \cdot r(a)\Bigg)\Bigg].\end{equation} } } $$
  • 论文的工作与作者之前的工作 TIS (2024) 的区别:
    • 注:TIS(Truncated Importance Sampling)的参考链接为 Your Efficient RL Framework Secretly Brings You Off-Policy RL Training
    • 当 \( \dfrac{\color{blue}{\pi_{\text{train} } }(a;\theta_{\text{old} })}{\color{red}{\pi_{\text{infer} } }(a;\theta_{\text{old} })} < \alpha \) 时
      • \( \color{blue}{\pi_{\text{train} } } \) 倾向于给该动作分配一个较小的值,相反,\( \color{red}{\pi_{\text{infer} } } \) 输出一个较高的概率,当该比率足够小时,表明训练和推理引擎之间存在巨大差异
      • TIS 乘以一个小的系数来减轻有噪声的梯度更新,然而,随着训练的进行,论文发现这种微小的扰动会逐渐被放大,并最终导致基准测试性能陷入瓶颈
    • 当 \( \dfrac{\color{blue}{\pi_{\text{train} } }(a;\theta_{\text{old} })}{\color{red}{\pi_{\text{infer} } }(a;\theta_{\text{old} })} > \beta \) 时
      • \( \color{blue}{\pi_{\text{train} } } \) 倾向于给该动作分配一个较大的值,而 \( \color{red}{\pi_{\text{infer} } } \) 输出一个较低的概率
      • 在这种情况下,TIS 会直接裁剪掉该样本,因为它认为该样本对策略更新没有贡献
        • 但作者认为这可能过于激进,因为某些具有高优势估计的动作仍然可能提供有价值的信号
      • 论文的方法通过掩码机制,允许在差异可控的范围内保留这些更新
    • 个人理解:IcePop 其实和 TIS 是一样的,只是截断多了一个下界而已,原始 TIS 的损失函数为:
      $$
      \mathbb{E}_{a \sim \color{red}{\pi_{\text{sampler}}}(\theta)} \Bigl[\underbrace{\min\Bigl(\frac{\color{blue}{\pi_{\text{learner}}}(a, \theta)}{\color{red}{\pi_{\text{sampler}}}(a, \theta)}, C\Bigr)}_{\text{truncated importance ratio}} \cdot R(a) \cdot \nabla_\theta \log \color{blue}{\pi_{\text{learner}}}(a, \theta)\Bigr],
      $$
      • 或:
        $$
        \mathbb{E}_{a \sim \color{red}{\pi_{\text{sampler} }}(\theta_{old})} \left[ \underbrace{\min \left( \frac{\color{blue}{\pi_{\text{learner} }}(a, \theta_{old})}{\color{red}{\pi_{\text{sampler} }}(a, \theta_{old})}, C \right)}_{\text{truncated importance ratio}} \cdot \nabla_{\theta} \min \left( \frac{\color{blue}{\pi_{\text{learner} }}(a, \theta)}{\color{blue}{\pi_{\text{learner} }}(a, \theta_{old})} \hat{A}, \text{ clip} \left( \frac{\color{blue}{\pi_{\text{learner} }}(a, \theta)}{\color{blue}{\pi_{\text{learner} }}(a, \theta_{old})}, 1 - \epsilon, 1 + \epsilon \right) \hat{A} \right) \right]
        $$

附录:想了解 IcePop 这个名字背后的故事吗?

  • 作者是在享用冰棒(ice pops)时想到这个名字的!
  • 就像冰棒能缓解过热一样,该算法通过 双向裁剪 极端概率比并 掩码 差异过大的 Token ,来 “冷却” 不稳定的 On-policy 训练
  • 这种选择性校正 “剔除” 了不稳定的贡献,同时保留了有效的更新,从而在不拖慢推理速度的情况下稳定了训练

Experiments

  • 论文在 Ring-mini-2.0 模型上比较了三种设置,该模型是由 InclusionAI 开发的混合专家模型
  • 它拥有 16.8B 总参数和 0.75B 激活参数:
    • (1) IcePop
    • (2) TIS,
    • (3) 基线(不带 KL 项的普通 GRPO,该设置在多次重复运行中均失败并崩溃)
  • 论文收集了具有挑战性的推理问题作为训练数据集
  • 使用IcePop,论文发现可以有效解决在策略训练的不稳定性,甚至实现了比 TIS 更好的性能
  • 在下游任务上,IcePop 的表现优于 TIS 和 基线

模型评估

  • 在具有挑战性的基准测试 AIME25 上,IcePop 在整个训练过程中始终以较大优势优于 TIS ,最终将基础分数提高了超过 14% ,并将与 TIS 的性能差距扩大了相对 6%

More Analysis

Probability Discrepancy(概率差异)

  • 若不解决不匹配问题,概率差异会迅速增长,如基线设置所示
  • 相比之下,TIS和IcePop都将训练-推断概率的KL散度保持在合理范围内
    • 尽管随着训练的进行,三种方法的最大概率差异都在上升,但 IcePop 的差异仍然相对较低,甚至在 400 步内有所下降
    • 论文还注意到,TIS 始终表现出比论文的方法更大的极端差异和更快的增长,这可能是由于在训练中包含了噪声策略更新所致

Training Stability, 训练稳定性

  • 作者相信,稳定的训练过程是展示强化学习能力的坚实基础和充足空间
  • 值得注意的是,IcePop 和 TIS 都在 600 个梯度步内缓解了 RL 训练的不稳定性,避免了基线设置中发生的快速训练崩溃

Exploration Space

  • 论文观察到,IcePop 的对数概率始终保持在比 TIS 相对较低的值,这隐式表明论文的方法避免了过度自信的预测,从而确保了更大的探索空间范围,使得低概率 Token 更有可能被选择,最终增加了响应的多样性

Ill-conditioned Tokens(病态 Token)

  • 在论文的实验中,论文发现来自论文掩码机制的裁剪比率保持在训练 Token 的约 1-2%
  • 随着训练的进行,裁剪比率急剧上升,这表明逐渐出现微妙但有害的梯度更新,因此需要更高的裁剪比率
  • 论文还对裁剪掉的 Token 进行了详细分析
  • 下面的图11 显示,与所有 Token 相比,被裁剪的 Token 表现出更高的熵,这表明被裁剪的 Token 在训练中扮演着重要角色
  • 理解:
    • 熵低的 Token 是确定性比较高的,此时不管用什么引擎估计应该都不会差异太大,所以不容易被裁剪?
    • 熵高的 Token 则恰恰相反,不同的引擎差异可能很大,容易被裁剪

NLP——LLM对齐微调-GSPO

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(GSPO)Group Sequence Policy Optimization, 20250728, Qwen

Paper Summary

  • 整体总结:
    • GSPO 已经成为了 一种非常重要的 LLM RL 方法,是 RL 训练的一个基本选项(尤其在 MoE 模型训练中)
    • 群组序列策略优化(Group Sequence Policy Optimization, GSPO) 是一种用于训练 LLM 的新型强化学习算法(稳定、高效、性能优越)
    • GSPO 也遵循重要性采样的基本原则,基于序列似然定义重要性权重 ,并在 Sequence-level 进行裁剪、奖励和优化
      • 与 GRPO 相比,GSPO 展现出显著更优的训练稳定性、效率和性能,尤其在大规模 MoE 模型的 RL 训练中表现突出,为最新 Qwen3 模型的卓越改进奠定了基础
    • 以 GSPO 作为可扩展的算法基石,论文将继续推进 RL 的规模化,并期待由此带来的智能领域的根本性进步
  • 个人评价:直观上看,GSPO 更像是 GRPO 的简化版,放弃了对 Token-level 概率比值的使用,理论效果应该是不如 GRPO 的
  • 个人理解 GSPO 效果 比 GRPO 好的原因:
    • 相对 GRPO Token-level 比例截断的视角,GSPO 是 Sequence-level 的,GSPO 的损失函数设计本质是认为如果一个序列已经飘了(在截断外了),那么这个序列中所有的 Token 都不应该继续更新
    • 当整个序列的比例(新旧策略)差异太大时,即使某些 Token 比例差异不大,也不应该继续更新了,反正这个序列整体都已经飘了,所以不应该被用于梯度更新了,GRPO 继续保留的更新可能反而导致模型偏离想要的目标
  • GSPO 基于序列似然定义重要性比率(以往算法通常基于 Token-level 重要性比率的算法不同),并在 Sequence-level 进行裁剪、奖励和优化
  • 实验表明,GSPO 在训练效率和性能上均优于 GRPO 算法,显著稳定了 MoE 模型的强化学习训练,并具备简化强化学习基础设施设计的潜力
  • 注:文中提到,GSPO 的这些优势为最新 Qwen3 模型的显著性能提升做出了重要贡献

Introduction and Discussion

  • 强化学习已成为扩展语言模型能力的关键范式(OpenAI;DeepSeek-AI;Qwen)
  • 通过大规模强化学习,语言模型能够通过更深层次、更长的推理过程,解决复杂问题,例如竞赛级数学和编程任务
  • 为了成功扩展强化学习并投入更多计算资源 ,首要前提是保持训练动态的稳定性和鲁棒性 ,但当前 SOTA 强化学习算法(如 GRPO(2024))在训练超大规模语言模型时表现出严重的稳定性问题
    • 常常导致灾难性且不可逆的模型崩溃(Qwen,2025b;MiniMax,2025)
    • 这种不稳定性阻碍了通过持续强化学习训练进一步突破语言模型能力边界的努力
  • 论文指出,GRPO 的不稳定性源于其算法设计中重要性采样权重的误用和失效
    • 这引入了高方差的训练噪声,随着 Response 长度的增加而逐步累积,并进一步被裁剪机制放大,最终导致模型崩溃
  • 为了解决这些核心问题,论文提出了 群组序列策略优化(GSPO) ,这是一种用于训练大语言模型的新型强化学习算法
    • GSPO 的关键创新在于其基于序列似然(2023)的理论重要性比率定义,与重要性采样的基本原理一致
    • GSPO 将归一化奖励计算为对同一 Query 的多个 Response 的优势,确保 Sequence-level 奖励与优化的对齐
  • 论文的实验评估表明,GSPO 在训练稳定性、效率和性能上显著优于 GRPO
    • 重点:GSPO 从根本上解决了大规模 MoE 强化学习训练的稳定性挑战,无需复杂的稳定策略,并展现出简化强化学习基础设施的潜力

Preliminaries

Notation定义

  • 策略 \(\pi_{\theta}\) 表示参数化为 \(\theta\) 的自回归语言模型
  • \(x\) 表示 Query ,\(\mathcal{D}\) 表示 Query Set
  • 给定 Query \(x\) 的 Response \(y\),其在策略 \(\pi_{\theta}\) 下的似然表示为:
    $$
    \pi_{\theta}(y|x) = \prod_{t=1}^{|y|} \pi_{\theta}(y_t|x,y_{ < t}),
    $$
    • \(|y|\) 表示 \(y\) 的 Token 数量
    • Query-Response 对 \((x,y)\) 可以通过验证器(verifier) \(r\) 评分,得到奖励 \(r(x,y) \in [0,1]\)

Proximal Policy Optimization, PPO

  • PPO(2017)使用旧策略 \(\pi_{\theta_{\text{old} } }\) 生成的样本,通过裁剪机制将策略更新限制在旧策略的近端区域内
  • PPO 采用以下目标进行策略优化(为简洁起见,省略 KL 正则化项):
    $$
    \mathcal{J}_{\text{PPO} }(\theta) = \mathbb{E}_{x\sim\mathcal{D},y\sim\pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{|y|} \sum_{i=1}^{|y|} \min \left(w_t(\theta)\widehat{A}_t, \text{clip} \left(w_t(\theta),1-\epsilon,1+\epsilon\right) \widehat{A}_t \right) \right] \tag{1}
    $$
    • Token \(y_t\) 的重要性比率定义为 \(w_t(\theta) = \frac{\pi_{\theta}(y_t|x,y_{ < t})}{\pi_{\theta_{\text{old} } }(y_t|x,y_{ < t})}\)
    • 优势 \(\widehat{A}_t\) 由另一个价值模型估计
    • \(\epsilon\) 是重要性比率的裁剪范围
  • PPO 的核心挑战在于其对价值模型的严重依赖:价值模型通常与策略模型规模相当,带来了巨大的内存和计算负担
  • 而且 PPO 算法的有效性依赖于其价值估计的可靠性,而获取可靠的价值模型本身具有挑战性,尤其是在处理更长 Response 和更复杂任务时

Group Relative Policy Optimization, GRPO

  • GRPO(2024)通过计算同一 Query 的多个 Response 的相对优势,绕过了对价值模型的需求
  • GRPO 优化以下目标:
    $$
    \mathcal{J}_{\text{GRPO} }(\theta) = \mathbb{E}_{x\sim\mathcal{D}, (y_i)_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \min \left(w_{i,t}(\theta)\widehat{A}_{i,t}, \text{clip} \left(w_{i,t}(\theta),1-\epsilon,1+\epsilon\right) \widehat{A}_{i,t} \right) \right] \tag{2}
    $$
    • \(G\) 是每个 Query \(x\) 生成的 Response 数量(即群组大小)
    • Token \(y_{i,t}\) 的重要性比率 \(w_{i,t}(\theta)\) 和优势 \(\widehat{A}_{i,t}\) 定义为:
      $$
      w_{i,t}(\theta) = \frac{\pi_{\theta}(y_{i,t}|x,y_{i,<t})}{\pi_{\theta_{\text{old} } }(y_{i,t}|x,y_{i,<t})}, \quad \widehat{A}_{i,t} = \widehat{A}_i = \frac{r(x,y_i) - \text{mean}(\{r(x,y_i)\}_{i=1}^G)}{\text{std}(\{r(x,y_i)\}_{i=1}^G)} \tag{3}
      $$
      • 同一个 \(y_i\) 中所有的 Token \(y_{i,t}\) 共享同一个 \(\widehat{A}_{i}\),即\(\widehat{A}_{i,t} = \widehat{A}_{i}\)

Motivation

  • 随着模型规模、稀疏性(例如 MoE)和 Response 长度的增长,为了最大化硬件利用率,需要在强化学习中使用更大的批次大小
    • 这里大批次是指样本采样数量
  • 为了提高样本效率,通常将大批次数据划分为多个小批次进行梯度更新
    • 这一过程不可避免地引入了 off-policy learning 的设置,即 Response \(y\) 是从旧策略 \(\pi_{\theta_{\text{old} } }\) 而非当前优化策略 \(\pi_{\theta}\) 中采样的
    • 这也解释了 PPO 和 GRPO 中裁剪机制的必要性,其目的是防止过于 “Off-policy” 的样本参与梯度估计(裁剪等机制旨在管理这种 Off-policy 差异)
  • 论文发现 GRPO 存在一个更根本的问题:其目标是不适定的(its objective is ill-posed)
    • 注:ill-posed 特指结果对输入数据非常敏感,以至于任何微小的误差都会导致结果有非常大的变化
    • 这一问题在训练大模型处理长 Response 任务时尤为突出,会导致灾难性的模型崩溃
    • GRPO 目标的不适定性源于重要性采样权重的误用 :重要性采样的基本原理是通过对从行为分布 \(\pi_{\text{beh} }\) 中采样的样本进行重新加权,估计目标分布 \(\pi_{\text{tar} }\) 下函数 \(f\) 的期望:
      $$
      \mathbb{E}_{z\sim\pi_{\text{tar} } } [f(z)] = \mathbb{E}_{z\sim\pi_{\text{beh} } } \left[\frac{\pi_{\text{tar} }(z)}{\pi_{\text{beh} }(z)} f(z) \right] \tag{4}
      $$
    • 关键在于,这依赖于从行为分布 \(\pi_{\text{beh} }\) 中采样多个样本(\(N \gg 1\)),使得重要性权重 \(\frac{\pi_{\text{tar} }(z)}{\pi_{\text{beh} }(z)}\) 能够有效校正分布不匹配
    • GRPO 在每个 Token 位置 \(t\) 应用重要性权重 \(\frac{\pi_{\theta}(y_{i,t}|x,y_{i,< t})}{\pi_{\theta_{\text{old} } }(y_{i,t}|x,y_{i, < t})}\)
      • 由于该权重基于每个 Next Token 分布 \(\pi_{\theta_{\text{old} } }(\cdot|x,y_{i, < t})\) 的单个样本 \(y_{i,t}\),它无法实现预期的分布校正作用 ,反而向训练梯度中引入了高方差噪声
        • 理解:这里说的高方差噪声是因为 Token-level 的校准本身是数学上无偏的 Sequence-level 的校准的一个一阶近似,这个近似本身就存在噪音
        • 理解2:GSPO 使用了几何平均而不是直接连乘(不是原始的重要性采样),重要性采样系数的方差确实会非常小(与 \(\frac{1}{T}\) 呈现正比)
      • 这种噪声会随着长序列累积 ,并被裁剪机制进一步放大,最终导致模型崩溃
        • 理解:其实序列变长以后,应该 Sequence-level 的校准本身的波动更大,更容易将所有的 Token 都过滤掉
      • 问题1:为什么单个样本无法校正?
        • 回答1:因为数学上完美的校正是需要公式 4 中这种 Sequence-level 做重要性采样,不能是 Token-level 的(其实 Token-level 的校准是一个一阶近似)
        • 在文章 (MiniRL)Stabilizing Reinforcement Learning with LLMs: Formulation and Practices, 20251201, Qwen 中有介绍,在本人的解读博客 NLP——LLM对齐微调-MiniRL 中包含一些个人理解和讨论
      • 问题2:裁剪机制只会缓解方差增大的这个问题,不会放大这个问题吧?
        • 理解:其实这里的表达应该是主要指 Token-level 的校准本身是一种近似,那么一些不需要裁剪值被裁剪了(比如 Token-level 超出上下界了,但是 Sequence-level 没有超出,那本来是不需要截断梯度的),这就导致了与原始最优的(无偏的)Sequence-level 的校准出现一些更多差距
  • 论文通过实验观察到,这种崩溃通常是不可逆的,即使回退到之前的检查点并精心调整超参数(例如裁剪范围)、延长生成长度或切换强化学习 Query,也无法恢复训练
  • 上述观察表明 GRPO 的设计存在根本性问题
    • Token-level 重要性权重的失效揭示了一个核心原则:优化目标的单位应与奖励的单位一致(the unit of optimization objective should match the unit of reward)
    • 由于奖励是针对整个序列分配的,在 Token-level 应用 Off-policy 校正显然存在问题
    • 这促使论文放弃 Token-level 目标,探索直接在 Sequence-level 使用重要性权重并进行优化

Algorithm

GSPO: Group Sequence Policy Optimization

  • GRPO 中的 Token-level 重要性权重 \(\frac{\pi_{\theta}(y_{i,t}|x,y_{i,< t})} {\pi_{\theta_{\text{old} } }(y_{i,t}|x,y_{i,< t})}\) 存在问题
  • 论文观察到,在语言生成的上下文中, Sequence-level 的重要性权重 \(\frac{\pi_{\theta}(y|x)}{\pi_{\theta_{\text{old} } }(y|x)}\) 具有明确的理论意义:
    • 它反映了从 \(\pi_{\theta_{\text{old} } }(\cdot|x)\) 采样的 Response \(y\) 与 \(\pi_{\theta}(\cdot|x)\) 的偏离程度,这自然与 Sequence-level 的奖励对齐,同时也可以作为剪裁机制的有意义指标
  • 基于这一简单观察,论文提出了序列组策略优化(Group Sequence Policy Optimization, GSPO)算法
  • GSPO 采用以下 Sequence-level 的优化目标:
    $$
    \mathcal{J}_{\text{GSPO} }(\theta) = \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \min \left(s_i(\theta)\widehat{A}_i, \text{clip}(s_i(\theta), 1-\varepsilon, 1+\varepsilon) \widehat{A}_i\right)\right] \tag{5}
    $$
    • 采用基于组的优势估计:
      $$
      \widehat{A}_i = \frac{r(x,y_i) - \text{mean}(\{r(x,y_i)\}_{i=1}^G)}{\text{std}(\{r(x,y_i)\}_{i=1}^G)} \tag{6}
      $$
    • 并基于序列似然(2023)定义重要性比率 \(s_i(\theta)\):
      $$
      s_i(\theta) = \left(\frac{\pi_{\theta}(y_i|x)}{\pi_{\theta_{\text{old} } }(y_i|x)}\right)^{\frac{1}{|y_i|} } = \exp\left(\frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \log \frac{\pi_{\theta}(y_{i,t}|x,y_{i,<t})}{\pi_{\theta_{\text{old} } }(y_{i,t}|x,y_{i,<t})}\right) \tag{7}
      $$
      • 问题:\(\left(\frac{\pi_{\theta}(y_i|x)}{\pi_{\theta_{\text{old} } }(y_i|x)}\right)^{\color{red}{\frac{1}{|y_i|} }}\) 中为什么要使用 \(\color{red}{\frac{1}{|y_i|} }\) ? 这不符合重要性采样的形式吧!
      • 理解:这里是相当于有点对所有的 Token 的比例对数求平均,再求指数的意思,核心是将 Token 粒度的重要性比例替换成经过 “几何平均(Geometric Mean)“ 后的 Sequence 粒度的(同一个 Sequence 所有 Token 共享的)重要性比例
        • 补充:几何平均(Geometric Mean,GM)的定义:
          $$ \exp\left(\frac{1}{|x|} \sum_{t=1}^{|x|} \log x_t\right) = (\prod_{t=1}^{|x|} x_t)^{\frac{1}{|x|}}$$
        • GSPO 对重要性权重做几何平均之后,就不再是严格、完美的重要性采样(IS)了
        • GSPO 放弃了 “数学上严格等价”,换来的是训练可收敛、方差可控,详情见本文附录的讨论
      • 几何平均的缺点
        • “数学上不再严格等价”
      • 几何平均的优点包括: 序列级长度归一化、抑制长序列方差爆炸、稳定训练 等
        • 优点 1):解决长序列“方差爆炸”(最关键)
          • 原始的序列级别校准公式中,序列越长 \(L\),权重极易指数级变大/变小 ,梯度剧烈波动、训练崩溃
          • 几何平均(开 \(L\) 次方):把乘积变成取对数后平均 ,方差随 \(L\) 线性减小而非指数爆炸 (特别注意:几何平均下,这里的方差随着序列长度 \(L\) 的增加是逐渐变小的,而不是变大,详细证明见本博客附录),训练更稳定
            • 举一个直观的例子:如果比例是 1.1,那么 Token 数量为 500 时:
              • 直接的乘积值是指数增长的
                $$ 1.1^{500} \approx 4.9 \times 10^{20} $$
              • 几何平均的结果是收敛到常数 1.1 的
                $$ {(1.1^{500}})^{\frac{1}{500}} = 1.1 $$
        • 优点 2):长度归一化,统一不同长度序列的权重尺度
          • 不同长度序列(如10token vs 100token)的原始似然比量级天差地别
          • 几何平均自动做长度归一化:把权重统一到“单token平均似然比”,让长短序列在同一尺度比较、公平加权
        • 优点 3):数值稳定:避免连乘下溢/上溢
          • 直接连乘长序列似然比,极易数值下溢(趋近0)或上溢(无穷大)
          • 几何平均在对数空间求和再平均、再exp,全程数值稳定,计算可靠
            $$
            s_i(\theta) = \left( \frac{\pi_\theta(y_i|x)}{\pi_{\theta_{\text{old}}}(y_i|x)} \right)^{\frac{1}{|y_i|}}
            = \exp\left( \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \log \frac{\pi_\theta(y_{i,t}|x,y_{i,<t})}{\pi_{\theta_{\text{old}}}(y_{i,t}|x,y_{i,<t})} \right)
            $$
  • 问题:为什么 GSPO 的公式中不需要对 Token 数做归一化了?
    • GSPO 的 token内部取平均这个事情变成了几何平均,在指数上做了的平均,其实仍然每个 Token 都会有梯度被更新的
    • 从原来的 token 相加再取均值,变成相乘直接求平均,只是 GSPO 中 所有 Token 必须共享相同 Advantage 了(原始 GRPO 中,仅从目标函数的公式看,其实同一个 Sequence 的不同 Token 的 Advantage 可以不同(虽然目前实现是让他们相同))
  • GSPO 对整个 Response 而非单个 token 应用剪裁,以排除过于 “Off-policy” 的样本进行梯度估计 ,这与 Sequence-level 的奖励和优化相匹配
    • 问题:过于 “Off-policy” 的样本进行梯度估计 的问题依然存在吧,只是减少了一些,允许一个序列整体进行比较而不是单个Token,波动更小些?
  • 特别注意:论文在 \(s_i(\theta)\) 中采用了长度归一化以减少方差 ,并将 \(s_i(\theta)\) 控制在统一的数值范围内
    • 否则,少数 token 的似然变化可能导致 Sequence-level 重要性比率的剧烈波动,而不同长度 Response 的重要性比率将需要不同的剪裁范围
    • 此外,由于重要性比率的定义不同,GSPO 与先前算法(如 GRPO)的剪裁范围通常在数量级上存在差异
  • 补充,对 GSPO 的个人理解 :
    • GSPO 更像是将整个序列决策看成是一个 Action,而不是将单个 Token 看成是一个 Action,这在传统强化学习建模的视角看没有问题,但是在 LLM 的场景上看,丢失了很多中间 Token 的生成过程和概率波动,个人感觉不是很合适

Gradient Analysis

  • 我们可以推导 GSPO 目标的梯度如下(为简洁起见省略了剪裁部分):
    $$
    \begin{align}
    \nabla_{\theta} \mathcal{J}_{\text{GSPO} }(\theta) &= \nabla_{\theta} \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G s_i(\theta)\widehat{A}_i\right] \\
    &= \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G s_i(\theta)\widehat{A}_i \cdot \nabla_{\theta} \log s_i(\theta)\right] \\
    &= \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \left(\frac{\pi_{\theta}(y_i|x)}{\pi_{\theta_{\text{old} } }(y_i|x)}\right)^{\frac{1}{|y_i|} } \widehat{A}_i \cdot \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \nabla_{\theta} \log \pi_{\theta}(y_{i,t}|x,y_{i,<t})\right] \tag{8-10}
    \end{align}
    $$
  • 作为对比,GRPO 目标的梯度如下(注意 \(\widehat{A}_{i,t} = \widehat{A}_i\)):
    $$
    \begin{align}
    \nabla_{\theta} \mathcal{J}_{\text{GRPO} }(\theta) &= \nabla_{\theta} \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} w_{i,t}(\theta)\widehat{A}_{i,t}\right] \\
    &= \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \widehat{A}_i \cdot \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \frac{\pi_{\theta}(y_{i,t}|x,y_{i,<t})}{\pi_{\theta_{\text{old} } }(y_{i,t}|x,y_{i,<t})} \nabla_{\theta} \log \pi_{\theta}(y_{i,t}|x,y_{i,<t})\right] \tag{11-12}
    \end{align}
    $$
  • 因此,GSPO 与 GRPO 的根本区别在于它们如何对 token 对数似然的梯度进行加权
    • 在 GRPO 中,token 根据各自的“重要性权重” \(\frac{\pi_{\theta}(y_{i,t}|x,y_{i,< t})}{\pi_{\theta_{\text{old} } }(y_{i,t}|x,y_{i,< t})}\) 进行加权
      • 然而,这些不相等的权重可能在 \((0, 1+\varepsilon]\)(对于 \(\widehat{A}_i > 0\))或 \([1-\varepsilon, +\infty)\)(对于 \(\widehat{A}_i < 0\))之间变化,其影响不可忽视,并且会随着训练的进行累积,导致不可预测的后果
      • 问题:这可以通过别的手段来解决吧?有必要直接取消这种 Token-level 方式,转向 Sequence-level 吗?
    • GSPO 对 Response 中的所有 token 进行平等加权,消除了 GRPO 的这一不稳定因素

GSPO-token:A Token-level Objective Variant

  • 在多轮强化学习等场景中,论文可能希望比 Sequence-level 更细粒度地调整优势
  • 为此,论文引入了 GSPO 的 Token-level 目标变体,即 GSPO-token ,以实现 Token-level 的优势定制:
    $$
    \mathcal{J}_{\text{GSPO-token} }(\theta) = \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \min \left(s_{i,t}(\theta)\widehat{A}_{i,t}, \text{clip}(s_{i,t}(\theta), 1-\varepsilon, 1+\varepsilon) \widehat{A}_{i,t}\right)\right] \tag{13}
    $$
    • 相对原始的 GSPO,将整体变成 Token level 的同时,使用了非常巧妙的 IS 系数转变:
      $$
      s_{i,t}(\theta) = \text{sg}[s_i(\theta)] \cdot \frac{\pi_{\theta}(y_{i,t}|x,y_{i,<t})}{\text{sg}[\pi_{\theta}(y_{i,t}|x,y_{i,<t})]},
      $$
    • 回顾 上文中的 原始 GSPO:
      • 原始 GSPO 采用以下 Sequence-level 的优化目标 :
        $$
        \mathcal{J}_{\text{GSPO} }(\theta) = \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \min \left(s_i(\theta)\widehat{A}_i, \text{clip}(s_i(\theta), 1-\varepsilon, 1+\varepsilon) \widehat{A}_i\right)\right] \tag{5}
        $$
      • 并基于序列似然定义重要性比率 \(s_i(\theta)\):
        $$
        s_i(\theta) = \left(\frac{\pi_{\theta}(y_i|x)}{\pi_{\theta_{\text{old} } }(y_i|x)}\right)^{\frac{1}{|y_i|} } = \exp\left(\frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \log \frac{\pi_{\theta}(y_{i,t}|x,y_{i,<t})}{\pi_{\theta_{\text{old} } }(y_{i,t}|x,y_{i,<t})}\right) \tag{7}
        $$
    • 注意:这里可以看到,与原始 GSPO 的主要区别在于:
      • 1)\(s_i(\theta) \rightarrow s_{i,t}(\theta)\),重要性采样系数 发生变化
        • 值相等,但策略值粒度从 Sequence-level 变成 Token-level 有变化
        • 因为值相等,所以重要性采样系数还是所有 Token 相同的,并不改变这个逻辑,也就是说一旦发生过滤,会整个 Sequence 整体过滤
      • 2)\(\widehat{A}_{i} \rightarrow \widehat{A}_{i,t}\),这里的优势可以是 Token 粒度的了
    • \(\text{sg}[\cdot]\) 表示仅取值但停止梯度,对应于 PyTorch 中的 detach 操作,GSPO-token 的梯度可以推导为:
      $$
      \begin{align}
      \nabla_{\theta} \mathcal{J}_{\text{GSPO-token} }(\theta) &= \nabla_{\theta} \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} s_{i,t}(\theta)\widehat{A}_{i,t}\right] \\
      &= \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G s_i(\theta) \cdot \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \widehat{A}_{i,t} \frac{\nabla_{\theta} \pi_{\theta}(y_{i,t}|x,y_{i,<t})}{\pi_{\theta}(y_{i,t}|x,y_{i,<t})}\right] \\
      &= \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \left(\frac{\pi_{\theta}(y_i|x)}{\pi_{\theta_{\text{old} } }(y_i|x)}\right)^{\frac{1}{|y_i|} } \cdot \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \color{red}{\widehat{A}_{i,t}} \nabla_{\theta} \log \pi_{\theta}(y_{i,t}|x,y_{i,<t})\right] \tag{15-17}
      \end{align}
      $$
      • GSPO-token 与原始 GSPO 的主要区别在于:
        • GSPO 的目标函数中使用的优势函数是 Sequence-level 的 \(\widehat{A}_{i}\)
        • GSPO-token 的目标函数中使用的优势函数是 Token-level 的 \(\color{red}{\widehat{A}_{i,t}}\),这允许同一个序列中,不同的 Token 使用不同的值
      • GSPO-token 的优点 :通过巧妙的设计 \(s_{i,t}(\theta) = \text{sg}[s_i(\theta)] \cdot \frac{\pi_{\theta}(y_{i,t}|x,y_{i,< t})}{\text{sg}[\pi_{\theta}(y_{i,t}|x,y_{i, < t})]}\),使得损失函数既保持了原始 GSPO 的 Sequence-level IS 能力,同时又可以使用 Token-level 的 Advantage(适配如多轮 RL 等场景下需要不同 Advantage 的场景)
  • 论文中特别提到:
    • 项 \(\frac{\pi_{\theta}(y_{i,t}|x,y_{i,< t})}{\text{sg}[\pi_{\theta}(y_{i,t}|x,y_{i,< t})]}\) 的数值为 1,因此 \(s_{i,t}(\theta)\) 在数值上等于 \(s_i(\theta)\)
    • 非常重要的结论: GSPO 和 GSPO-Token 等价性分析
      • 当 Response \(y_i\) 中所有 token 的优势设置为相同值(即 \(\widehat{A}_{i,t} = \widehat{A}_i\))时,GSPO-token 和 GSPO 在优化目标、剪裁条件和理论梯度上是数值相同的
      • 对比原始目标:比较公式 (5) 和 (13),以及公式 (10) 和 (17),目标函数数值上没有差异
      • 对比梯度信息:比较公式 (11-12) 和 公式 (15-17),梯度中的唯一差异在于同一个 Sequence 的优势函数是否在 Token 间共享
      • GSPO-token 具有更高的灵活性,可以按 token 调整优势

Experiments and Discussion

Empirical Results

  • 论文从一个基于 Qwen3-30B-A3B-Base 微调的冷启动模型开始实验,并报告了以下内容:
    • 训练奖励曲线
    • 在多个基准上的模型性能曲线:
      • AIME’24(32 次采样的平均 Pass@1)
      • LiveCodeBench(202410-202502,8 次采样的平均 Pass@1)
      • CodeForces(Elo 评分)
    • 在强化学习训练过程中,每个批次的 rollout 数据被划分为四个小批次用于梯度更新
    • 在 GSPO 中,论文做如下设定
      • 将公式 (5) 中的左右裁剪范围分别设置为 \(3 \times 10^{-4}\) 和 \(4 \times 10^{-4}\),即 [1 - 3e-4, 1 + 4e-4]
        • 理解:GSPO 的重要性权重是几何平均,本质上方差会随着长度的增加而变小,所以 Clip 时需要用更小的值
        • 特别注意:在我们实现 GSPO 后,对应的阈值(GRPO/PPO 通常为 [0.8,1.28]或[0.8,1.2]),若不修改,会导致 GSPO 几乎不过滤 Token
      • 将 GRPO 作为基线进行比较,并对其公式 (2) 中的左右裁剪范围(the left and right clipping ranges)分别设置为 0.2 和 0.27(这些参数经过精心调整以确保公平比较,原始 GAPO 论文好像用的是0.2 和 0.28)
  • 需要注意的是,GRPO 必须依赖路由回放(Routing Replay)训练策略才能实现 MoE 模型 RL 的正常收敛,论文将在 5.3 节进一步讨论这一点,而 GSPO 则完全不需要这一策略
  • 图 1 显示,GSPO 的训练过程始终稳定
    • 论文观察到,GSPO 能够通过增加训练计算量、定期更新 Query Set 以及延长生成长度,持续提升模型性能
    • 在相同的训练计算量和 Query 消耗下,GSPO 的训练效率和基准测试表现均优于 GRPO
  • 最终,论文成功将 GSPO 应用于最新 Qwen3 模型的 RL 训练中 ,充分证明了 GSPO 在释放大规模 RL 训练潜力方面的有效性

Curious Observation on Clipping Fractions

  • GSPO 与 GRPO 的一个关键区别在于,GSPO 是对整个 Response 进行裁剪,而非单个 token
  • 如图 2 所示,论文观察到 GSPO 和 GRPO 在裁剪 token 比例上存在两个数量级的差异(调整裁剪范围不会改变这种差异)
    • 尽管 GSPO 裁剪了更多 token ,从而用于训练的 token 更少(或梯度估计更少),但其训练效率仍高于 GRPO
      • 理解(为什么 GSPO 裁剪更多?):因为 GSPO 一旦裁剪就是整个序列一起裁剪,此时整个 Sequence 的所有 Token 都被裁剪了
        • 而且,GSPO 的重要性权重是几何平均,本质上方差会随着长度的增加而变小,所以 Clip 时需要用更小的值,本文作者做实验时使用的 clip 范围是很小的(前文提到实验设置中上下 Clip 范围是 \(3 \times 10^{-4}\) 和 \(4 \times 10^{-4}\)),即 [1 - 3e-4, 1 + 4e-4]
      • 理解(为什么 GSPO 效果更好?):因为当整个序列的比例(新旧策略)差异太大时,即使某些 Token 比例差异不大,也不应该继续更新了?反正这个序列整体都已经飘了,所以不应该被用于梯度更新了,GRPO 继续保留的更新可能反而导致模型偏离想要的目标
    • 这一反直觉的发现:裁剪更多 token 反而能带来更高的训练效果 ,进一步表明,GRPO 的 Token-level 梯度估计本质上存在噪声,样本利用效率较低
    • 相比之下,GSPO 的 Sequence-level 方法提供了更可靠且高效的学习信号

Benefit of GSPO for MoE Training

Background
  • 与 Dense 模型的 RL 训练相比,MoE 模型的稀疏激活特性带来了独特的稳定性挑战
  • 论文发现,在使用 GRPO 算法时,MoE 模型的 专家激活波动性(expert-activation volatility) 会导致 RL 训练无法正常收敛
    • 具体来说:经过一次或多次梯度更新后,同一 Response 激活的专家可能发生显著变化
    • 例如,对于 48 层的 Qwen3-30B-A3B-Base 模型,每次 RL 梯度更新后,同一 rollout 样本在新策略 \(\pi_{\theta}\) 下激活的专家中,约有 10% 与旧策略 \(\pi_{\theta_{\text{old} } }\) 不同
    • 这一现象在更深的 MoE 模型中更为突出,导致 Token-level 重要性权重 \(w_{i,t}(\theta) = \frac{\pi_{\theta}(y_{i,t}|x,y_{i,< t})}{\pi_{\theta_{\text{old} } }(y_{i,t}|x,y_{i,< t})}\) 剧烈波动,进一步使其失效(如 3 节和 4.2 节所述),从而阻碍 RL 训练的正常收敛
Our Previous Approach
  • 为解决这一问题,论文此前采用了 路由回放(Routing Replay) 训练策略
    • 具体来说:论文缓存 \(\pi_{\theta_{\text{old} } }\) 中激活的专家,并在计算重要性权重 \(w_{i,t}(\theta)\) 时在 \(\pi_{\theta}\) 中“回放”这些路由模式
    • 这样,对于每个 token \(y_{i,t}\),\(\pi_{\theta}(y_{i,t}|x,y_{i,< t})\) 和 \(\pi_{\theta_{\text{old} } }(y_{i,t}|x,y_{i,< t})\) 共享相同的激活网络,从而恢复 Token-level 重要性权重的稳定性,并确保梯度更新中对一致激活网络的优化
  • 图 3 表明,路由回放是 GRPO 训练 MoE 模型正常收敛的关键技术
Benefit of GSPO
  • 尽管路由回放使 GRPO 训练 MoE 模型能够正常收敛,但其复用路由模式的做法会带来额外的内存和通信开销,并可能限制 MoE 模型的实际容量
  • 相比之下,如图 1 所示,GSPO 完全摆脱了对路由回放的依赖,能够常规计算重要性权重 \(s_{i}(\theta)\),正常收敛并稳定优化
    • 关键在于,GSPO 仅关注序列似然(即 \(\pi_{\theta}(y_{i}|x)\)),而对单个 token 似然(即 \(\pi_{\theta}(y_{i,t}|x,y_{i,< t})\))不敏感
    • 由于 MoE 模型始终保留其语言建模能力,序列似然不会剧烈波动
  • 总之,GSPO 从根本上解决了 MoE 模型中的专家激活波动问题,无需复杂的路由回放等变通方法,这不仅简化并稳定了训练过程,还使模型能够充分发挥其全部容量

Benefit of GSPO for RL Infrastructure

  • 由于训练引擎(如 Megatron)与推理引擎(如 SGLang 和 vLLM)之间的精度差异,实践中论文通常使用训练引擎重新计算旧策略 \(\pi_{\theta_{\text{old} } }\) 下采样 Response 的似然
  • GSPO 仅使用 Sequence-level 而非 Token-level 似然进行优化,而 Sequence-level 对精度差异的容忍度更高
    • GSPO 可以直接使用推理引擎返回的似然进行优化 ,从而避免重新计算的开销(注:非常好的做法!!!算是 GSPO 的核心优势了)
    • 这在部分 rollout、多轮 RL 以及训练-推理分离框架等场景中尤为有益

附录:Well-posed 问题 和 Ill-posed 问题

  • Well-posed 问题 (适定问题) 和 Ill-posed(不适定问题) 通常用于数学和物理领域,用来描述某些问题在解决时存在的困难
  • Well-posed 问题 (适定问题) 需要同时满足下面三个条件
    • 1)解的存在性 (Existence): 这个问题至少有一个解
    • 2)解的唯一性 (Uniqueness): 这个问题只有一个唯一的解
    • 3)解的稳定性 (Stability): 问题的解对初始条件或输入数据的微小变化是连续依赖的
      • 换句话说,如果输入数据发生一点点变化,解也只会发生一点点变化
      • 如果输入数据的一点点变化导致解发生巨大的变化,那么这个问题就是不稳定的
  • 一个问题不满足以上三个条件中的至少一个,则称为 Ill-posed 问题
  • 简单来说,ill-posed 问题就是那些在数学上很“棘手”的问题,它们可能没有解,或者解不唯一,或者更常见的是,它们的解对输入数据非常敏感,以至于任何微小的误差都会导致结果完全不可信
    • 文本的 Token-level IS 就是这种情况,对数据输入非常敏感,每个 Token 上出现任何问题,都会导致这个 Token 被意外 Clip,从而结果完全不可信

附录:几何平均 vs 乘法下,方差随队列长度的变化

  • 设定:每个 token 的重要性比率 \(r_t\) 是独立同分布的随机变量,其均值为 \(\mu\),方差为 \(\sigma^2\)
  • 目标:随着序列长度 \(T\) 的增加,直接乘积 \(P_T\) 和几何平均 \(G_T\) 的方差如何变化

直接乘积 \(P_T = \prod_{t=1}^T r_t\) 的方差

  • 由于 \(r_t\) 相互独立,乘积的期望等于期望的乘积
    $$
    \text{Var}(P_T) = \mathbb{E}[P_T^2] - (\mathbb{E}[P_T])^2
    $$
    • 其中:
      $$
      \begin{align}
      \mathbb{E}[P_T] &= \prod_{t=1}^T \mathbb{E}[r_t] = \mu^T \\
      \mathbb{E}[P_T^2] &= \prod_{t=1}^T \mathbb{E}[r_t^2] = \prod_{t=1}^T (\text{Var}(r_t) + (\mathbb{E}[r_t])^2) = (\sigma^2 + \mu^2)^T
      \end{align}
      $$
  • 因此:
    $$
    \text{Var}(P_T) = (\sigma^2 + \mu^2)^T - \mu^{2T}
    $$
方差随 \(T\) 的增长规律分析
  • 方差由两个指数项构成
  • 当 \(\mu > 1\) 时:
    • 两项都指数级增长,但 \((\sigma^2 + \mu^2) > \mu^2\),所以第一项增长更快
    • \(\text{Var}(P_T)\) 随着 \(T\) 增加而指数级爆炸式增长
  • 当 \(\mu < 1\) 时:
    • 两项都指数级衰减到 0
    • 相对而言,\(\text{Var}(P_T)\) 随着 \(T\) 增加而指数级衰减
  • 当 \(\mu = 1\) 时: 其实这是重要性采样中最理想但也最脆弱的情况
    • 此时 \(\text{Var}(P_T) = (1 + \sigma^2)^T - 1\)
    • 只要 \(\sigma^2 > 0\)(即 \(r_t\) 不是恒为 1),方差依然随着 \(T\) 增加而指数级增长
  • 结论:除非 \(r_t\) 恒等于 1(即 \(p\) 和 \(q\) 完全相同),否则直接乘积 \(P_T\) 的方差会随着序列长度 \(T\) 的增加而指数级增长
    • 这也是 LLM 场景中,重要性采样在实际应用中面临的“方差爆炸”问题,导致估计量极其不稳定,几乎不可用

几何平均 \(G_T = \left( \prod_{t=1}^T r_t \right)^{1/T}\) 的方差

  • 分析几何平均的方差,我们先在对数空间进行,然后再 exp 回去
  • 令 \(Y_t = \log r_t\),并假设 \(Y_t\) 独立同分布,其均值为 \(\mu_y\),方差为 \(\sigma_y^2\)
    $$
    \log G_T = \frac{1}{T} \sum_{t=1}^T Y_t \\
    \mathbb{E}[\log G_T] = \mu_y\\
    \text{Var}(\log G_T) = \frac{\sigma_y^2}{T}
    $$
  • 现在我们想求 \(G_T = \exp(\log G_T)\) 本身的方差
    • 根据中心极限定理,当 \(T\) 较大时 \(\log G_T = \frac{1}{T} \sum_{t=1}^T Y_t\) 为正太分布是近似成立的,所以我们假定 \(\log G_T\) 是正态分布,那么 \(G_T\) 近似服从对数正态分布(如果一个随机变量 X,取完对数后服从正态分布,那 X 就服从对数正态分布)
    • 对于一个对数正态变量,其方差为:
      $$
      \text{Var}(G_T) \approx \left( \exp(\sigma_y^2 / T) - 1 \right) \cdot \exp(2\mu_y + \sigma_y^2 / T)
      $$
方差随 \(T\) 的增长规律
  • 方差公式中的关键项是 \(\sigma_y^2 / T\),它出现在指数函数的参数中
  • 当 \(T\) 很小时: \(\sigma_y^2 / T\) 可能比较大,\(G_T\) 的方差可能较大
  • 当 \(T\) 增大时: \(\sigma_y^2 / T\) 趋向于 0
    • 利用近似 \(e^x \approx 1 + x\)(当 \(x\) 很小时),有:
      $$
      \text{Var}(G_T) \approx \left( (1 + \frac{\sigma_y^2}{T}) - 1 \right) \cdot \exp(2\mu_y) = \frac{\sigma_y^2}{T} \cdot \exp(2\mu_y)
      $$
  • 结论:随着 \(T\) 的增加,几何平均 \(G_T\) 的方差以 \(1/T\) 的速度衰减到 0
  • 直观上理解,几何平均可变换形式成 对数平均再取指数的形式,主要是在平均时实现了方差的缩小

更多讨论

  • 为了更直观地感受这种差异,这里给一张对比表(假设 \(\mu = 1, \sigma^2 = 0.1\),即 \(r_t\) 围绕 1 波动):
    序列长度 \(T\) 直接乘积 \(P_T\) 的方差 几何平均 \(G_T\) 的方差 对比
    1 \(0.1\) \(0.1\) 相同
    10 \((1.1)^{10} - 1 \approx 1.59\) \(\approx 0.1 / 10 = 0.01\) 乘积方差是几何平均方差的 159倍
    100 \((1.1)^{100} - 1 \approx 13780\) \(\approx 0.1 / 100 = 0.001\) 乘积方差是几何平均方差的 1378万倍
    1000 \((1.1)^{1000} - 1 \approx 2.5 \times 10^{41}\) \(\approx 0.1 / 1000 = 0.0001\) 乘积方差是几何平均方差的 \(2.5 \times 10^{45}\)倍
  • 最终结论
    特性 直接乘积 \(P_T\) 几何平均 \(G_T\)
    方差随 \(T\) 的变化 指数级增长(除非 \(p=q\) 精确成立) 以 \(1/T\) 速率衰减到 0
    统计意义 随着序列变长,估计量越来越不可靠,单个样本就能主导整个估计 随着序列变长,估计量越来越稳定,收敛到真实平均值
    训练稳定性 训练不稳定,梯度更新被个别长序列的极端权重支配 训练稳定,长短序列贡献均衡,模型收敛更平滑
    是否 IS 无偏校准 是,但波动大 否,但更稳定
  • 注意:也正是因为随着长度的增加,几何平均的重要性采样系数方差是逐步减低的,且均值理论上是 1.0,所以 GSPO 对应的 Clip 值应该更小,本文实验中使用的是类似 \(3 \times 10^{-4}\) 和 \(4 \times 10^{-4}\)),即 [1 - 3e-4, 1 + 4e-4]

附录:GRPO vs GSPO vs GSPO-Token 公式汇总对比

  • GRPO 优化以下目标:
    $$
    \mathcal{J}_{\text{GRPO} }(\theta) = \mathbb{E}_{x\sim\mathcal{D}, (y_i)_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \min \left(w_{i,t}(\theta)\widehat{A}_{i,t}, \text{clip} \left(w_{i,t}(\theta),1-\epsilon,1+\epsilon\right) \widehat{A}_{i,t} \right) \right] \tag{2}
    $$
    • \(G\) 是每个 Query \(x\) 生成的 Response 数量(即群组大小)
    • Token \(y_{i,t}\) 的重要性比率 \(w_{i,t}(\theta)\) 和优势 \(\widehat{A}_{i,t}\) 定义为:
      $$
      w_{i,t}(\theta) = \frac{\pi_{\theta}(y_{i,t}|x,y_{i,<t})}{\pi_{\theta_{\text{old} } }(y_{i,t}|x,y_{i,<t})}, \quad \widehat{A}_{i,t} = \widehat{A}_i = \frac{r(x,y_i) - \text{mean}(\{r(x,y_i)\}_{i=1}^G)}{\text{std}(\{r(x,y_i)\}_{i=1}^G)} \tag{3}
      $$
      • 同一个 \(y_i\) 中所有的 Token \(y_{i,t}\) 共享同一个 \(\widehat{A}_{i}\),即\(\widehat{A}_{i,t} = \widehat{A}_{i}\)
  • GSPO 采用以下 Sequence-level 的优化目标:
    $$
    \mathcal{J}_{\text{GSPO} }(\theta) = \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \min \left(s_i(\theta)\widehat{A}_i, \text{clip}(s_i(\theta), 1-\varepsilon, 1+\varepsilon) \widehat{A}_i\right)\right] \tag{5}
    $$
    • 采用基于组的优势估计(与 GRPO 相同):
      $$
      \widehat{A}_i = \frac{r(x,y_i) - \text{mean}(\{r(x,y_i)\}_{i=1}^G)}{\text{std}(\{r(x,y_i)\}_{i=1}^G)} \tag{6}
      $$
    • 并基于序列似然(2023)定义重要性比率 \(s_i(\theta)\):
      $$
      s_i(\theta) = \left(\frac{\pi_{\theta}(y_i|x)}{\pi_{\theta_{\text{old} } }(y_i|x)}\right)^{\frac{1}{|y_i|} } = \exp\left(\frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \log \frac{\pi_{\theta}(y_{i,t}|x,y_{i,<t})}{\pi_{\theta_{\text{old} } }(y_{i,t}|x,y_{i,<t})}\right) \tag{7}
      $$
      • 同一个 Sequence 的所有 Token 共享重要性比例
      • 注:几何平均下重要性比例的方差会小很多,需要注意裁剪比例
  • GSPO-Token 保持了 Sequence-level IS 比例,同时实现 Token-level 的优势定制:
    $$
    \mathcal{J}_{\text{GSPO-token} }(\theta) = \mathbb{E}_{x\sim\mathcal{D},\{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[\frac{1}{G} \sum_{i=1}^G \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \min \left(s_{i,t}(\theta)\widehat{A}_{i,t}, \text{clip}(s_{i,t}(\theta), 1-\varepsilon, 1+\varepsilon) \widehat{A}_{i,t}\right)\right] \tag{13}
    $$
    • 相对原始的 GSPO,将整体变成 Token level 的同时,使用了非常巧妙的 IS 系数转变:
      $$
      s_{i,t}(\theta) = \text{sg}[s_i(\theta)] \cdot \frac{\pi_{\theta}(y_{i,t}|x,y_{i,<t})}{\text{sg}[\pi_{\theta}(y_{i,t}|x,y_{i,<t})]},
      $$
    • 仔细对比细节可以发现,GSPO-Token 非常巧妙的保持了 Sequence-level IS 比例,同时允许不同的 Token 有不同的 Advantage(也就实现了不同的 Token 梯度加权系数不同)

NLP——LLM对齐微调-GRPO

注:许多论文中没有使用粗体来表示多个 Token 组成的序列(比如 Question \(\mathbf{q}\)),为了方便理解,本文会尽量可以在一些地方使用粗体
注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(GRPO)DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
    • 博客:为什么GRPO训练开始时,Loss函数为0,并且不降反增?
    • 博客:Deepseek的RL算法GRPO解读

GRPO

  • Group Relative Policy Optimization, 简称 GRPO,一种用于在 LLM 中替代近端策略优化 PPO(Proximal Policy Optimization)的方法,可以理解为 PPO 的一种简化形式
  • GRPO 相对 PPO 的核心改进点包括:
    • 去除 Critic 网络,转而使用批量采样的样本均值和方差做归一化
    • 将 PPO 奖励中的 KL 散度移除,并直接加到训练的目标函数中

从 PPO 到 GRPO

  • PPO是一种广泛用于LLMs强化学习微调阶段的Actor-Critic算法。具体来说,它通过最大化以下替代目标来优化LLMs:
    $$
    \mathcal{J}_{\textit{PPO}}(\theta)=\mathbb{E}_{q\sim P(Q),o\sim\pi_{\theta_{old}}(O|q)}\frac{1}{|o|}\sum_{t=1}^{|o|}\min\left[\frac{\pi_{\theta}(o_ {t}|q,o_{<t})}{\pi_{\theta_{old}}(o_{t}|q,o_{<t})}A_{t},\textrm{clip}\left( \frac{\pi_{\theta}(o_{t}|q,o_{<t})}{\pi_{\theta_{old}}(o_{t}|q,o_{<t})},1-\epsilon ,1+\epsilon\right)A_{t}\right],
    $$

    • \(\pi_{\theta}\) 和 \(\pi_{\theta_{old}}\) 分别是当前和旧策略模型
    • \(q,o\) 是从问题数据集和旧策略 \(\pi_{\theta_{old}}\) 中采样的问题和输出
    • \(\epsilon\) 是PPO中用于稳定训练的剪裁相关超参数
    • \(A_{t}\) 是优势函数 \(A^{\pi_\text{old}}_t\) 的简写,通过 GAE 计算,基于奖励 \(\{r_{\geq t}\}\) 和学习到的价值函数 \(V_{\psi}\)
      • 注:一般实现时,只有最后一步 token 会有 Reward 反馈,其他位置 Reward 都是 0 ,通过折扣奖励的方式可以计算每个 token 对应 GAE
  • 在 PPO 中,需要训练一个价值函数与策略模型并行,并且为了缓解奖励模型的过度优化问题,标准方法是在每个 token 的奖励中添加来自参考模型的每个 token 的KL惩罚(Ouyang et al., 2022),即:
    $$
    r_{t}=r_{\varphi}(q,o_{\leq t})-\beta\log\frac{\pi_{\theta}(o_{t}|q,o_{<t})}{\pi_{ref}(o_{t}|q,o_{<t})},
    $$

    • 其中,\(r_{\varphi}\) 是奖励模型,\(\pi_{ref}\) 是参考模型(通常是初始的SFT模型),\(\beta\) 是KL惩罚的系数
  • 由于PPO中使用的价值函数通常是另一个与策略模型大小相当的模型,这会带来大量的内存和计算负担。此外,在RL训练过程中,价值函数被用作计算优势的基线以减少方差。然而,在LLM的上下文中,通常只有最后一个token会被奖励模型分配一个奖励分数,这可能会使在每个token上准确训练价值函数变得复杂

  • 为了解决这个问题,如图4所示,作者提出了 GRPO ,它避免了PPO中额外的价值函数近似,而是使用对同一问题生成的多个采样输出的平均奖励作为基线。具体来说,对于每个问题 \(q\),GRPO从旧策略 \(\pi_{\theta_{old}}\) 中采样一组输出 \(\{o_{1},o_{2},\cdots,o_{G}\}\),然后通过最大化以下目标来优化策略模型(公式3):
    $$
    \begin{split}
    \mathcal{J}_{GRPO}(\theta)&=\mathbb{E}_{q\sim p(Q),\{\mathbf{o}_i\}_{i=1}^{G}\sim\pi_{\theta_{old}}(O|q)}\\
    &\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|\mathbf{o}_i|}\sum_{t=1}^{|o_{t}|}\left\{\min\left[\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})}\hat{A}_{i,t},\text{clip}\left(\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})},1-\epsilon,1+\epsilon\right)\hat{A}_{i,t}\right]-\beta\text{D}_{\text{KL}}\left[\pi_{\theta}||\pi_{ref}|\right) \right\},
    \end{split}
    $$

    • 其中,\(\epsilon\) 和 \(\beta\) 是超参数,\(\hat{A}_{i,t}\) 是基于组内输出的相对奖励计算的优势,具体细节将在后续小节中详细说明。GRPO通过组内相对奖励计算优势的方式,与奖励模型的比较性质非常契合,因为奖励模型通常是在同一问题的输出比较数据集上训练的
  • 特别说明:GRPO 通过直接在损失函数中添加训练策略与参考策略之间的KL散度来进行正则化(与 PPO 在奖励中添加KL惩罚不同),避免了复杂化 \(\hat{A}_{i,t}\) 的计算

结果监督的 GRPO

  • Outcome Supervision RL with GRPO,对应 ORM 模型
  • 结果监督的GRPO具体步骤如下:
    • 采样 :对于每个问题 \(q\),从旧策略模型 \(\pi_{\theta_{old}}\) 中采样一组输出
      $$\{o_{1},o_{2},\cdots,o_{G}\}$$
    • 评分 :使用奖励模型对这些输出进行评分,得到相应的 \(G\) 个奖励:
      $$\mathbf{r}=\{r_{1},r_{2},\cdots,r_{G}\}$$
    • 归一化&奖励分配 :这些奖励通过减去组平均值并除以组标准差进行归一化。结果监督在每个输出的末尾提供归一化的奖励,并将输出中所有 token 的优势 \(\hat{A}_{i,t}\) 设置为归一化的奖励,即:
      $$\hat{A}_{i,t}=\overline{r}_{i}=\frac{r_{i}-\text{mean}(\mathbf{r})}{\text{std}(\mathbf{r})}$$
      • 注:可以看到,结果监督下,GRPO 同一组的各个 token,奖励完全相同
    • 最后:通过最大化公式(3)中定义的目标来优化策略

过程监督的 GRPO

  • 说明:Process Supervision RL with GRPO,对应 PRM 模型,
  • 结果监督仅在每个输出的末尾提供一个奖励,这可能不足以有效地监督复杂数学任务中的策略,根据Wang et al. (2023b),作者还探索了过程监督,它在每个推理步骤的末尾提供一个奖励,具体步骤如下:
    • 采样 :给定问题 \(q\) 和 \(G\) 个采样输出
      $$\{o_{1},o_{2},\cdots,o_{G}\}$$
    • 评分 :过程奖励模型用于对输出的每个步骤进行评分,得到相应的奖励:
      $$ \mathbf{R}=\{\{r_{1}^{\text{index}(1)},\cdots,r_{1}^{\text{index}(K_{1})}\},\cdots,\{r_{G}^{\text{index}(1)},\cdots,r_{G}^{\text{index}(K_{G})}\}\}$$
      • 其中 \(\text{index}(j)\) 是第 \(j\) 步的结束 token 索引,\(K_{i}\) 是第 \(i\) 个输出中的总步数
    • 归一化 :作者还使用平均值和标准差对这些奖励进行归一化:
      $$\tilde{r}_{i}^{\text{index}(j)}=\frac{r_{i}^{\text{index}(j)}-\text{mean}(\mathbf{R})}{\text{std}(\mathbf{R})}$$
    • 奖励分配 :过程监督将每个 token 的优势计算为后续步骤的归一化奖励之和 ,即:
      $$\hat{A}_{i,t}=\sum_{\text{index}(j)\geq t}\tilde{r}_{i}^{\text{index}(j)}$$
    • 最后:通过最大化公式(3)中定义的目标 \(\mathcal{J}_{GRPO}(\theta)\) 来优化策略

迭代式 GRPO

  • 随着强化学习训练过程的进行,旧的奖励模型可能不足以监督当前的策略模型。因此,作者还探索了迭代式GRPO。如算法(1)所示,在迭代式GRPO中,作者基于策略模型的采样结果为奖励模型生成新的训练集,并通过包含10%历史数据的回放机制持续训练旧的奖励模型。然后,作者将参考模型设置为策略模型,并使用新的奖励模型持续训练策略模型
  • 算法(1)中显示的公式(21)为:
    $$
    GC_{GRPO}(q, o, t, \pi_{\theta_{sm}}) = \hat{A}_{i,t} + \beta \left( \frac{\pi_{ref}(o_{i,t}|\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}|\mathbf{o}_{i,<t})} - 1 \right),
    $$
    • 其中 \(\hat{A}_{i,t}\) 是基于组奖励分数计算的

DeepSeekMath-RL的训练与评估

  • 作者基于DeepSeekMath-Instruct 7B进行强化学习。RL的训练数据是来自SFT数据的与GSM8K和MATH相关的链式思维(chain-of-thought)格式的问题,大约包含144K个问题。作者排除了其他SFT问题,以研究RL对在RL阶段缺乏数据的基准的影响。作者按照Wang et al. (2023b)的方法构建奖励模型的训练集
    • 基于DeepSeekMath-Base 7B训练初始奖励模型,学习率为2e-5
    • 对于GRPO,作者将策略模型的学习率设置为1e-6 ,KL系数为0.04
    • 对于每个问题,作者采样64个输出
    • 最大长度设置为1024
    • 训练批次大小为1024
    • 策略模型在每次探索阶段后仅进行一次更新。作者按照DeepSeekMath-Instruct 7B的基准评估DeepSeekMath-RL 7B。对于DeepSeekMath-RL 7B,GSM8K和MATH的链式思维推理可以被视为域内任务(因为训练主要是针对Math做Reward的),而所有其他基准可以被视为域外任务
      • 注:GSM8K数据集是OpenAI创建的一个用于评估数学推理能力的数据集,包含8.5K个高质量的小学数学应用题,题目涵盖多种小学数学知识点,难度适中,且每个问题需要2-8个推理步骤。举例来说:“问题:小明有5个苹果,吃了2个,又买了4个,他现在有多少个苹果? 解答:5 - 2 + 4 = 7,所以小明现在有7个苹果。”
  • 表5展示了使用链式思维和工具集成推理的开放和闭源模型在英语和中文基准上的表现。作者发现:1)DeepSeekMath-RL 7B在GSM8K和MATH上分别达到了88.2%和51.7%的准确率,使用链式思维推理。这一表现超过了所有7B到70B范围内的开源模型,以及大多数闭源模型。2)重要的是,DeepSeekMath-RL 7B仅从DeepSeekMath-Instruct 7B开始,在GSM8K和MATH的链式思维格式的指令调优数据上进行训练。尽管其训练数据的范围有限,但它在所有评估指标上均优于DeepSeekMath-Instruct 7B,展示了强化学习的有效性

各种微调方法的比较

  • 作者从强化学习的视角来看待LLMs的微调,对比了各种方法(包括SFT、RFT、在线RFT、DPO、PPO和GRPO)的数据来源和梯度系数(Gradient Coefficient)(算法和奖励函数)的详细推导

SFT

  • 监督微调的目标是最大化以下目标函数:
    $$
    \mathcal{J}_{\textrm{SFT}}(\theta)=\mathbb{E}_{q,o\sim p_{sft}(Q ,O)}\left(\frac{1}{|o|}\sum_{t=1}^{|o|}\log\pi_{\theta}(o_{t}|q,o_{<t})\right).
    $$
  • \(\mathcal{J}_{\textrm{SFT}}(\theta)\) 的梯度为:
    $$
    \nabla_{\theta}\mathcal{J}_{\textrm{SFT}}=\mathbb{E}_{q,o\sim p_{sft}(Q,O)}\left(\frac{1}{|o|}\sum_{t=1}^{|o|}\nabla_{\theta}\log\pi_{\theta}(o_ {t}|q,o_{<t})\right).
    $$
  • 补充:LLMs做SFT时常用交叉熵损失函数:
    $$\mathcal{L}(\theta) = -\frac{1}{|o|}\sum_{t=1}^{m} \log \pi_{\theta}(o_t | x, o_{<t})$$
  • 训练数据来源 :用于SFT的数据集(通常是从各自领域真实场景收集得到的,也可以是其他优质大模型生成的)
  • 奖励函数设计 :可以视为人类的选择
  • 梯度系数(Gradient Coefficient) :始终设置为1

Rejection Sampling Fine-tuning, RFT

  • 拒绝采样微调首先从监督微调的 LLM 中为每个问题采样多个输出,然后在具有正确答案的采样输出上训练 LLM。形式上,RFT 的目标是最大化以下目标函数:
    $$
    \mathcal{J}_{\textrm{RFT}}(\theta)=\mathbb{E}_{q\sim p_{sft}(Q),o\sim\pi_{sft}(O|q)}\left(\frac{1}{|o|}\sum_{t=1}^{|o|}\mathbb{I}(o)\log\pi_{ \theta}(o_{t}|q,o_{<t})\right).
    $$
  • \(\mathcal{J}_{\textrm{RFT}}(\theta)\) 的梯度为:
    $$
    \nabla_{\theta}\mathcal{J}_{\textrm{RFT}}(\theta)=\mathbb{E}_{q\sim p_{sft}(Q),o\sim\pi_{sft}(O|q)}\left(\frac{1}{|o|}\sum_{t=1}^{|o|}\mathbb{I}(o )\nabla_{\theta}\log\pi_{\theta}(o_{t}|q,o_{<t})\right).
    $$
  • 训练数据来源 :SFT 数据集中的问题,输出从 SFT 模型中采样
  • 奖励函数设计 :规则(答案是否正确)
  • 梯度系数(Gradient Coefficient) :
    $$
    GC_{\textrm{RFT}}(q,o,t)=\mathbb{I}(o)=\begin{cases}1&\text{the answer of \(o\) is correct}\\ 0&\text{the answer of \(o\) is not correct}\end{cases}
    $$

Online Rejection Sampling Fine-tuning, Online RFT, 在线RFT

  • 在线 RFT 和 RFT 的唯一区别在于,在线 RFT 的输出是从实时策略模型 \(\pi_{\theta}\) 中采样,而不是从 SFT 模型 \(\pi_{\theta_{sft}}\) 中采样。因此,在线 RFT 的梯度为:
    $$
    \nabla_{\theta}\mathcal{J}_{\textrm{OnRFT}}(\theta)=\mathbb{E}_{q\sim p_{sft}( Q),o\sim\pi_{\theta}(O|q)}\left(\frac{1}{|o|}\sum_{t=1}^{|o|}\mathbb{I}(o) \nabla_{\theta}\log\pi_{\theta}(o_{t}|q,o_{<t})\right).
    $$

DPO

  • DPO的目标是:
    $$
    \mathcal{J}_{DPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), \color{red}{(o^+, o^-) \sim \pi_{sft}(O|q)}} \Big[ \log \sigma \left( \beta \frac{1}{|o^+|} \sum_{t=1}^{|o^+|} \log \frac{\pi_\theta(o_t^+|q, o_{<t}^+)}{\pi_{ref}(o_t^+|q, o_{<t}^+)} - \beta \frac{1}{|o^-|} \sum_{t=1}^{|o^-|} \log \frac{\pi_\theta(o_t^-|q, o_{<t}^-)}{\pi_{ref}(o_t^-|q, o_{<t}^-)} \right)\Big].
    $$
    • 注:\(\sigma(\cdot)\) 表示Sigmod函数 \(\sigma(x) = \frac{1}{1+e^{-x}}\)
  • \(\mathcal{J}_{DPO}(\theta)\) 的梯度为:
    $$
    \nabla_\theta \mathcal{J}_{DPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), \color{red}{(o^+, o^-) \sim \pi_{sft}(O|q)}} \left( \frac{1}{|o^+|} \sum_{t=1}^{|o^+|} \color{blue}{GC_{DPO}(q, o, t)} \nabla_\theta \log \pi_\theta(o_t^+|q, o_{<t}^+) - \frac{1}{|o^-|} \sum_{t=1}^{|o^-|} \color{blue}{GC_{DPO}(q, o, t)} \nabla_\theta \log \pi_\theta(o_t^-|q, o_{<t}^-) \right).
    $$
  • 训练数据来源 :SFT数据集中的问题,输出从SFT模型中采样
  • 奖励函数设计 :一般领域的人类偏好(在数学任务中可以是“规则”)
  • 梯度系数(Gradient Coefficient) :
    $$
    GC_{DPO}(q, o, t) = \sigma \left( \beta \log \frac{\pi_\theta(o_t^-|q, o_{<t}^-)}{\pi_{ref}(o_t^-|q, o_{<t}^-)} - \beta \log \frac{\pi_\theta(o_t^+|q, o_{<t}^+)}{\pi_{ref}(o_t^+|q, o_{<t}^+)} \right).
    $$
  • DPO不同于其他训练方法,DPO的一个样本是同时包含了好和坏(对应正和负)两个子样本的,根RFT中的样本组织形式有根本区别,在RFT中,正负样本是独立的,负样本权重为0,正样本权重为1,而DPO中没有正负样本之分,只有样本对,上面的 \(GC_{DPO}(q, o, t) \) 就是样本对的系数

PPO

  • PPO的目标是:
    $$
    \mathcal{J}_{PPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), o \sim \pi_{\theta_{old}}(O|q)} \Big[\frac{1}{|o|} \sum_{t=1}^{|o|} \min \left( \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})} A_t, \text{clip} \left( \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})}, 1 - \epsilon, 1 + \epsilon \right) A_t \right)\Big].
    $$
  • 为了简化分析,假设模型在每次探索阶段后仅进行一次更新,从而确保 \(\pi_{\theta_{old}} = \pi_\theta\) ,在这种情况下,我们可以移除最小值和裁剪操作:
    $$
    \mathcal{J}_{PPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), o \sim \pi_{\theta_{old}}(O|q)}\Big[ \frac{1}{|o|} \sum_{t=1}^{|o|} \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})} A_t\Big].
    $$
  • \(\mathcal{J}_{PPO}(\theta)\) 的梯度为:
    $$
    \nabla_\theta \mathcal{J}_{PPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), o \sim \pi_{\theta_{old}}(O|q)}\Big[\frac{1}{|o|} \sum_{t=1}^{|o|} A_t \nabla_\theta \log \pi_\theta(o_t|q, o_{<t})\Big].
    $$
    • 这里的梯度中, \(\frac{1}{\pi_{\theta_{old}}(o_t|q, o_{ < t})}\) 部分被求导消掉了,详细求导过程见附录
  • 训练数据来源 :SFT数据集中的问题,输出从策略模型中采样
  • 奖励函数设计 :奖励模型
  • 梯度系数(Gradient Coefficient) :
    $$
    GC_{PPO}(q, o, t, \pi_{\theta_{rm}}) = A_t,
    $$
    • 其中 \(A_t\) 是通过广义优势估计(GAE)计算的,基于包含 Actor-Reference KL散度惩罚奖励 \(\{r_{\geq t}\}\) 和学习到的价值函数 \(V_\psi\)
    • \(\pi_{\theta_{rm}}\) 中的 \(rm\) 表示简化版

GRPO

  • GRPO原始目标是:
    $$
    \begin{split}
    \mathcal{J}_{GRPO}(\theta)&=\mathbb{E}_{q\sim p(Q),\{\mathbf{o}_i\}_{i=1}^{G}\sim\pi_{\theta_{old}}(O|q)}\\
    &\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|\mathbf{o}_i|}\sum_{t=1}^{|o_{t}|}\left\{\min\left[\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})}\hat{A}_{i,t},\text{clip}\left(\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})},1-\epsilon,1+\epsilon\right)\hat{A}_{i,t}\right]-\beta\text{D}_{\text{KL}}\left[\pi_{\theta}||\pi_{ref}|\right) \right\},
    \end{split}
    $$
  • GRPO中使用了KL散度的近似形式,该形式可以进一步化简,Approximating KL Divergence —— 来自:Deepseek的RL算法GRPO解读 - AIQL的文章 - 知乎
    • 估计形式为(注意以下式子中右边是左边的无偏梯度的前提是 \(o_{i,t} \sim \pi_\theta(\cdot \vert q,o_{i,< t})\),且此时 \(\pi_\theta(\cdot \vert q,o_{i,< t}) = \pi_{\theta_\text{old}}(\cdot \vert q,o_{i,< t})\) ),于是有:
      $$
      \mathbb{D}_\text{KL}[\pi_\theta\Vert\pi_{\text{ref}}] \approx \frac{\pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}\vert q,\mathbf{o}_{i,<t})} - \log \frac{\pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}\vert q,\mathbf{o}_{i,<t})} - 1, \quad o_{i,t} \sim \pi_\theta(\cdot \vert q,\mathbf{o}_{i,<t})
      $$
      • 为了方便理解,这里给出直观解释 :上面的式子右边满足KL散度的基本特性
        • 当两个分布足够接近时,第一项趋近于1,第二项趋近于0,整体趋近于0;
        • 两个分布不相等时,上式右边取值总是大于0,可以通过求导证明:当 \(x>0\) 时,有 \(x - \log x - 1 \ge 0\)
  • 最终,化简KL散度后,GRPO的目标是(假设 \(\pi_{\theta_{old}} = \pi_\theta\) 以简化分析):
    $$
    \mathcal{J}_{GRPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), \{\mathbf{o}_i\}_{i=1}^G \sim \pi_{\theta_{old}}(O|q)} \frac{1}{G} \sum_{i=1}^G \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left( \frac{\pi_\theta(o_{i,t}|q, \mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q, \mathbf{o}_{i,<t})} \hat{A}_{i,t} - \beta \left( \frac{\pi_{ref}(o_{i,t}|q, \mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}|q, \mathbf{o}_{i,<t})} - \log \frac{\pi_{ref}(o_{i,t}|q, \mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}|q, \mathbf{o}_{i,<t})} - 1 \right) \right).
    $$
  • \(\mathcal{J}_{GRPO}(\theta)\) 的梯度为:
    $$
    \nabla_\theta \mathcal{J}_{GRPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), \{\mathbf{o}_i\}_{i=1}^G \sim \pi_{\theta_{old}}(O|q)} \frac{1}{G} \sum_{i=1}^G \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \hat{A}_{i,t} + \beta \left( \frac{\pi_{ref}(o_{i,t}|\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}|\mathbf{o}_{i,<t})} - 1 \right) \right] \nabla_\theta \log \pi_\theta(o_{i,t}|q, \mathbf{o}_{i,<t}).
    $$
  • 训练数据来源 :SFT数据集中的问题,输出从策略模型中采样
  • 奖励函数设计 :奖励模型
  • 梯度系数(Gradient Coefficient) :
    $$
    GC_{GRPO}(q, o, t, \pi_{\theta_{sm}}) = \hat{A}_{i,t} + \beta \left( \frac{\pi_{ref}(o_{i,t}|\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}|\mathbf{o}_{i,<t})} - 1 \right),
    $$
    • 其中 \(\hat{A}_{i,t}\) 是基于组奖励分数计算的,这里的 \(\hat{A}_{i,t}\) 不包含 Actor-Reference KL散度惩罚
    • \(\beta \left( \frac{\pi_{ref}(o_{i,t}|o_{i, < t})}{\pi_\theta(o_{i,t}|o_{i, < t})} - 1 \right)\) 则是 Actor-Reference KL散度部分,用于控制当前策略不要偏离参考策略太远
    • \(\pi_{\theta_{rm}}\) 中的 \(rm\) 表示简化版

附录:\(\mathcal{J}_{\text{PPO}}(\theta)\) 求导

  • 前置假设:假设模型在每次探索阶段后仅进行一次更新,从而确保 \(\pi_{\theta_{old}} = \pi_\theta\)

  • 对简化后的目标函数 \(\mathcal{J}_{\text{PPO}}(\theta)\) 关于参数 \(\theta\) 求导:
    $$
    \mathcal{J}_{PPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), o \sim \pi_{\theta_{old}}(O|q)}\Big[ \frac{1}{|o|} \sum_{t=1}^{|o|} \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})} A_t\Big].
    $$

  • 仅考虑期望内部的部分:对每个时间步 \(t\),应用对数导数技巧 \(\nabla_\theta\log \pi_\theta = \frac{\nabla_\theta \pi_\theta}{\pi_\theta}\)可得:
    $$
    \nabla_\theta \left( \frac{\pi_\theta}{\pi_{\theta_{\text{old}}}} \right) = \frac{\pi_\theta}{\pi_{\theta_{\text{old}}}} \nabla_\theta \log \pi_\theta(o_t|q, o_{<t}).
    $$

  • 将梯度表达式代入期望,得到最终梯度:
    $$
    \nabla_\theta \mathcal{J}_{\text{PPO}}(\theta) = \mathbb{E}_{q \sim p_{\text{sft}}(Q), o \sim \pi_{\theta_{\text{old}}}(O|q)} \left[ \frac{1}{|o|} \sum_{t=1}^{|o|} \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{\text{old}}}(o_t|q, o_{<t})} A_t \nabla_\theta \log \pi_\theta(o_t|q, o_{<t}) \right].
    $$

  • 结合此时的假设 \(\pi_{\theta_{old}} = \pi_\theta\),于是有最终导数如下:
    $$
    \nabla_\theta \mathcal{J}_{\text{PPO}}(\theta) = \mathbb{E}_{q \sim p_{\text{sft}}(Q), o \sim \pi_{\theta_{\text{old}}}(O|q)} \left[ \frac{1}{|o|} \sum_{t=1}^{|o|} A_t \nabla_\theta \log \pi_\theta(o_t|q, o_{<t}) \right]
    $$


附录:GRPO 传统 RL 场景的应用前景讨论

  • 一个有趣的对比:DeepSeek GRPO在简单控制系统上和PPO的对比 - 王兴兴的文章 - 知乎

    对于整个系统中间过程和信息,比较清晰的问题(中间过程能被价值评价清晰),比如类似上面的控制系统(或者其他机器人系统),PPO还是最简单粗暴出效果很好的;但对于像DeepSeek用来搞数学RL推理,由于中间过程没法很好的描述和计算中间过程的价值,确实还是GRPO更快更方便(只看最终结果);


附录:为什么 GRPO 训练开始时,Loss 函数为 0,并且不降反增?

  • 以下回答参考自:Open-R1 #239 issue: Why does the loss start at 0 when I train GRPO, and then possibly increase?

  • 结论 :损失值从零开始逐渐增加是完全正常的,原因如下:

  • 首先需要理解GRPO目标函数的数学表达:
    $$
    J_{\text{GRPO}}(\theta) = \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \min\left( \frac{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})}{\pi_{\theta_{\text{old}}}(o_{i,t} | q, \mathbf{o}_{i,<t})} \hat{A}_{i,t}, \text{clip}\left( \frac{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})}{\pi_{\theta_{\text{old}}}(o_{i,t} | q, \mathbf{o}_{i,<t})}, 1-\epsilon, 1+\epsilon \right) \hat{A}_{i,t} \right) - \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}] \right].
    $$

    • \( G \) 是每个提示的生成次数
    • \( \mathbf{o}_i \) 是提示的第\( i \)次生成结果,\( |\mathbf{o}_i| \)表示其token数量
    • \( q \) 是输入提示
    • \( \pi_\theta \) 是策略模型
    • \( \pi_{\theta_{\text{old}}} \) 是更新前的策略模型
    • \( \pi_{\text{ref}} \) 是参考策略
    • \( \hat{A}_{i,t} \) 是第\( i \)次生成中第\( t \)个token的优势估计(详见下文)
    • \( \epsilon \) 和 \( \beta \) 是超参数
  • 为简化说明,假设每次迭代只执行一次探索步骤(这是GRPO的标准实现)。此时\( \pi_{\theta_{\text{old}}} = \pi_\theta \),目标函数自然简化为(接下来的花间仅关心绝对值):
    $$
    \begin{align}
    J_{\text{GRPO}}(\theta) &= \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \min\left( \frac{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})} \hat{A}_{i,t}, \text{clip}\left( \frac{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})}, 1-\epsilon, 1+\epsilon \right) \hat{A}_{i,t} \right) - \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}] \right]. \\
    &= \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \min\left( \hat{A}_{i,t}, \text{clip}(1, 1-\epsilon, 1+\epsilon) \hat{A}_{i,t} \right) - \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}] \right]. \\
    &= \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \min\left( \hat{A}_{i,t}, \hat{A}_{i,t} \right) - \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}] \right].\\
    &= \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \hat{A}_{i,t} - \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}] \right].\\
    &= \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \hat{A}_{i,t} - \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}].
    \end{align}
    $$

  • 注意优势函数 \(\hat{A}_{i,t}\) 实际上与 \( t \) 无关(在GRPO中,一个Response只有一个Reward,这个Reward是Response粒度的,不是token粒度的),因此:
    $$
    \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \hat{A}_{i,t} = \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \hat{A}_i = \hat{A}_i.
    $$

  • 此外,\( \hat{A}_t \)经过归一化处理意味着:
    $$
    \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \hat{A}_t = 0.
    $$

    • 证明:这里的归一化处理是,对于一组给定的 \(G\) 个奖励 \(\mathbf{r}=\{r_{1},r_{2},\cdots,r_{G}\}\):
      $$A_i = \frac{r-\text{mean}(\mathbf{r})}{\text{std}(\mathbf{r})}$$
  • 因此最终可得:
    $$
    J_{\text{GRPO}}(\theta) = -\frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}].
    $$

  • 从绝对值来看,损失等于平均KL散度乘以\( \beta \),由于参考策略与初始策略完全一致,这就是损失从零开始的原因。随着训练进行,策略会逐渐偏离初始参考策略,因此损失值会上升


附录:GRPO 中 KL 散度的近似为何与常规 RLHF 中不一样?

  • 常规RLHF中,KL散度的近似为:
    $$
    \begin{align}
    D_{\text{KL}}(\pi_{\theta_\text{old}}||\pi_{\theta}) &= \mathbb{E}_{a \sim \pi_{\theta_\text{old}}} \left[\log\frac{\pi_{\theta_\text{old}}(a|s)}{\pi_{\theta}(a|s)}\right] &\\
    &\approx \frac{1}{N} \log\frac{\pi_{\theta_\text{old}}(a|s)}{\pi_{\theta}(a|s)} \\
    &= \frac{1}{N} (\log \pi_{\theta_\text{old}}(a|s)- \log\pi_{\theta}(a|s))
    \end{align}
    $$
  • GRPO中,KL散度的近似为(可参考Approximating KL Divergence):
    $$
    \mathbb{D}_\text{KL}[\pi_\theta\Vert\pi_{\text{ref}}] \approx \frac{\pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}\vert q,\mathbf{o}_{i,<t})} - \log \frac{\pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}\vert q,\mathbf{o}_{i,<t})} - 1, \quad o_{i,t} \sim \pi_\theta(\cdot \vert q,\mathbf{o}_{i,<t})
    $$
    • 为了方便理解,这里给出上式的直观解释 :上面的式子右边满足KL散度的基本特性
      • 当两个分布足够接近时,第一项趋近于1,第二项趋近于0,整体趋近于0;
      • 两个分布不相等时,上式右边取值总是大于0,可以通过求导证明:当 \(x>0\) 时,有 \(x - \log x - 1 \ge 0\) 恒成立
  • 关于KL散度近似的更多讨论可参考:Math——KL散度的近似估计

GRPO 中 KL 近似的推导

  • GRPO的近似式基于以下观察:
    $$
    D_{\text{KL}}(\pi_\theta \Vert \pi_{\text{ref}}) = \mathbb{E}_{a \sim \pi_\theta} \left[ \frac{\pi_{\text{ref}}(a|s)}{\pi_\theta(a|s)} - \log \frac{\pi_{\text{ref}}(a|s)}{\pi_\theta(a|s)} - 1 \right].
    $$
  • 推导思路 :
    • 令\(x = \frac{\pi_{\text{ref}}(a|s)}{\pi_\theta(a|s)}\),当两个分布接近时,\(x \approx 1\)
    • 对函数\(f(x) = x - \log x - 1\)在\(x=1\)处进行泰勒展开:
      $$
      f(x) \approx \frac{1}{2}(x-1)^2 + o((x-1)^2).
      $$
    • 此时,\(\mathbb{E}[f(x)]\)近似为KL散度的二阶项,可用于约束策略更新
  • 此近似将KL散度转换为无需显式计算对数期望的形式,适用于从\(\pi_\theta\)采样的场景,同时保证在\(x \approx 1\)时近似准确

为什么不直接使用更简单的 KL 近似?

  • 比如参考传统RLHF的思路来计算:
    $$
    \begin{align}
    \mathbb{D}_\text{KL}[\pi_\theta\Vert\pi_{\text{ref}}] &= - \log \frac{\pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}\vert q,\mathbf{o}_{i,<t})} , \quad o_{i,t} \sim \pi_\theta(\cdot \vert q,o_{i, < t})\\
    &=\log\pi_\theta(o_{i,t}\vert q,o_{i, < t}) - \log \pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t}) , \quad o_{i,t} \sim \pi_\theta(\cdot \vert q,o_{i, < t})
    \end{align}
    $$
  • 上面这个式子更简便也更准确,但是容易出现KL散度为负的情况,特别是对于采样次数不足的时候会更严重,传统的RLHF中就存在这个问题(这个问题也可以描述为方差大)
  • k3估计的KL散度那么不好,为什么GRPO还要坚持用呢? - lym的文章 - 知乎中有详细实验发现,使用 \(k_1\) 估计会导致模型倾向于压低 token 的概率
  • 但是在GRPO的KL散度近似中,两个分布不相等时,取值总是大于0(可以证明方差比上面的式子小),可以通过求导证明:当 \(x>0\) 时,有 \(x - \log x - 1 \ge 0\) 恒成立,最小值在 \(x=1,y=0\)处,其函数图像如下:

附录:为什么 GRPO 中要将 PPO 奖励中的 KL 散度挪出来?

  • 实际上就是实验给的结论!
  • 一些个人理解:
    • KL 散度加到 Reward 上可能影响 GAE 的计算和稳定性
    • KL 散度放到 Reward 上可能出现 Reward Hacking 现象,模型可能会倾向于只输出与参考模型相同的策略
      • 特别地,在每个 Token 上都有 KL 散度反馈,但只有最后一个 Token 才会有 Reward 反馈

附录:GRPO 中损失的平均粒度有什么影响?

  • GRPO :Sample-level 平均
    $$
    \begin{split}
    \mathcal{J}_{\mathrm{GRPO} }(\theta) &=\mathbb{E}_{(\mathbf{q},\mathbf{a})\sim\mathcal{D},\{\mathbf{o}_i\}_{i=1}^{G}\sim\pi_{\theta_{old} }(\cdot|q)} \\
    &\left[\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|\mathbf{o}_i|}\sum_{t=1}^{|\mathbf{o}_i|}\Bigg{(}\min\Big{(}r_{i,t}(\theta)\hat{A}_{i,t},\mathrm{clip}\Big{(}r_{i,t}(\theta),1-\varepsilon,1+\varepsilon\Big{)}\hat{A}_{i,t}\Big{)}-\beta D_{\mathrm{KL} }(\pi_{\theta}|\pi_{\mathrm{ref} })\Bigg{)}\right],
    \end{split}
    $$
    • 其中
      $$
      r_{i,t}(\theta)=\frac{\pi_{\theta}(o_{i,t}\mid q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old} }(o_{i,t}\mid q,\mathbf{o}_{i,<t})}.
      $$
    • 从 token 视角看,\(\frac{1}{|\mathbf{o}_i|}\) 相当于是给不同 \(|\mathbf{o}_i|\) 中 token 加上了不同的权重
    • 特别注意:一个容易理解的误区是认为 \(\frac{1}{|\mathbf{o}_i|}\sum_{t=1}^{|\mathbf{o}_i|}\) 可保证整体的损失和是 token 均值,所以不同 \(|\mathbf{o}_i|\) 中 token 对 Loss 权重不变
      • 这里理解有误,\(\sum_{t=1}^{|\mathbf{o}_i|}\) 只是损失函数累计到一起的动作(可以看做是一个 Batch 的多个样本一起更新模型), \(\color{red}{\frac{1}{|\mathbf{o}_i|}}\) 则是相当于给所有样本都加了一个权重 \(\color{red}{\frac{1}{|\mathbf{o}_i|}}\)
      • 这个权重与 \(\color{red}{\mathbf{o}_i}\) 有关,对不同长度的 response 的 Token 是不公平的,此时,长序列的回复梯度会被缩小(不论正负都会被缩小)),导致模型会倾向于 简短的正确回答 和 较长的错误回答
  • DAPO :号称 Token-level 平均,本质是 Batch-level 平均(因为如果两个 batch 上采样到的 token 数量差异太大也会导致模型更关注短序列的 token)
    $$
    \begin{align}
    \mathcal{J}_{\mathrm{GRPO} }(\theta) &=\mathbb{E}_{(\mathbf{q},\mathbf{a})\sim\mathcal{D},\{\mathbf{o}_i\}_{i=1}^{G}\sim\pi_{\theta_{old} }(\cdot|q)} \\
    &\left[\frac{1}{\color{red}{\sum_{i=1}^G|\mathbf{o}_i|}}\color{red}{\sum_{i=1}^{G}\sum_{t=1}^{|\mathbf{o}_i|}}\min\Big{(}r_{i,t}(\theta)\hat{A}_{i,t},~\mathrm{clip}\Big{(}r_{i,t}(\theta),1-\varepsilon_\text{low},1+\varepsilon_\text{high}\Big{)}\hat{A}_{i,t}\Big{)}\right] \\
    \text{s.t.}\quad &0 < \left|\{\mathbf{o}_i \mid \texttt{is_equivalent}(a, \mathbf{o}_i)\}\right| < G
    \end{align}
    $$
  • SimpleRL :方法与 DAPO 的处理完全一样(下面是原始论文中的写法,不带期望的形式,原始论文可参考:SimpleRL-Zoo: Investigating and Taming Zero Reinforcement Learning for Open Base Models in the Wild, HKUST & TikTok Meituan, 20250524 & 202508076)
    $$
    \mathcal{J}_{\text{GRPO}}(\theta)=\underbrace{\frac{1}{\color{red}{\sum_{i=1}^{G}\left|o_{i}\right|}} \color{red}{\sum_{i=1}^{G} \sum_{t=1}^{\left|o_{i}\right|}} min \left[r_{i, t}(\theta) \hat{A}_{i}, clip\left(r_{i, t}(\theta) ; 1-\epsilon, 1+\epsilon\right) \hat{A}_{i}\right]}_{\text{Clipped policy update } }-\underbrace{\beta \mathbb{D}_{KL}\left[\pi_{\theta} | \pi_{ref }\right]}_{\text{KL penalty } }
    $$
  • Dr.GRPO :真正的 Token-level 平均 ,无论 batch 间的序列长度如何都可做到按照 token 平均
    $$
    \begin{split}
    \mathcal{J}(\pi_{\theta}) &= \mathbb{E}_{\mathbf{q} \sim p_{Q}, \{\mathbf{o}_{i}\}_{i=1}^{G} \sim \pi_{\theta_{old} }(\cdot|\mathbf{q})} \\
    &\quad \left[\frac{1}{G} \sum_{i=1}^{G} \sum_{t=1}^{|\mathbf{\mathbf{o}_i}|} \left\{\min \left[\frac{\pi_{\theta}(o_{i,t}|\mathbf{q}, \mathbf{o}_{i,<t})}{\pi_{\theta_{old} }(o_{i,t}|\mathbf{q}, \mathbf{o}_{i,<t})} \tilde{A}_{i,t}, \text{clip} \left(\frac{\pi_{\theta}(o_{i,t}|\mathbf{q}, \mathbf{o}_{i,<t})}{\pi_{\theta_{old} }(o_{i,t}|\mathbf{q}, \mathbf{o}_{i,<t})}, 1 - e, 1 + e \right) \tilde{A}_{i,t} \right]\right\}\right],
    \end{split}
    $$
    • 注意:没有 \(\color{red}{\frac{1}{|\mathbf{o}_i|}}\),实际实现时会除以一个 MAX_TOKEN(预设的最大生成长度)

附录:Off-policy 下 GRPO 中的 KL 散度损失项问题

  • 本部分参考自:The critical implementation detail of KL loss in GRPO, Hongyu Zang

整体说明

  • GRPO 相对 PPO 有两个主要创新:
    • 1)它放弃了传统的 Critic 模型,而是选择使用群体得分来估计价值基线
    • 2)它不是在奖励中加入每个 token 的 KL 散度惩罚,而是通过将学习策略与参考策略之间的 KL 散度直接添加到损失函数中来规范学习过程
  • 重点:在 Off-policy 场景中,不能简单地将奖励框架中的 KL 惩罚转移到作为正则化损失项
    • 这需要在整个词汇表上计算 KL 项 ,而不仅仅是依赖于采样的轨迹

Theory recap

  • PPO 中的损失函数定义如下:
    $$
    \mathcal{J}_{PPO}(\theta) = \mathbb{E}_{q \sim P(Q), o \sim \pi_{\theta_{old}}(O|q)} \Big[\frac{1}{|o|} \sum_{t=1}^{|o|} \min \left( \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})} A_t, \text{clip} \left( \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})}, 1 - \epsilon, 1 + \epsilon \right) A_t \right)\Big].
    $$
    • 在 PPO 设置中,\(\pi_{\theta_{\text{old}}}\) 和 \(\pi_{\text{ref}}\) 之间的 KL 散度被纳入奖励函数,表示为:
      $$ R = r(q, o) - \text{KL}(\pi_{\theta_{\text{old}}}, \pi_{\text{ref}}) $$
    • 在这个奖励函数中,没有任何项依赖于正在优化的策略 \(\pi_\theta\)
    • 在精确损失函数的实现中,可以对这个奖励应用“detach”操作,在代码中有效地表示为 R = R.detach()
    • 这种分离可以防止损失计算中出现不可预测的行为
  • GRPO 的损失函数定义是:
    $$
    \begin{split}
    \mathcal{J}_{GRPO}(\theta)&=\mathbb{E}_{q\sim p(Q),\{\mathbf{o}_i\}_{i=1}^{G}\sim\pi_{\theta_{old}}(O|q)}\\
    &\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|\mathbf{o}_i|}\sum_{t=1}^{|o_{t}|}\left\{\min\left[\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})}\hat{A}_{i,t},\text{clip}\left(\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})},1-\epsilon,1+\epsilon\right)\hat{A}_{i,t}\right]-\beta\text{D}_{\text{KL}}\left[\pi_{\theta}||\pi_{ref}|\right) \right\},
    \end{split}
    $$
  • 注:两者都基于策略 \(\pi_{\theta_{\text{old}}}\) 采样轨迹,也就是说两种方法本质上都是 Off-policy 的
  • 回顾 REINFORCE 算法 :
    • REINFORCE 以 On-policy 方式运行,REINFORCE 的损失函数表示为:
      $$ L = \mathbb{E}_{\pi_\theta}[R] $$
    • 这是一个直接的目标,其中 \(R\) 代表 On-policy \(\pi_\theta\) 下获得的奖励(目标是最大化这个期望奖励)
    • 该损失对应的梯度为:
      $$ \nabla_\theta L = \nabla_\theta \mathbb{E}_{\pi_\theta}[R] $$
    • 由于采样和优化都是相对于相同的策略分布 \(\pi_\theta\) 进行的,我们旨在计算该分布的梯度以更新参数 \(\theta\)
      • 但这提出了一个挑战,因为直接评估期望通常是不可行的(非可微奖励(Non-differentiable Reward)):奖励函数可能不可微,或者可能是一个黑盒函数,这意味着其内部工作不可见,只能观察到输出(High-Dimensional Continuous Control Using Generalized Advantage Estimation)
    • 为了处理这个问题,使用了一种称为得分函数估计器(score function estimator)或 REINFORCE 估计器(REINFORCE estimator)的通用梯度估计器
      • 得分函数定义为:
        $$ \nabla_\theta \log \pi_\theta = \frac{\nabla_\theta \pi_\theta}{\pi_\theta} $$
    • 利用这个得分函数,REINFORCE损失的梯度可以表示为:
      $$ \nabla_\theta L = \mathbb{E}_{\pi_\theta}[R \cdot \nabla_\theta \log \pi_\theta] $$
    • 在这里,梯度计算集中在对数概率项 \(\nabla_\theta \log \pi_\theta\) 上
      • 这种公式有效地将寻找期望梯度(gradient of an expectation)的问题转化为梯度的期望(expectation of gradients) ,且梯度的期望可以通过从 \(\pi_\theta\) 中抽取的样本来估计
      • 这是强化学习中的一个关键 Insight,因为它允许即使在奖励信号稀疏或随机的情况下也能优化策略
  • 为了理解 \(\pi_\theta\) 项在 GRPO 设置中的重要性,从 \(\pi_\theta\) 如何影响 KL 损失中的梯度计算开始
    • 在 GRPO 的背景下,KL 散度以下列期望形式表示:
      $$ \text{KL}(\pi_\theta | \pi_{\text{ref}}) = \mathbb{E}_{\pi_\theta}[\log \pi_\theta - \log \pi_{\text{ref}}] $$
    • 在计算 GRPO 损失的梯度时,需要对两个组成部分进行微分:
      • 1)与优势加权策略项相关的梯度,类似于 PPO
      • 2)与 KL 散度项相关的梯度(GRPO 损失函数设计下独有的部分)
    • 涉及 KL 散度的组成部分需要进行微分,因为它包含了明确依赖于策略参数 \(\theta\) 的项 \(\pi_\theta\)。这种依赖性在计算梯度时至关重要,因为:
      • 对分布的微分(Differentiation Over the Distribution) :由于 \(\pi_\theta\) 代表了对动作的概率分布,\(\theta\) 的任何变化都会影响不同动作的概率分配
        • 因此,推导梯度涉及考虑这些概率如何随参数更新而变化
      • 梯度传播(Gradient Propagation) :KL 散度中的 \(\pi_\theta\) 项直接影响通过其向策略参数反向传播更新的梯度
        • 与 PPO 场景不同,在 PPO 中奖励项(注:包含 KL 散度的奖励项)是分离的,(KL 散度)不会直接影响关于 \(\pi_\theta\) 的梯度,而在这里 \(\pi_\theta\) 主动参与梯度计算
    • 因此,强调 \(\pi_\theta\) 项至关重要,因为它将 KL 散度直接与策略参数联系起来,需要在梯度计算中予以考虑

从实现的视角看

PPO
  • 以 OpenRLHF 仓库 为例:

    • 在 PPO 中,为了计算奖励,需要添加 KL 项

      • 如 openrlhf/models/utils.py 所示,其中 KL 在 trainer/ppo_utils/experience_maker.py 计算,下面的代码来自 openrlhf/models/utils.py
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33
        34
        35
        def compute_approx_kl(
        log_probs: torch.Tensor,
        log_probs_base: torch.Tensor,
        kl_estimator: str = "k1",
        ) -> torch.Tensor:
        """
        Compute the approximate KL divergence between two distributions.
        Schulman blog: http://joschu.net/blog/kl-approx.html

        Args:
        log_probs: Log probabilities of the new distribution.
        log_probs_base: Log probabilities of the base distribution.
        """

        if kl_estimator == "k1":
        log_ratio = log_probs.float() - log_probs_base.float()

        # The k2 estimator is the non negative kl approximation in
        # http://joschu.net/blog/kl-approx.html
        # The k2_loss is approximately equivalent to the
        # one-step KL divergence penalty with the k1 estimator
        # used in https://arxiv.org/pdf/2310.10505.
        if kl_estimator == "k2":
        log_ratio = log_probs.float() - log_probs_base.float()
        log_ratio = log_ratio**2 / 2.0

        # The k3 estimator is the non negative kl approximation in
        # http://joschu.net/blog/kl-approx.html
        if kl_estimator == "k3":
        log_ratio = log_probs.float() - log_probs_base.float()
        log_ratio = -log_ratio
        log_ratio = log_ratio.exp() - 1 - log_ratio

        log_ratio = log_ratio.clamp(min=-10, max=10)
        return log_ratio
    • 值得注意的是,action_log_probs 和 base_action_log_probs 的形状是 [batch_size, response_length]

    • 核心 :一个有趣的问题是,当计算 KL 散度时,应该在整个词汇表分布上计算,而不仅仅是采样的轨迹上

      • 进一步引出问题思考:为什么在这种情况下可以省略 vocab_size 维度?
    • 回答问题:

      • 回想一下,我们讨论过 PPO 中的奖励是定义为:
        $$R = r(q, o) - \text{KL}(\pi_{\theta_{\text{old}}}, \pi_{\text{ref}})$$
      • 将 PPO 损失重写为(简写):
        $$\mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}} A\right]$$
      • 进一步忽略价值函数,这个表达式简化为
        $$\mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}} (r(q,o) - \text{KL}(\pi_{\theta_{\text{old}}}, \pi_{\text{ref}}))\right] = \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}} (r(q,o) - \mathbb{E}_{\pi_{\theta_\text{old}}}(\log \pi_{\theta_{\text{old}}} - \log \pi_{\text{ref}}))\right]$$
      • 由于期望是在相同的分布 \(\pi_{\theta_\text{old}}\) 下取的,而不是在与我们正在优化的参数 \(\theta\) 无关的 \(\pi_\theta\) 下
        • 因此只需计算 \(\pi_{\theta_{\text{old}}}\) 和 \(\pi_{\text{ref}}\) 的对数概率之间的差异就足够了(如Language Models are Few-Shot Learners, NIPS 2020 中所示)
        • 在这种情况下省略 vocab_size 维度是可行的
          • 理解:是因为做了采样,采样就相当于做了分布期望完整估计
GRPO
  • GRPO 中,KL 项被视为损失,特别是当 KL 散度表示为 \(\text{KL}(\pi_\theta || \pi_{\text{ref}})\) 时,不可能使用 \(\pi_\theta\) 和 \(\pi_{\text{ref}}\) 的对数概率之间的差异来近似这个 KL 损失
    • 核心 :因为有必要在 \(\pi_\theta\) 下采样轨迹
  • 同上,我们可以将 GRPO 目标化简表示为:
    $$ \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}}A - \text{KL}(\pi_\theta, \pi_{\text{ref}})\right] = \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}}A - \mathbb{E}_{\pi_\theta}(\log\pi_\theta - \log\pi_{\text{ref}})\right] $$
    • 理解:上述的式子说明,内外层需要分别对 \(\pi_\theta\) 和 \(\pi_{\pi_\text{old}}\) 进行采样,而这两者对不齐
    • 因此,当使用 KL 项作为损失时,必须保持 vocab_size 维度
      • 问题:这跟 vocab_size 有什么关系,主要还是同时需要两个不同的采样导致的吧?
      • 回答:有关系,需要对 \(\pi_\theta\) 采样的原因是无法全部列举 \(\pi_\theta\) 的 可能动作,如果是列举所有动作 (vocab_size),则不再需要采样(理解:评估分布的期望有两种方式:1)采样 or 2)访问所有动作的概率计算期望)
    • 此外,重用上述代码中的 compute_approx_kl 函数是不合适的(理解:这里是按照 \(\pi_{\pi_\text{old}}\) 采样的),因为这样做会导致:
      $$ \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}}A - \mathbb{E}_{\pi_{\theta_{\text{old}}}}(\log\pi_\theta - \log\pi_{\text{ref}})\right] $$
      • 因为我们实际上使用 \(\pi_{\theta_{\text{old}}}\) 进行采样,导致失去了 \(\pi_\theta\) 的导数信息

Ways to solve

  • The critical implementation detail of KL loss in GRPO 博客作者在与 @Renbiao Liu 和 @Yiming Liu 讨论后,似乎有三种潜在的方法来解决这个问题:
    • 1)遵循传统的 KL 损失(即重新通过 \(\pi_\theta\) 采样并计算 KL)
    • 2)仅使用 GRPO 的 On-policy 版本
    • 3)将 KL 散度重新加入奖励函数
遵循传统的 KL 损失
  • 注:原始 GRPO 中使用的是 KL 散度的 K3 估计
    $$ k_3 = (r-1) - \log r$$
  • 本节使用传统的 KL 损失,传统 KL 损失可以推导如下:
    $$
    \begin{align}
    &\nabla_\theta\mathbb{E}_{\pi_\theta}\left[\log\pi_\theta-\log\pi_\text{ref}\right] \\
    =& \nabla_\theta\sum\pi_\theta (\log\pi_\theta-\log\pi_\text{ref}) \\
    =& \sum\nabla_\theta\pi_\theta\cdot(\log\pi_\theta-\log\pi_\text{ref})+\pi_\theta\cdot\nabla_\theta(\log\pi_\theta-\log\pi_\text{ref}) \\
    =& \sum\nabla_\theta\pi_\theta\cdot(\log\pi_\theta-\log\pi_\text{ref})+\pi_\theta\cdot\frac{\nabla_\theta\pi_\theta}{\pi_\theta}\\
    =&\sum\pi_\theta\nabla_\theta\log\pi_\theta(\log\pi_\theta-\log\pi_\text{ref})+\sum\nabla_\theta\pi_\theta\\
    =&\mathbb{E}_{\pi_\theta}\left[(\log\pi_\theta-\log\pi_\text{ref})\nabla_\theta\log\pi_\theta\right]
    \end{align}
    $$
  • 理解:从上面可以看出,只需要对 \(\pi_{\theta}\) 采样就可以了,不再需要内层计算期望(也就没有内外层期望的概率分布不一致问题)
  • 也就是说,可以通过基于样本的近似技术(如 On-policy 采样或重要性采样)或通过计算分布概率来进行梯度反向传播来优化它
    • 问题:这里的 On-policy 采样是指真实使用当前策略去重新采样,也就是说 GRPO 迭代的每一步都需要重新采样并计算 KL?
  • 然而,鉴于这些方法通常有一些缺点:
    • 方式一:重新采样,依赖于额外的采样程序(除了从 \(\pi_{\theta_\text{old}}\) 采样外,还可能需要从每一步迭代后的 \(\pi_\theta\) 采样)
    • 方式二:在 vocabulary size 上计算 KL 散度
    • 它们并不特别实用或计算效率高
  • 另一种近似方法可能涉及使用 top-K 软标签(soft labels)进行梯度反向传播,类似于知识蒸馏中使用的方法,尽管这尚未在 RL 场景中被证明是最佳选择
    • 软标签参考链接: Distilling the Knowledge in a Neural Network, NIPS 2015 ;Top-K Sampling for Language Generation, ACL 2020
On-policy GRPO
  • 在 GRPO 的 On-policy 版本中,原始损失函数可以重新表述为:
    $$ \mathbb{E}_{\pi_{\theta}}\left[A-\mathbb{E}_{\pi_{\theta}}\left[\log\pi_\theta-\log\pi_\text{ref}\right]\right]=\mathbb{E}_{\pi_{\theta}}\left[A-(\log\pi_\theta-\log\pi_\text{ref}\right)] $$
  • 相应的导数由下式给出:
    $$ \mathbb{E}_{\pi_\theta}[(A-(\log\pi_\theta-\log\pi_\text{ref}))\cdot\nabla_\theta\log\pi_\theta] $$
  • 因此,当 GRPO 完全 On-policy 时,它与之前使用的公式匹配:
    $$ \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}}A - \text{KL}(\pi_\theta, \pi_{\text{ref}})\right] = \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}}A - \mathbb{E}_{\pi_\theta}(\log\pi_\theta - \log\pi_{\text{ref}})\right], $$
    • 在 On-policy 条件下,即 \(\pi_\theta = \pi_{\theta_{\text{old}}}\):
      $$ \mathbb{E}_{\pi_{\theta}}\left[\frac{\pi_\theta}{\pi_{\theta}}A - \mathbb{E}_{\pi_\theta}(\log\pi_\theta - \log\pi_{\text{ref}})\right]=\mathbb{E}_{\pi_{\theta}}\left[A - (\log\pi_\theta - \log\pi_{\text{ref}})\right], $$
Adding back to reward function(即将 KL 散度重新加入奖励函数)
  • 从上面的推导可知,传统的 KL 散度损失可以化简为:
    $$
    \begin{align}
    \nabla_\theta\mathbb{E}_{\pi_\theta}\left[\log\pi_\theta-\log\pi_\text{ref}\right] = \mathbb{E}_{\pi_\theta}\left[(\log\pi_\theta-\log\pi_\text{ref})\nabla_\theta\log\pi_\theta\right]
    \end{align}
    $$
  • 在 Off-policy 场景中,KL 损失的为:
    $$
    \mathbb{E}_{\pi_\theta}\left[(\log\pi_\theta-\log\pi_\text{ref})\nabla_\theta\log\pi_\theta\right]=\mathbb{E}_{\pi_{\theta_\text{old} } }[\frac{\pi_{\theta} }{\pi_{\theta_\text{old} } }(\log\pi_\theta-\log\pi_{\text{ref} })\nabla_\theta\log\pi_\theta]
    $$
  • 如果此时忽略价值函数并应用此 KL 损失,则 GRPO 损失变为:
    $$
    \mathbb{E}_{\pi_{\theta_{\text{old} } } }\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old} } } } (r(q,o) - KL(\pi_{\theta}, \pi_{\text{ref} }))\right]
    $$
    • 注:次数 KL 项应 detached(梯度不回传),这里的用法相当于 KL 散度本身就是奖励的一部分,不再通过梯度直接优化 KL 损失了
  • 实际上,PPO 的推导过程中就使用到了重要性采样,同时考虑 KL 散度存在(使得相邻两步策略足够接近,所以可以使用近似策略)
    $$
    \begin{align}
    \nabla_\theta J_{\text{PPO}}(\theta)
    &= \mathbb{E}_{(s_t, a_t) \sim \pi_\theta} \left[ A_\theta(s_t, a_t) \nabla_\theta \log \pi_\theta(a_t|s_t) \right] \\
    &= \mathbb{E}_{(s_t, a_t) \sim \pi_{\theta_\text{old}}} \left[ \frac{\pi_\theta(a_t|s_t) \pi_\theta(s_t)}{\pi_{\theta_\text{old}}(a_t|s_t)\pi_{\theta_\text{old}}(s_t)} A_{\theta}(s_t, a_t) \nabla_\theta \log \pi_\theta(a_t|s_t) \right] \\
    &\approx \mathbb{E}_{(s_t, a_t) \sim \pi_{\theta_\text{old}}} \left[ \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_\text{old}}(a_t|s_t)} A_{\theta_\text{old}}(s_t, a_t) \nabla_\theta \log \pi_\theta(a_t|s_t) \right] \\
    &= \mathbb{E}_{(s_t, a_t) \sim \pi_\theta} \left[ \frac{\nabla \pi_\theta(a_t|s_t)}{\pi_{\theta_\text{old}}(a_t|s_t)} A_{\theta_\text{old}}(s_t, a_t) \right]
    \end{align}
    $$
    • 注:\(\pi_\theta\) 和 \(\pi_\text{ref}\) 之间的 KL 散度可以通过 \(\pi_{\theta_\text{old} }\) 和 \(\pi_\text{ref}\) 之间的 KL 散度来近似
  • 因此,GRPO 损失函数的一个进一步近似可以表示如下:
    $$
    \nabla_\theta\mathbb{E}_{\pi_{\theta_{\text{old} } } }\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old} } } } (r(q,o) - KL(\pi_{\theta}, \pi_{\text{ref} }))\right]\approx\nabla_\theta\mathbb{E}_{\pi_{\theta_{\text{old} } } }\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old} } } } (r(q,o) - KL(\pi_{\theta_\text{old} }, \pi_{\text{ref} }))\right]
    $$
    • 此时,这正是 Off-policy 版本的 PPO 的表达形式,两者很相似(注:但并不等价)
      • 注:尽管上述 PPO 和 GRPO 的基本损失函数在 Off-policy 版本中看起来很相似,但两者的实际值不同:
        • 此时 GRPO 的奖励是 Trajectory-level 奖励的总和减去 Token-level KL 散度,最终得到 Token-level 奖励
          • 注意:这里是将 KL 散度放入 奖励 以后的 GRPO,原始的 GRPO 是 Trajectory-level 奖励
        • PPO 中使用的是 Token-level 奖励和(potentially)Trajectory-level KL 散度
          • 问题:原始的 PPO 中的 KL 散度是 Token-level 的,这里的 (potentially)Trajectory-level KL 散度 应该是在说某些场景中使用的 KL 散度奖励是 Trajectory-level 奖励
    • 理解:这里与前面的 vanilla GRPO 公式不同
      • 前面 KL 散度在 loss 上,不在奖励中,不能按照上面进行近似推导(KL 散度有梯度,且需要通过损失函数直接向后传递),所以之前存在问题;
      • 现在这种推导虽然做了近似,但是是合理的(因为相邻两步的策略就应该比较近似才对,此时不需要直接通过 loss 进行 KL 散度梯度回传了)
    • 问题:上面的推导中,将 KL 散度放入 GRPO 的奖励,同时不考虑 Advantage 的计算方式,确实 PPO 和 GRPO 就等价了啊,为什么还要绕一圈去证明?
      • 回答:不是严格的等价,毕竟 GPRO 是整个样本粒度的所有 Token 相同的奖励(原始的 PPO RLHF 中,仅最后一个 Token 有奖励,然后通过 GAE 回传到每个 Token 上)

GRPO 核心要点

  • GRPO 采用组优势归一化,而不是在整个经验回放缓冲区上进行优势归一化,这可以在某些基于规则的奖励设置中获得更好的性能
  • 对于 GRPO 的 On-policy 变体,简单的实现就足够了,因为 \(\pi_{\theta_\text{old} }\) 与 \(\pi_\theta\) 是相同的
  • 对于 GRPO 的 Off-policy 版本,将 KL 项加回奖励函数中更为实用,因为它可以节省计算资源和时间,使其再次几乎等同于 PPO(理解:这里的等同主要强调对 KL 散度的处理)

Potential Impact

  • 这里研究的 KL 损失可能不会显著影响策略模型的收敛速度,因为当前研究表明强化学习算法倾向于接近 On-policy ,特别是对于推理型大语言模型
    • 但随着 GRPO 变得更加 Off-policy ,这种差异可能会变得更加明显
  • 这个问题可能普遍存在于许多开源代码库中,例如 OpenRLHF 和 verl
    • 在 trl 代码库中,默认设置为 On-policy 版本,这可能已经足够
  • 由于目前开源代码中尚未提供真正实现的 Off-policy GRPO,并且三种不同的实现方式尚未得到充分的实验和比较,因此 GRPO 不同实现方式之间的区别以及 GRPO 与 PPO 之间的性能差异仍然是需要持续讨论和考虑的课题

DeepSeek-V3.2 的补充

  • DeepSeek-V3.2 中对 GRPO 的 KL 散度重新进行了推导,并给出了无偏的 KL 散度估计
  • DeepSeek-V3.2 解决的问题本质就是本文提出的问题,但是解决的方法是通过在 KL 散度中增加重要性权重而得到无偏的 KL 散度估计

附录:记一次 GRPO 问题排查过程

  • 问题描述:现实场景中发现过 GRPO 训练时,大部分 Step 的 GBS 内部 Advantage 均值微微大于 0 的情况(约 5e-3 量级)

问题分析

  • 最终经过排查发现似乎是因为归一化时,全等的数据因为计算误差出现了均值不为 0 的情况(此时除以特别小的标准差以后得到的值较大)
  • 表现为同一个 Group 内部归一化后的值相等(均值计算出现误差导致),且归一化后正值的概率大于负值的概率(不同原始值得到的正负误差是确定的,我们的场景更容易出现某个正误差的相同值,所以一直偏正)
  • torch.float32 下的问题复现及 torch.float64 的问题修复
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    import torch
    import numpy as np

    # float32 时存在误差
    print(f"\n=======\n数据类型 为 float32 时存在误差")
    # values = [0.6666666865348816] * 8
    values = [0.819531261920929] * 8
    tensors = torch.tensor(values) # PyTorch 默认 是 float32
    print(f"数据类型:{tensors.dtype}") # PyTorch 默认 是 float32
    x1 = tensors.mean()
    print(f"原始数值:{tensors[0].item()}")
    print(f"均值数值:{x1.item()}")
    print(f"原始数值-均值的结果:{(torch.tensor(values[0]) - x1).item()}")

    # float32 时存在误差
    print(f"\n=======\n数据类型 为 float32 时存在误差")
    values = [0.6666666865348816] * 8
    # values = [0.819531261920929] * 8
    tensors = torch.tensor(values) # PyTorch 默认 是 float32
    print(f"数据类型:{tensors.dtype}") # PyTorch 默认 是 float32
    x1 = tensors.mean()
    print(f"原始数值:{tensors[0].item()}")
    print(f"均值数值:{x1.item()}")
    print(f"原始数值-均值的结果:{(torch.tensor(values[0]) - x1).item()}")


    # float64 时不存在误差
    print(f"\n=======\n数据类型 为 float64 时不存在误差")
    # values = [0.6666666865348816] * 8
    values = [0.819531261920929] * 8
    tensors = torch.tensor(values, dtype=torch.float64) # 切换回到 float64
    print(f"数据类型:{tensors.dtype}")
    x1 = tensors.mean()
    print(f"原始数值:{tensors[0].item()}")
    print(f"均值数值:{x1.item()}")
    print(f"原始数值-均值的结果:{(torch.tensor(values[0]) - x1).item()}")


    # float64 时不存在误差
    print(f"\n=======\n数据类型 为 float64 时不存在误差")
    values = [0.6666666865348816] * 8
    # values = [0.819531261920929] * 8
    tensors = torch.tensor(values, dtype=torch.float64) # 切换回到 float64
    print(f"数据类型:{tensors.dtype}")
    x1 = tensors.mean()
    print(f"原始数值:{tensors[0].item()}")
    print(f"均值数值:{x1.item()}")
    print(f"原始数值-均值的结果:{(torch.tensor(values[0]) - x1).item()}")


    # =======
    # 数据类型 为 float32 时存在误差
    # 数据类型:torch.float32
    # 原始数值:0.819531261920929
    # 均值数值:0.8195313215255737
    # 原始数值-均值的结果:-5.960464477539063e-08

    # =======
    # 数据类型 为 float32 时存在误差
    # 数据类型:torch.float32
    # 原始数值:0.6666666865348816
    # 均值数值:0.6666666269302368
    # 原始数值-均值的结果:5.960464477539063e-08

    # =======
    # 数据类型 为 float64 时不存在误差
    # 数据类型:torch.float64
    # 原始数值:0.819531261920929
    # 均值数值:0.819531261920929
    # 原始数值-均值的结果:0.0

    # =======
    # 数据类型 为 float64 时不存在误差
    # 数据类型:torch.float64
    # 原始数值:0.6666666865348816
    # 均值数值:0.6666666865348816
    # 原始数值-均值的结果:0.0

解决方法

  • 解决方法1:切换到精度更高的 torch.float64 (PyTorch 默认为 torch.float32)

    1
    2
    3
    4
    5
    original_dtype = rewards.dtype
    rewards = rewards.to(dtype=torch.float64)
    # 其他原始逻辑不变
    advantages = advantages.to(dtype=original_dtype)
    return advantages
  • 解决方法2:当 std 小于某个值时,其实组内 rewards 差异较小,索性将整体 advantages 置为 0

    1
    2
    3
    4
    if rewards_std < 1e-5:  # 这个阈值可适当调整
    advantages = torch.zeros_like(rewards)
    else:
    advantages = (rewards - rewards_mean) / (rewards_std + 1e-8)
  • 解决方法3:

    • drop 这部分 rewards 相同的样本(反正也不提供有效梯度)
  • 解决方法4:

    • 不使用 std 或者使用 Batch 粒度的 std(比如 使用 Dr.GRPO 等,可减少对误差的放大,这种情况依然会有较小误差,但几乎可以忽略)
    • 注:虽然 DeepSeek 自己最新的文章(DeepSeek-V3.2)没有除以 std,但现在大部分文章还是会使用 GRPO 的(Dr.GRPO 是在一些场景会好用一些,但没有确切证明他比 GRPO 好),比如最新的 GLM-5 就还是除以 std 的
  • 修复后效果:

    • 修复后,可以看到 Advantage 的均值严格在 0 附近波动([-1e-8, 1e-8] 之间),远低于之前的 1e-3 量级,符合预期
    • 修复后,特别是使用 mask std 过小的 Group 方式修复后,kl spike 大幅缩小
      • 分析是因为被错误 Advantage 更新的 Token 变少了,特别是 mask std 过小的 Group 的实验组
    • 修复后,kl 偏离程度更低(因为更新的 Token 变少了)
    • 修复后,下游指标几乎持平或正向,但使用 mask std 过小的 Group 的实验组观察到训练的指标有一定下滑(因为更新的 Token 数量变少了)

NLP——LLM对齐微调-LLDS

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(LLDS)On GRPO Collapse in Search-R1: The Lazy Likelihood-Displacement Death Spiral, arXiv 20251203, University of British Columbia & Vector Institute & UC Berkeley

Paper Summary

  • 整体总结:
    • 作者将 LLD 确定为基于 GRPO 的、Search-R1 风格的工具集成 RL 不稳定的核心原因
    • LLD 出现得早,发生频率高,并能可靠地将训练驱动到一个自我强化的 LLD 死亡螺旋中,其特征是单调的似然衰减、熵激增、梯度膨胀和最终崩溃
    • 注意:论文的分析首次提供了系统性证据,表明 GRPO 在工具集成设置下对似然漂移特别脆弱
    • 为了对抗这种故障模式,论文提出了 LLDS,一个简单有效的似然保留正则化器,它仅在似然降低时激活,并且仅针对有问题的 Token
  • 背景 & 问题提出:
    • Tool-Integrated RL(TIRL)让 LLM 能够通过与搜索引擎和检索器等外部工具交互来执行多步推理
    • GRPO,如 Search-R1 (2025) 所示,提供了快速的收敛性和无需价值函数的设定,使其在此场景中具有吸引力,但却持续遭受训练坍缩(training collapse)
  • 作者识别出Lazy Likelihood Displacement(LLD)
    • 即正确与错误响应的似然同时系统性降低或停滞,是驱动 training collapse 的核心机制
    • 理解:这里的 Displacement 是 “移位” 的含义,likelihood displacement 在统计中是一个专有名词,翻译为:“似然位移”,指模型参数的似然估计值因数据分布变化、异常值或模型假设偏差 ,导致与 “真实参数” 产生的系统性偏移(本质是 “似然估计的偏差”)
      • LLD 表面含义是表达 Likelihood 缓慢地发生了错位?但本意是指优化后,策略的质量反而下降了,即 RL 的目标反而下降了
  • LLD 早期出现并触发了自我强化(self-reinforcing)的LLD 死亡螺旋(LLD Death Spiral) ,其中下降的似然导致低置信度响应,从而放大了梯度并最终导致坍缩
  • 作者通过实验在 Search-R1 风格的、搜索集成的问答任务上,跨模型描述了这一过程,揭示了一致的三阶段轨迹:
    • 早期停滞:early stagnation
    • 稳定衰减:steady decay
    • 加速坍缩:accelerated collapse
  • 问题解法:
    • 作者提出了一种轻量级的、保持似然的 LLDS 正则化方法 ,仅当轨迹的似然下降时才激活 ,并且只正则化造成下降的 Token
    • 这种细粒度结构在最小化对优化过程干扰的同时缓解了 LLD
    • 在七个开放域和多跳问答基准测试中,LLDS 稳定了训练,防止了梯度爆炸,并带来了显著的性能提升
      • 包括在 Qwen2.5-3B 上获得 +37.8% 的增益,在 Qwen2.5-7B 上获得 +32.0% 的增益
  • 论文的结果确立了 LLD 是基于 GRPO 的 TIRL 的一个根本瓶颈,并为稳定、可扩展的工具集成 LLM 训练提供了实用路径

Introduction and Discussion

  • LLM 越来越多地利用外部工具,例如搜索引擎 (2025) 和代码执行环境 (2025; 2025),来增强其推理能力
  • 这个工具集成推理(Tool-Integrated Reasoning, TIR)范式推动了近期在事实性问答 (2025)、基于图像的推理 (2025) 和数学问题求解 (2025; 2025) 方面的进展
  • 通过使模型能够迭代 Query 工具、验证中间步骤并精炼其思考,工具调用显著提升了推理质量 (2023)
  • 这些进展自然促使人们使用 RL 来训练 LLM 进行规划、与工具交互并掌握多步决策,正如最近基于 GRPO 的框架(如 Search-R1 (2025))所例证的那样
  • 但将 TIR 扩展到 RL 设定引入了严重且持续的训练不稳定性
    • 特别是,在 Search-R1 风格 (2025) 的、搜索集成的问答流程中,GRPO 训练频繁表现出突然的奖励下降和灾难性坍缩 (2025; 2025)
    • 这些失败在多轮设定中尤为明显 (2025),其中工具反馈成为模型条件上下文的一部分,创造了长且高度纠缠的轨迹
    • 尽管先前工作已观察到这些失败,但其底层机制仍知之甚少
  • 论文首先识别出Lazy Likelihood Displacement(LLD) (2025; 2024; 2024)
    • 即在 GRPO 优化期间,正确和错误响应的似然停滞或减少 (2025)
    • 这是 Search-R1 风格的 Tool-Integrated Reinforcement Learning(TIRL)中先前被忽视的根本坍缩来源
  • 以搜索集成问答为案例研究(见图 2),论文展示了 LLD 早期且持续地出现:
    • 即使在奖励增加时,正确响应的似然也进入单调下降
  • 这种行为在多种模型规模上均出现,表明 LLD 是基于 GRPO 的 TIRL 的一种结构性失败模式,而非特定配置的产物
  • 论文进一步证明 LLD 驱动了一个 self-reinforcing 的LLD 死亡螺旋 ,其中由此产生的低置信度状态放大了来自错误轨迹的负梯度影响,加速了似然衰减,触发了熵(Entropy)尖峰,增大了似然比,并最终导致了引起坍缩的大梯度不稳定性
  • 为对抗此失败模式,论文提出了一种简单而有效的保持似然的正则化方法 LLDS ,用于防止有害的似然减少
    • 论文的方法可与 GRPO 无缝集成,并引入了两层选择性:
      • (i)响应级门控 ,仅当轨迹的总体似然下降时才激活正则化;
      • (ii)Token-level 选择性 ,仅惩罚造成下降的 Token
    • 这种细粒度设计直接缓解了 LLD,同时最小程度地干扰了 GRPO 的优化行为
      • 通过防止无意的向下似然漂移,LLDS 使优化远离不稳定的高梯度状态,并保持了健康的训练动态
    • 实验证明,这转化为稳定的训练、被抑制的梯度爆炸以及在七个开放域和多跳问答基准测试上的一致增益
  • 论文的主要贡献有三方面:
    • 论文首次对 GRPO 驱动的 TIRL 中的 LLD 进行了系统性研究,并表明它高频出现,一致地经历一个特征性的失败轨迹:
      • 稳定的似然衰减,随后是梯度放大和熵爆炸,最终坍缩
    • 论文提出了一种轻量级的保持似然的正则化方法 LLDS,它选择性地正则化似然减少,并解决了 GRPO 训练中的坍缩问题
    • 通过稳定训练,论文在七个 QA 基准测试上实现了显著的性能提升(见图 1),展示了一种更鲁棒、更可靠的 RL 驱动 TIR 方法

Preliminary

  • TIRL 使一个 LLM 能够与外部工具交互
  • 论文将 Query 记作 \(\boldsymbol{x}\),工具反馈记作 \(\boldsymbol{o}\),模型的动作记作 \(\boldsymbol{y}\)
  • 对于给定的 Query \(\boldsymbol{x}\),模型在第 \(t\) 轮根据下式自回归地生成一个动作:
    $$
    \pi_{\theta}(\boldsymbol{y}_{t} \mid \boldsymbol{x},\boldsymbol{y}_{0},\boldsymbol{o}_{0},\boldsymbol{y}_{1}, \ldots ,\boldsymbol{o}_{t-1}),
    $$
    • \(\boldsymbol{y}_{t}\) 是基于累积上下文生成的
    • \(\boldsymbol{o}_{t-1} \sim \mathcal{T}\) :
      • 如果前一个动作 \(\boldsymbol{y}_{t-1}\) 调用了一个工具 \(\mathcal{T}\)(例如,发出搜索 Query ),则在第 \(t-1\) 轮返回的工具反馈
      • 如果未调用任何工具,则 \(\boldsymbol{o}_{t-1}\) 为空字符串
  • 多轮(Multi-turn) 设定对应于涉及多次工具调用,从而涉及多轮工具反馈的轨迹
    • 注意:这里的多轮并不涉及多个用户 Prompt 输入,整个过程中用户仅输入一个 Prompt(或 Query),其他的交互都是工具/环境产生的
  • 工具反馈 \(\boldsymbol{o}_{t}\) 对于预训练语言模型本质上是分布外(Out-of-Distribution, OOD) 的,因为这些反馈来源于外部环境,而非模型自身的生成分布
    • 直接迫使模型拟合这些反馈 Token 会引入巨大的训练-推理不匹配,并可能导致模型记忆环境特定的反馈
    • 因此,先前的工作通常在有监督训练期间将反馈 Token 屏蔽掉,以稳定优化并避免对外部内容过拟合 (2025)

Tool-Integrated GRPO with Feedback Mask

  • 由 DeepSeek-Math (2024) 和 DeepSeek-R1 (2025) 提出的 GRPO 损失函数,通过改进奖励和损失信号的计算方式来增强策略优化
  • 与 PPO (2017) 不同,GRPO 无需价值函数估计,而是使用组内相对奖励归一化进行优化
  • 具体而言,对于一个 Query-Answer 对 \((\boldsymbol{x}, \boldsymbol{a})\),策略 \(\pi_{\theta}\) 采样 \(G\) 个响应:
    $$\{(y_{i,0}, \boldsymbol{o}_{i,0}, \ldots, y_{i,t}, \boldsymbol{o}_{i,t}, \ldots, \boldsymbol{o}_{i,T_{i}-1}, y_{i,T_{i} })\}_{i=1}^{G},$$
    • \(T_{i}\) 表示 第 \(i\) 次 rollout 中 工具调用的次数(多轮交互的数量)
    • 每个动作 \(\boldsymbol{y}_{i,t}\) 由 \(|y_{i,t}|\) 个 Token 组成,论文用 \(\boldsymbol{y}_{i,t, < k}\) 表示由其前 \(k-1\) 个 Token 组成的前缀,即 \(\mathbf{y}_{i,t,k}\) 表示第 \(i\) 个 rollout 的第 \(t\) 个回合的 第 \(k\) 个 Token,其 在策略 \(\pi_{\theta_\text{old}}\) 下的采样逻辑为:
      $$ \mathbf{y}_{i,t,k}\sim \pi_{\theta_\textrm{old} }(\cdot|\mathbf{x},\cdots,\mathbf{y}_{i,t-1},\mathbf{o}_{i ,t-1},y_{i,t, < k}) $$
    • 令 \(r_{i}\) 表示分配给第 \(i\) 个响应的奖励
    • 第 \(i\) 个响应的第 \(t\) 个动作的优势通过组级归一化定义:
      $$\hat{A}_{i,t,k}:=\frac{r_{i}-\mu}{\sigma}, \qquad k=1,\ldots,|\hat{\boldsymbol{y} }_{i,t}|,$$
      • \(\mu=\widehat{\mathbb{E} }[\{r_{i}\}_{i=1}^{G}]\) 和 \(\sigma=\sqrt{\textrm{Var}[\{r_{i}\}_{i=1}^{G}]}\) 分别是组内奖励的经验均值和标准差
      • 同一轨迹的每个 Token 共享相同的归一化优势
  • 带反馈掩码的工具集成 GRPO 目标函数如下:
    $$\mathcal{J}_{\textrm{GRPO} }(\theta)=\mathbb{E}_{(\boldsymbol{x},\boldsymbol{a})\sim\mathcal{D} \\ \{y_{i,0},…,y_{i,t},\boldsymbol{o}_{i,t},y_{i,T_{i} } \}\sim(\pi_{\theta_\textrm{old} },\mathcal{T}) }\ \left[\frac{1}{\sum_{t=1}^{G}\sum_{t=1}^{T_{i} }|\hat{\boldsymbol{y} }_{i,t}|}\sum_{i=1}^{G}\sum_{t=1}^{T_{i} }\sum_{k=1}^{|\hat{\boldsymbol{y} }_{i,t}|}\min \left(\gamma_{i,t,k}(\theta)\hat{A}_{i,t,k},\hat{A}_{i,t,k}\operatorname{clip}\big(\gamma_{i,t,k}(\theta),1-\varepsilon,1+\varepsilon\big)\right)\right], \tag{1}$$
    • \(\varepsilon\) 是裁剪参数
    • 似然比定义为
      $$ \gamma_{i,k}(\theta)=\frac{\pi_{\theta}(\mathbf{y}_{i,t,k}|\mathbf{x},\cdots,\mathbf{y}_{i,t-1},\mathbf{o}_{i ,t-1},y_{i,t, < k})}{\pi_{\theta_\textrm{old} }(\mathbf{y}_{i,t,k}|\mathbf{x},\cdots,\mathbf{y}_{i,t-1},\mathbf{o}_{i ,t-1},y_{i,t, < k})} $$
    • 注意:尽管在损失计算时反馈 Token \(\mathbf{o}\) 被掩码掉,但它们仍然会影响后续 Token 预测的上下文
    • 注:从上面的公式 1 进一步说明:论文的多轮并不涉及多个用户 Prompt 输入,整个过程中用户仅输入一个 Prompt(或 Query),其他的交互都是工具/环境产生的
    • 问题:上面公式中的采样过程其实应该是表示为下面的式子才对吧?
      $$ \{y_{i,0},…,y_{i,t},\boldsymbol{o}_{i,t},y_{i,T_{i} } \}\sim(\pi_{\theta_\textrm{old} }(\cdot|\boldsymbol{x}), \mathcal{T}) $$

Lazy Likelihood Displacement in Tool-integrated GRPO(工具集成 GRPO 中的 LLD)

  • 近期工作 (2025) 在基于文本的非工具设定中,为 GRPO 引入了Lazy Likelihood Displacement(LLD) ,表明在优化过程中正确响应的似然经常减少或仅微弱改善(improves only marginally)
  • 在本节中,论文将 LLD 扩展到工具集成 RL 领域,并定义:
  • 定义 4.1:Tool-Lazy Likelihood Displacement
    • 令 \(\pi_{\theta_{\textrm{old} } }\) 和 \(\pi_{\theta_{\textrm{fin} } }\) 表示在数据集 \(\mathcal{D}\) 上优化偏好学习目标 \(\mathcal{J}\)(例如,公式 1)之前和之后获得的初始策略和微调策略,且 \(\mathcal{J}(\theta_{\textrm{fin} }) < \mathcal{J}(\theta_{\textrm{old} })\)
      • 理解:
        • 优化前的策略是:\(\pi_{\theta_{\textrm{old} } }\)
        • 优化后的策略是:\(\pi_{\theta_{\textrm{fin} } }\)
        • \(\mathcal{J}(\theta_{\textrm{fin} }) < \mathcal{J}(\theta_{\textrm{old} })\) 表示优化目标下降了
    • 考虑一个由交替动作和反馈组成的工具集成轨迹,\(({\boldsymbol{y} }_{0},{\boldsymbol{o} }_{0},\ {\boldsymbol{y} }_{1},{\boldsymbol{o} }_{1},\ \ldots ,\ {\boldsymbol{y} }_{T})\),其中仅动作 \(\{ {\boldsymbol{y} }_{t}\}_{t=0}^{T}\) 用于似然计算(反馈被屏蔽)
    • 对于每个响应动作 \({\boldsymbol{y} }_{t}\),定义其对数似然变化为
      $$
      \Delta_{t}({\bf x},{\boldsymbol{y} }_{t}):=\ln\pi_{\theta_{\textrm{fin} } }({\boldsymbol{y} }_{t} \mid {\bf x},{\boldsymbol{y} }_{ < t},{\boldsymbol{o} }_{ < t})-\ln\pi_{\theta_{\textrm{old} } }({\boldsymbol{y} }_{t} \mid {\bf x},{\boldsymbol{y} }_{ < t},{\boldsymbol{o} }_{ < t}).
      $$
    • 如果
      $$\Delta_{t}({\bf x},{\boldsymbol{y} }_{t}) \ \leq \ \epsilon $$
      • 则称:对于动作 \(t\) 发生了 LLD
      • 其中 \(\epsilon\) 是一个小的或非正的常数
    • 如果
      $$
      \sum_{t=0}^{T}\Delta_{t}({\bf x},{\boldsymbol{y} }_{t}) \ \leq \ \epsilon,
      \tag{2}
      $$
      • 则称:对于整个响应 发生了 LLD
    • 因此,LLD 捕捉了在优化策略下,一个或多个响应动作的似然表现出可忽略甚至负向改进的失败模式
    • 为了更好地理解 LLD 的起源,论文强调负梯度如何抑制正确动作的似然
      • 以下非正式定理(正式版本及证明见附录 A)在工具集成 RL 的设定中重述了 (2025) 中的定理 4.4:
  • 定理 4.2(非正式:工具集成 GRPO 中的 Trajectory-level LLD (Informal: Trajectory-Level LLD in Tool-Integrated GRPO)): 在工具集成 GRPO 中,当发生下面的情况时,原本正确的响应似然可能会下降
    • (i)低似然的错误响应
    • (ii)其嵌入表示与正确响应相似的错误响应诱导出大的负梯度并主导了正向更新
    • 这些力量共同导致了 Trajectory-level 的 LLD
  • 在工具集成 GRPO 的设定中,论文极其频繁地观察到正确响应的似然未能改善
    • 这表明了一种特别严重的 LLD 形式(\(\epsilon \leq 0\)),导致了模型整体输出似然的渐进衰减
    • 这种复合衰减是 Search-R1 风格工具集成 RL 的一种独特失败模式

Lazy Likelihood Displacement in Tool-Integrated GRPO (工具集成 GRPO 中的 LLD )

  • 本节阐述了 LLD 在工具集成 GRPO 训练中的普遍性,并展示了 LLD (\(\epsilon \leq 0\)) 如何灾难性地将模型驱动至训练崩溃

Likelihood Dynamic

  • 为了说明训练期间 LLD 的普遍性和进展过程,论文可视化了工具集成 RL 中的似然位移轨迹(likelihood-displacement
    trajectory)
  • 如图 2 所示,演化过程呈现出三个特征阶段:
    • 第一阶段(早期停滞, Phase I (early stagnation)):
      • 即使奖励增加,正确响应的似然也几乎保持不变,显示了 LLD 的初始出现
    • 第二阶段(稳态衰减,步骤 60-120, Phase II (steady-decay, steps 60-120)):
      • 似然表现出缓慢但持续的向下漂移,而奖励仅缓慢增长且梯度范数保持稳定——这表明了持续的 LLD
    • 第三阶段(加速,步骤 120 之后, Phase III (acceleration, after step 120)):
      • 似然开始急剧崩溃,同时梯度幅度快速激增(由红星 Token ),这触发了梯度爆炸并最终导致训练崩溃
    • 注:后续两个阶段对应于 \(\epsilon \leq 0\) 的机制,即正确响应的似然严格衰减而非改善
  • 图 2 右侧的放大视图突显了这一转变:
    • 似然持续下降,同时梯度加速上升,奖励曲线开始下降
    • 虽然最终的崩溃是由爆炸的梯度引起的,但似然衰减在整个训练过程中都存在,引入了累积的不稳定性,在加速阶段被急剧放大(更多讨论见附录 B.1)

Lazy Likelihood Displacement Death Spiral(LLD 死亡螺旋)

  • 在图 2 中,论文观察到随着训练的进行,响应似然出现加速下降
  • 论文通过将经过 Feedback-masked 轨迹写作 \(\hat{\boldsymbol{y} }=(\boldsymbol{y}_0,\boldsymbol{y}_1,\ldots,\boldsymbol{y}_T)\) 来简化符号
  • 论文正式地将这种加速的似然衰减表征为 LLD 死亡螺旋
  • 定义 5.1(LLD 死亡螺旋, Definition 5.1 (LLD Death Spiral)):
    • 考虑一个元组 \((\boldsymbol{x},\hat{\boldsymbol{y} }^{+})\) 以及从 \(\pi_{\theta_t}\) 到 \(\pi_{\theta_{t+1} }\) 的策略更新
    • 如果策略演化表现出以下自我强化的进程,论文说系统进入了 LLD 死亡螺旋:
      $$
      \text{LLD}_{t} \implies C^{\mathrm{low} }_{t} \implies \text{LLD}_{t+1}, \quad \epsilon_{t+1}<\epsilon_{t} \leq 0
      $$
    • 其中 \(\text{LLD}_{t}\) 表示时刻 \(t\) 的 LLD ,其似然递减 (\(\epsilon_{t} \leq 0\)),而 \(C^{\mathrm{low} }_{t}\) 表示在 \(\pi_{\theta_t}\) 下似然递减的低置信度轨迹
    • 转换 \(\text{LLD}_{t} \implies C^{\mathrm{low} }_{t}\) 反映了降低的似然导致预测越来越分散,而转换 \(C^{\mathrm{low} }_{t} \implies \text{LLD}_{t+1}\) 的发生是因为低置信度的错误响应通常包含与正确响应中相似的动作,这导致方程 (9) 中产生更大的值,从而产生更强的负梯度影响
    • 当这些效应在多次迭代中复合时,似然衰减加速,创造了一个自我延续的崩溃,论文称之为 LLD 死亡螺旋 (LLD Death Spiral)
  • 论文通过加速的熵爆炸 (accelerated entropy explosion) 和加速的逐样本 LLD (accelerated per-sample LLD) 来演示 LLD 死亡螺旋
Accelerated Per-Sample LLD(加速的逐样本 LLD)
  • 论文在基于搜索的问答数据集 NQ (2019) 上进行了对照实验,以检验 GRPO 的负梯度如何影响正确响应的对数似然
  • 使用 Qwen2.5-3B-Ins (2024),论文为每个问题生成 8 个回合,并仅保留那些包含正确和错误响应混合的示例,丢弃所有响应完全正确或完全错误的情况
  • 为了分离逐样本的学习动态,论文为每个单独的问题重新初始化模型参数 \(\theta\),应用一次 GRPO 更新得到 \(\theta’\),然后测量正确响应的平均对数似然变化:
    $$
    \Delta(\boldsymbol{x}) := \frac{1}{N^{+} } \sum_{i=1}^{N^{+} } \left[ \ln \pi_{\theta’}(\hat{\boldsymbol{y} }^{+}_{i} \mid \boldsymbol{x}) - \ln \pi_{\theta}(\hat{\boldsymbol{y} }^{+}_{i} \mid \boldsymbol{x}) \right],
    $$
  • 其中对于具有 \(N^{+}\) 个正确响应的问题 \(\boldsymbol{x}\)
  • 论文在图 3 中展示了结果
  • 在训练的早期阶段(第 50 次迭代),仅观察到轻微的 LLD:
    • 大多数问题中正确响应的似然减少可以忽略不计,可能是因为正确和错误的轨迹在结构上仍然不相似
  • 随着训练的进行,LLD 变得更加明显
    • 错误响应与正确响应之间结构相似性的增加导致了更广泛的似然下降,如上升的橙色曲线所示
    • 当训练进入加速阶段(第 120-140 次迭代)时,这种趋势加剧为LD 死亡螺旋 (LD death spiral)
    • 在第 140 次迭代时,超过一半的样本显示正确响应的似然大幅下降
      • 这种崩溃是由错误响应极低的似然驱动的,它放大了负梯度的贡献并使学习不稳定
Accelerated Entropy Explosion(加速的熵爆炸)
  • 图 4 可视化了训练期间 Qwen2.5-3B-Ins(图 a)和 Qwen2.5-3B-Base(图 b)的熵、响应长度和有效搜索比率的演变
  • 在两个模型中,平均 Token 熵最初缓慢增加,反映了图 2 中早期慢速 LLD 机制,但后来过渡到急剧加速增长的阶段,这与 LLD 轨迹的加速阶段一致
  • 这种陡峭的熵斜率是死亡螺旋的明确证明:
    • 随着低置信度响应的积累,模型为其 Token 分配越来越分散、低概率的分布,这进一步加强了 LD 并将系统推向不稳定
    • 至关重要的是,这种熵加速发生在响应长度和有效搜索次数几乎保持不变的同时,这证实了上升的熵和相应的似然下降不是由轨迹长度或工具 Query 频率引起的,而是 LD 效应本身的直接表现

Watch for correct actions embedded within incorrect responses(在错误响应中嵌入的正确动作)

  • 观察发现工具集成 GRPO 比非工具场景 (2025) 更容易受到 LLD 的影响
  • 本节在响应动作的粒度上检查 LLD,其中每个动作由连续工具调用之间的片段定义
  • 作者对 Qwen2.5-3B-Ins (2024) 的分析揭示了一个工具集成 GRPO 独有的惊人模式:
    • 正确动作经常出现在原本错误的响应中 ,这种混合结构扰乱了似然估计过程,放大了 LLD 并使训练不稳定
  • 错误响应中频繁出现的正确动作 (Frequent correct actions in Incorrect responses)
    • 论文在实验中发现模型通常使用其第一个响应动作来生成搜索 Query ,并且这个初始动作的正确性随着训练的进行稳步提高
    • 具体来说,作者衡量错误响应生成的检索文档是否与正确响应检索到的文档匹配;
      • 如果匹配,论文将第一个动作视为正确
      • 理解:这里是想看看错误的响应中,第一个回答是正确动作的比例
    • 图 5 显示了不同训练阶段下这个初始动作的准确率
      • 如绿色虚线所示,早期阶段准确率较低,反映了模型对搜索能力的初始掌握,但随着时间的推移显著上升
      • 到第 140 步时,大约 60% 的错误响应以一个正确的搜索 Query 开始,突显了正确 & 错误回复中,第一动作共享的高度结构相似性
  • 第一动作响应更快的似然衰减 (Faster likelihood decay of the first-action response)
    • 如图 5 所示,论文进一步观察到第一动作(浅蓝色)的似然衰减幅度比第二动作(蓝色)大得多
    • 训练早期,第一动作的似然更高,主要是因为第二动作必须基于分布外(OOD)的反馈进行条件生成
      • 理解:Before Feedback 为第一动作;After Feedback 为第二动作
    • 随着训练的进行,两个动作都表现出似然衰减
      • 第一动作的似然大约在第 110 步附近最终下降到低于第二动作,此时第一动作的正确率大约为 50%,表明正确和错误轨迹之间存在强烈的相似性
      • 在第 120 步之后,这种衰减急剧加速,标志着LLD 死亡螺旋 (LLD death spiral) 的开始,其中低似然的错误部分信号进一步加剧了退化
  • 无意义的第一动作 (Nonsensical first-action)
    • 随着 LLD 加剧和第一动作似然崩溃,模型开始产生无意义的输出
    • 如附录中的图 15 所示,它最终生成随机的、无意义的 Token ,这种效应是由严重降低的响应似然驱动的,这导致采样选择任意单词
    • 虽然在这个阶段可能尚未发生完全崩溃,但模型实际上已经无法使用,因为它无法再产生有意义的响应
  • 因此,必须减少对错误响应中正确动作的无意惩罚
    • 更详细的讨论见第 7 节

LLD regularization

  • 为了解决 LLD 问题,论文引入了一类似然保留正则化器,以防止模型在 GRPO 训练过程中无意地降低响应的似然
  • 对于给定的保留响应 \(\boldsymbol{y}_i \in \mathcal{Y}_{\text{pre} }\),论文比较其在旧策略(前一步)和微调策略下的 Token-level 似然
    • 理解:这里是提前准备了一个保留集 \(\mathcal{Y}_{\text{pre} }\),这里面的样本可以认为都是比较好的,也就是正确的,如果在这些样本上,新策略有下降,则给与惩罚
  • 论文的基础正则化器仅惩罚在更新后似然降低的 Token(Likelihood-reducing tokens)
LLD 正则的三种变体
  • LLD: Token-level 似然保留 (LLD: Token-Level Likelihood Preservation)
    • LLD 应用一个 Token-level 惩罚 (token-level penalty) :
      • 在每个响应 \(\mathbf{y}_i\) 内,只有似然降低的 Token 对损失有贡献:
        $$
        L_{\text{LLD} }=\frac{1}{\sum_{\boldsymbol{y}_i \in \mathcal{Y}_{\text{pre} } } \left| \mathbf{y}_i \right|} \sum_{\boldsymbol{y}_i \in \mathcal{Y}_{\text{pre} } } \sum_{y_i \in \mathbf{y}_i} \underbrace{\max \left(0, \ln \pi_{\theta_{\text{old} } }(y_i|\mathbf{x},\mathbf{y}_{ < i}) - \ln \pi_{\theta}(y_i|\mathbf{y}_{ < i}) \right)}_{\text{Likelihood-reducing tokens} }
        $$
    • 这种 Token-level 选择性确保模型仅因真正有害的似然降低而受到惩罚,而不会干扰整体改善响应的更新
    • 理解:这是一种惩罚机制,也可以称为 正则(Regularization)
      • 在 保留集 \(\mathcal{Y}_{\text{pre} }\) 上
        • 当新策略的似然降低时,给与惩罚
        • 当新策略的似然提升时,不做任何处理
    • 但是:
      • 即使少数个别 Token 似然降低,某些响应可能在全局上仍是改善的;
      • 惩罚这种情况可能会引入过于强烈的约束
  • LLDS:响应级门控 (LLDS: Response-Level Gating),也是论文默认变体
    • 为了避免对全局改善的响应施加不必要的惩罚,LLDS 引入了响应级门控 (response-level gating) 机制:
      • 仅当响应的总似然降低时,惩罚才激活,LLDS 损失为:
        $$
        L_{\text{LLDS} }=\frac{1}{\sum_{\boldsymbol{y}_i \in \mathcal{Y}_{\text{pre} } }|\mathbf{y}_i|} \sum_{\boldsymbol{y}_i \in \mathcal{Y}_{\text{pre} } } \underbrace{\mathbf{1} \left[ \sum_{\boldsymbol{y}_i \in \mathbf{y}_i} \left( \ln \pi_{\theta_{\text{old} } }(y_i|\mathbf{x},\mathbf{y}_{ < i}) - \ln \pi_{\theta}(y_i|\mathbf{y}_{ < i}) \right) > 0 \right]}_{\text{Activated only when sum} \gt {0} } \cdot \sum_{\boldsymbol{y}_i \in \mathbf{y}_i} \underbrace{\max \left(0, \ln \pi_{\theta_{\text{old} } }(y_i|\mathbf{x},\mathbf{y}_{ < i}) - \ln \pi_{\theta}(y_i|\mathbf{y}_{ < i}) \right)}_{\text{Likelihood Reducing Tokens} }
        $$
    • 这种结构保留了正常的 GRPO 学习,同时直接抑制了遭受 LLD 的响应
  • LLDS-MA:掩码答案 Token (LLDS-MA: Masking Answer Tokens)
    • 为了进一步鼓励多步推理和工具使用,论文将最终答案 Token 从正则项中 Mask 掉
    • LLDS-MA 仅对推理和工具交互 Token 上的似然降低进行惩罚,排除答案部分 \(\boldsymbol{y}_{i,\text{Ans} }\):
      $$
      \underbrace{\sum_{\boldsymbol{y}_i \in \mathbf{y}_i / \boldsymbol{y}_{i,\text{Ans} } } \max \left(0, \ln \pi_{\theta_{\text{old} } }(y_i|\mathbf{x},\mathbf{y}_{ < i}) - \ln \pi_{\theta}(y_i|\mathbf{y}_{ < i}) \right)}_{\text{Mask Answer Likelihood-reducing tokens}}
      $$
LLD 正则的使用形式
  • 最后,论文将正则化项集成到 GRPO 目标中 ,如下所示:
    $$
    L_{\text{total} } = L_{\text{GRPO} } + \lambda L_{\text{LLDS}(-\text{MA})}
    $$
    • 其中 \(\lambda\) 是正则化权重
  • 论文使用 LLDS 作为默认变体 ,当需要更强地鼓励工具使用时,切换到 LLDS-MA
    • 保留集 \([\mathbf{y}]_{\text{pre} }\) 包括所有具有非负优势 \(\hat{A} \geq 0\) 的响应,确保正确响应 (\(\hat{A} > 0\)) 和未训练的响应 (\(\hat{A} = 0\)) 不会遭受似然降低
    • \(\lambda\) 的影响在图 8 中进行了实证检验

Experiments and Analysis

  • 论文通过全面的实验评估了 \(L_{\text{LLDS}(-\text{MA})}\) 的实证有效性
  • 实验设置 (Experimental settings)
    • 对于训练,论文遵循 Jin 等 (2025) 的设置,并使用两个模型系列进行实验:Qwen-2.5-3B 和 Qwen-2.5-7B ,每个系列都有基础版和指令调优版变体 (2024)
    • 论文考虑两种训练配置
      • (1) 仅 NQ (单跳, NQ-Only (single-hop)): 模型仅在单跳 Natural Questions (NQ) 数据集 (2019) 上训练
      • (2) NQ+Hotpot (单跳+多跳, NQ+Hotpot (single-hop+multi-hop)): 模型在合并了 NQ 和 HotpotQA (2018) 的语料库上训练,提供更广泛的开域和多跳推理覆盖
    • 对于检索数据集,论文使用 2018 年维基百科转储 (2020) 作为知识库,并使用 E5 (2022) 作为密集检索器
    • 为了确保检索增强基线之间的公平比较,论文固定检索到的段落数量为三个,遵循 Jin 等 (2025) 的配置
    • 除非另有说明,论文使用与 Search-R1 (2025) 相同的优化超参数,唯一的修改是减少了最大回合限制:
      • 从 Search-R1 中的 4 回合降至仅 NQ 训练的 2 回合和 NQ+Hotpot 设置的 3 回合,以提高训练效率
      • 除非另有说明,正则化权重固定为 \(\lambda=0.1\)
  • 评估设置 (Evaluation settings)
    • 评估在七个数据集的验证集或测试集上进行,分类如下:
      • (1) 通用问答 (General Question Answering): NQ (2019), TriviaQA (2017), PopQA (2022)
      • (2) 多跳问答 (Multi-Hop Question Answering): HotpotQA (2018), 2WikiMultiHopQA (2020), Musique (2022), Bamboogle (2022)
    • 论文采用精确匹配作为主要评估指标,与 Jin 等 (2025) 中的协议一致
    • 这种多样性确保了在多种现实推理场景下对搜索引擎集成 LLM 性能的彻底检验

Experimental Results

  • 论文在七个公开领域域和多跳 QA 基准测试上评估了论文提出的 LLD 缓解策略,使用了两个模型家族:Qwen2.5-3B (基础版/指令版) 和 Qwen2.5-7B (基础版/指令版)
  • 表 1 和表 2 总结了所有设置下的 EM 性能
    • 由于普通 GRPO 训练经常崩溃并将奖励降至零,论文使用来自 Search-R1 Jin 等 (2025) 的结果(对应于崩溃前的最佳检查点)作为 GRPO 基线
Results on Qwen2.5-3B
  • 如表 1 所示,在仅 NQ 设置下,GRPO 的平均得分为 0.303
  • 加入 LLD 将性能提升至 0.321 (+5.9%),LLDS 进一步改进至 0.323 (+6.6%)。在更具挑战性的 NQ+Hotpot 设置下,LLDS 将普通 GRPO 得分从 0.312 提高到 0.360,相对增益 15.4%
  • 由于 LLDS 倾向于将基础模型限制为仅调用一次搜索,论文应用了多视角变体 LLDS-MA,它提供了最强的性能,平均得分为 0.430,相对于普通 GRPO 有 +37.8% 的显著提升率
  • 对于 Qwen2.5-3B-Instruct 也观察到类似的趋势:在仅 NQ 下,LLDS-MA 将性能提升至 0.381;在 NQ+Hotpot 设置下,LLDS 达到 0.419 (+24.7%)
Results on Qwen2.5-7B
  • 如表 2 所示,对于 Qwen2.5-7B-Base,应用 LLDS 带来了显著改进,在仅 NQ 上训练时平均得分达到 0.417,相对于在 NQ+Hotpot 上训练的 GRPO 基线有 19.1% 的相对增益
  • 当在 NQ+Hotpot 训练设置下应用 LLDS 时,性能从 0.350 提高到 0.462,对应更大的 32.0% 的改进
  • LLDS 在几乎所有单个数据集上也取得了最强结果,表明证据检索和多步推理能力得到增强
  • 对于 Qwen2.5-7B-Instruct,论文观察到类似的模式。在 NQ+Hotpot 训练设置下,LLDS 将平均得分从 0.396 提高到 0.469(改善 18.4%)
  • LLDS 在每个多跳 QA 基准测试上都取得了最佳性能,包括 2Wiki 的 0.473、Musique 的 0.443 和 Bamboogle 的 0.516
  • 这些结果突显了 LLDS(-MA) 作为一种稳定 GRPO 训练并显著增强多轮推理的有效方法

Ablation Study and Analysis

  • 响应级门控的影响 (Impact of response-level gating)
    • 应用响应级门控降低了训练期间应用的正则化强度,从而在多跳 QA 任务上带来了可测量的改进
    • 如表 1 所示,尽管平均性能仅小幅提高了 0.2%,但该方法在 Bamboogle 数据集上带来了 1.6% 的显著增益,突显了其在增强多跳推理方面的有效性
  • 仅 NQ 与 NQ+Hotpot 对比 (NQ vs. NQ+Hotpot)
    • 仅在 NQ 上训练的模型在开域单跳 QA 上表现强劲,但在泛化到多跳设置方面能力有限
    • 转向 NQ+Hotpot 能持续改进多步推理:例如,对于 Qwen2.5-3B-Base,GRPO 基线从仅 NQ 的 0.303 提高到 NQ+Hotpot 的 0.312,LLDS 在相同的转变下从 0.323 提高到 0.360。对于 Qwen2.5-7B-Base 也出现了类似的趋势,其中 LLDS 从仅 NQ 的 0.417 上升到 NQ+Hotpot 的 0.462
    • 这些增益表明,添加需要多轮推理才能正确回答并获得奖励的多跳 HotpotQA 问题,比仅在 NQ 上训练更能鼓励模型更有效地检索、整合和推理多个证据片段
  • 掩码答案 (MA) 的影响 (Impact of masking answer (MA))
    • 作者专门对模型变体应用了掩码答案,在这些变体中,普通 GRPO 和 LLDS 退化到仅发出一次搜索调用,限制了它们为多跳推理收集足够证据的能力
    • MA 在最终答案 Token 上禁用 LLDS 正则化,鼓励模型执行额外的搜索步骤或中间推理
    • 如表 1 所示,在 LLDS 之上添加 MA 为这些单搜索限制的模型带来了显著改进
    • 在 NQ+Hotpot 设置下,LLDS-MA 将 Qwen2.5-3B-Base 的平均得分从 LLDS 的 0.360 提高到 0.430,同样将仅 NQ 的指令版变体从 0.319 提高到 0.381
    • 这些增益表明,在底层 GRPO 策略未充分利用搜索动作的场景下,MA 能有效鼓励更深层次的多步推理
    • 更详细的分析见附录 B.3

Effect of LLDS on Training Stability across Models

  • 为了验证 GRPO 中训练崩溃问题的普遍性以及论文提出的解决方案的鲁棒性,论文将实验扩展到不同的模型规模和对齐阶段
  • 图 6 展示了 Qwen-2.5 3B 和 7B 模型(包括基础版和指令版)的训练奖励曲线
  • 如蓝色曲线所示,基线 GRPO 一致地在前 300 步内遭受灾难性崩溃,无论模型规模(3B 对 7B)或类型(基础版对指令版)如何
    • 这证实了不稳定性是算法的固有特征,而不是特定模型配置的产物
    • 相比之下,LLDS 的集成(红色曲线)有效地缓解了这个问题
  • 在所有四种场景中,使用 LLDS 训练的模型都保持了奖励的稳定上升轨迹,成功地避开了影响基线的崩溃点
    • 这表明 LLDS 是稳定 GRPO 训练的通用且有效的正则化器

More Discussion and Guideline

  • 基于论文对 LLD 的分析以及 LLD 死亡螺旋的出现,作者整合了几个稳定工具集成 GRPO 的实用指导原则
    • 每条建议都直接遵循论文研究中确定的核心故障机制

理解为何工具集成 GRPO 对 LLD 特别脆弱 (Understand why tool-integrated GRPO is uniquely vulnerable to LLD)**

  • 与自由形式的文本 RL 不同,工具增强的智能体引入了放大似然漂移的结构性条件
  • 首先,工具调用注入了固有的 OOD Token(例如搜索结果、API 输出或错误消息)
    • 它们与预训练的语言分布有显著差异
    • 这些 OOD 片段提高了 Token-level 不确定性,并使 GRPO 的相对更新更加不稳定,加速了似然位移的发生
  • 其次,基于工具的推理跨越多个 stages 展开,早期 stages(例如 Query 制定)比后期 stages(例如工具结果解释)更快稳定
    • 由于 GRPO 对所有 Token 应用单一标量奖励,那些在正确和错误轨迹间共享几乎相同前缀的早期 Token 会收到冲突的梯度信号
    • 这种 Reward-Token 错位对稳定前缀的危害不成比例,并放大了 LLD
    • 认识到这些结构性挑战对于诊断和缓解工具集成 RL 系统中的不稳定性至关重要

密切监控似然动态——仅靠奖励是不够的 (Closely monitor likelihood dynamics–reward alone is insufficient)**

  • 论文分析的一个核心见解是,似然退化在奖励出现任何可见下降之前很久就开始了
  • 在所有模型中,奖励在整个早期和稳态衰减 stages 持续上升,即使正确响应的似然已经向下漂移
    • 因为 GRPO 更新由似然比控制,这种早期退化会默默地放大梯度并引发不稳定性
    • 因此,仅监控奖励会掩盖 LLD 的发生
  • 在实践中,可靠的早期预警信号来自于跟踪 Action-level 和 Trajectory-level 对数似然,检查熵轨迹(一旦似然开始崩溃,熵会急剧飙升),以及关注指示梯度放大的似然比突然激增
    • 似然或熵曲线的可视化提供了训练接近不稳定机制的最早和最可靠的指示

补充:Related Work

  • 工具集成推理与智能体 LLMs (Tool-Integrated Reasoning and Agentic LLMs)
    • 工具使用已成为赋能 LLMs 具备自适应推理能力的一个强大范式
    • 早期方法依赖于基于提示的编排 (2023; 2023) 或多智能体委托框架来调用工具,而无需显式训练
    • 经过指令微调的模型 (2023; 2023) 后来通过监督学习引入了结构化的工具调用行为,但这些系统在很大程度上仍是静态的,并受限于单轮交互
    • 更近期的研究表明,强化学习可以通过使模型学习通过环境反馈和任务成功来掌握工具使用策略,从而显著增强工具集成
    • 诸如 RETool (2025)、VERL-Tool (2025) 和智能体 LLM 框架 (2025) 等显著系统通过动态工具使用、自我验证和纠错来支持多步推理
    • 这种从静态指令遵循到反馈驱动优化的转变在一系列领域被证明是有效的,包括结合代码执行的数学问题求解 (2025)、结合检索的开放域问答 (2025)、从自然语言生成 SQL (2025) 以及多模态视觉推理 (2024)

附录 A: 定理与证明

  • 在本节中,论文首先给出定理 4.2 的正式版本:
  • 定理 A.1 (工具集成 GRPO 中的 Trajectory-level LLD)
    • 考虑一个工具集成的轨迹,其中只有响应动作 \(\{\boldsymbol{y}_{t}\}_{t=0}^{T}\) 对似然度有贡献,工具反馈 Token \(\boldsymbol{o}_{t}\) 在似然计算期间被屏蔽,但仍保留在上下文中
    • 令 \(\pi_{\theta(s)}\) 表示训练时间 \(s\) 时的演化策略
    • ** Action-level 似然变化** :对于第 \(i\) 个正确响应的第 \(t\) 个动作,记作 \(\boldsymbol{y}_{i,t}^{+}\),其瞬时对数似然变化
      $$
      \frac{d}{ds} \ \ln\pi_{\theta(s)}\big(\boldsymbol{y}_{i,t}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+}\big)
      $$
      • 随着以下量的增加而变得越来越懒惰甚至变为负值:
        $$
        \begin{align}
        \mathcal{G}_{i,t}(s)&=p^{-}\underbrace{\sum_{k=0}^{|\boldsymbol{y}_{i,t}^{+}|} \sum_{j=1}^{N^{-} }\sum_{t^{\prime}=0}^{T_{j} }\sum_{k^{\prime}=1}^{|\boldsymbol{y}_{j,t^{\prime} }^{-}|}\alpha_{(i,t,k),(j,t^{\prime},k^{\prime})}^{-} \left\langle \mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+} },\mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{j,< t^{\prime} }^{-},\boldsymbol{o}_{j,< t^{\prime} }^{-},\boldsymbol{y}_{j,t^{\prime},<k^{\prime} }^{-} } \right\rangle}_{\text{impact of negative gradients} } \\
        &-p^{+}\sum_{k=0}^{|\boldsymbol{y}_{i,t}^{+}|}\sum_{t^{\prime}=1}^{N^{+} }\sum_{t^{\prime\prime}=0}^{T_{t^{\prime} } }\sum_{k^{\prime\prime}=1}^{|\boldsymbol{y}_{i^{\prime},t^{\prime\prime} }^{+}|}\alpha_{(i,t,k),(i^{\prime},t^{\prime\prime},k^{\prime\prime})}^{+} \left\langle \mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+} },\mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{o}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{y}_{i^{\prime},t^{\prime\prime},<k^{\prime\prime} }^{+} } \right\rangle.
        \end{align}
        \tag{8}
        $$
      • 其中 \(\alpha_{(i,t,k),(j,t^{\prime},k^{\prime})}^{-}\) 和 \(\alpha_{(i,t,k),(i^{\prime},t^{\prime\prime},k^{\prime\prime})}^{+}\) 表示 Token-level 的预测误差相似性权重
    • ** Trajectory-level 似然变化** :对所有动作求和得到
      $$
      \frac{d}{ds}\ln\pi_{\theta(s)}(\boldsymbol{y}_{0:T} \mid \boldsymbol{x})=\sum_{t=0}^{T}\sum_{k=1}^{|\hat{\boldsymbol{y} }_{t}^{+}|}\frac{d}{ds}\ln\pi_{\theta(s)}(\hat{\boldsymbol{y} }_{t,k}^{+}|\cdot),
      $$
      • 每当发生下面的情况时,该值会变得懒惰或为负
        $$
        \sum_{t=0}^{T}\sum_{k=1}^{|\hat{\boldsymbol{y} }_{t}^{+}|}\mathcal{G}_{t,k}(s) \quad \text{is large.}
        $$
  • 如定理所示,两个核心因素放大了这种负梯度效应:
    • 1)不正确响应的低似然度 :
      • 模型分配低概率的负响应会产生更大的预测误差权重 \(\alpha_{i,k;t^{\prime},k^{\prime} }^{-}\),从而放大其影响
      • 在这种情况下,模型将这些低似然度错误解释为严重错误,导致其梯度获得不成比例的大规模缩放
    • 2)嵌入相似性 :
      • 当不正确响应与正确响应相似时,它们的前缀表示具有较大的内积,从而放大了负贡献
      • 这种高表征重叠意味着模型难以区分正确和错误的延续,导致负例将梯度推向有害方向并使模型缺乏信心

定理 A.1 的证明

  • 设置与屏蔽 :固定一个 Query \(\boldsymbol{x}\) 和一个正确响应索引 \(i\),并考虑 Feedback-masked 轨迹
    $$
    \hat{\boldsymbol{y} }_{i}^{+}=(\boldsymbol{y}_{i,0}^{+},\boldsymbol{o}_{i,0}^{+},\boldsymbol{y}_{i,1}^{+},\boldsymbol{o}_{i,1}^{+},\ldots,\boldsymbol{y}_{i,T_{i} }^{+}),
    $$
    • 其中只有动作 Token \(\{\boldsymbol{y}_{i,t}^{+}\}_{t=0}^{T_{i} }\) 对损失有贡献。工具反馈 \(\boldsymbol{o}\) 被排除在 GRPO 目标之外,但保留在条件上下文中。论文研究每个动作 \(\boldsymbol{y}_{i,t}^{+}\) 在演化策略 \(\pi_{\theta(s)}\) 下的对数似然变化:
      $$
      \frac{d}{ds}\ln\pi_{\theta(s)}\big(\boldsymbol{y}_{i,t}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+}\big),
      $$
    • 然后对 \(t\) 进行聚合以获得 Trajectory-level 结果
  • 在 Action-level 简化为标准 GRPO :以前缀 \((\boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+})\) 为条件,第 \(t\) 个动作 \(\boldsymbol{y}_{i,t}^{+}\) 以自回归方式生成:
    $$
    \pi_{\theta(s)}\big(\boldsymbol{y}_{i,t}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+}\big)=\prod_{k=1}^{|\boldsymbol{y}_{i,t}^{+}|}\pi_{\theta(s)}\Big(\boldsymbol{y}_{i,t,k}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+}\Big).
    $$
    • 由于反馈 Token 仅在损失中被屏蔽,但仍出现在上下文中,因此工具集成训练(with feedback masking)的 GRPO 目标在函数形式上与应用于动作 Token序列的标准 GRPO 目标完全相同。因此,每一对
      $$
      (\text{question''},\text{response’’})=\big(\boldsymbol{x},\boldsymbol{y}_{i,t}^{+}\big),
      $$
    • 连同上下文 \((\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i, < t}^{+})\),都可以被视为非工具 GRPO 分析意义上的单个生成。因此,我们可以直接引用 Deng 等人 (2025) 的 GWHES 定理(定理 4.4),并将其应用于条件分布 \(\pi_{\theta(s)}(\boldsymbol{y}_{i,t}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i, < t}^{+},\boldsymbol{o}_{i,< t}^{+})\),从而得到以下 Action-level 结果
  • 定理 A.2 ( Action-level )
    • 对于任何 \(\boldsymbol{x}\)、任何时间 \(s \geq 0\) 以及任何正确响应 \(\boldsymbol{y}_{i}^{+}\),其第 \(t\) 个动作的似然变化,
      $$
      \frac{d}{ds}\ln\pi_{\theta(s)}(\boldsymbol{y}_{i,t}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+}),
      $$
    • 随着
      $$
      \begin{align}
      \mathcal{G}_{i,t}(s)&=p^{-}\underbrace{\sum_{k=0}^{|\boldsymbol{y}_{i,t}^{+}|} \sum_{j=1}^{N^{-} }\sum_{t^{\prime}=0}^{T_{j} }\sum_{k^{\prime}=1}^{|\boldsymbol{y}_{j,t^{\prime} }^{-}|}\alpha_{(i,t,k),(j,t^{\prime},k^{\prime})}^{-} \left\langle \mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+} },\mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{j,< t^{\prime} }^{-},\boldsymbol{o}_{j,< t^{\prime} }^{-},\boldsymbol{y}_{j,t^{\prime},<k^{\prime} }^{-} } \right\rangle}_{\text{Impact of negative gradients.} } \\
      -p^{+}\sum_{k=0}^{|\boldsymbol{y}_{i,t}^{+}|}\sum_{t^{\prime}=1}^{N^{+} }\sum_{t^{\prime\prime}=0}^{T_{t^{\prime} } }\sum_{k^{\prime\prime}=1}^{|\boldsymbol{y}_{i^{\prime},t^{\prime\prime} }^{+}|}\alpha_{(i,t,k),(i^{\prime},t^{\prime\prime},k^{\prime\prime})}^{+} \left\langle \mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+} },\mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{o}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{y}_{i^{\prime},t^{\prime\prime},<k^{\prime\prime} }^{+} } \right\rangle.
      \end{align}
      \tag{9}
      $$
    • 的增加而变得更懒惰(幅度更小,甚至可能为负),其中
      $$
      \alpha_{(i,t,k),(j,t^{\prime},k^{\prime})}^{-} = \left\langle \mathbf{e}_{y_{i,t,k}^{+} }-\pi_{\theta(s)}(\cdot \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+}),\mathbf{e}_{y_{j,t^{\prime},k^{\prime} }^{-} }-\pi_{\theta(s)}(\cdot \mid \boldsymbol{x},\boldsymbol{y}_{j,< t^{\prime} }^{-},\boldsymbol{o}_{j,< t^{\prime} }^{-},\boldsymbol{y}_{j,t^{\prime},<k^{\prime} }^{-}) \right\rangle
      $$
    • 且
      $$
      \alpha_{(i,t,k),(i^{\prime},t^{\prime\prime},k^{\prime\prime})}^{+} = \left\langle \mathbf{e}_{y_{i,t,k}^{+} }-\pi_{\theta(s)}(\cdot \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+}),\mathbf{e}_{y_{i^{\prime},t^{\prime\prime},k^{\prime\prime} }^{+} }-\pi_{\theta(s)}(\cdot \mid \boldsymbol{x},\boldsymbol{y}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{o}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{y}_{i^{\prime},t^{\prime\prime},<k^{\prime\prime} }^{+}) \right\rangle
      $$
    • 是 Token-level 的预测误差相似性权重
  • ** Trajectory-level 作为动作的和** :工具集成轨迹的似然度在动作上分解:
    $$
    \pi_{\theta(s)}(\boldsymbol{y}_{0:T} \mid \boldsymbol{x})=\prod_{t=0}^{T}\pi_{\theta(s)}(\boldsymbol{y}_{t} \mid \boldsymbol{x},\boldsymbol{y}_{ < t},\boldsymbol{o}_{ < t}).
    $$
    • 取对数并对 \(s\) 求导,得到:
      $$
      \begin{align}
      \frac{d}{ds}\ln\pi_{\theta(s)}(\boldsymbol{y}_{0:T} \mid \boldsymbol{x}) = \sum_{t=0}^{T}\frac{d}{ds}\ln\pi_{\theta(s)}(\boldsymbol{y}_{t} \mid \boldsymbol{x},\boldsymbol{y}_{ < t},\boldsymbol{o}_{ < t}) \\
      = \sum_{t=0}^{T}\sum_{k=1}^{|\boldsymbol{y}_{t}^{+}|}\frac{d}{ds}\ln\pi_{\theta(s)}(\boldsymbol{y}_{t,k}^{+} \mid \cdot),
      \end{align}
      $$
    • 其中“\(\cdot\)”再次表示包含反馈 Token 的屏蔽上下文
    • 根据 Action-level 结果,随着 \(\mathcal{G}_{t,k}(s)\) 增大,求和中的每一项都会变得懒惰或为负,因此只要
      $$
      \sum_{t=0}^{T}\sum_{k=1}^{|\boldsymbol{y}_{t}^{+}|}\mathcal{G}_{t,k}(s)
      $$
    • 很大,整个 Trajectory-level 的导数就会变得懒惰或为负
    • 这确立了定理 A.1 中的 Trajectory-level 陈述

附录 B: 补充分析

Training Instability Prior to Collapse

  • 虽然最终的崩溃确实是由来自负响应的大梯度触发的,但在训练早期就已经出现了显著的不稳定性和明显的性能下降
  • 如图 7 所示,棕色垂直线标志着模型奖励(绿色曲线)的第一次急剧下降,在此期间正确响应的似然度也显著下降,尽管梯度范数仍然相对较小(约 2)
  • 随着训练的进行,LD 问题加剧,低置信度响应导致梯度范数稳步增长,最终导致模型崩溃
  • 这些观察结果表明,早在崩溃点之前就已经存在不稳定性,因此值得密切关注

Impact of Regularization Strength

  • 为了检查正则化强度的影响,论文对 \(\lambda \in \{0, 0.01, 0.1\}\) 进行消融实验,并在图 8 中绘制了相应的训练奖励动态
  • 如图所示,在没有正则化的情况下 (\(\lambda=0\)),模型在大约第 200 步崩溃
  • 较小的正则化值 (\(\lambda=0.01\),橙色曲线) 延迟但未能阻止崩溃,崩溃发生在大约第 220 步
  • 相比之下,更强的正则化 (\(\lambda=0.1\)) 完全稳定了训练,使模型能够平稳地继续而不崩溃
  • 为了清晰起见,论文在第 250 步截断了绘图,尽管训练可以远远超过这一点

Unlocking Multi-Step Reasoning via Answer Masking

  • 为了进一步探索 LLDS 在促进复杂推理行为方面的潜力,论文在 Qwen-2.5-3B-Base 模型上进行了关于正则化范围的消融研究
    • 论文从 \(L_{\text{LLDS} }\) 项的计算中屏蔽掉最终答案 Token (表示为“掩码答案”)
  • Qwen-2.5-3B-Base 本身缺乏多轮工具调用的能力
    • 如图 9 所示,这种限制在标准训练设置中是明显的:基线 GRPO(蓝色曲线)迅速遭受模型崩溃,有效搜索次数降至零
    • 虽然标准的 GRPO + LLDS(红色曲线)成功地稳定了训练并防止了崩溃,但它未能引发任何多步行为,搜索频率停滞在恰好 1.0
  • “GRPO + LLDS-MA”变体(绿色曲线)展示了一种独特的新兴行为
    • 通过移除对最终答案 Token 的正则化约束,论文观察到每个问题的有效搜索次数显著增加,上升到 2.0 以上
    • 这表明,放松对答案 Token 的惩罚有效地释放了模型参与多步推理和使用外部工具的潜在能力
      • 这是标准方法未能在基础模型中激活的能力

Qualitative Examples of Tool-Integrated Reasoning

  • 为了进一步说明论文训练模型的行为特征,论文展示了由 Qwen2.5-7B 系列生成的定性推理轨迹
  • 这些示例突显了使用论文的 LLD 正则化策略训练的模型如何在轨迹中表现出强大的多步规划、可控的工具使用和稳定的多轮推理
  • 与标准的 GRPO 模型(经常遭受过早崩溃)不同,论文的方法使模型能够在搜索、验证和最终答案生成的整个过程中保持连贯的推理结构
  • 如图 10 和图 11 所示,该模型不仅执行逐步分解和自我验证,还在需要时执行连续的搜索调用,有效整合检索到的证据,并产生正确、简洁的最终答案
  • 这些定性行为与论文的定量发现一致:稳定似然动态可以防止 LLD 死亡螺旋,使 RL 策略能够利用更深的工具集成推理而不会牺牲鲁棒性

附录 C 似然位移的案例研究

  • 为了更好地理解 LLD 如何在实践中体现,论文深入分析了两个有代表性的训练样本(对应于图 3(步骤 140)中受影响最严重的两个样本)
  • 对于每个问题,论文将 SEARCH-R1 策略生成的一个正确轨迹与一个不正确轨迹进行比较。这些配对示例使论文分析中的抽象机制变得具体

案例 1:Embedding similarity under group-relative updates

  • 图 12 和图 13 展示了问题“Who won the NRL grand final in 2015?”的两个推演过程
    • 两个轨迹使用了几乎相同的 <think> plans,发出语义等效的搜索 Query ,并检索到相同的 <information> 片段
    • 唯一的区别在于最终答案 Token :
      • 正确轨迹输出完整的实体“North Queensland Cowboys”
      • 不正确轨迹将名称截断为“North Queensland”
    • 由于 GRPO 为整个轨迹分配一个标量奖励,这两个高度相似的前缀接受了截然不同的更新:
      • 不正确的推演将负梯度推送到与正确推演在嵌入空间中几乎相同的 Token 上
    • 这说明了轨迹末尾的小语义偏差如何通过高前缀相似性,对原本正确的动作产生强烈的似然错位(likelihood displacement)

案例 2:Low-likelihood, longer incorrect trajectories

  • 图 14 和图 15 展示了“Who is the main character in green eggs and ham?”的推演过程
    • 在不正确的情况下,模型从一个长的、低似然度的 <think> 片段开始
    • 由于早期 Token 的似然度极小,采样漂移到分布的语义无意义区域,产生了一段冗长的无意义文本
    • 这也导致模型违反了工具协议,随后在 <information> 频道中触发了纠正性反馈
    • 尽管模型最终发出了有效的搜索,但它仍然产生了不正确的答案(“The first-person narrator”)
    • 这个轨迹比其对应的正确轨迹更长且似然度更低 ,导致 GRPO 为其分配了较大的负预测误差权重,并在多个 Token 上累积了许多负梯度的和
    • 相比之下,正确的轨迹保持简短且高置信度,执行单次搜索后给出正确答案“Sam-I-Am”
    • 总之,这些示例具体地展示了低似然度、过长的错误响应如何主导梯度并驱动 LLD 死亡螺旋,即使环境偶尔将模型推回有效的工具使用
      • 问题:将奖励或者梯度按照 Response 粒度做等价归一化是否能解决这种很长的错误回复主导梯度?

附录:提出 LLD 的第一篇文章

  • 原始论文地址:(LLD-NTHR)On the Effect of Negative Gradient in Group Relative Deep Reinforcement Optimization, 20250522, University of British Columbia & Vector Institute
    • 系论文同一作者 25 年 5 月 发表的文章(一作相同)

LLD(Lazy Likelihood Displacement)定义

  • LLD 是在基于组的策略优化(如 GRPO)训练过程中出现的一种现象:
    • 正确响应(\(y^+\))的似然(概率)仅轻微增加,甚至出现下降
    • 这一现象源于对错误响应中所有 tokens 的无差别惩罚
      • 由于正确响应与错误响应可能存在共享的结构或语义特征(如部分正确的推理步骤),对错误响应的整体惩罚会无意间降低正确响应的似然,导致模型性能受损
Definition 4.1
  • 设 \(\pi_{\theta_{init} }\) 为训练前的初始语言模型,\(\pi_{\theta_{fin} }\) 为经过偏好学习目标(如 GRPO 损失)优化后的最终模型(满足 \(J(\theta_{fin}) < J(\theta_{init})\))
    • 对于数据集 \(D\) 中的样本 \((x, y^+)\),若存在非负小常数 \(\epsilon \geq 0\),满足以下条件,则称发生 LLD:
      $$
      \ln \pi_{\theta_{fin} }(y^+ | x) < \ln \pi_{\theta_{init} }(y^+ | x) + \epsilon
      $$
    • 核心含义:训练后正确响应的对数似然增长不超过 \(\epsilon\)(或下降),即模型未能有效提升正确响应的生成概率

Theorem 4.4 与 Corollary 4.5

  • LLD 的本质是错误响应的负梯度对正确响应似然的抑制作用,具体源于:
    • 错误响应中部分 tokens 与正确响应的关键推理步骤具有高语义相似度(如“奇数”“质数”等正确术语出现在错误响应中);
    • GRPO 对错误响应的所有 tokens 施加相同强度的负梯度惩罚,导致这些“部分正确”的 tokens 被过度抑制,进而牵连正确响应的似然
  • 从理论上,正确响应 \(y_i^+\) 的似然变化率 \(\frac{d}{dt}\ln \pi_{\theta(t)}(y_i^+ | x)\) 受以下“组加权隐藏嵌入分数(GWHES)”影响:
    $$
    \underbrace{p^{-} \sum_{k=1}^{|y_i^+|} \sum_{j=1}^{N^-} \sum_{k’=1}^{|y_j^-|} \alpha_{k, k’}^{-} \cdot \left<h_{x, y_{i,<k}^+}, h_{x, y_{j,<k’}^{-} }\right>}_{负梯度的负面影响} - \underbrace{p^{+} \sum_{k=1}^{|y_i^+|} \sum_{i’=1}^{N^+} \sum_{k’’=1}^{|y_{i’}^+|} \alpha_{k, k’’}^{+} \cdot \left<h_{x, y_{i,<k}^+}, h_{x, y_{i’,<k’’}^+}\right>}_{正梯度的正面影响}
    $$
  • 符号说明:
    • \(p^+ = \frac{1-p}{\sqrt{p(1-p)} }\)、\(p^- = \frac{p}{\sqrt{p(1-p)} }\):正确/错误响应组的权重(\(p\) 为样本正确率)
    • \(N^+\)、\(N^-\):正确/错误响应的数量
    • \(h_{x, y_{i,< k}^+}\):正确响应 \(y_i^+\) 前 \(k-1\) 个 tokens 的隐藏嵌入
    • \(\alpha_{k, k’}^{-}\)、\(\alpha_{k, k’’}^{+}\):token 级预测误差相似度权重(量化不同响应间 tokens 的误差相关性)
  • 关键结论:当“负梯度的负面影响”大于“正梯度的正面影响”时,正确响应的似然增长变慢或下降,即发生 LLD

解决方案:NTHR(Negative Token Hidden Reward,负 Token 隐藏奖励)

NTHR 的定义
  • NTHR 是一种针对 LLD 的解决方案,核心是选择性 token 惩罚 :
    • 通过识别错误响应中对正确响应似然损害最大的 tokens,降低对这些 tokens 的惩罚强度,从而在不牺牲数据效率的前提下缓解 LLD
  • NTHR 核心思想是:
    • 错误响应中并非所有 tokens 都会导致 LLD,仅那些与正确响应关键步骤高度相关的 tokens(如部分正确的推理术语)才是主要诱因
    • NTHR 通过量化每个错误 token 对正确响应似然的负面影响,对这些“有害 tokens”进行针对性惩罚调整
NTHR 核心公式与步骤
  • NTHR 的实现分为 3 个关键步骤,涉及多个核心公式:
步骤 1:计算错误 token 对正确响应的影响(\(s_{j,< k’}^{-}\))
  • 对于错误响应 \(y_j^-\) 中的第 \(k’\) 个 token,定义其对所有正确响应似然的负面影响为:
    $$
    s_{j,<k’}^{-} := \sum_{i=1}^{N^+} \sum_{k=1}^{|y_i^+|} \alpha_{k, k’}^{-} \cdot \left<h_{x, y_{i,<k}^+}, h_{x, y_{j,<k’}^{-} }\right>
    $$
  • 符号说明:
    • \(i\) 遍历所有正确响应,\(k\) 遍历正确响应 \(y_i^+\) 的所有 tokens;
    • \(\alpha_{k, k’}^{-}\):正确响应第 \(k\) 个 token 与错误响应第 \(k’\) 个 token 的预测误差相似度;
    • 该值越大,说明错误 token \(y_{j,k’}^{-}\) 对正确响应似然的抑制作用越强
步骤 2:确定惩罚调整的阈值(\(\tau\))
  • 阈值 \(\tau\) 基于正确响应间的“平均相互影响”设定,确保仅对损害最大的错误 tokens 进行调整:
    $$
    \tau = \beta \cdot \min_{i’ \in [N^+]} \bar{s}_{i’}^+
    $$
  • 其中,\(\bar{s}_{i’}^+\) 表示第 \(i’\) 个正确响应的 tokens 对其他所有正确响应似然的平均影响(即“正向相互作用强度”):
    $$
    \bar{s}_{i’}^+ := \frac{1}{|y_{i’}^+|} \sum_{k’’=1}^{|y_{i’}^+|} \sum_{i=1}^{N^+} \sum_{k=1}^{|y_i^+|} \alpha_{k, k’’}^+ \cdot \left<h_{x, y_{i,<k}^+}, h_{x, y_{i’,<k’’}^+}\right>
    $$
  • 符号说明:
    • \(\beta\) 为缩放因子(实验中默认 \(\beta=1\));
    • 核心逻辑:仅当错误 token 的影响 \(s_{j,< k’}^{-}\) 超过正确响应间的最小正向相互作用强度(\(\min_{i’} \bar{s}_{i’}^+\))时,才认为该 token 是 LLD 的主要诱因
步骤 3:选择性调整惩罚强度
  • 对于错误响应中满足 \(s_{j,< k’}^{-} > \tau\) 的 tokens(即“有害 tokens”),通过缩放因子 \(\eta < 1\) 降低其负梯度的惩罚强度:
    $$
    \hat{A}_{j, k’, \eta}^{-} := \eta \cdot \hat{A}_{j, k’}^{-}
    $$
  • 符号说明:
    • \(\hat{A}_{j, k’}^{-}\) 为错误 token 原始的优势函数值(负梯度的核心来源);
    • \(\eta\) 为惩罚衰减因子(实验中设为 \(\eta=2 \cdot |0.5 - p|\),\(p\) 为样本正确率);
    • 效果:降低“有害 tokens”的负梯度强度,避免其过度抑制正确响应的似然
NTHR 的优点
  • 针对性:仅调整错误响应中导致 LLD 的关键 tokens,而非丢弃整个错误样本(避免数据效率损失)
  • 兼容性:适配 GRPO 的在线学习范式,无需修改算法核心结构
  • 有效性:实验证明,在 0.5B~3B 参数模型的数学推理任务中,GRPO+NTHR 能持续缓解 LLD 并提升模型性能
NTHR 的缺点
  • 看起来实现较为复杂,且实操性较低

NLP——LLM对齐微调-MiniRL

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(MiniRL)Stabilizing Reinforcement Learning with LLMs: Formulation and Practices, 20251201, Qwen
    • 知乎回答:如何评价 Qwen团队最近的MiniRL 论文,给出关于 LLM 强化学习的稳定性的洞察? - 人工智能的回答 - 知乎

Paper Summary

  • 整体总结:
    • 本文有较强的理论意义
    • 论文为 LLM-based 强化学习提出了一种新的表述,将 Token-level 优化目标视为对真实期望 Sequence-level 奖励的一阶近似
    • 作者通过大量实验证明了保持这种一阶近似有效性的技术(例如重要性采样修正、截断以及针对 MoE 模型的路径回放)都能有效地稳定 RL 训练
    • 论文进一步研究了在不同 Off-policy 程度下稳定 RL 训练的方案,并表明一旦训练稳定,同一个基础模型在长时间的 RL 训练后始终会收敛到相似的性能
  • 论文为 LLM 的 RL 提出了一种新颖的表述,解释了为何以及在何种条件下,可以通过诸如 REINFORCE 等策略梯度方法中的替代性 Token-level 目标来优化真实的 Sequence-level 奖励
  • 亮眼的地方:作者通过一阶近似(first-order approximation),展示了 只有当训练-推理差异(training-inference discrepancy)和策略陈旧性(policy staleness)都被最小化时 ,这种替代性目标才变得越来越有效
  • 这一 Insight 为几种广泛采用的稳定 RL 训练技术的关键作用提供了原则性解释:
    • 包括重要性采样修正、截断(clipping)
    • 特别是针对 MoE 模型的路径回放(Routing Replay for Mixture-of-Experts (MoE) models))
  • 通过使用总计数十万 GPU 小时的 30B MoE 模型进行大量实验,论文表明
    • 对于 On-policy 训练,带有重要性采样修正的基本策略梯度算法实现了最高的训练稳定性
    • 当引入 Off-policy 更新以加速收敛时,结合截断和路径回放对于缓解策略陈旧性引起的不稳定性变得至关重要
    • Notably,一旦训练稳定下来,无论冷启动初始化(cold-start initialization)如何,长时间的优化总能产生可比较的最终性能

Introduction and Discussion

  • RL 已成为增强 LLM 解决复杂问题任务能力的关键技术范式(OpenAI, 2024; 2025; 2025),而一个稳定的训练过程对于成功扩展 RL 至关重要
  • 由于语言的上下文特性, LLM-based RL 通常采用 Sequence-level 奖励,即基于完整模型响应分配的标量分数
  • 但主流的 RL 算法,如 REINFORCE 和 GRPO,通常采用 Token-level 优化目标
    • 奖励(在 Sequence-level 分配)和优化单元(optimization unit,通常 at Token-level)之间的这种不匹配引发了对此类方法合理性和训练稳定性的担忧,而一些研究提出了直接采用 Sequence-level 优化目标(2025; 2025a)
  • In particular,Token-level 优化目标也给使用 MoE 模型进行 RL 训练带来了独特的挑战
    • For instance,动态专家路由机制可能会使 MoE 模型中的 Token-level 重要性采样比率失效(2025)
  • However,目前尚不清楚使用 Token-level 目标优化 Sequence-level 奖励是否合理,如果合理,在多大程度上(或在什么条件下)这种方法是有效的
  • 作者为 LLM-based RL 提出了一种新颖的表述
    • The key insight 是:为了优化期望的 Sequence-level 奖励,可以采用一个替代性 Token-level 目标作为它的一阶近似
    • Specifically,这种近似很可能只在以下两个条件同时成立时才成立:
      • (1)训练引擎和推理引擎之间的数值差异(即训练-推理差异)
      • (2)采样响应的 rollout 策略(rollout policy)与待优化的目标策略(target policy)之间的差异(即策略陈旧性)都被最小化
    • 这一 Insight 为几种稳定 RL 训练的技术如何工作提供了原则性解释,例如
      • (1)重要性采样权重是一阶近似下替代性 Token-level 目标的内在组成部分;
      • (2)截断机制可以通过防止激进的策略更新来抑制策略陈旧性;
      • (3)对于 MoE 模型,路径回放方法(Routing Replay approach)(2025; 2025)在策略优化过程中固定路由的专家,可以减少训练-推理差异和策略陈旧性
  • 为了实证验证论文的 Insight 并研究稳定 RL 训练的实用方案,作者使用一个 30B 的 MoE 模型进行了大量实验,总计达数十万 GPU 小时
  • 论文的主要结论包括:
    • (1)对于 On-policy 训练,带有重要性采样修正的基本策略梯度算法产生了最高的训练稳定性;
    • (2)当引入 Off-policy 更新以加速收敛时,即将大批次响应拆分为 mini-batch 进行多次梯度更新,结合截断和路径回放变得必要,以减轻策略陈旧性引起的不稳定性;
    • (3)一旦训练稳定下来,具有不同冷启动初始化的模型始终能达到可比较的最终性能
  • 这激励未来的工作更多地关注 RL 本身 ,而不是过度关注冷启动初始化的细节 ,因为后者的差异在长时间的 RL 训练后预计会消失
  • In summary,论文在两个方面做出了贡献:
    • Theoretically,作者 LLM-based 强化学习提出了一种新颖的表述,揭示了通过 Token-level 目标优化 Sequence-level 奖励合理性的条件
      • Specifically,基础一阶近似的有效性取决于联合最小化训练-推理差异和策略陈旧性
    • Empirically,通过使用 MoE 模型进行总计数十万 GPU 小时的大量实验,作者证明了保持一阶近似有效性的几种技术在稳定 RL 训练中始终表现出实际效能,特别是为 MoE 模型定制的路径回放方法

Formulation for Reinforcement Learning with LLMs

Notation

  • 将一个参数化为 \(\theta\) 的自回归 LLM (autoregressive LLM)定义为一个策略 \(\pi_{\theta}\)
  • 用 \(x\) 表示输入 Prompt ,用 \(\mathcal{D}\) 表示 Prompt Set
  • 在策略 \(\pi_{\theta}\) 下,对 Prompt \(x\) 的响应 \(y\) 的似然表示为 \(\pi_{\theta}(y|x)=\prod_{i=1}^{|y|}\pi_{\theta}(y_t|x,y_{ < t})\),其中 \(|y|\) 是 \(y\) 中的 Token 数量
  • 考虑到语言的上下文特性,论文关注 Sequence-level 奖励 Setting,即整个响应 \(y\) 被分配一个单一的标量奖励 \(R(x,y)\)
  • 论文不考虑 Value-based Settings(例如 PPO, 2017)
    • Value-based Settings 下,策略优化由为响应 \(y\) 中每个 Token 分配标量分数的 Value Model 引导
    • 这是因为作者发现设计通用且可扩展的方法来获得可靠的 Value Model 本身就非常困难(if not impossible)
    • 理解:如果使用 Value Model ,类似 PPO 等其实时标准的 RL,没有论文所谓的 Sequence-level 奖励和 Token-level 目标不一致的问题

Expected Sequence-level Reward is Hard to Directly Optimize

  • 我们希望的最大化的真实 Sequence-level 奖励为:
    $$
    \mathcal{J}^{\text{seq} }(\theta)=\mathbb{E}_{x\sim\mathcal{D},y\sim\pi_{\theta}(\cdot|x)}\left[R(x,y)\right],
    $$
    • 其中 \(\pi_{\theta}\) 是待优化的目标策略
  • 由于响应通常不是在训练引擎(例如 Megatron 和 FSDP)中采样,而是在推理引擎(例如 SGLang 和 vLLM)中采样,论文采用重要性采样技巧进行简单的变换:
    $$
    \mathcal{J}^{\text{seq} }(\theta)=\mathbb{E}_{x\sim\mathcal{D},y\sim\pi_{\theta}(\cdot|x)}\left[R(x,y)\right]=\mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_\text{old} }} }(\cdot|x)\left[\underbrace{\frac{\pi_{\theta}(y|x)}{ \color{red}{\mu_{\theta_\text{old} }}(y|x)}}_{\text{Sequence-level IS weight} } R(x,y)\right],
    \tag{1}
    $$
    • 其中 \(\color{red}{\mu_{\theta_\text{old} }}\) 表示采样响应的 rollout 策略
    • Note that 论文使用符号 \(\mu\) 来区分推理引擎中的策略与训练引擎中的策略(用 \(\pi\) 表示),因为训练和推理引擎之间通常存在数值差异(2025)
  • 等式(1)中的 Sequence-level 目标具有以下梯度:
    $$
    \begin{aligned}
    \nabla_{\theta}\mathcal{J}^{\text{seq} }(\theta) &=\mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)}\left[\frac{\pi_{\theta}(y|x)}{\color{red}{\mu_{\theta_{\text{old}} } }(y|x)}\ R(x,y)\ \nabla_{\theta}\log\pi_{\theta}(y|x)\right]\\
    &=\mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)}\left[\frac{\pi_{\theta}(y|x)}{\color{red}{\mu_{\theta_{\text{old}} } }(y|x)}\ R(x,y)\sum_{t=1}^{|y|}\nabla_{\theta}\log\pi_{\theta}(y_t|x,y_{ < t})\right].
    \end{aligned}
    \tag{2}
    $$
  • However,由于序列似然(即 \(\pi_{\theta}(y|x)\) 和 \(\color{red}{\mu_{\theta_{\text{old}} } }(y|x)\))的数值范围大且方差高,这个梯度通常难以利用(Usually intractable),使得直接优化等式(1)中的 Sequence-level 目标变得困难
    • 问题:这里如果改一下,恢复成下面这样,是不是就遇不到上面比值的问题了?
      $$
      \begin{align}
      \nabla_{\theta}\mathcal{J}^{\text{seq} }(\theta) &=\mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)}\left[\frac{\pi_{\theta}(y|x)}{\color{red}{\mu_{\theta_{\text{old}} } }(y|x)}\ R(x,y)\ \nabla_{\theta}\log\pi_{\theta}(y|x)\right]\\
      &=\mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)}\left[\frac{1}{\color{red}{\mu_{\theta_{\text{old}} } }(y|x)}\ R(x,y)\ \nabla_{\theta} \pi_{\theta}(y|x)\right]\\
      \end{align}
      $$
      • 理解:其实改不改形式都是一样的本质是一样的,实现时还是针对 Loss 去实现的,这里的 Loss 就是目标(公式 1)本身,这里求出梯度来可以更清晰的看到更新的方向跟原始的 vanilla 策略梯度法 有什么区别

Token-level Objective as a First-order Approximation to Sequence-level Objective(Token-level 目标是 Sequence-level 目标的一阶近似)

  • 关键步骤是考虑以下替代性 Token-level 目标:
    $$
    \mathcal{J}^{\text{token} }(\theta)=\mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)}\left[\sum_{t=1}^{|y|}\underbrace{\frac{\pi_{\theta}(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})} }_{\text{ Token-level IS weight} }\ R(x,y)\right],
    \tag{3}
    $$
    • 理解:和公式 1 的唯一差别就是 Sequence-level 的重要性权重改成 Token-level 的重要性权重
      • 注意 \(R(x,y)\) 仍然还是不变的,始终代表的是 Sequence-level 整体的奖励 ,不是单个 Token 的奖励(其实语言模型里面单个 Token 没有奖励,因为除了最后一个 Token 以外,其他 Token 其实很难评估是否准确)
  • 其梯度如下:
    $$
    \nabla_{\theta}\mathcal{J}^{\text{token} }(\theta)=\mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)}\left[\sum_{t=1}^{|y|}\underbrace{\frac{\pi_{\theta}(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})} }_{\text{Token-level IS weight} }\ R(x,y)\ \nabla_{\theta}\log\pi_{\theta}(y_t|x,y_{ < t})\right].
    \tag{4}
    $$
    • 这实际上就是带了 Token-level 重要性采样权重的基本策略梯度算法(即 REINFORCE)
    • 理解:公式 4 跟公式 2 比较起来,主要就是公式 4 重要性采样权重是 Token-level,公式 2 则重要性权重是 Sequence-level
  • 这里的核心 Insight 是,可以将等式(3)中的 Token-level 优化目标视为论文真正想要优化的等式(1)中 Sequence-level 目标的一阶近似
    • To be specific,假设 \(\pi_{\theta}\) 和 \(\color{red}{\mu_{\theta_{\text{old}} } }\) 略有不同,令 \(\frac{\pi_{\theta}(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})}=1+\delta_t\),其中 \(\delta_t\) 是一个小量(small quantity)
    • 于是可以有以下近似:
      $$
      \begin{align}
      \frac{\pi_{\theta}(y|x)}{\color{red}{\mu_{\theta_{\text{old}} } }(y|x)}&=\prod_{t=1}^{|y|}(1+\delta_t) \\
      &\approx 1+\sum_{t=1}^{|y|}\delta_t+\mathcal{O}\left(\delta^{2}\right) \\
      &\approx 1+\sum_{t=1}^{|y|}\delta_t,
      \end{align}
      $$
      • 理解:将联合概率分布展开以后相乘,可以移除所有二阶小量
    • 其中最右侧的推导忽略了二阶及更高阶的小项,如 \(\delta_t\delta_j\),因此论文有:
      $$
      \begin{aligned}
      \nabla_{\theta}\mathcal{J}^{\text{seq} }(\theta) &=\mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)}\left[R(x,y)\ \nabla_{\theta}\left(\frac{\pi_{\theta}(y|x)}{\color{red}{\mu_{\theta_{\text{old}} } }(y|x)}\right)\right]\\
      &\approx\mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)}\left[R(x,y)\ \nabla_{\theta}\left(1+\sum_{t=1}^{|y|}\delta_t\right)\right]\\
      &=\mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)}\left[R(x,y)\ \nabla_{\theta}\left(\sum_{t=1}^{|y|}\underbrace{\frac{\pi_{\theta}(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})} }_{\text{token-level IS weight} }\right)\right]\\
      &=\nabla_{\theta}\mathcal{J}^{\text{token} }(\theta).
      \end{aligned}
      $$
      • 理解:第二行到第三行中,常数 1 求导的值为 0,所以可以消掉,移除高阶无穷小的操作使得我们可以将 Sequence-level 的重要性权重改成 Token-level 的
      • 这就是为什么论文说等式(3)是等式(1)的一阶近似
  • Therefore,当 \(\pi_{\theta}\) 接近 \(\color{red}{\mu_{\theta_{\text{old}} } }\) 时,可以通过使用等式(4)中的梯度更新模型参数 \(\theta\) 来 improve 等式(1)中的 Sequence-level 目标

Conditions for First-order Approximation to Hold(一阶近似成立的条件)

  • 为了使一阶近似成立,我们要求目标策略 \(\pi_{\theta}\) 和 rollout 策略 \(\color{red}{\mu_{\theta_{\text{old}} } }\) 接近,但这并不直观

  • 为了明确起见,考虑到可能存在 训练-推理差异和策略陈旧性 ,给定 \(x\) 和每个 Token \(y_t\),我们可以将其重要性采样权重重写为:
    $$
    \frac{\pi_{\theta}(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})}=\underbrace{\frac{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})} }_{\text{training-inference discrepancy} }\times\underbrace{\frac{\pi_{\theta}(y_t|x,y_{ < t})}{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t})} }_{\text{policy staleness} },
    \tag{5}
    $$

    • 其中 \(\color{blue}{\pi_{\theta_{\text{old}} } }\) 表示由训练引擎计算的 rollout 策略,不同于推理引擎中的策略 \(\color{red}{\mu_{\theta_{\text{old}} } }\)
    • 理解:采样策略和重要性权重使用的 old 策略可能不同
      • 推理引擎和训练引擎可能会有一定误差
      • 注意:这里跟是否 off-policy ,是否异步 RL 没有关系,无论在何种情况下,理论上我们都希望能够严格保证 \(\color{blue}{\pi_{\theta_{\text{old}} } }\) 和 \(\color{red}{\mu_{\theta_{\text{old}} } }\) 完全一致
        • 所以,如果没有 推理引擎和训练引擎 的误差,则我们是会严格保证 \(\color{blue}{\pi_{\theta_{\text{old}} } }\) 和 采样时使用的策略 \(\color{red}{\mu_{\theta_{\text{old}} } }\) 完全一致的
  • Therefore,从等式(5)的分解来看,\(\pi_{\theta}\) 和 \(\color{red}{\mu_{\theta_{\text{old}} } }\) 之间的差距来自两个方面:训练-推理差异和策略陈旧性

    • 关于训练-推理差异(training–inference discrepancy) :即训练和推理引擎之间的数值带来的差异( \(\frac{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})}\) 部分)
      • training–inference discrepancy 的原因通常很复杂,并且与底层基础设施密切相关
      • 例如,训练和推理引擎通常为了达到峰值性能而采用不同的计算内核,这会导致在相同的模型输入下产生不一致的输出
      • 即使在单个引擎内部,特别是在推理端,为了最大化吞吐量,通常禁用批次不变内核(batch-invariant kernels)(2025),因此相同的模型输入仍然可能收到不同的输出
      • 对于 MoE 模型,不一致的专家路由会进一步放大训练-推理差异,论文将在第 3 节详细讨论
    • 关于策略陈旧性(policy staleness) :即 \(\color{blue}{\pi_{\theta_{\text{old}} } }\) 与待优化的目标策略 \(\pi_{\theta}\) 之间的差异 ( \(\frac{\pi_{\theta}(y_t|x,y_{ < t})}{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t})}\) 部分)
      • policy staleness 通常源于为提升训练效率和计算利用率所做的权衡
      • 由于 RL 中的 rollout 阶段通常受生成长度的时间限制,为了通过增加计算资源来加速收敛,我们经常将大批次采样响应拆分为 mini-batch 进行多次梯度更新
        • Consequently,后面消耗的 mini-batch 可能表现出更大的策略陈旧性
        • 注意:再次强调,这里多次更新的情况下,使用的 \(\pi_{\theta_\text{old}}\) 肯定会始终跟原始的 Rollout 策略保持一致的,所以理论上策略陈旧性不会导致 Rollout 策略和 \(\pi_{\theta_\text{old}}\) 不一致的问题 ,只是说 rollout 策略与待优化的目标策略之间的差异确实会提升
      • 在异步 RL 框架中,单个响应可以由多个模型版本顺序生成,这也会引入策略陈旧性
        • 理解:强调 again,这种情况下的策略陈旧性也不会带来 Rollout 策略和 \(\pi_{\theta_\text{old}}\) 不一致的问题 ,因为我们一般认为在 PPO 中,不考虑推理引擎和训练引擎本身以及 FlashAttention 等导致的随机性 的差异,会尽量严格保证 \(\pi_{\theta_\text{old}}\) 是 Rollout 策略(这是推导过程严格要求的)
    • 补充:为了进一步强调 \(\pi_{\theta_\text{old}}\) 是 Rollout 策略 ,我们给出 PPO 算法的一般性实现(在不考虑 异步 RL 框架总的),参考自 PPO 简单实现:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      def update(self, transition_dict):
      td_target = rewards + self.gamma * self.critic(next_states) * (1 - dones)
      td_delta = td_target - self.critic(states)
      advantage = rl_utils.compute_advantage(self.gamma, self.lmbda, td_delta.cpu()).to(self.device)
      old_log_probs = torch.log(self.actor(states).gather(1, actions)).detach() # 注意:old_log_probs 的定义在循环外
      for _ in range(self.epochs):
      log_probs = torch.log(self.actor(states).gather(1, actions))
      ratio = torch.exp(log_probs - old_log_probs) # 注意:循环内部不再更新 old 策略,这里 需要严格保障 old 策略始终和 采样使用的 Rollout 策略对齐
      surr1 = ratio * advantage
      surr2 = torch.clamp(ratio, 1 - self.eps, 1 + self.eps) * advantage
      actor_loss = torch.mean(-torch.min(surr1, surr2))
      critic_loss = torch.mean(F.mse_loss(self.critic(states), td_target.detach()))
      self.actor_optimizer.zero_grad()
      self.critic_optimizer.zero_grad() # 注意:因为 Critic 可能和 Actor 有相同参数,此时会共享一个梯度 变量,不能再 Actor 计算梯度以后再清空梯度
      actor_loss.backward()
      critic_loss.backward()
      self.actor_optimizer.step()
      self.critic_optimizer.step()
  • Therefore,为了保证等式(3)中替代性 Token-level 目标所依赖的一阶近似的有效性,in principle,我们应该从两个方向缩小 \(\pi_{\theta}\) 和 \(\color{red}{\mu_{\theta_{\text{old}} } }\) 之间的差距:

    • 减少训练和推理引擎之间的数值差异,并将策略陈旧性控制在适度的范围内

Challenge for Mixture of Experts, and Routing Replay

Expert Routing Hinders First-order Approximation to Hold(专家路由是阻碍一阶近似成立的其中一个问题)

  • 当涉及到 MoE 模型时,一阶近似成立的条件变得不那么直接
  • Specifically,在生成每个 Token 的前向传播过程中,MoE 模型通过专家路由机制动态选择并仅激活一小部分专家参数
  • 将专家路由纳入等式(5),我们可以将 MoE 模型的 Token-level 重要性采样权重写为:
    $$
    \frac{\pi_{\theta}(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})}=\frac{\pi_{\theta}(y_t|x,y_{ < t},\color{magenta}{e_t^\pi})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{red}{e^{\mu}_{\text{old},t}})} = \underbrace{\frac{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{blue}{e^{\pi}_{\text{old},t}})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{red}{e^{\mu}_{\text{old},t}})} }_{\text{training–inference discrepancy} } \times \underbrace{\frac{\pi_{\theta}(y_t|x,y_{ < t},\color{magenta}{e_t^\pi})}{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{blue}{e^{\pi}_{\text{old},t}})} }_{\text{policy staleness} },
    \tag{6}
    $$
    • 其中 \(e^{\pi}\) 和 \(e^{\mu}\) 分别表示训练和推理引擎中路由的专家,下标 “old” 对应于 rollout 策略
  • At this point,基于 MoE 模型的强化学习挑战变得清晰:
    • 专家路由与训练-推理差异和策略陈旧性交织在一起,增加了等式(3)中替代性 Token-level 优化目标所依赖的一阶近似失效的可能性
  • More specifically,训练-推理差异可能导致在相同的模型参数和输入下,训练和推理引擎中路由的专家不一致,即 \(\color{blue}{e^{\pi}_{\text{old},t}}\) 与 \(\color{red}{e^{\mu}_{\text{old},t}}\) 不一致)
    • 专家路由的这种分歧反过来又会放大最终输出的差异
    • Furthermore,策略陈旧性不仅体现在模型参数的变化上(即 \(\theta\) 与 \(\theta_{\text{old} }\)),还体现在路由专家的变化上(即 \(\color{magenta}{e_t^\pi}\) 与 \(\color{blue}{e^{\pi}_{\text{old},t}}\)),这可能会极大地改变由激活参数定义的最终策略

Routing Replay Restores First-order Approximation, Yet May Introduce Bias(注:路径回放可恢复一阶近似,但可能引入偏差)

  • 认识到专家路由破坏了 MoE 模型中一阶近似的有效性,我们可以通过路径回放方法(Routing Replay)(2025)来消除这种影响
  • 路径回放的核心思想是在策略优化过程中固定路由的专家,从而稳定 MoE 模型的 RL 训练,使模型能够像密集模型一样被优化
  • 基于等式(6),论文将路径回放的两种具体实现形式化,即普通路径回放和Rollout 路径回放
    • 普通路径回放(Vanilla Routing Replay, R2) (GSPO)Group Sequence Policy Optimization, 20250728, Qwen 侧重于通过在进行梯度更新时,将目标策略路由修改为 \(\color{blue}{e^{\pi}_{\text{old},t}}\)
      • 减轻专家路由对策略陈旧性的影响:将公式 6 中 \(\color{magenta}{e_t^\pi}\) 替换为 \(\color{blue}{e^{\pi}_{\text{old},t}}\)
        $$
        \frac{\pi^{R2}_{\theta}(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})} = \frac{\pi_{\theta}(y_t|x,y_{ < t},\color{blue}{e^{\pi}_{\text{old},t}})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{red}{e^{\mu}_{\text{old},t}})} = \underbrace{\frac{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{blue}{e^{\pi}_{\text{old},t}})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{red}{e^{\mu}_{\text{old},t}})} }_{\text{training–inference discrepancy} } \times \underbrace{\frac{\pi_{\theta}(y_t|x,y_{ < t},\color{blue}{e^{\pi}_{\text{old},t}})}{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{blue}{e^{\pi}_{\text{old},t}})} }_{\text{policy staleness} \ \color{red}{\downarrow}}.
        $$
    • Rollout 路径回放(Rollout Routing Replay, R3) (Stabilizing MoE Reinforcement Learning by Aligning Training and Inference Routers, 20250113 & 20251021, LLM-Core Xiaomi, Xiaomi Mimo, Fuli Luo 旨在策略梯度更新时,统一所有三个路由为 \(\color{red}{e^{\mu}_{\text{old},t}}\)
      • 减轻专家路由对策略陈旧性的影响:将公式 6 中 \(\color{magenta}{e_t^\pi}\) 替换为 \(\color{red}{e^{\mu}_{\text{old},t}}\)
      • 减少专家路由对训练-推理差异的影响:将公式 6 中的 \(\color{red}{e^{\mu}_{\text{old},t}}\) 替换为 \(\color{red}{e^{\mu}_{\text{old},t}}\)
        $$
        \frac{\pi^{R3}_{\theta}(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})} = \frac{\pi_{\theta}(y_t|x,y_{ < t},\color{red}{e^{\mu}_{\text{old},t}})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{red}{e^{\mu}_{\text{old},t}})} = \underbrace{\frac{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{red}{e^{\mu}_{\text{old},t}})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{red}{e^{\mu}_{\text{old},t}})} }_{\text{training–inference discrepancy} \ \color{red}{\downarrow} } \times \underbrace{\frac{\pi_{\theta}(y_t|x,y_{ < t},\color{red}{e^{\mu}_{\text{old},t}})}{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t},\color{red}{e^{\mu}_{\text{old},t}})} }_{\text{policy staleness} \ \color{red}{\downarrow} }.
        $$
  • Therefore,路径回放通过减少训练-推理差异(在 R3 中)和缓解策略陈旧性(在 R2 和 R3 中),直观地恢复了 MoE 模型中一阶近似的有效性
  • However,作者指出,它也隐式地给目标策略引入了偏差 ,正如符号 \(\pi^{R2}_{\theta}\) 和 \(\pi^{R3}_{\theta}\) 所暗示的那样
    • Specifically,在等式(3)中旨在优化的原始目标策略是 \(\pi_{\theta}\),其中每个 Token \(y_t\) 的似然应受 naturally-routed 专家 \(\color{magenta}{e_t^\pi}\) 支配
    • 但路径回放将路由的专家限制为 \(\color{blue}{e^{\pi}_{\text{old},t}}\) 或 \(\color{red}{e^{\mu}_{\text{old},t}}\),leading to another 偏离原始 \(\pi_{\theta}\) 目标策略 \(\pi^{R2}_{\theta}\) 或 \(\pi^{R3}_{\theta}\)(由 \(\color{magenta}{e_t^\pi}\) 定义)的问题
    • In particular,当论文将大批次拆分为 mini-batch 进行多次梯度更新时,R2 和 R3 可能拥有不同程度的偏差,如表 1 所示
      • R2 在第一个 mini-batch 中没有改变原始目标策略的路由索引(因为第一个 mini-batch 是 on-policy 的)
      • R3 在第一个 mini-batch 开始就一直没有对齐
      • 论文推测这可能导致 R2 和 R3 表现出不同的性能,特别是当批次大小与 mini-batch 大小的比率(即 Off-policy 程度)变化时
    • 表 1:R2 和 R3 如何改变原始目标策略 \(\pi_{\theta}\) 的比较
  • Nevertheless,很难明确评估路径回放的利弊孰轻孰重
    • 改变路由专家虽然向优化目标引入了偏差,但也使得一阶近似更可能成立
      • 一阶近似依赖于将 \(\pi^{R2}_{\theta}\) 或 \(\pi^{R3}_{\theta}\) 作为目标策略的改变后的 Token-level 目标
    • 作者认为需要进一步的实验来验证路径回放的实用性

Empirical Analyses

MiniRL: A Minimalist Baseline Algorithm

  • 在论文的实验中,论文对等式(3)中的 REINFORCE 优化目标应用了两个最小的修改,作为一个极简主义 Baseline 算法
    • Firstly,论文对原始奖励应用 Group-normalization(2024)作为每个响应 \(y\) 的优势估计:
      $$ \widehat{A}(x,y) = R(x,y) - \mathbb{E}_{y’\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)} [R(x,y’)]$$
      • 这也降低了原始奖励的方差
    • Secondly,论文采用了 PPO(2017)中的截断机制,通过停止某些 Token 的梯度来防止激进的策略更新,这有望抑制策略陈旧性
      • 遵循 decoupled PPO approach(2022),并使用 \(\color{blue}{\pi_{\theta_{\text{old}} } }\) 作为近端策略(proximal policy),根据 \(\pi_{\theta}(y_t|x,y_{ < t})\) 和 \(\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t})\) 的比率来决定是否截断 Token \(y_t\)

        While there are alternative clipping strategies, such as clipping a whole response based on the ratio of sequence likelihood (GSPO, 2025), we found that the current clipping strategy has worked decently. Therefore, we leave the study of clipping or masking strategies for future work. Similarly, exploring better advantage estimates \(\widehat{A}(x,y)\) may also be helpful, but falls outside the scope of this work

    • 得到的极简主义基线算法,论文称之为 MiniRL,如下所示:
      $$
      \begin{aligned}
      \mathcal{J}_{\text{MiniRL} }(\theta) &= \mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)}\left[\sum_{t=1}^{|y|} M_t \operatorname{sg}\left[\frac{\pi_{\theta}(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})}\right] \widehat{A}(x,y) \log\pi_{\theta}(y_t|x,y_{ < t})\right],\\
      M_t &= \begin{cases}
      0 & \text{if } \widehat{A}(x,y)>0 \text{ and } r_t > 1+\varepsilon_{\text{high} },\\
      0 & \text{if } \widehat{A}(x,y)<0 \text{ and } r_t < 1-\varepsilon_{\text{low} },\\
      1 & \text{otherwise},
      \end{cases} \qquad r_t = \frac{\pi_{\theta}(y_t|x,y_{ < t})}{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t})},
      \end{aligned}
      \tag{7}
      $$
      • 其中 \(\operatorname{sg}\) 表示停止梯度操作
      • 特别注意:MiniRL 的优化目标(公式 7 中的重要性采样分母上是 \(\mu_{\theta_\text{old}}\),而不是 \(\pi_{\theta_\text{old}}\)
      • 理解:Clip 部分实际上就是 普通的 DAPO 方法,只是写法上改成了分段式,MiniRL 与 GRPO 的区别是:
        • 第一:MiniRL 不包含 KL 散度部分
        • 第二:MiniRL 移除了样本内部的平均(也称为长度归一化,Length Normalization)
        • 第三:MiniRL 包含重要性比例截断上下界分离(跟 DAPO 一样)
        • 第四:MiniRL 考虑了训练-推理差异(Training-Inference Discrepancy)
        • 其实以上所有修改都是其他论文使用过的方法,论文的重点共享在于分析上而不是在于算法设计上
  • It is noteworthy that 采用 MiniRL 作为基线算法是为了尽可能(在梯度上)与等式 3 中的替代性 Token-level 目标保持一致,这已在第 2 节的表述中得到证明
  • 在附录 A 中,作者将提供 MiniRL 与其他算法(如 GRPO(2024)和 CISPO(2025))的比较
  • 论文所有的实验都将基于 MiniRL 实现

Experimental Setup

  • 论文在数学推理任务(mathematical reasoning task)上进行实验,其中模型响应与真实答案进行比较,然后分配二元奖励(即 \(R(x,y)\in\{0,1\}\))
  • 作者精心挑选了 4096 个带有已验证答案的数学问题作为 RL 训练的 Prompt Set,报告在 HMMT25、AIME25 和 AIME24 基准测试上对 32 个采样响应的平均准确率,每个基准包含 30 个竞赛级别的问题(总共 90 个问题)
  • 使用从 Qwen3-30B-A3B-Base 微调而来的冷启动模型进行实验
  • 采用 FP8 推理和 BF16 训练的设置,为算法正确性提供了一个压力测试,其中推理精度低于训练精度,且训练-推理差异很大
  • 除了训练奖励,论文还报告两个指标的动态变化:
    • (1)目标策略的 Token-level 熵,通过下式近似:
      $$
      \mathbb{H}[\pi_{\theta}] \approx \mathbb{E}_{x\sim\mathcal{D},y_{ < t}\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)} \left[-\sum_{w\in\mathcal{V} } \pi_{\theta}(w|x, y_{ < t})\log\pi_{\theta}(w|x, y_{ < t})\right],
      $$
      • 其中 \(\mathcal{V}\) 表示词汇表;
    • (2)推理和训练引擎中 rollout 策略之间的 KL 散度,计算如下:
      $$
      \mathbb{D}_{\text{KL} }[\color{red}{\mu_{\theta_{\text{old}} } } | \color{blue}{\pi_{\theta_{\text{old}} } }] = \mathbb{E}_{x\sim\mathcal{D},y_t\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x,y_{ < t})} \left[\log\frac{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})}{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x, y_{ < t})}\right].
      $$
      • 论文报告这个指标是因为最近的工作(2025; 2025a)揭示了 RL 训练的不稳定性或崩溃通常伴随着训练-推理差异的急剧增加
  • 为了进行对照实验,论文采用标准的同步 RL 框架
    • 在每个全局步骤中
      • 首先,采样一个包含 \(B\) 个 Prompt 的批次,并使用推理引擎中的 rollout 策略为每个 Prompt 采样 \(G\) 个响应
      • 然后,论文将响应拆分为 \(N\) 个 mini-batch ,并在训练引擎中应用 \(N\) 次梯度更新
    • 每个全局步骤中最终更新的策略将在下一个全局步骤中作为新的 rollout 策略使用
    • 在所有实验运行中,作者为每次梯度更新使用相同的 mini-batch 大小,即 1024 个响应(\(B=64\) 且 \(G=16\))
  • 对于其他超参数,将最大生成长度设置为 32,768,并在 MiniRL 中设置 \(\varepsilon_{\text{high} }\) 为 0.27,\(\varepsilon_{\text{low} }\) 为 0.2
  • 另外,作者还将截断重要性采样技巧(Truncated Importance Sampling trick, TIS)(2025)应用于 MiniRL 中的 Token-level 重要性采样权重,截断阈值设为 5
    • 问题:这里 TIS 并不是 MiniRL 的标配吗?为什么前面不说?
  • 论文的实验总计数十万 GPU 小时,消耗的计算量估计为每梯度步骤 \(5\sim6\) GPU 小时

Results of On-policy Training

  • 首先在 On-policy 训练(全局批次大小等于 mini-batch 大小)下验证 Token-level 优化目标所依赖的一阶近似的有效性是否与训练稳定性相关
  • 在这种 \(\theta=\theta_{\text{old} }\) 的 On-policy 设置下,MiniRL 退化为以下基本策略梯度算法:
    $$
    \mathcal{J}_{\text{MiniRL} }(\theta) = \mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)} \left[\sum_{t=1}^{|y|} \frac{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})} \widehat{A}(x,y) \log\pi_{\theta}(y_t|x,y_{ < t})\right],
    $$
  • 所以这里的 IS 权重仅用作训练-推理差异的修正
  • 现有的 RL 算法,如 GRPO 和 CISPO,通常在其优化目标中采用长度归一化,并且它们的原始目标没有考虑对训练-推理差异的 IS 修正
  • 因此,论文在实验中包含了 MiniRL 的以下两个消融变体:
    • 第一个变体:
      $$
      \mathcal{J}_{\text{MiniRL} }^{\text{w.length-norm} }(\theta) = \mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)} \left[\frac{1}{|y|}\sum_{t=1}^{\color{blue}{|y|}} \frac{\color{blue}{\pi_{\theta_{\text{old}} } }(y_t|x,y_{ < t})}{\color{red}{\mu_{\theta_{\text{old}} } }(y_t|x,y_{ < t})} \widehat{A}(x,y) \log\pi_{\theta}(y_t|x,y_{ < t})\right],
      $$
      • 该变体额外使用了长度归一化;
    • 第二个变体:
      $$
      \mathcal{J}_{\text{MiniRL} }^{\text{wo.train-infer-is} }(\theta) = \mathbb{E}_{x\sim\mathcal{D},y\sim\color{red}{\mu_{\theta_{\text{old}} } }(\cdot|x)} \left[\sum_{t=1}^{|y|} \widehat{A}(x,y) \log\pi_{\theta}(y_t|x,y_{ < t})\right],
      $$
      • 该变体省略了对训练-推理差异的 IS 修正
    • 注意,这两个变体不再满足上述一阶近似 ,因为它们的梯度既不等于,也不与等式(1)中真实 Sequence-level 目标的梯度线性相关(忽略奖励归一化)
    • 论文还将 MiniRL 和两个变体配备了 R3(R2 在此不适用,见表 1)进行比较
  • 从图 1 中,论文得出以下观察和结论:
    • MiniRL,即带有 IS 修正的基本策略梯度算法,实现了最佳性能和训练稳定性
    • 添加长度归一化导致次优性能,尽管训练保持稳定。这符合预期,因为长度归一化使得对真实期望 Sequence-level 奖励的一阶近似失效,导致了有偏的 Token-level 优化目标
    • 移除训练-推理 IS 修正会导致训练迅速崩溃和熵的急剧下降。这证实了 IS 权重是一阶近似的内在组成部分,省略它会立即使 Token-level 优化目标失效
    • 在 On-policy 训练中应用 R3 不会带来性能增益,尽管它有效降低了训练-推理差异(如训练-推理 KL 散度所示)
      • Moreover,将 R3 与长度归一化结合甚至进一步降低了基准分数,而在没有训练-推理 IS 修正的情况下应用 R3 仍然迅速失败
      • 这从实证上证实了论文在第 3.2 节的推测,即路径回放可以改变原始目标策略并向优化目标引入偏差
  • 这些结果表明,在设计 Token-level 优化目标时,只有那些保持对期望 Sequence-level 奖励一阶近似有效性的目标才能带来改进的训练稳定性和性能
  • 这也验证了论文所提出表述的正确性

Results of Off-policy Training

  • RL 中的推理时间通常受生成长度限制,无法通过增加计算资源来加速
  • 为了利用增加的计算量更快地收敛,常见的做法是引入 Off-policy 更新
  • 在同步 RL 框架内,这意味着将大批次响应拆分为 \(N\) 个 mini-batch 进行多次梯度更新
  • 为了研究在 Off-policy 设置下稳定 RL 训练的方案,论文实验了三个级别的 Off-policy 程度:
    • 在固定 mini-batch 大小为 1024 个响应的情况下,全局批次大小分别变化为 2048、4096 和 8192,对应于 \(N=2,4\) 和 8
  • 以 MiniRL 为基线,论文比较了以下方法:
    • MiniRL(no clipping)
    • MiniRL + R2(no clipping)
    • MiniRL + R2 和 MiniRL + R3
  • 从图 2 到图 4,论文得出以下观察和结论:
    • 一旦引入 Off-policy 更新,路径回放和截断对于稳定训练都变得至关重要
      • 如图 2 和图 3 所示,省略任一路径回放或截断都会导致训练过早崩溃,从而降低峰值性能
      • 这表明路径回放减轻了专家路由的影响,而截断机制也有效地防止了激进的策略更新,从而都抑制了策略陈旧性
    • 当 Off-policy 程度较小时(gbs = \(2 \times\) mbs),R2 优于 R3;而当 Off-policy 程度较大时(gbs = \(4 \times\) mbs 和 gbs = \(8 \times\) mbs),R3 超过了 R2
      • Notably,在高 Off-policy 程度下,R2 无法维持稳定的训练,并且其在训练崩溃前达到的峰值性能也略低于 R3
      • 结合论文在第 3.2 节的分析(特别是 R2 在第一个 mini-batch 中保持目标策略不变而 R3 改变了它),以及 第 4.3 节的 On-policy 实验结果,作者 hypothesize 当 Off-policy 程度较小时,R3 对目标策略的改变带来的不利影响超过了它在保持一阶近似有效性方面的好处,而在更大的 Off-policy 程度下,情况则相反
  • In Summary,论文发现路径回放和截断对于稳定的 Off-policy 训练是必要的
    • 当 Off-policy 程度较小时,R2 足以并且更有效地稳定 MoE 模型的 RL 训练,而在更大的 Off-policy 程度下,R3 变得必要

Results of Varying Cold-start Initializations

  • 回顾稳定 RL 训练的动机:给定一个基础模型,一旦论文能够通过足够长的 RL 训练达到其性能极限,我们就可以通过将计算资源投入到 RL 中,可靠地提升模型的能力
  • 为此,作者研究了使用稳定 RL 方案训练时,用不同冷启动数据初始化的模型是否能达到相似的性能
  • 作者比较了从三个前沿模型蒸馏出来的三个版本的冷启动数据:
    • Qwen3-Max-Thinking-Preview、DeepSeek-R1-0528 和 gpt-oss-120b(high mode)
  • 论文基于一个早期实验的小型 Qwen3Next MoE 模型报告结果,该模型使用全局批次大小为 4096、 mini-batch 大小为 2048(\(B=128, G=16, N=2\))以及生成长度为 65,536 个 Token 进行训练
    • 这里采用 MiniRL + R2 作为训练方案
  • 在图 5 中,展示了三个冷启动初始化始终实现可比较的最终性能,这鼓励论文更多地关注 RL 本身,而不是过度关注冷启动初始化的细节
  • Furthermore,比较图 1 到图 4,论文发现 On-policy 和 Off-policy 训练(一旦稳定下来)也始终达到相似的峰值性能
    • 这些结果进一步表明,稳定训练在成功扩展 RL 方面起着决定性作用

附录 A: Comparison of MiniRL against GRPO and CISPO

  • 论文将 MiniRL 的优化目标与 GRPO (2024) 和 CISPO (2025) 的目标进行比较
  • 使用论文中的符号,GRPO 采用以下目标:
    $$
    \mathcal{J}_{\textrm{GRPO} }(\theta)=\mathbb{E}_{x\sim\mathcal{D},\left\{y_{i}\right\}_{i=1}^{G}\sim\mu_{\theta_{\textrm{old} } }(\cdot|x)} \left[\frac{1}{G}\sum_{i=1}^{G}\frac{1}{\left|y_{i}\right|}\sum_{t=1}^{\left|y_{i}\right|}\min\left(r_{i,t}(\theta)\widehat{A}_{i,t},\operatorname{clip}(r_{i,t}(\theta),1-\epsilon_{\textrm{low} },1+\epsilon_{\textrm{high} })\widehat{A}_{i,t}\right)\right],
    $$
    • 注:这里少写了 KL 散度
  • CISPO 如下:
    $$
    \mathcal{J}_{\textrm{CISPO} }(\theta)=\mathbb{E}_{x\sim\mathcal{D},y\sim\mu_{\theta_{\textrm{old} } }(\cdot|x)} \left[\frac{1}{\sum_{i=1}^{G}\left|y_{i}\right|}\sum_{i=1}^{G}\sum_{t=1}^{\left|y_{i}\right|}\operatorname{sg}\left[\operatorname{clip}(r_{i,t}(\theta),1-\epsilon_{\textrm{low} },1+\epsilon_{\textrm{high} })\right]\widehat{A}_{i,t}\log\pi_{\theta}(y_{t}|x,y_{ < t})\right],
    $$
  • 其中在两个目标中,重要性比例和优势函数相同:
    $$
    r_{i,t}(\theta)=\frac{\pi_{\theta}(y_{i,t}|x,y_{i,<t})}{\color{blue}{\pi_{\theta_{\text{old}} } }(y_{i,t}|x,y_{i,<t})},\qquad\widehat{A}_{i,t}=\frac{R(x,y_{i})-\text{mean}\left(\left\{R(x,y_{i})\right\}_{i=1}^{G}\right)}{\text{std}\left(\left\{R(x,y_{i})\right\}_{i=1}^{G}\right)}.
    $$
  • 它们与 MiniRL 的关键区别包括:
    • (1) 它们的原始目标未考虑训练-推理差异(training–inference discrepancy)
      • 注:MiniRL 的优化目标(公式 7 中的重要性采样分母上是 \(\mu_{\theta_\text{old}}\),而不是 \(\pi_{\theta_\text{old}}\)
    • (2) 两者都采用了长度归一化(length normalization),论文在第 4.3 节表明,这会使得对真实期望 Sequence-level 奖励的一阶近似失效,并可能导致有偏的 Token 级优化目标和次优性能;
    • (3) CISPO 没有对某些 Token 的梯度进行裁剪,论文在第 4.4 节表明这可能导致训练不稳定
      • 补充特别强调:CISPO 的截断方式与 PPO/GRPO 有着明显的不同
        • 在 PPO/GRPO 中,阶段对象是整个 Token 本身,被截断以后就整个 Token 都不生效了(这部分梯度因为截断而变成变成 0);
        • 在 CISPO 的截断方式下,仅仅是将重要性权重比例进行了截断,Token 的重要性比例被截断了,但本身梯度还可以被继续更新
          • 严格来讲:CISPO 中,无论怎样的 Token 都会参与更新,只是说重要性比例对应的权重会被截断调整
    • 其实还有其他区别:
      • 相对标准的 GRPO,MiniRL 增加了重要性比例的截断上下解耦
      • 相对标准的 GRPO,MiniRL 移除了 KL 散度?

附录 B: Detailed Benchmark Results

  • 图 6: 全局批次大小 gbs = mini-batch 大小 mbs = \(1,024\) 的 On-policy 训练详细基准测试结果
  • 图 7: 全局批次大小 gbs = \(2\times\) mini-batch 大小 mbs = \(2,048\) 的离策略训练详细基准测试结果
  • 图 8: 全局批次大小 gbs = \(4\times\) mini-batch 大小 mbs = \(4,096\) 的离策略训练详细基准测试结果
  • 图 9: 全局批次大小 gbs = \(8\times\) mini-batch 大小 mbs = \(8,192\) 的离策略训练详细基准测试结果
  • 图 10: 不同冷启动初始化的详细基准测试结果
1…101112…63
Joe Zhou

Joe Zhou

Stay Hungry. Stay Foolish.

628 posts
53 tags
GitHub E-Mail
© 2026 Joe Zhou
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4