← 返回列表

PPO、DPO 与 GRPO:统一目标函数下的三种策略优化方案

摘要

本文从同一个带 KL 正则的奖励最大化目标出发,推导并比较 PPO、DPO 与 GRPO 三种大语言模型策略优化方法。

三者的差异集中在两个问题:如何估计优势函数,以及是否需要在线采样。PPO 依赖独立训练的价值网络与广义优势估计(GAE);DPO 利用最优策略的闭式解,将强化学习问题转化为二分类问题;GRPO 则以同一提示下多次采样的组内统计量替代价值网络。

为使推导可核对,本文在关键步骤处给出数字算例。

0. 记号与问题设定

0.1 记号约定

记号含义
x, yx,\ y提示(prompt)与回答(response)
yw, yly_w,\ y_l偏好对中的较优回答与较差回答,见 §2.1
yw≻yly_w \succ y_l”ywy_w 优于 yly_l”
πθ\pi_\theta待优化的策略,即语言模型本身
πref\pi_{\mathrm{ref}}参考策略
πθold\pi_{\theta_{\mathrm{old}}}采样数据时的策略快照
r(x,y)r(x,y)奖励;rϕ(x,y)r_\phi(x,y) 表示参数化奖励模型
β\betaKL 正则系数
AA优势函数
ρt(θ)\rho_t(\theta)重要性比率,见 §1.1
σ(⋅)\sigma(\cdot)Logistic 函数 σ(z)=1/(1+e−z)\sigma(z)=1/(1+e^{-z})
DKL(p∥q)D_{\mathrm{KL}}(p\|q)相对熵,∑yp(y)log⁡p(y)q(y)\sum_y p(y)\log\frac{p(y)}{q(y)}

记号说明:本文用 ρ\rho 表示重要性比率,rr 专用于奖励,以避免原始文献中 rtr_t 同时表示比率与奖励造成的歧义。

0.2 统一目标函数

三种方法的起点是同一个优化问题:

max⁡θ  Ex∼D, y∼πθ(⋅∣x)[r(x,y)]−β DKL(πθ∥πref)(1)\max_\theta \; \mathbb{E}_{x\sim\mathcal{D},\,y\sim\pi_\theta(\cdot\mid x)}\big[r(x,y)\big] - \beta\,D_{\mathrm{KL}}\big(\pi_\theta\|\pi_{\mathrm{ref}}\big) \tag{1}
(1)

先逐项说明各部分的含义。E\mathbb{E} 表示期望,即”平均而言”;x∼Dx\sim\mathcal{D} 表示从训练数据中抽取一个提示;y∼πθ(⋅∣x)y\sim\pi_\theta(\cdot\mid x) 表示由当前模型自己生成回答——注意这里的数据不是预先收集的,而是模型当场生成的,这一点决定了后文所有方法的在线/离线属性。r(x,y)r(x,y) 是奖励,一个标量分数,越高表示该回答越好;它既可以是一个单独训练出来的奖励模型 rϕr_\phi,也可以是一条可程序化验证的规则(例如数学题答案是否与标准答案一致)。

πθ\pi_\theta 是待优化的策略。在语言模型语境下,策略就是模型本身:给定提示 xx,它输出下一个 token 的概率分布,把整段回答的概率连乘起来就是 πθ(y∣x)\pi_\theta(y\mid x)。πref\pi_{\mathrm{ref}} 是参考策略,通常是同一个模型经过监督微调(SFT,即用人工示范数据做常规的下一 token 预测训练)之后、冻结不再更新的版本。它在本式中充当”别跑偏”的锚点。

DKLD_{\mathrm{KL}} 是 KL 散度(相对熵),用于衡量两个概率分布差多远:分布完全相同时为 0,差异越大取值越大。式 (1) 中它是逐提示计算的——对每个 xx,比较”给定 xx 时两个模型各自输出什么回答”这两个条件分布。因此第二项惩罚的是当前策略与参考策略的偏离程度,β\beta 控制惩罚的强度:β\beta 越大,模型越被约束在参考策略附近。

为什么必须加这一项:式 (1) 中的 rr 是人类偏好的有损代理,而非我们真正想要的目标。在代理目标上做无约束优化,最优解必然落在代理的适用范围之外——模型会找到各种提高分数的捷径(例如把回答写得又长又客套),而实际质量并未提升。这一现象称为 reward hacking,其背后的规律是 Goodhart 定律:当一个度量指标成为优化目标,它就不再是一个好的度量指标。 KL 项的作用就是为代理目标划定一个可信区间。

后文所有推导均以式 (1) 为基础。

1. PPO:带裁剪的近似策略优化

要点:PPO 通过裁剪重要性比率,使目标函数对策略的单步偏离不敏感,从而在保证稳定性的前提下实现同一批数据的多轮复用。

1.1 动机:on-policy 的样本效率困境

策略梯度定理给出

∇J(θ)=Eτ∼πθ[∇log⁡πθ(τ)⋅R(τ)](2)\nabla J(\theta)=\mathbb{E}_{\tau\sim\pi_\theta}\big[\nabla\log\pi_\theta(\tau)\cdot R(\tau)\big] \tag{2}
(2)

其中 τ\tau 表示一条完整的交互轨迹(对语言模型而言就是”提示 + 生成的一整段回答”),R(τ)R(\tau) 是该轨迹的累计回报。式 (2) 的含义很朴素:采样到高回报的轨迹就提高它的概率,低回报就压低。

式 (2) 的估计量要求样本来自当前策略,这类方法称为 on-policy(同策略)。与之相对,off-policy(异策略)方法允许使用其它策略产生的数据。对语言模型而言,生成一条轨迹的计算成本极高——相当于完整地跑一次推理,样本仅使用一次是不可接受的。

解决手段是重要性采样:允许用旧策略采样的数据来估计当前策略的梯度,代价是乘上一个概率比。

∇J(θ)=Ea∼πθold[πθ(a∣s)πθold(a∣s)⏟ρ(θ)⋅A(s,a)](3)\nabla J(\theta)=\mathbb{E}_{a\sim\pi_{\theta_{\mathrm{old}}}}\Big[\underbrace{\frac{\pi_\theta(a\mid s)}{\pi_{\theta_{\mathrm{old}}}(a\mid s)}}_{\textstyle \rho(\theta)}\cdot A(s,a)\Big] \tag{3}
(3)

式中 πθold\pi_{\theta_{\mathrm{old}}} 是采样这批数据时的策略快照,ρ(θ)\rho(\theta) 称为重要性比率,衡量当前策略相对采样策略更偏好该动作多少倍。A(s,a)A(s,a) 是优势函数,回答”在这个状态下采取这个动作,比该状态的平均水平好多少”——它的具体构造在 §3.1 展开,此处只需知道它是个标量权重。

式 (3) 在 πθ\pi_\theta 与 πθold\pi_{\theta_{\mathrm{old}}} 接近时无偏且方差可控。但两者一旦偏离,ρ(θ)\rho(\theta) 的方差会迅速增大:若某个动作在旧策略下概率极低、在新策略下概率很高,比率会变成几十甚至上百,单个样本就能主导整个梯度,使估计失效。

1.2 目标函数

TRPO 的处理方式是对策略更新施加硬约束 E[DKL(πθold∥πθ)]≤δ\mathbb{E}[D_{\mathrm{KL}}(\pi_{\theta_{\mathrm{old}}}\|\pi_\theta)]\le\delta,即要求新旧策略的 KL 距离不超过阈值 δ\delta。这一约束在理论上更严格,但求解需要计算 Fisher 信息矩阵(描述参数空间局部曲率的矩阵)并解共轭梯度,实现复杂。

PPO 改用软约束,即裁剪后的替代目标:

LCLIP(θ)=E[min⁡(ρ(θ)A,  clip(ρ(θ), 1−ε, 1+ε)⋅A)](4)L^{\mathrm{CLIP}}(\theta)=\mathbb{E}\Big[\min\big(\rho(\theta)A,\ \ \mathrm{clip}(\rho(\theta),\,1-\varepsilon,\,1+\varepsilon)\cdot A\big)\Big] \tag{4}
(4)

其中 clip(z, 1−ε, 1+ε)\mathrm{clip}(z,\,1-\varepsilon,\,1+\varepsilon) 表示把 zz 截断到 [1−ε, 1+ε][1-\varepsilon,\,1+\varepsilon] 区间内:小于下界取 ε\varepsilon 下界,大于上界取上界。ε\varepsilon 是控制允许偏离幅度的超参数,常取 0.2。

1.3 关键设计:裁剪为何有效

式 (4) 中的 min⁡\min 使裁剪表现为单边惩罚。按优势符号与比率位置展开,共四种情形:

优势比率区间无裁剪时的行为含 min⁡\min 后的行为
A>0A>0ρ>1+ε\rho>1+\varepsilon持续增大该动作概率,单步更新过大梯度为零,停止鼓励
A>0A>0ρ<1−ε\rho<1-\varepsilon—取 ρA\rho A 项,仍产生梯度
A<0A<0ρ<1−ε\rho<1-\varepsilon持续压低该动作概率梯度为零,停止压低
A<0A<0ρ>1+ε\rho>1+\varepsilon—取较悲观项,仍产生梯度

结论:当 ρ\rho 落在 [1−ε, 1+ε][1-\varepsilon,\,1+\varepsilon] 内时,式 (4) 退化为普通策略梯度;超出该区间后,仅保留使目标变差方向的梯度。 这即为”近端”(proximal)的含义——单步更新幅度被限制在邻域内。

数字算例:取 ε=0.2\varepsilon=0.2。

  • 若 ρ=1.5\rho=1.5、A=+1A=+1:ρ>1+ε\rho>1+\varepsilon,min⁡\min 取裁剪项,min⁡(1.5,  1.2)=1.2\min(1.5,\;1.2)=1.2,该 token 不再产生梯度;
  • 若 ρ=0.5\rho=0.5、A=+1A=+1:ρ<1−ε\rho<1-\varepsilon,min⁡\min 取未裁剪项,min⁡(0.5,  0.8)=0.5\min(0.5,\;0.8)=0.5,梯度正常流动,把该动作的概率往回拉。

由此带来的实际收益是:PPO 虽为 on-policy 算法,却可在同一批数据上执行多个 epoch(即把同一批数据反复训练若干轮),这是它在语言模型上可用的根本原因。

1.4 在 RLHF 中的实现

把式 (1) 的 KL 项分解到每一个 token 上,可以构造逐 token 奖励:

rt=−βlog⁡πθ(yt∣x,y<t)πref(yt∣x,y<t)+rϕ(x,y)⋅1[t=T](5)r_t=-\beta\log\frac{\pi_\theta(y_t\mid x,y_{<t})}{\pi_{\mathrm{ref}}(y_t\mid x,y_{<t})}+r_\phi(x,y)\cdot\mathbb{1}[t=T] \tag{5}
(5)

式中 yty_t 是回答的第 tt 个 token,y<ty_{<t} 是它前面的所有 token。第一项是逐 token 的 KL 惩罚,衡量当前模型与参考模型在”给定前文时该生成哪个 token”上的分歧。第二项是奖励模型给出的序列级得分;其中的 1[⋅]\mathbb{1}[\cdot] 是指示函数:括号内条件成立时取 1,否则取 0,TT 是序列长度,因此 rϕr_\phi 只在最后一个 token 处计入一次。这样处理的含义是:奖励模型只在回答写完后打一次分,而 KL 惩罚贯穿每个 token。

式 (5) 使每个 token 都具备即时奖励,从而可直接套用标准 PPO 流程。该流程需要同时维护四个模型:

模型作用是否训练
Actor πθ\pi_\theta待优化策略是
Critic VψV_\psi估计状态价值,供优势估计使用是(与 actor 同规模)
Reward Model rϕr_\phi输出序列级奖励否(预先训练)
Reference πref\pi_{\mathrm{ref}}计算 KL 惩罚否

Actor 与 Critic 是强化学习中的通用术语:actor 指执行动作的策略,critic 指评价”当前状态好不好”的估计器。 在本语境下,critic 即状态价值网络 VψV_\psi,它对”从当前 token 继续生成,最终能拿到多少奖励”作出预测。优势的估计通常采用 GAE(广义优势估计,Generalized Advantage Estimation),它把多步的时序差分误差按衰减系数 λ\lambda 加权求和;γ\gamma 则是折扣因子,用于权衡远期与近期回报(在语言模型任务中通常取 γ=1\gamma=1,因为不希望对回答后半段打折)。

1.5 工程代价

  • 显存:critic 与 actor 同规模且需要训练,可训练模型数量翻倍;
  • 训练难度:序列级奖励仅在末尾给出,critic 需要学习”从某一个 token 起最终可得多少奖励”。这属于长程信用分配问题——把最终的一个标量信号,归因到前面几百个 token 的每一个决策上,本身就很难;实践中通常需要先让 critic 预热一段时间(warmup),且其预测容易带噪声,进而污染优势估计;
  • 超参数:需额外调节 GAE 的 γ\gamma 与 λ\lambda。

2. DPO:闭式解与分类损失的等价

要点:式 (1) 的最优解具有闭式形式,且该形式隐式定义了奖励函数。将其代入 Bradley-Terry 偏好模型后,配分函数在成对相减中消去,强化学习问题由此转化为二分类问题。

2.1 偏好数据:正负样本对与 ≻ 记号

DPO 使用的数据形式与前两者不同,先说明其记号。

ywy_w 与 yly_l 是一对样本。 下标来自英文:ww = winner(胜者),ll = loser(败者)。给定同一个提示 xx,由标注者(或某个筛选规则)比较两个回答并判断哪个更好,就得到一对数据:

(x,  yw,  yl)满足yw≻yl(x,\; y_w,\; y_l) \quad\text{满足}\quad y_w \succ y_l

符号 ≻\succ 只表示”优于”这一偏好关系,不含数值大小的含义。之所以不直接写 yw>yly_w > y_l,是因为偏好关系本身不一定来自某个标量奖励函数;而建模时恰恰需要假设它来自一个标量奖励,这正是下面 Bradley-Terry 模型的引入动机。

用机器学习中更熟悉的说法:ywy_w 是正样本,yly_l 是负样本,(x,yw,yl)(x, y_w, y_l) 就是一对正负样本对。 因此当你看到 DPO 的损失函数里写着 ywy_w 和 yly_l 时,它实际做的事很朴素:让模型更倾向于正样本,更不倾向于负样本。 不同代码库与论文里的叫法对照如下:

本文记号常见别名
ywy_wchosen、preferred、positive sample(正样本)
yly_lrejected、dispreferred、negative sample(负样本)
yw≻yly_w \succ y_lchosen 优于 rejected、偏好对
rϕr_\phireward model、RM、奖励模型
VψV_\psicritic、value head、价值网络
GG(组大小)num_generations、group_size、rollout 采样数

后文涉及偏好对的说明,统一使用下面这个样本:

提示 xx:为什么深层神经网络会出现梯度消失?请用两句话说明。

较优回答 ywy_w:反向传播时梯度逐层相乘,若每层雅可比矩阵的奇异值普遍小于 1,连乘后梯度随层数指数衰减,前层因此几乎收不到更新信号。

较差回答 yly_l:这是神经网络中一个很常见的问题,涉及很多复杂因素,需要从多个角度综合考虑,一般来说可以通过一些方法缓解。

yly_l 读起来流畅,也没有事实性错误,但它没有回答问题。这类”安全但空洞”的回答在真实偏好数据中相当常见,也是偏好标注无法用流畅度等代理指标替代的原因。

2.2 动机

PPO 的完整流程需要在线采样、奖励模型与价值网络三者协同。DPO 的出发点是:既然式 (1) 的最优策略可以解析地写出,是否可以直接求解,从而跳过迭代优化?

2.3 闭式解推导

固定 xx,将式 (1) 写成对 yy 的期望形式:

max⁡π ∑yπ(y∣x) r(x,y)−β∑yπ(y∣x)log⁡π(y∣x)πref(y∣x)(6)\max_\pi\ \sum_y \pi(y\mid x)\,r(x,y)-\beta\sum_y\pi(y\mid x)\log\frac{\pi(y\mid x)}{\pi_{\mathrm{ref}}(y\mid x)} \tag{6}
(6)

第一步,合并进同一个对数。 将奖励项写作 −β⋅(−r/β)-\beta\cdot(-r/\beta) 并移入对数:

=−β∑yπ(y∣x)log⁡π(y∣x)πref(y∣x) er(x,y)/β(7)=-\beta\sum_y\pi(y\mid x)\log\frac{\pi(y\mid x)}{\pi_{\mathrm{ref}}(y\mid x)\,e^{r(x,y)/\beta}} \tag{7}
(7)

第二步,识别 KL 散度。 引入配分函数

Z(x)=∑yπref(y∣x) er(x,y)/β(8)Z(x)=\sum_y\pi_{\mathrm{ref}}(y\mid x)\,e^{r(x,y)/\beta} \tag{8}
(8)

配分函数是一个归一化常数:由于 er/βe^{r/\beta} 只是把奖励做了指数变换,它本身不是概率,除以 Z(x)Z(x) 之后才满足”对所有 yy 求和为 1”。据此定义

π∗(y∣x)=1Z(x) πref(y∣x) er(x,y)/β(9)\pi^*(y\mid x)=\frac{1}{Z(x)}\,\pi_{\mathrm{ref}}(y\mid x)\,e^{r(x,y)/\beta} \tag{9}
(9)

式 (9) 是合法概率分布。代入式 (7):

−β∑yπ(y∣x)log⁡π(y∣x)π∗(y∣x) Z(x)=−β DKL(π∥π∗)+βlog⁡Z(x)(10)-\beta\sum_y\pi(y\mid x)\log\frac{\pi(y\mid x)}{\pi^*(y\mid x)\,Z(x)}=-\beta\,D_{\mathrm{KL}}\big(\pi\|\pi^*\big)+\beta\log Z(x) \tag{10}
(10)

由 KL 散度非负可知,当且仅当 π=π∗\pi=\pi^* 时式 (10) 取最小值。

第三步,反解奖励。 对式 (9) 取对数并整理:

r(x,y)=βlog⁡π∗(y∣x)πref(y∣x)+βlog⁡Z(x)(11)r(x,y)=\beta\log\frac{\pi^*(y\mid x)}{\pi_{\mathrm{ref}}(y\mid x)}+\beta\log Z(x) \tag{11}
(11)

式 (11) 表明:最优策略本身编码了奖励信息。据此可以把 βlog⁡πθ(y∣x)πref(y∣x)\beta\log\frac{\pi_\theta(y\mid x)}{\pi_{\mathrm{ref}}(y\mid x)} 理解为一种隐式奖励——它不来自任何单独训练的奖励模型,而是由策略与参考策略的对数概率比直接定义出来的。这正是原论文标题”语言模型秘密地是一个奖励模型”所表达的含义。

第四步,代入偏好模型。 Bradley-Terry 模型是一个经典的成对比较模型,它假设两者的胜负概率由各自的”实力值”之差经 Logistic 函数决定:

P(yw≻yl∣x)=σ(r(x,yw)−r(x,yl))(12)P(y_w\succ y_l\mid x)=\sigma\big(r(x,y_w)-r(x,y_l)\big) \tag{12}
(12)

σ\sigma 的输出落在 (0,1)(0,1),可解释为概率。将式 (11) 代入式 (12) 的差值中:

r(x,yw)−r(x,yl)=β[log⁡π∗(yw)πref(yw)−log⁡π∗(yl)πref(yl)]+βlog⁡Z(x)−βlog⁡Z(x)⏟= 0(13)r(x,y_w)-r(x,y_l)=\beta\Big[\log\tfrac{\pi^*(y_w)}{\pi_{\mathrm{ref}}(y_w)}-\log\tfrac{\pi^*(y_l)}{\pi_{\mathrm{ref}}(y_l)}\Big]+\underbrace{\beta\log Z(x)-\beta\log Z(x)}_{=\,0} \tag{13}
(13)

Z(x)Z(x) 仅依赖 xx,在成对相减中消去。这是 DPO 无需奖励模型的关键——否则 Z(x)Z(x) 需要对整个词表求和,不可计算。

第五步,得到损失函数。 最大化偏好似然等价于最小化其负对数(即极大似然估计),得

LDPO=−E[log⁡σ(βlog⁡πθ(yw)πref(yw)−βlog⁡πθ(yl)πref(yl))](14)\mathcal{L}_{\mathrm{DPO}}=-\mathbb{E}\Big[\log\sigma\Big(\beta\log\tfrac{\pi_\theta(y_w)}{\pi_{\mathrm{ref}}(y_w)}-\beta\log\tfrac{\pi_\theta(y_l)}{\pi_{\mathrm{ref}}(y_l)}\Big)\Big] \tag{14}
(14)

式中省略了 πθ(y)\pi_\theta(y) 对提示 xx 的依赖(严格写法为 πθ(y∣x)\pi_\theta(y\mid x)),后文沿用这一简写。式 (14) 为标准二分类交叉熵,不含采样、奖励模型与价值网络。

数字算例:沿用 §2.1 的样本,取 β=0.1\beta=0.1,并假设模型当前的对数概率比分别为

log⁡πθ(yw)πref(yw)=−2.0,log⁡πθ(yl)πref(yl)=−2.6\log\tfrac{\pi_\theta(y_w)}{\pi_{\mathrm{ref}}(y_w)}=-2.0,\qquad \log\tfrac{\pi_\theta(y_l)}{\pi_{\mathrm{ref}}(y_l)}=-2.6

式中 log⁡πθ(y)πref(y)\log\frac{\pi_\theta(y)}{\pi_{\mathrm{ref}}(y)} 称为对数概率比:为正说明当前模型比参考模型更倾向于这个回答,为负则说明更不倾向。上面两个值都是负的,意味着模型对两个回答都比参考模型更不倾向,只是对 yly_l 更不倾向一些。

由此得隐式奖励差 Δ=β×[(−2.0)−(−2.6)]=0.1×0.6=0.06\Delta=\beta\times\big[(-2.0)-(-2.6)\big]=0.1\times0.6=0.06,于是

σ(0.06)≈0.515,LDPO=−log⁡0.515≈0.664\sigma(0.06)\approx0.515,\qquad \mathcal{L}_{\mathrm{DPO}}=-\log 0.515\approx0.664

σ(Δ)≈0.515\sigma(\Delta)\approx0.515 意味着模型对这对样本几乎没有偏好(随机水平为 0.5),损失接近 log⁡2≈0.693\log 2\approx0.693 的理论上限。此时梯度权重 σ(−Δ)≈0.485\sigma(-\Delta)\approx0.485 较大,模型会以较大步长修正。

作为对比,若某对样本模型已经学得很好,例如 Δ=2.0\Delta=2.0,则 σ(2.0)≈0.881\sigma(2.0)\approx0.881,损失降至 0.1270.127,而梯度权重 σ(−2.0)≈0.119\sigma(-2.0)\approx0.119——已经学对的样本几乎不再贡献梯度。

2.4 梯度形式与 β 的双重角色

对式 (14) 求导,记括号内的隐式奖励差为 Δ\Delta,则

∇LDPO=−β σ(−Δ)[∇log⁡πθ(yw)−∇log⁡πθ(yl)](15)\nabla\mathcal{L}_{\mathrm{DPO}}=-\beta\,\sigma(-\Delta)\Big[\nabla\log\pi_\theta(y_w)-\nabla\log\pi_\theta(y_l)\Big] \tag{15}
(15)

式 (15) 的含义是:提升正样本 ywy_w 的概率,压低负样本 yly_l 的概率;权重 σ(−Δ)\sigma(-\Delta) 表示当前偏好判断越错误,该样本的梯度权重越大——与上面的数字算例一致。

需注意 β\beta 在该式中承担两个角色:既是 KL 约束强度,也是隐式奖励的尺度。这与它在 PPO 中仅作为 KL 系数的作用不同,两处取值不可直接套用。

2.5 已知失效模式

失效模式机理缓解手段
似然位移压低 yly_l 时,概率质量会转移至与 ywy_w 共享的 token 及词表长尾,导致 log⁡πθ(yw)\log\pi_\theta(y_w) 反而下降加入 SFT 项;过滤语义过近的偏好对;早停
长度偏差log⁡πθ(y∣x)=∑tlog⁡πθ(yt∣⋅)\log\pi_\theta(y\mid x)=\sum_t\log\pi_\theta(y_t\mid\cdot) 为未归一化求和,拉大 Δ\Delta 最省力的方式是延长序列长度归一化(如 SimPO);长度正则
分布外退化式 (14) 仅在 {yw,yl}\{y_w,y_l\} 两点上有定义,对其它 y′y' 无约束迭代式 DPO;引入在线采样
过拟合偏好数据当偏好确定性较高时,式 (12) 的极大似然要求 Δ→∞\Delta\to\infty,此时 KL 正则失效IPO 等修改损失形式的方法

逐条补充说明:

似然位移是 DPO 训练中最常见的异常,也是监控时最容易被忽略的一项。在 §2.1 的例子里,ywy_w 与 yly_l 共享大量常见 token(“神经网络""问题""方法”等)。由于每个位置的输出概率之和恒为 1,压低 yly_l 的概率时,这些共享 token 的概率也会被连带压低,从而溢出到 ywy_w 上,甚至扩散到词表中大量低频 token(即所谓词表长尾)。其表现是训练损失稳步下降,但 log⁡πθ(yw)\log\pi_\theta(y_w) 反而下降——只看排序准确率会被这一现象欺骗。

长度偏差的根源在于对数概率是对各 token 概率连乘取对数,因而是一个未归一化的求和:回答越长,这个和越容易取到极端值。因此拉大 Δ\Delta 最省力的办法不是提升回答质量,而是把回答写长。

分布外退化是 DPO 与 PPO 最本质的差别。式 (14) 只约束了 ywy_w 与 yly_l 这两个点,对其它任何回答 y′y' 没有任何约束。降低 yly_l 的概率并不等价于提升 ywy_w 的概率,而是提升了除 yly_l 之外的所有候选——其中可能包含比 yly_l 更差的回答。PPO 则不同:它会在线采样到这些 y′y',并由奖励模型对其施加惩罚。

过拟合偏好数据:当标注的偏好关系高度确定(即 P(yw≻yl)→1P(y_w\succ y_l)\to 1)时,式 (12) 的极大似然要求奖励差 Δ→∞\Delta\to\infty,也就意味着 πθ(yl)→0\pi_\theta(y_l)\to 0。此时 KL 正则完全失效——无论 β\beta 取多大,最优解都是把 yly_l 压到 0。这解释了为什么 DPO 容易在偏好数据上过拟合,以及为什么实践中 epoch 通常只取 1 到 2。

3. GRPO:以组内基线替代价值网络

要点:状态价值 V(x)V(x) 可由同一提示下多次采样的平均奖励无偏估计,因此无需训练价值网络。GRPO 保留 PPO 的裁剪结构与在线采样,仅替换优势估计方式。

3.1 动机

由 §1.5,PPO 的主要工程负担来自价值网络:它与 actor 同规模,且需要从稀疏的序列级奖励中学习长程信用分配。

回顾优势的定义:A=R−b(s)A=R-b(s),即实际回报减去一个基线 b(s)b(s)。基线的作用是降方差——减去一个不依赖动作的量不会引入偏差,却能显著降低梯度估计的波动。理论上最优的基线是状态价值 V(s)V(s),它回答”从状态 ss 出发,按当前策略继续下去平均能拿到多少回报”。对语言模型,状态 ss 就是提示 xx,于是

V(x)=Ey∼πθ[r(x,y)](16)V(x)=\mathbb{E}_{y\sim\pi_\theta}\big[r(x,y)\big] \tag{16}
(16)

而式 (16) 可以用蒙特卡洛方法直接估计——所谓蒙特卡洛,就是用随机采样的平均值去近似期望值。具体做法:对同一提示采样 GG 个回答,取它们的平均奖励。这一观察使得价值网络成为非必需品,GG 即所谓组大小。

3.2 目标函数

设同一提示的 GG 个回答获得奖励 r1,…,rGr_1,\dots,r_G,GRPO 定义组内相对优势:

Ai=ri−mean(r1,…,rG)std(r1,…,rG)(17)A_i=\frac{r_i-\mathrm{mean}(r_1,\dots,r_G)}{\mathrm{std}(r_1,\dots,r_G)} \tag{17}
(17)

式 (17) 包含两个操作,需严格区分:

  • 减均值:对应上文中的基线 b(s)b(s),用于降低方差,不引入偏差;
  • 除标准差:仅为尺度归一化,不属于基线的一部分。

目标函数为

JGRPO(θ)=E[1G∑i=1G1∣yi∣∑t=1∣yi∣ℓ(ρi,t,Ai)−β DKL(πθ∥πref)](18)\mathcal{J}_{\mathrm{GRPO}}(\theta)=\mathbb{E}\Big[\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|y_i|}\sum_{t=1}^{|y_i|}\ell\big(\rho_{i,t},A_i\big)-\beta\,D_{\mathrm{KL}}\big(\pi_\theta\|\pi_{\mathrm{ref}}\big)\Big] \tag{18}
(18)

式中 yiy_i 是第 ii 个回答,∣yi∣|y_i| 是它的 token 数,ρi,t\rho_{i,t} 是第 ii 个回答第 tt 个 token 处的重要性比率,而

ℓ(ρ,A)=min⁡(ρA,  clip(ρ, 1−ε, 1+ε)⋅A)(19)\ell(\rho,A)=\min\big(\rho A,\ \ \mathrm{clip}(\rho,\,1-\varepsilon,\,1+\varepsilon)\cdot A\big) \tag{19}
(19)

即式 (4) 中的裁剪项本身。GRPO 的目标函数与 PPO 逐字相同,唯一的替换发生在优势 AiA_i 上——它由式 (17) 的组内统计量给出,同时 γ\gamma、λ\lambda 与价值网络被整体移除。

数字算例:取组大小 G=4G=4,奖励为二元(答对得 1,答错得 0)。三种典型情形:

组内奖励均值标准差组内优势含义
[1,1,1,1][1,1,1,1]1.000.00[0,0,0,0][0,0,0,0]全对,无学习信号
[1,0,1,0][1,0,1,0]0.500.50[1,−1,1,−1][1,-1,1,-1]有对有错,信号最强
[1,1,1,0][1,1,1,0]0.750.43[0.58,0.58,0.58,−1.73][0.58,0.58,0.58,-1.73]三对一错,信号不对称

第一行说明:当组内奖励完全相同时,分子恰为 0,优势严格为 0,该组不产生任何梯度——这解释了为什么”全对”或”全错”的样本对训练没有贡献。第三行则显示,当组内存在少数异常样本时,其优势的绝对值远大于多数样本,这是除标准差带来的尺度效应。

3.3 KL 的无偏估计

式 (18) 中的 KL 项采用 k3 估计量(编号来自原论文中的估计量列表):

D^KL=u−log⁡u−1,u=πrefπθ(20)\hat{D}_{\mathrm{KL}}=u-\log u-1,\qquad u=\frac{\pi_{\mathrm{ref}}}{\pi_\theta} \tag{20}
(20)

这里 uu 是参考策略与当前策略在该 token 上的概率之比。无偏性验证:由

E[u]=∑yπθ⋅πrefπθ=∑yπref=1\mathbb{E}[u]=\sum_y\pi_\theta\cdot\frac{\pi_{\mathrm{ref}}}{\pi_\theta}=\sum_y\pi_{\mathrm{ref}}=1

得

E[u−log⁡u−1]=1−E[log⁡u]−1=E[log⁡πθπref]=DKL(πθ∥πref)(21)\mathbb{E}[u-\log u-1]=1-\mathbb{E}[\log u]-1=\mathbb{E}\Big[\log\frac{\pi_\theta}{\pi_{\mathrm{ref}}}\Big]=D_{\mathrm{KL}}(\pi_\theta\|\pi_{\mathrm{ref}}) \tag{21}
(21)

基本性质检查:当策略与参考策略完全一致(u=1u=1)时,估计值为 1−log⁡1−1=01-\log 1-1=0,惩罚为零,符合预期。此外,因 u−log⁡u−1≥0u-\log u-1\ge0 恒成立,式 (20) 的估计值不会为负。相比之下,直接以 log⁡πθ−log⁡πref\log\pi_\theta-\log\pi_{\mathrm{ref}} 作为 KL 是有偏的,且可能取负值。

3.4 已知偏差

GRPO 的式 (17) 与式 (18) 中存在两处系统性偏差,由 Dr. GRPO 指出:

长度归一化偏差。 式 (18) 中的 1/∣yi∣1/|y_i| 使长回答的每个 token 分摊更少的惩罚。其后果是模型倾向于延长输出——序列越长,单个 token 犯错的边际风险越低。

难度归一化偏差。 式 (17) 中的 std\mathrm{std} 为组内标准差,它使不同难度样本的梯度尺度被系统性扭曲:

  • 组内奖励高度一致(简单题全对、难题全错)时 σ\sigma 很小,此时若有任何微小差异,都会被放大为大幅优势。需要注意:若奖励完全相同则分子为 0、优势为 0;但在奖励连续或存在浮点误差时,分子非零而分母趋近 0,优势会被放大到方向由噪声决定。实现中常加 10−410^{-4} 兜底,但这只防止除零产生 NaN,并不消除该放大效应。
  • 组内奖励差异明显(中等难度、有对有错)时 σ\sigma 较大,奖励差被压缩,梯度尺度反而变小。

净效果是优化信号从信息量最大的中等难度样本,被系统性地移向两端。两处修正分别为:以 batch 级常数(如 max⁡_len\max\_len)替代 ∣yi∣|y_i| 做归一化,以及移除 std\mathrm{std} 归一化。

4. 对比

维度PPODPOGRPO
求解方式在线采样 + 迭代优化闭式解 → 二分类损失在线采样 + 组内基线
优势估计GAE(需价值网络)隐式奖励差组内相对统计量
在线采样需要不需要需要(×G\times G)
奖励模型需要不需要可选(可用规则函数)
价值网络需要不需要不需要
常驻模型数422–3
关键超参数γ,λ,ε,β\gamma,\lambda,\varepsilon,\betaβ\betaG,ε,βG,\varepsilon,\beta
数据形式提示 + 在线奖励偏好对 (x,yw,yl)(x,y_w,y_l)提示 + 可打分函数
主要风险价值网络难训、奖励模型被过度优化偏好数据过拟合、分布外退化组内方差大时基线不稳定

5. 选型建议

条件建议
仅有静态偏好数据,算力有限DPO(建议附加 SFT 项以缓解似然位移)
答案可程序化验证(数学、代码、格式)GRPO + 规则奖励
具备高质量奖励模型,需在线迭代PPO

需要强调的是,奖励信号的设计通常比优化算法的选择更具决定性。PPO 与 DPO 的性能上限均受奖励模型质量约束——奖励模型是人类偏好的有损代理,优化越充分,越容易越出其可信区间。而以可程序化验证的规则作为奖励时,奖励不存在被”钻空子”的空间;这一范式称为 RLVR(Reinforcement Learning with Verifiable Rewards,可验证奖励的强化学习),也是结构相对简单的 GRPO 能够在推理任务上取得显著效果的主要原因。

6. 结论

  1. PPO、DPO、GRPO 求解的是同一个目标(式 1),差异集中于优势函数的估计方式与在线采样的取舍;
  2. 偏好对 (x,yw,yl)(x, y_w, y_l) 即一对正负样本;≻\succ 只表示”优于”这一关系,不含数值含义;
  3. PPO 的裁剪机制表现为单边惩罚:比率超出 [1−ε,1+ε][1-\varepsilon,1+\varepsilon] 后,仅保留使目标变差方向的梯度;
  4. DPO 的核心在于配分函数 Z(x)Z(x) 在成对相减中消去,从而使奖励模型成为非必需品;其梯度权重 σ(−Δ)\sigma(-\Delta) 使学得越差的样本获得越大更新;
  5. GRPO 以组内统计量估计状态价值;其中减均值对应基线,除标准差仅为尺度归一化,二者不应混同;组内奖励完全相同时优势严格为 0;
  6. 三者的常驻模型数依次为 4、2、2–3,工程复杂度与表达能力同向递减;
  7. 评估新方法时,建议先考察奖励信号的来源与可操纵性,再考察优化算法的设计。

参考文献

  1. Schulman et al. Proximal Policy Optimization Algorithms. arXiv:1707.06347, 2017.
  2. Ouyang et al. Training language models to follow instructions with human feedback. arXiv:2203.02155, 2022.
  3. Rafailov et al. Direct Preference Optimization: Your Language Model is Secretly a Reward Model. arXiv:2305.18290, 2023.
  4. Shao et al. DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. arXiv:2402.03300, 2024.
  5. DeepSeek-AI. DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. arXiv:2501.12948, 2025.
  6. Liu et al. Understanding R1-Zero-Like Training: A Critical Perspective. arXiv:2503.20783, 2025.
  7. Yu et al. DAPO: An Open-Source LLM Reinforcement Learning System at Scale. arXiv:2503.14476, 2025.
  8. Zheng et al. Group Sequence Policy Optimization. arXiv:2507.18071, 2025.
  9. Zhou et al. Demystifying Group Relative Policy Optimization: Its Policy Gradient is a U-Statistic. arXiv:2603.01162, 2026.