完整题目
请详细说明 PPO(Proximal Policy Optimization)、DPO(Direct Preference Optimization)和 GRPO(Group Relative Policy Optimization)三种优化算法的核心思想、适用场景及其在强化学习与大模型对齐中的主要区别。
本文目录
先纠正题目
GRPO 的正确全称是 Group Relative Policy Optimization,不是 Generalized Reward-free Policy Optimization。它仍然需要奖励信号,奖励可以来自规则、可验证结果或奖励模型;“不需要单独价值模型/critic”不等于 reward-free。
三种方法的核心差别
| 方法 | 数据与反馈 | 更新方式 | 主要组件与边界 |
|---|---|---|---|
| PPO | 当前/近当前策略 rollout,经规则、环境或 RM 得到奖励 | 用价值函数估计优势,采用 clipped surrogate;RLHF 常另加 reference-policy KL | 逻辑上有 policy、reference、reward、value 等角色,但不要求四个独立骨干 |
| DPO | 固定的 (prompt, chosen, rejected) 偏好对 | 直接优化策略相对 reference policy 的偏好概率 | 无独立 RM、critic 和在线 rollout;依赖偏好对覆盖与质量 |
| GRPO | 每个 prompt 从当前/旧策略采样一组回答并逐个打分 | 用组内奖励的相对值构造 advantage,再做 clipped policy update 与 KL 控制 | 省去 learned critic,但需要一组 rollout 和可区分的奖励;组内方差过小会削弱信号 |
选型
- 已有高质量离线偏好对、无需环境交互:先考虑 DPO;
- 有可靠在线奖励且需要持续探索,能承担 critic:考虑 PPO;
- 可对同一 prompt 的多条回答稳定打分,希望省去 critic:考虑 GRPO。
稳定性、成本和效果没有脱离任务的固定排名。应比较奖励可信度、rollout 成本、组大小、KL、长度偏差、reward hacking、人工盲评和可验证任务成功率。
组内总奖励相同,是否就完全没有梯度?
在结果监督的 GRPO 中,同一问题的一组回答先减去组内奖励均值,再按组内标准差归一化。标准差为 0 时,原式会成为 0/0;工程实现需用 epsilon 等数值保护或显式处理该组,不能直接除零。所有回答的总 reward 相同,奖励产生的相对优势为 0;若目标仍保留 KL 正则,它仍可能约束策略与参考分布的偏离,因此不能断言完整 loss 或梯度必为 0。只看正确性奖励相同,也不能推出包含格式、长度等分量的总奖励相同。
动态采样是 GRPO 的必需步骤吗?
不是。DAPO 在二值正确性奖励下通过额外采样并过滤全对、全错的组,补足有区分信号的训练批次。这是特定方案对无有效奖励优势样本的处理,不是 GRPO 定义中的必选项;是否采用要比较采样预算、有效组比例和任务收益。DAPO 的原方案还移除了 KL,不能将它对零优势组的说明无条件套到保留 KL 的所有实现。
归一化与 KL 可查 DeepSeekMath 的 GRPO 原论文,动态采样见 DAPO 原论文 §3.2。更完整的训练选择与边界,继续读 Deep Research 第 6 章。
继续追问 · 3 个问题
- DPO的BT模型假设在实际中是否总是成立?什么情况下DPO会失效
- GRPO的组内方差问题如何解决,group size如何选取
- PPO的reward hacking问题有哪些缓解手段,你们实际项目中是怎么做的
换一种问法,检查是否真正理解
场景切入
假设现在同时有成对偏好数据和可自动验证的任务奖励,需要在 PPO、DPO、GRPO 中选训练方案。你会先确认哪些数据、采样和稳定性条件,再决定用哪一种?
层层追问
PPO 中 policy、reference、reward、value 分别起什么作用?……DPO 如何从偏好对构造目标?……GRPO 的组内相对优势依赖什么采样?……这些角色在工程上一定要作为独立模型同时驻留吗?
直球技术
请比较 PPO、DPO、GRPO 的优化目标、所需反馈、在线采样、参考约束与工程成本,并给出条件化选型,不按固定模型数量或“一个比一个省”排序。
练习口述回答 · 约4分钟
- 先纠正 GRPO 全称与 reward-free 误解
- 按数据、奖励和组件比较三种算法
- 解释 GRPO 的组内相对优势
- 按反馈来源给选型条件
- 说明稳定性与风险监控边界
回答这道题的第一步是纠正题干:GRPO 的全称是 Group Relative Policy Optimization,也就是组相对策略优化,不是 Generalized Reward-free Policy Optimization。它并不 reward-free,仍然要给每条回答奖励。奖励可以来自规则、可执行验证、环境结果或奖励模型。它省掉的是单独学习的价值模型或 critic,而不是奖励本身。
PPO 在大模型对齐里通常让当前或近当前策略生成回答,再由奖励模型、规则或环境打分,用价值函数估计 advantage,最后用 clipped objective 更新策略。很多 RLHF 实现还会增加相对参考模型的 KL 惩罚。逻辑上常见 policy、reference、reward 和 value 四种角色,但它们可以共享骨干或用不同部署方式,不能说 PPO 永远是四个完全独立模型,也不能保证“复杂但非常稳定”。它会对奖励尺度、价值估计、KL 和 rollout 分布敏感。
DPO 使用固定的偏好对:同一个 prompt 下有 chosen 和 rejected。它不训练独立奖励模型,不需要 value model,也不做在线 rollout,而是利用策略与冻结参考策略的对数概率比,直接优化 chosen 相对 rejected 的偏好。工程链路更接近 SFT,适合已有高质量离线偏好数据的场景。但它仍受 beta、标签噪声、长度偏差、参考模型和分布覆盖影响,不能用一句“长文本下 BT 假设自然失效”概括效果。
GRPO 则对同一个 prompt 采样一组回答,分别得到奖励,再用组内均值和方差把每条回答转换为相对 advantage。高于组平均的样本被鼓励,低于平均的被抑制,然后使用类似 PPO 的裁剪策略目标,并可加入参考模型 KL。这样不需要 learned critic,减少了一类模型和价值估计误差;代价是每个 prompt 要生成一组候选,奖励必须能把组内答案区分开。如果奖励几乎相同,归一化信号就很弱;如果规则有漏洞,也会出现 reward hacking。
我的选型顺序是先看反馈。只有静态偏好对、预算有限,优先 DPO;有可信在线奖励、需要策略持续探索,而且能承担 value training,考虑 PPO;同一问题可以采多条回答并可靠验证,希望省掉 critic,GRPO 更合适。数学或代码任务经常适合可验证奖励,但这不是算法保证。