简介:本文系统梳理大模型强化学习对齐中五种主流算法:PPO、DPO、GRPO、DAPO与GSPO,从训练范式、价值估计、损失粒度、工程复杂度、稳定性与算力成本等维度展开对比,并给出不同任务场景下的选型建议与迁移注意事项,帮助开发者快速判断哪类算法更契合自己的对齐目标与资源条件。
大模型在预训练和监督微调(SFT)之后,还需要经过“对齐”环节,才能稳定地遵循指令、贴合人类偏好并完成复杂推理任务。强化学习(RL)是这一环节的核心技术手段。从早期经典的RLHF流程,到近年陆续出现的DPO、GRPO、DAPO、GSPO等改进算法,业界围绕“如何更稳定、更高效地把奖励信号转化为策略更新”进行了持续演进。
这些算法解决的是同一个问题,但技术路线差异很大:有的需要训练额外的价值模型,有的完全不需要;有的依赖在线采样探索,有的直接在离线偏好数据上更新;有的在token粒度上做优化,有的则把优化粒度提升到序列级。算法选型直接影响训练稳定性、算力开销、工程复杂度以及最终效果上限,因此有必要对它们进行一次系统对比。
1. PPO(Proximal Policy Optimization):经典RLHF方法
PPO是最早被大规模用于大模型对齐的强化学习算法。它将语言模型视为策略网络,通过采样生成回答、使用奖励模型打分,再利用策略梯度更新参数。其核心思想是“谨慎前进”:限制新策略相对旧策略的变化幅度,避免一次更新偏离过远导致训练崩溃。核心目标函数为:
LPPO(θ) = E[ min( rθ·A, clip(r_θ, 1−ε, 1+ε)·A ) ]
其中 rθ = πθ(y|x) / π_θ_old(y|x) 为概率比,A 为优势函数(reward − baseline),clip 函数限制更新幅度。实践中通常还会加入 KL penalty,防止模型偏离 SFT 学到的语言分布。PPO 需要额外训练一个价值模型(critic)来估计优势,这是它效果强但工程负担重的根源。
2. DPO(Direct Preference Optimization):直接偏好优化
DPO 走的是另一条路线:绕过奖励模型和在线采样循环,直接利用“奖励与最优策略之间存在解析关系”这一结论,把偏好学习转化为类似监督学习的分类损失。给定偏好对(chosen,rejected),其损失形式可概括为:
LDPO(θ) = −E[ log σ( β·log(πθ(yw|x)/π_ref(y_w|x)) − β·log(πθ(y_l|x)/π_ref(y_l|x)) ) ]
模型只需在偏好数据上“拉大”优质回答与劣质回答的相对似然即可完成对齐,整体流程与 SFT 非常接近。
3. GRPO(Group Relative Policy Optimization):去掉 Critic 的 PPO
GRPO 针对 PPO 在大模型训练中的最大痛点——value model 难训练且不稳定——进行改进。其核心思想是:不做绝对价值估计,只用同组样本的相对好坏。做法是:对同一个 prompt 采样 K 个回答,用奖励模型(或规则奖励)打分,再用组内平均分作为基线:
A_i = r_i − (1/K)·Σ r_j
高于组内平均的回答获得正向更新,低于平均的回答获得负向更新(业界常见实现还会除以组内标准差做归一化)。GRPO 保留了在线 RL 的策略梯度更新与探索能力,但省去了 critic 网络,可以理解为“去掉 Critic 的 PPO”。
4. DAPO:面向长思维链推理的进一步改进
DAPO 延续了 GRPO 的无 Critic 设计,并针对长思维链推理任务中的典型问题做了系统性优化,业界公开材料中通常归纳为四点:一是 Clip-Higher,将裁剪系数的上界与下界解耦、放宽上界,鼓励低概率 token 被继续探索,缓解熵坍缩;二是动态采样,过滤组内全对或全错、梯度贡献为零的样本,提高有效样本效率;三是 Token 级策略梯度损失,避免长回答在样本级平均中被系统性低估;四是超长奖励惩罚,抑制模型通过“刷长度”骗取奖励的行为。
5. GSPO:序列级粒度的组策略优化
GSPO 的关键变化是把重要性采样比率与裁剪从 token 粒度提升到序列粒度:以整条回答序列的似然比(而非逐 token 的比率)做裁剪。由于奖励本身就是序列级的(一条回答一个分数),序列级比率使“裁剪粒度”与“奖励粒度”对齐,降低了 token 级比率在大规模训练中的方差,对长序列任务和 MoE(混合专家)架构下的训练稳定性尤其有帮助。
尽管技术路线不同,这五种算法在底层逻辑上有明显共性:
1. 训练范式:在线 RL vs 离线偏好优化
PPO、GRPO、DAPO、GSPO 均为在线 RL:模型不断生成新回答、即时打分、即时更新,能够探索出训练数据之外更优的策略,但需要搭建“训练—推理—打分”闭环系统。DPO 是离线方法:直接在人工标注的偏好对上做类 SFT 更新,不需要采样与打分环节,实现简单、资源友好,但受限于数据分布,探索能力弱,效果上限通常低于调好的在线 RL。
2. 价值模型与优势估计方式
这是差异最大的一点。PPO 需要一个与策略模型规模相当的价值模型,显存开销接近翻倍,且价值模型本身的训练不稳定是公认痛点。GRPO 用组内相对比较替代绝对价值估计,天然适配“同一问题多次采样、按对错或优劣排序”的可验证奖励场景。DAPO、GSPO 延续无 Critic 设计,分别从裁剪方式、损失粒度和采样策略上继续打磨。
3. 损失与裁剪粒度
PPO 与 GRPO 的优势计算以 token 级比率为基础,序列级奖励被均摊到每个 token 上,长序列下容易出现信用分配失真。DAPO 引入 token 级损失归一化来缓解长度偏置;GSPO 则反向操作,把比率与裁剪提升到序列级,用牺牲一定灵活性的方式换取稳定性,尤其能缓解 MoE 架构下 token 级比率方差过大、训练易崩溃的问题。
4. 探索能力与稳定性
PPO 的对称 clip 加 KL 约束稳定但保守;DAPO 的 Clip-Higher 放宽上界裁剪,防止低概率 token 被过早压制,在长思维链任务中维持探索能力;动态采样则过滤无梯度样本,把算力花在“有意义”的 prompt 上。
5. 工程复杂度与算力成本
DPO 最低:单模型、离线数据、类 SFT 流程。GRPO 居中:无 Critic,但需要组采样与奖励打分闭环。PPO 最高:策略模型、参考模型、奖励模型、价值模型四类组件同时在线。DAPO/GSPO 与 GRPO 同量级,但长序列、大 K 值采样对推理侧吞吐要求更高。
6. 超参敏感度
PPO 对学习率、KL 系数、clip 范围、优势估计参数都极其敏感;DPO 对隐式 KL 强度 β 和数据质量敏感,容易过拟合偏好风格;GRPO 系对组大小 K 与归一化方式敏感;DAPO 引入了更多超参(非对称裁剪系数、采样过滤阈值、长度惩罚项),需要更细致的调参。
| 维度 | PPO | DPO | GRPO | DAPO | GSPO |
|---|---|---|---|---|---|
| 训练范式 | 在线 RL | 离线偏好优化 | 在线 RL | 在线 RL | 在线 RL |
| 奖励模型 | 需要 | 不需要(偏好对) | 需要/规则奖励 | 需要/规则奖励 | 需要/规则奖励 |
| 价值模型 | 需要 | 不需要 | 不需要 | 不需要 | 不需要 |
| 基线方式 | Critic + 优势估计 | 隐式参考策略 | 组内均值 | 组内均值 + 动态采样 | 组内均值 |
| 比率/裁剪粒度 | token 级 | 无采样环节 | token 级 | token 级 + 非对称 clip | 序列级 |
| 工程复杂度 | 高 | 低 | 中 | 中高 | 中 |
| 显存占用 | 高(含 Critic) | 低 | 中 | 中 | 中 |
| 探索能力 | 强 | 弱 | 强 | 更强 | 强 |
| 典型场景 | 通用对齐、效果上限优先 | 资源有限、快速迭代 | 数学/代码等可验证任务 | 长思维链推理 | MoE/长序列稳定训练 |
以 GRPO 的组内相对优势为例,其核心逻辑可用如下伪代码示意:
# GRPO 组内相对优势示意(伪代码)for prompt in batch:responses = sample(policy, prompt, K) # 同一 prompt 采样 K 个回答rewards = [reward_fn(r) for r in responses] # 奖励模型或规则打分baseline = mean(rewards) # 组内均值作为基线for r, ri in zip(responses, rewards):advantage = ri - baseline # 高于均值正向更新,低于均值负向更新update(policy, r, advantage)
这五种算法本质上是同一目标在不同约束条件下的工程化折中:PPO 用完整的 RL 组件换取效果上限与探索能力;DPO 用离线化简换取工程友好与低门槛;GRPO 去掉 Critic,解决了价值模型难训练的核心痛点;DAPO 针对长思维链优化了探索机制与样本效率;GSPO 则用序列级比率换取大规模训练的稳定性。没有绝对“最好”的算法,只有与奖励形态、算力预算、工程能力和任务形态最匹配的选择。对于多数团队,建议从 DPO 或 GRPO 起步建立基线,再依据训练中暴露的瓶颈,决定是否引入 DAPO、GSPO,或回到完整的 PPO 流程。