29
0
0

大语言模型对齐学习笔记:从 PPO、DPO 到 GRPO 与 DAPO

2026-10-15
2026-10-15
文章摘要
|

PPO、DPO、GRPO、DAPO 的名字很像,但它们不是一条“新算法不断取代旧算法”的直线。理解这些方法,首先要分清两个问题:反馈从哪里来?模型怎样利用反馈更新参数?

本文围绕 2017—2025 年间的一组代表性方法整理基础知识,不是完整的对齐研究史,也不将后训练等同于已经解决了模型安全或价值对齐。

算法路线图

flowchart LR ROOT["LLM 后训练与对齐"] ROOT --- RL["强化学习优化"] ROOT --- PREF["偏好与标签优化"] ROOT --- FEEDBACK["反馈与监督流程"] RL --- PPO["PPO · 2017:概率比裁剪"] RL --- REMAX["ReMax · 2023:REINFORCE 与贪心基线"] RL --- GRPO["GRPO · 2024:组内相对优势"] RL --- DAPO["DAPO · 2025:裁剪、采样与损失改进"] PREF --- DPO["DPO · 2023:成对偏好与参考策略"] PREF --- DPOP["DPOP · 2024:惩罚优选回答概率下降"] PREF --- TDPO["TDPO · 2024:Token 级策略约束"] PREF --- ORPO["ORPO · 2024:合并 SFT 与偏好项"] PREF --- SIMPO["SimPO · 2024:平均对数概率与间隔"] PREF --- KTO["KTO · 2024:非成对好坏标签"] FEEDBACK --- RLHF["RLHF / RLAIF:人类或 AI 反馈"] FEEDBACK --- CAI["Constitutional AI · 2022:原则引导监督"] FEEDBACK --- RLVR["可验证奖励 / RLVR:答案校验与测试"] classDef root fill:#26384d,stroke:#26384d,color:#ffffff classDef rl fill:#edf6fd,stroke:#2674a8,color:#24374a classDef pref fill:#edf8f4,stroke:#19816c,color:#24374a classDef feedback fill:#fff8e9,stroke:#b47b1b,color:#24374a class ROOT root class RL,PPO,REMAX,GRPO,DAPO rl class PREF,DPO,DPOP,TDPO,ORPO,SIMPO,KTO pref class FEEDBACK,RLHF,CAI,RLVR feedback

连线仅表示分类,不表示严格继承或性能排名;年份为代表论文首次公开年份。强化学习主线可沿 PPO → GRPO → DAPO 理解,ReMax 则基于 REINFORCE。反馈来源是独立维度,可与不同优化方法组合。

推荐学习路径: SFT / KL 基础 → PPO → DPO → GRPO → DAPO → 扩展方法。

一、先看全局:两类优化思路,一个独立的反馈维度

讨论层次 核心问题 代表方法或概念
强化学习优化 生成回答、获得奖励之后,怎样更新策略? PPO、ReMax、GRPO、DAPO
直接利用偏好或好坏标签优化 已知回答的优劣,怎样直接构造训练损失? DPO、DPOP、TDPO、ORPO、SimPO、KTO
反馈来源与监督流程 谁来评价?依据什么标准评价? RLHF、RLAIF、Constitutional AI、可验证奖励

这是帮助理解的分类,不是严格的算法谱系。例如,DPO 本身就与 KL 正则化奖励最大化有理论联系,不能因为训练时没有在线策略梯度循环,就认为它和强化学习理论完全无关。

最容易混淆的三点是:

  • PPO、DPO、GRPO主要回答“怎么优化”。
  • 人类反馈、AI 反馈、规则验证主要回答“监督信号从哪里来”。
  • Constitutional AI是一套利用原则组织监督与训练的流程,不是与 PPO 并列的单个优化器。

二、为什么预训练之后还要学习反馈?

预训练通常以预测下一个 Token 为核心目标:

Pθ(xt+1∣x1,…,xt)P_\theta(x_{t+1}\mid x_1,\ldots,x_t)

这种训练能让模型学到语言模式、知识和一定的推理能力,但“文本预测得好”不自动等于“回答有帮助、可靠、安全”。

例如,对“如何提高学习效率”这个问题,我们可能更偏好“合理安排、主动回忆并保证睡眠”,而不是“每天学 18 小时”或“多努力就好了”。后训练需要把这种要求转成可学习的信号。

这些信号可以是完整的示范回答、两个回答的优劣关系、单条回答的好坏标签,也可以是答案验证器或测试用例给出的奖励。评价标准本身的质量,始终会限制训练效果。

三、强化学习路线:从 PPO 到去掉 Critic 的方法

1. PPO:用受约束的策略更新学习奖励

**PPO(Proximal Policy Optimization,2017)**是一种通用策略梯度方法,不是专门为大语言模型发明的。后来,它被用于基于人类反馈的强化学习;InstructGPT 是一个代表案例。参见 PPO 原论文与 InstructGPT 论文。

经典 PPO-RLHF 流程可以概括为:

  1. 对预训练模型做监督微调(SFT),学习按指令回答。
  2. 收集人类对多个回答的偏好排序。
  3. 用这些偏好训练奖励模型(Reward Model)。
  4. 让策略生成新回答,获得奖励,再通过 PPO 更新。
常见组件 作用
Policy / Actor 正在训练、负责生成回答的语言模型
Reward Model 对完整回答或相关行为评分
Value Model / Critic 估计价值,辅助构造优势估计
Reference Policy 提供参考分布,常用于 KL 正则化

这些是逻辑角色,不代表所有实现都必须部署四个完全独立、同样大小的模型;也不是通用 PPO 算法天然要求奖励模型和参考语言模型。

Clipping 到底限制什么?

用 sts_t 表示当前文本前缀、ata_t 表示下一个 Token,新旧策略的概率比为:

ρt(θ)=πθ(at∣st)πold(at∣st)\rho_t(\theta)=\frac{\pi_\theta(a_t\mid s_t)}{\pi_{\mathrm{old}}(a_t\mid s_t)}

PPO-Clip 最大化的核心代理目标为:

Lclip(θ)=Et[min⁡(ρt(θ)A^t,clip⁡(ρt(θ),1−ϵ,1+ϵ)A^t)]L^{\mathrm{clip}}(\theta)=\mathbb E_t\left[ \min\left( \rho_t(\theta)\hat A_t, \operatorname{clip}(\rho_t(\theta),1-\epsilon,1+\epsilon)\hat A_t \right)\right]

A^t\hat A_t 是优势估计。直觉上,优于基线的行为应受到鼓励,但不能靠把概率比推得过大来无休止地提高这一代理目标。

Clipping 是一种优化上的抑制机制,不是对参数变化或所有概率比的硬性边界保证。此外,新旧策略间的裁剪,与当前策略相对固定参考策略的 KL 惩罚,是两个不同机制。

PPO-RLHF 的工程挑战包括采样成本、Critic 训练、显存占用和超参数调节。即便更新受到约束,奖励投机也不会自动消失。

2. ReMax:用贪心回答构造基线

**ReMax(2023)**沿用 REINFORCE 思路,不需要额外训练价值模型。它会对同一个提示词生成采样回答与贪心回答,用后者的奖励构造基线,降低策略梯度的方差。参见 ReMax 原论文。

可以把它理解为:不再专门训练一个“价值预测员”,而是用模型当前的贪心作答作为比较基准。它是对 PPO-RLHF 复杂性的另一种回应,不是严格从 PPO 裁剪目标派生出的后代。

去掉 Critic 不等于去掉奖励信号;原方法仍可保留奖励模型及参考策略相关约束。

3. GRPO:同一道题的多个回答相互比较

**GRPO(Group Relative Policy Optimization,2024)**由 DeepSeekMath 提出,是 PPO 的一个变体。它使用组内奖励构造相对优势,省去单独训练的 Critic。参见 DeepSeekMath 原论文。

例如,对同一个问题“12 × 13 等于多少”,采样四次:

回答 结果 奖励
A:156 正确 1
B:146 错误 0
C:156 正确 1
D:169 错误 0

组内平均奖励为:

rˉ=1+0+1+04=0.5\bar r=\frac{1+0+1+0}{4}=0.5

先忽略标准差,中心化后的相对信号是 ri−rˉr_i-\bar r,即 +0.5,−0.5,+0.5,−0.5+0.5,-0.5,+0.5,-0.5。常见的数值实现还会按组内标准差归一化:

A^i=ri−rˉsr+ε\hat A_i=\frac{r_i-\bar r}{s_r+\varepsilon}

这里 srs_r 是组内奖励标准差,ε\varepsilon 是为避免除零加入的小量。在按总体标准差计算的这个例子里,sr=0.5s_r=0.5,归一化后的优势约为 +1,−1,+1,−1+1,-1,+1,-1;不同实现的标准差约定和数值处理可能不同。

正优势推动相应生成行为,负优势则提供相反方向的更新信号。GRPO 不是只挑出正确答案再做一次 SFT;它仍通过带优势权重的策略优化学习。

还要区分两个模型角色:

  • 不需要 Critic:优势来自组内比较。
  • 不一定需要训练奖励模型:可以用奖励模型,也可以用答案正确性、代码测试等规则评分。

原始 GRPO 目标保留了相对参考策略的 KL 惩罚与概率比裁剪。多回答采样本身有成本,因此“去掉 Critic”不意味着训练一定很便宜。

4. DAPO:面向长思维链训练改进 GRPO 式流程

**DAPO(Decoupled Clip and Dynamic sAmpling Policy Optimization,2025)**针对长思维链强化学习中的探索、样本利用和奖励噪声等问题,组合了四项主要设计。参见 DAPO 原论文。

设计 核心变化 直观目的
Clip-Higher 分开设置概率比裁剪的上下界,放宽上界 给探索保留空间,缓解熵过早下降
Dynamic Sampling 过滤没有组内奖励差异的提示词组,并补充采样 减少无效的相对优势信号
Token-Level Policy Gradient Loss 调整跨回答的损失聚合方式 改变长短回答在训练中的权重
Overlong Reward Shaping 调整超长输出的奖励处理 减少长度截断带来的奖励噪声

为什么全对或全错的一组可能没用?

在二值正确性奖励下,若四个回答全对,奖励都为 1;若全错,奖励都为 0。两种情况下,组内中心化奖励都为零,无法提供基于组内奖励差异的策略梯度信号。

这不等于整套训练中所有损失项都必然为零。例如,其他方法若还含 KL 或熵项,仍可能有相应信号。

Token-Level Loss 不是给每个 Token 人工打分

先对每个回答内部取平均,再对回答平均,会让不同长度的回答具有相同的总权重。改成在整个批次的有效 Token 上统一归一化,则改变了长回答的贡献方式。这里讨论的是损失如何聚合,不是要求逐 Token 标注奖励。

另外,DAPO 原论文移除了参考策略 KL 惩罚。它仍保留基于旧策略概率比的裁剪,去掉 KL 不等于取消所有更新约束。

四、偏好优化路线:从 DPO 到不同方向的简化与修正

1. DPO:直接利用优劣回答对

**DPO(Direct Preference Optimization,2023)**把一种 KL 正则化奖励优化问题转化为直接的偏好损失,不再需要先拟合一个独立的奖励模型,再执行 PPO 采样更新循环。参见 DPO 原论文。

训练数据通常写成:

(x,y+,y−)(x,y^+,y^-)

xx 是提示词,y+y^+ 是偏好的回答,y−y^- 是不偏好的回答。定义相对参考策略的对数概率比:

ℓθ(x,y)=log⁡πθ(y∣x)πref(y∣x)\ell_\theta(x,y)=\log\frac{\pi_\theta(y\mid x)}{\pi_{\mathrm{ref}}(y\mid x)}

标准 DPO 损失可写为:

LDPO=−E(x,y+,y−)∼D[log⁡σ(β[ℓθ(x,y+)−ℓθ(x,y−)])]\mathcal L_{\mathrm{DPO}}=-\mathbb E_{(x,y^+,y^-)\sim\mathcal D} \left[\log\sigma\left(\beta\left[ \ell_\theta(x,y^+)-\ell_\theta(x,y^-) \right]\right)\right]

其中 σ\sigma 是 sigmoid,β>0\beta>0 控制缩放,并与推导中的 KL 正则化强度相关;不是“越大训练一定越好”。本文的对数均采用自然对数。

直觉是:让模型相对参考策略,更倾向于偏好的回答,而不是只无条件地提高好回答概率。

标准离线 DPO 使用固定的偏好数据训练,不包含每轮让当前策略探索新回答的在线闭环。不过,也存在在线或迭代收集偏好数据的扩展;“DPO 永远不能在线训练”是不准确的。

标准 DPO 的目标依赖参考策略,但对固定数据可以预先计算参考对数概率,不一定要让一个独立参考模型始终常驻显存。

2. DPOP:额外惩罚优选回答概率的下降

**DPOP(DPO-Positive,2024)**关注 DPO 的一个失效模式:优选回答的绝对概率可能降低,只要劣选回答降低得更多,相对偏好仍可能改善。这个问题在优劣回答差别很小时尤其值得注意。参见 DPOP / Smaug 原论文。

用一组纯示意数值说明:

状态 好回答概率 坏回答概率 好 / 坏的概率比
训练前 0.40 0.30 约 1.33
训练后 0.20 0.05 4.00

在参考策略固定时,好坏相对优势可以提高,但好回答本身变得更难采样。DPOP 为优选回答概率相对参考策略下降的情形加入惩罚。这是训练目标中的软惩罚,不应表述成每条好回答的概率都必然单调增加。

3. TDPO:在 Token 级建模策略约束

**TDPO(Token-level Direct Preference Optimization,2024)**从自回归生成的 Token 级决策出发,引入前向 KL 相关约束,以改善偏好学习与生成多样性的平衡。参见 TDPO 原论文。

它并不要求人工给每个 Token 打分。标准 DPO 的序列对数概率本来也是 Token 对数概率的和,所以区别也不能简单说成“DPO 完全不看 Token,TDPO 才看 Token”;真正变化在于优化目标与约束的建模。

4. ORPO:把监督学习与偏好项放在同一个阶段

**ORPO(Odds Ratio Preference Optimization,2024)**用监督微调项学习优选回答,同时用优势比(odds ratio)构造偏好项,不需要 DPO 式的独立参考策略。其结构可概括为:

LORPO=LSFT+λLOR\mathcal L_{\mathrm{ORPO}} =\mathcal L_{\mathrm{SFT}}+\lambda\mathcal L_{\mathrm{OR}}

可以理解为“学习好回答的同时,也学习区分坏回答”,从而合并原本分开的 SFT 与偏好对齐阶段。这不是“只训练一次就不需要任何基础能力”,仍然依赖预训练模型和合适的数据。参见 ORPO 原论文。

5. SimPO:用平均对数概率定义无参考模型的奖励

**SimPO(Simple Preference Optimization,2024)**使用长度归一化的序列对数概率作为隐式奖励:

rθ(x,y)=β∣y∣log⁡πθ(y∣x)r_\theta(x,y)=\frac{\beta}{|y|}\log\pi_\theta(y\mid x)

其中 ∣y∣|y| 是回答的 Token 数。其偏好目标还加入奖励间隔,让优选与劣选回答形成更明确的差距。它不需要独立参考模型。参见 SimPO 原论文。

除以长度,是为了调整直接比较整段序列概率所带来的长度影响,但不能据此断言所有长度偏差都被彻底消除。

6. KTO:不必凑成同一问题下的优劣回答对

**KTO(Kahneman-Tversky Optimization,2024)**受前景理论启发,利用对单条回答的“期望 / 不期望”二值反馈构造目标,不要求数据必须组成成对比较。参见 KTO 原论文。

  • DPO 常用的数据:对于同一提示词,A 比 B 好。
  • KTO 可以使用的数据:这条回答是好的;另一条回答是不好的。

标准 KTO 仍使用参考策略。不需要成对数据、不需要奖励模型、不需要参考策略,是三个不同的问题。

五、反馈从哪里来:不要把监督来源当成优化器

RLHF:人类提供偏好监督

RLHF(Reinforcement Learning from Human Feedback)通常先从人类反馈学习奖励,再通过强化学习更新策略;经典实现常用 PPO。它不是 PPO 的另一个名字,PPO 也不仅能用于 RLHF。

RLAIF:AI 参与生成评价

RLAIF(Reinforcement Learning from AI Feedback)强调把 AI 产生的评价用于强化学习。它减少了对逐条人工偏好标注的依赖,但会继承评价模型的偏差,也仍然依赖评价准则和人类设计。

AI 生成的偏好数据也可以用于 DPO 等直接优化方法;不能把“数据由 AI 标注”与“必须采用某种 RL 优化器”绑定起来。

Constitutional AI:用原则组织批评、修订与评价

Anthropic 于 2022 年提出的原始 Constitutional AI 流程包含两个部分:先根据原则生成自我批评与修订,并用修订结果做监督训练;再让 AI 比较回答、形成偏好监督,进入强化学习阶段。参见 Constitutional AI 原论文。

因此,“原则从哪里来”“谁评价回答”“用什么损失更新模型”可以是同一套系统里的不同环节,而不是互斥的三个算法。

可验证奖励:答案或测试提供反馈

数学答案校验、代码测试等也能产生训练奖励。这类反馈常被归入可验证奖励强化学习(RLVR)场景。它解决的是奖励如何获得,不是另一个与 GRPO 并列的策略更新公式。

验证器也有覆盖范围与漏洞:通过有限测试,不等于在所有输入下都正确。

六、时间线:按首次公开时间,而不是流行时间

下表按对应论文首次公开的年月排列。论文接收时间、正式出版时间和方法广泛使用的时间可能不同;链接可用于查阅提交历史。

首次公开 方法或代表工作 主要贡献
2017-07 PPO 用代理目标等设计改进策略梯度优化
2022-03 InstructGPT PPO-RLHF 用于语言模型指令对齐的代表案例,不是 RLHF 的起点
2022-12 Constitutional AI 将原则引导的修订与 AI 反馈强化学习结合
2023-05 DPO 直接用成对偏好优化策略
2023-10 ReMax REINFORCE 加贪心基线,去掉 Critic
2024-02 KTO 使用非成对的好坏标签
2024-02 GRPO / DeepSeekMath 用组内奖励构造相对优势
2024-02 DPOP 惩罚优选回答概率下降的失效模式
2024-03 ORPO 合并 SFT 和偏好优化,不用独立参考策略
2024-04 TDPO 在 Token 级建模偏好优化约束
2024-05 SimPO 以平均对数概率和奖励间隔简化偏好优化
2025-03 DAPO 系统改进长思维链强化学习流程

时间顺序不等于继承关系,也不等于性能排名。 ORPO、KTO、SimPO 不能简单理解成 DPO 的同一种“升级版”;ReMax 也不应画成 PPO 的严格派生分支。

七、重点对比:DPO 和 GRPO 到底差在哪里?

维度 标准离线 DPO 原始 GRPO 式训练
核心输入 已有的优劣回答对 同一提示词下采样的多个回答及奖励
优化信号 相对参考策略的偏好损失 组内相对优势与策略优化目标
是否在线生成新训练回答 固定数据训练不包含这一闭环 会重复采样并依据奖励更新
独立奖励模型 不需要 取决于奖励来源,可使用规则评分
Critic 不需要 不需要
参考策略 标准目标依赖,参考概率可预计算 原始含 KL 惩罚的目标依赖
常见用途 风格、质量、安全等偏好学习,也可学习推理偏好 数学、代码等可获得奖励的任务,也可做其他对齐任务
主要成本 偏好数据准备与模型训练 多回答生成、评分与模型更新

两者不是“只适用于偏好”与“只适用于推理”的硬分工。更准确的区别是:标准离线 DPO 主要利用已知回答的比较信息,GRPO 式训练则能形成持续采样与反馈的闭环。

在线探索有机会利用基础模型已有的能力发现更好的输出,但不保证一定学会新解法;离线偏好训练也可能改善推理表现。最终结果取决于基础模型、数据覆盖、奖励与训练预算。

八、复习时最值得检查的六个误区

容易记错的说法 更准确的理解
DPO 取代 PPO,GRPO 又取代 DPO 它们解决不同的工程与学习问题,可以互补
没有 Critic,就没有 Reward Model Critic 估计价值,Reward Model 提供奖励,职责不同
没有参考模型,就不需要任何基准或约束 SimPO 有奖励间隔,DAPO 有旧策略裁剪;需要具体分析
Clipping 保证每次参数只变化一点 它抑制代理目标中的激进更新,不是硬性参数约束
TDPO 要人工给每个 Token 打分 变化在目标与约束的建模粒度
AI 评价或自动测试天然可靠 评价偏差、奖励投机和验证漏洞仍需检查

九、学习顺序与核心问题

可以按下面的顺序建立理解,而不必一开始记住所有缩写:

  1. SFT、概率与 KL 散度:先分清示范学习、奖励和参考策略约束。可结合 从信息量到 KL 散度复习。
  2. PPO:理解概率比、优势估计和 Clipping,而不是只记“限制更新幅度”。
  3. DPO:理解优劣回答相对参考策略的对数概率比,区分相对偏好和绝对概率。
  4. GRPO:亲手算一组奖励的均值、标准差与优势,说明为什么不再需要 Critic。
  5. DAPO:检查哪些组没有奖励差异,比较序列平均与 Token 平均,以及上下界裁剪。
  6. 扩展方法:再看 ReMax、DPOP、TDPO、ORPO、SimPO、KTO,逐个回答“它改的是数据、基线、损失、参考策略,还是训练阶段?”

读任何一种后训练方法,都先问四件事:数据从哪里来、奖励或标签是什么、更新目标怎样写、靠什么控制训练偏离。

把这四个问题分开,算法之间的差异就会比名称和时间线更清楚。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

评论