跳到正文

PPO vs DPO vs GRPO 怎么选?

三种RLHF优化算法核心思想、适用场景及对齐区别

原题:请详细说明 PPO(Proximal Policy Optimization)、DPO(Direct Preference Optimization)和 GRPO(Group Relative Policy Optimization)三种优化算法的核心思想、适用场景及其在强化学习与大模型对齐中的主要区别。

RLHF与对齐 · 京东真题

回答与解析

先纠正题目

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、人工盲评和可验证任务成功率。

口语版讲法(约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 更合适。数学或代码任务经常适合可验证奖励,但这不是算法保证。

评估时三者都要在同模型、同 token 预算下看真实任务成功率、人工盲评、KL、回复长度和失败切片。PPO 看 value loss 与 advantage,DPO 看偏好留出集和长度偏差,GRPO 还要看组内奖励方差。专业回答的关键,是把“奖励来源、是否在线采样、是否需要 critic”讲清楚。

如果奖励来自可执行验证,我还会检查奖励是否能被格式投机,例如只匹配最终字符串却忽略过程;若来自奖励模型,则检查分布外样本和过优化。三种算法共同的底线是用独立评测与人工审查验证真实质量,而不能把训练 reward 当最终答案。

关键一句:GRPO 不是无奖励算法;它用组内相对奖励替代 learned critic 的价值估计。

核验来源

  1. DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
  2. Proximal Policy Optimization Algorithms
  3. Direct Preference Optimization: Your Language Model is Secretly a Reward Model

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设现在同时有成对偏好数据和可自动验证的任务奖励,需要在 PPO、DPO、GRPO 中选训练方案。你会先确认哪些数据、采样和稳定性条件,再决定用哪一种?

  2. 问法 2 · 层层追问

    PPO 中 policy、reference、reward、value 分别起什么作用?……DPO 如何从偏好对构造目标?……GRPO 的组内相对优势依赖什么采样?……这些角色在工程上一定要作为独立模型同时驻留吗?

  3. 问法 3 · 直球技术

    请比较 PPO、DPO、GRPO 的优化目标、所需反馈、在线采样、参考约束与工程成本,并给出条件化选型,不按固定模型数量或“一个比一个省”排序。

同模块相关题目