大模型强化学习算法
在大语言模型(LLM)的对齐技术中,强化学习扮演着至关重要的角色。其中,PPO、DPO、GRPO 和 GSPO 是几种主流或新兴的优化算法,它们旨在根据人类偏好或奖励信号来微调模型。以下将详细介绍这四种算法的优缺点、异同以及各自的损失函数。
1. PPO (Proximal Policy Optimization) - 近端策略优化
PPO 是一种经典的强化学习算法,通过限制策略更新的幅度来确保训练过程的稳定性,是早期 RLHF(基于人类反馈的强化学习)流程中的核心组件。
优点:
- 稳定性高:通过引入裁剪(Clipping)机制或 KL 散度惩罚,PPO 限制了每次策略更新的幅度,有效避免了传统策略梯度方法中因更新过大导致的性能骤降和训练崩溃。
- 样本效率较高:PPO 允许在一个数据批次上进行多次更新,提高了数据的利用效率,从而加快了训练速度。
- 实现相对简单:相比其前身 TRPO(Trust Region Policy Optimization),PPO 的实现更为简单,计算开销更低。
缺点:
- 流程复杂,计算开销大:标准的 PPO 流程需要维护多个模型:策略模型(Actor)、价值模型(Critic)、奖励模型(Reward Model)和参考模型(Reference Model)。多模型间的交互和频繁采样使得训练成本高昂。
- 对超参数敏感:PPO 的性能在一定程度上依赖于超参数的选择,如裁剪系数 ε。
- 价值函数学习困难:对于文本生成这类长序列任务,精确学习一个价值函数(用于评估状态好坏)本身就是一个挑战,可能导致梯度信号不稳定。
Loss 函数:
PPO 的目标是最大化一个“替代”目标函数(Surrogate Objective)。最常用的 PPO-Clip 变体的损失函数主要由三部分构成:
-
策略损失 (Policy Loss):
LCLIP(θ)=E^t[min(rt(θ)A^t,clip(rt(θ),1−ϵ,1+ϵ)A^t)]L^{CLIP}(\theta) = \hat{\mathbb{E}}_t \left[ \min \left( r_t(\theta) \hat{A}_t, \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) \hat{A}_t \right) \right]LCLIP(θ)=E^t[min(rt(θ)A^t,clip(rt(θ),1−ϵ,1+ϵ)A^t)]- rt(θ)r_t(\theta)rt(θ) 是新旧策略的概率比:πθ(at∣st)πθold(at∣st)\frac{\pi_{\theta}(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)}πθold(at∣st)πθ(at∣st),衡量策略变化的幅度。
- A^t\hat{A}_tA^t 是优势函数(Advantage Function),表示在状态 sts_tst 下采取动作 ata_tat 比平均水平好多少。
- clip\text{clip}clip 函数将概率比限制在 [1−ϵ,1+ϵ][1-\epsilon, 1+\epsilon][1−ϵ,1+ϵ] 区间内,防止策略更新过大。
-
价值损失 (Value Loss):
LVF(ϕ)=E^t[(Vϕ(st)−Vttarg)2]L^{VF}(\phi) = \hat{\mathbb{E}}_t \left[ (V_{\phi}(s_t) - V_t^{\text{targ}})^2 \right]LVF(ϕ)=E^t[(Vϕ(st)−Vttarg)2]- 通过最小化均方误差来训练价值网络,使其能准确预测状态的价值。
-
KL 散度惩罚 (Optional):
- 在一些变体中,会加入 KL 散度项来惩罚新策略与旧策略之间的差异,进一步确保稳定性。
2. DPO (Direct Preference Optimization) - 直接偏好优化
DPO 是一种创新的对齐算法,它巧妙地绕过了显式的奖励模型和复杂的强化学习过程,直接在偏好数据上对模型进行微调。
优点:
- 简单高效:DPO 将对齐问题转化为一个简单的分类问题,无需训练奖励模型,也无需从模型中采样,训练过程类似监督学习,稳定且计算开销小。
- 稳定性强:由于没有复杂的 RL 循环,DPO 的训练过程非常稳定,不易崩溃。
- 理论优雅:DPO 从理论上证明了可以直接优化策略来满足人类偏好,为偏好学习提供了新的范式。
缺点:
- 依赖高质量的成对偏好数据:DPO 的效果强依赖于“选择的”(chosen)和“拒绝的”(rejected)成对标注数据,数据质量直接影响最终性能。
- 隐式奖励,可解释性弱:DPO 隐式地对奖励进行建模,这使得人们难以直观地理解模型到底学到了什么样的偏好。
Loss 函数:
DPO 的损失函数基于 Bradley-Terry 模型,旨在最大化模型生成“选择的”回答的概率,同时最小化生成“拒绝的”回答的概率。
LDPO(πθ;πref)=−E(x,yw,yl)∼D[logσ(βlogπθ(yw∣x)πref(yw∣x)−βlogπθ(yl∣x)πref(yl∣x))]L_{\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]LDPO(πθ;πref)=−E(x,yw,yl)∼D[logσ(βlogπref(yw∣x)πθ(yw∣x)−βlogπref(yl∣x)πθ(yl∣x))]
- xxx 是输入提示,ywy_wyw 是偏好的回答,yly_lyl 是不偏好的回答。
- πθ\pi_{\theta}πθ 是当前要优化的策略模型,πref\pi_{\text{ref}}πref 是一个固定的参考模型。
- β\betaβ 是一个超参数,控制着对参考模型的偏离程度。
- σ\sigmaσ 是 Sigmoid 函数。
- 核心思想是让策略模型 πθ\pi_{\theta}πθ 相对于参考模型 πref\pi_{\text{ref}}πref 更倾向于生成 ywy_wyw 而不是 yly_lyl。
3. GRPO (Group Relative Policy Optimization) - 组相对策略优化
GRPO 是 PPO 的一种改进,旨在降低 RLHF 的计算复杂性,特别是通过消除对独立价值网络的需求。
优点:
- 无需价值网络:GRPO 最大的特点是移除了 PPO 中的价值模型,通过对同一提示生成一组(Group)回答,并利用组内的平均奖励作为基线来计算优势,显著降低了内存消耗和计算负担。
- 计算效率高于 PPO:由于无需训练和维护价值网络,GRPO 在计算上比 PPO 更高效。
- 鼓励多样性:通过分组生成和比较,算法可能更好地探索和奖励多样的、高质量的回答。
缺点:
- 需要分组采样:对于每个提示,都需要生成多个响应,这会增加一定的采样开销。
- 在特定架构下可能不稳定:尤其是在 MoE(Mixture-of-Experts)模型上,GRPO 的逐词元(token-level)优化可能会引入巨大方差,导致训练不稳定。
Loss 函数:
GRPO 的损失函数形式上与 PPO 类似,但其优势函数的计算方式不同。
LGRPO=E^[min(ratio⋅Agroup,clip(ratio,1−ϵ,1+ϵ)⋅Agroup)]−λDKL(πθ∣∣πref)L_{\text{GRPO}} = \hat{\mathbb{E}} \left[ \min(\text{ratio} \cdot A_{\text{group}}, \text{clip}(\text{ratio}, 1-\epsilon, 1+\epsilon) \cdot A_{\text{group}}) \right] - \lambda D_{KL}(\pi_{\theta} || \pi_{\text{ref}})LGRPO=E^[min(ratio⋅Agroup,clip(ratio,1−ϵ,1+ϵ)⋅Agroup)]−λDKL(πθ∣∣πref)
- 优势函数 AgroupA_{\text{group}}Agroup 是通过将单个响应的奖励与其所在组的平均奖励进行比较来计算的,无需价值模型。
- 损失函数中直接整合了 KL 散度作为正则化项,以控制策略偏离。
4. GSPO (Group Sequence Policy Optimization) - 组序列策略优化
GSPO 是 GRPO 的进一步发展,旨在解决 GRPO 在 MoE 等模型上的不稳定性问题。其核心创新在于将优化的粒度从词元级别(token-level)提升到了序列级别(sequence-level)。
优点:
- 训练更稳定高效:通过在整个序列层面进行重要性采样和优化,GSPO 显著降低了 GRPO 在训练中因逐词元计算带来的方差和不稳定性,尤其是在 MoE 模型上效果显著。
- 目标与奖励对齐:奖励信号通常是针对整个生成序列的,GSPO 的序列级优化目标与此天然对齐,避免了奖励粒度与优化目标不匹配的问题。
- 简化训练:在训练 MoE 模型时,GSPO 无需像 GRPO 那样依赖复杂的技巧(如路由重放)来维持稳定。
缺点:
- 相对较新:作为一个较新的算法,其在各种场景下的表现和鲁棒性还有待更广泛的验证。
Loss 函数:
GSPO 的主要改变在于其重要性比率(importance ratio)的计算方式。
LGSPO=E^[min(si⋅Ai,clip(si,1−ϵ,1+ϵ)⋅Ai)]L_{\text{GSPO}} = \hat{\mathbb{E}} \left[ \min(s_i \cdot A_i, \text{clip}(s_i, 1-\epsilon, 1+\epsilon) \cdot A_i) \right]LGSPO=E^[min(si⋅Ai,clip(si,1−ϵ,1+ϵ)⋅Ai)]
- 与 GRPO 不同,GSPO 的重要性比率 sis_isi 是基于整个序列的似然来计算的,而不是逐词元计算。
- 这种序列级别的比率和裁剪机制,使得梯度信号更稳定,更关注整个序列的质量。
异同点总结
| 特性维度 | PPO | DPO | GRPO | GSPO |
|---|---|---|---|---|
| 核心思想 | 限制策略更新幅度,稳定训练 | 直接从偏好数据中学习,无需奖励模型 | 移除价值网络,使用组内相对奖励计算优势 | 序列级优化,解决 GRPO 的不稳定性 |
| 优化目标 | 最大化(被裁剪的)优势函数 | 直接匹配人类偏好概率 | 最大化组内相对优势 | 最大化序列级组内相对优势 |
| 模型需求 | 策略、价值、奖励、参考模型 | 策略、参考模型 | 策略、参考模型、奖励函数 | 策略、参考模型、奖励函数 |
| 数据依赖 | 需要奖励模型评分数据 | 需要高质量的成对偏好数据 | 需要奖励函数(或规则)评分 | 需要奖励函数(或规则)评分 |
| 计算效率 | 低(多模型交互) | 高(类似监督学习) | 中(无价值网络但需分组采样) | 中到高(序列级计算更稳定) |
| 稳定性 | 中等(依赖超参数) | 非常高 | 中等(在 MoE 上可能不稳定) | 非常高(尤其在 MoE 上) |
| 主要优势 | 通用性和稳定性 | 实现简单,训练快速 | 降低显存和计算开销 | 训练稳定,尤其适合 MoE |
| 主要劣势 | 流程复杂,资源消耗大 | 强依赖偏好数据质量 | 需分组采样,可能不稳定 | 算法较新,待广泛验证 |
更多推荐



所有评论(0)