PPO、DPO和GRPO的区别

发布于:2025-09-01 ⋅ 阅读:(23) ⋅ 点赞:(0)

一、 核心思想一句话概括

首先,我们用三个比喻来快速理解它们的核心思想:

  1. PPO (近端策略优化)「比武招亲」

    • 模型(AI)通过试错和与裁判(奖励模型)的互动来学习。它生成多个回答,裁判给每个回答打分(奖励),模型的目标是调整自己,使自己更可能生成高分的回答,同时避免与之前的自己差别太大(“近端”的含义)。
  2. DPO (直接偏好优化)「父母撮合」

    • 直接给模型看人类标注的“好答案”和“坏答案”的成对样本((winner, loser))。模型不需要通过裁判打分,而是直接学习模仿“好答案”的风格和模式,并远离“坏答案”。它直接优化了偏好排序的概率。
  3. GRPO (全局回报优化)「非诚勿扰」

    • 这是 DeepSeek 团队提出的新方法。它像 DPO 一样使用成对偏好数据,但整个训练过程被组织成一场“竞赛”。模型生成的多个回答相互竞争,基于一个全局的、稀疏的奖励(比如只有一个回答被选中)来更新策略,更适合长文本、多回合的复杂对齐任务。

二、 详解其原理

1. PPO (Proximal Policy Optimization)

目标: 在不知道真实奖励函数的情况下,通过一个代理奖励模型 (Reward Model) 来优化策略(模型本身)。

流程(以微调LLM为例)

  1. 准备奖励模型 (RM): 首先需要训练一个独立的奖励模型。这个RM通过人类对回答的偏好(如 A > B)数据训练而成,学会给好的回答打高分,坏的回答打低分。
  2. 微调过程
    • 采样 (Sampling): 让当前需要微调的模型(策略模型)针对同一个提示 (Prompt) 生成多个回答。
    • 评分 (Scoring): 用训练好的奖励模型 (RM) 为每一个生成的回答计算一个奖励分数 (Reward)。
    • 优化 (Optimization): 模型的目标是最大化这个奖励的期望。关键约束是 「近端」:在更新参数时,要确保新的策略(模型)不会与旧的策略偏离太远,以防止训练崩溃(生成乱码)。这是PPO稳定性的核心。

优点: 非常通用和强大,是强化学习领域的标杆算法。
缺点

  • 流程复杂: 需要额外训练一个高精度的奖励模型 (RM),成本高。
  • 稳定性挑战: 虽然叫“近端”优化,但训练过程中仍需精心调参来保持稳定。
  • 奖励黑客 (Reward Hacking): 模型可能会学会生成迎合奖励模型但不合人类直觉的回答(例如,包含某些高分关键词但内容空洞)。
初始语言模型
训练奖励模型 RM
通过人类偏好数据
使用RM为模型生成的回答评分
近端策略优化PPO
最大化奖励并防止策略偏离
对齐后的模型

2. DPO (Direct Preference Optimization)

目标: 省去训练奖励模型 (RM) 的步骤,直接从人类偏好数据中优化模型。

核心洞察: 作者发现,在一定的约束条件下,最优策略(我们想要的对齐后的模型)和最优奖励函数之间存在着解析解关系。这意味着我们可以绕过奖励建模,直接通过数学变换将偏好数据嵌入到损失函数中。

流程

  1. 准备数据: 只需要成对的偏好数据 (x, y_w, y_l),其中对于提示 xy_w 是人类偏好的回答(winner),y_l 是被拒绝的回答(loser)。不需要奖励分数
  2. 优化损失函数: 使用一个非常巧妙的损失函数,其核心是 Bradley-Terry 模型
    L_DPO = -E[(x, y_w, y_l)] [ log σ( β * log(π_θ(y_w|x) / π_ref(y_w|x)) - β * log(π_θ(y_l|x) / π_ref(y_l|x)) ) ]
    • π_ref: 是初始的参考模型(SFT模型),在训练中固定不变。
    • π_θ: 是当前正在被优化的模型。
    • β: 是一个温度参数,控制模型偏离参考模型的程度。

直观理解: 这个损失函数是在最大化模型赋予“好回答” y_w 的概率与“坏回答” y_l 的概率之间的差距。模型通过不断拉大这个差距来学习人类的偏好。

优点

  • 极其简单: 无需训练奖励模型,直接端到端微调,大大简化了训练流程。
  • 非常稳定: 由于损失函数直接依赖于参考模型,训练过程比PPO稳定得多,不易崩溃。
  • 效果卓越: 在许多基准测试上,效果达到甚至超过了PPO。

缺点

  • 严重依赖于高质量的偏好数据。数据中的噪声会对训练产生较大影响。

在这里插入图片描述

3. GRPO (Global Reward Optimization)

目标: 解决在长文本、多回合对话等复杂任务中,奖励稀疏化和全局一致性的问题。

核心思想: 在复杂任务中,一个回答的“好”不是由局部决定的,而是需要全局考量。GRPO将对话或长文本生成视为一个竞赛环境

流程

  1. 采样: 对于同一个提示 x,让当前模型生成 K 个 完整的回答(例如 K=4)。这 K 个回答构成一个“竞赛组”。
  2. 评判: 由一个评判者 (Judge) 从这 K 个回答中选出一个唯一的优胜者 (Top-1)。这个评判者可以是人类标注员,也可以是一个强大的AI裁判(如GPT-4)。注意,这里只产生一个全局的、稀疏的奖励信号( winner = 1, losers = 0),而不是给每个回答打分。
  3. 优化: 使用一种称为 「分组策略梯度 (Group-wise Policy Gradient)」 的算法。只有获胜的回答会获得正反馈,模型会学习增加生成该回答的概率;而失败的回答获得负反馈,模型会降低生成它们的概率。同样,它也有约束来防止策略偏离太远。

为什么适合长文本? 因为它评判的是整个回答的全局质量,而不是一句话中的一个词或一个片段。这避免了在长文本生成中频繁进行不连贯的局部优化。

优点

  • 解决稀疏奖励: 特别适用于奖励信号稀疏的复杂任务(写小说、长对话)。
  • 全局一致性: 鼓励模型生成整体上更一致、更优秀的回答。
  • 高效: 相比需要为每个片段打分的某些方法,GRPO的评判成本相对较低(只需选最优)。

缺点

  • 需要能够进行可靠全局评判的“裁判”(人类或超强AI),成本可能较高。
  • 目前还比较新,实践和验证相对PPO/DPO较少。

在这里插入图片描述


三、 对比与总结

特性 PPO DPO GRPO
核心思想 通过奖励模型代理优化 直接从偏好数据中优化 全局竞赛中优化
所需数据 需要奖励模型(或人类评分) 成对偏好数据 (winner, loser) 成组回答及其全局排名/选择
训练复杂度 (需先训RM,再PPO微调) (直接端到端训练) (需采样组并进行全局评判)
稳定性 较低,需精心调参 ,得益于显式约束 中等,依赖于评判质量
奖励信号 稠密(每个回答都有分数) 隐含在损失函数中 稀疏(仅全局Top-1获胜)
适用场景 通用,但更成熟 通用,尤其适合迭代式偏好学习 长文本、多回合复杂任务
比喻 比武招亲 父母撮合 非诚勿扰

演进关系

可以看作是一个不断简化和专业化的过程:

  1. PPO 是奠基性的工作,证明了RLHF(基于人类反馈的强化学习)的可行性,但流程复杂。
  2. DPO 是革命性的突破,它发现了PPO目标的数学本质,省去了复杂的奖励建模步骤,极大地降低了偏好对齐的门槛,成为当前的主流方法。
  3. GRPO 是针对PPO/DPO在长上下文、稀疏奖励场景下的不足提出的专业化解决方案。它不是为了替代DPO,而是为了处理DPO可能不擅长的特定任务。

如何选择?

  • 对于大多数通用对话指令跟随任务,DPO 是目前的最佳选择,因为它简单、稳定、高效。
  • 如果你需要处理长文写作、多轮对话对齐等任务,并且有强大的评判能力,可以探索 GRPO
  • PPO 仍然非常强大和通用,在许多工业级应用中,由于其成熟度,依然被广泛使用。

网站公告

今日签到

点亮在社区的每一天
去签到