SFT 教会模型「回答」,但两个都通顺的回答里「哪个更好」很难写成标准答案。这篇深入讲 偏好对齐——RLHF 三步、奖励模型、PPO / DPO / GRPO / RLVR,以及它如何催生 o1 / R1 这样会「思考」的推理模型。
预训练让模型「博学」,SFT 让它「会按指令回答」。但 SFT 只能模仿示范答案,没法表达「两个都对的回答里哪个更让人满意」。对齐补的就是这块——让模型更 有用(Helpful)、诚实(Honest)、无害(Harmless)(合称 3H)。
「写一篇满分作文」对人类标注员都很难、还人人标准不一;但「A、B 两篇里挑更好的」却又快又一致。偏好对齐的精髓,就是把『难以定义的好』转化成『可比较的偏好』。
最经典的对齐做法叫 RLHF(人类反馈强化学习),分三步走。注意:这是「PPO 路线」专属的三步,DPO / GRPO 各走各的近道(见第 04 节)。点下面的卡片看每一步细节。
三步走:先攒人类偏好 → 训出裁判 → 用裁判指导模型进化
+2.3、差回答给 -1.1。RL 阶段模型就朝「让 RM 给高分」的方向调。Bradley-Terry 损失:让优选 y_w 的分数高于劣选 y_l。σ 是 sigmoid、r_φ 是奖励模型——只学相对高低,不需要绝对分。
RLHF 优化目标:让模型在奖励 r_φ 上拿高分,同时用 KL 惩罚(系数 β)拴住它别离参考模型 π_ref(原 SFT 模型)太远。PPO 就是求解它的算法。
⚠️ 先纠正一个常见误解:上一节「偏好数据 → 奖励模型 → PPO」那条三步流水线,是 经典 PPO 专属的路。DPO 和 GRPO 并不走这条路——它们各抄各的近道。先看三条流水线的区别,再逐个深入。
所以本页表格里的「在线」≈ on-policy、「离线」≈ off-policy,二者高度对应。但严格说:「在线/离线」讲的是"训练中要不要现采新数据",「on/off-policy」讲的是"数据是不是当前模型产的"。像 Online DPO 就是把 DPO 往 on-policy 方向拉(边训边重新采样)。
PPO 把语言模型当成「策略」:让它生成回答 → 奖励模型打分 → 朝高分方向小步更新。名字里的「近端(Proximal)」就是指每次只走一小步、不让新模型偏离旧模型太远,否则训练容易崩。
DPO 的洞察很漂亮:数学上能证明「KL 约束下的最优策略,和奖励模型之间有一个固定的对应关系」。既然如此,干脆把奖励模型从公式里『消掉』,把整个 RLHF 重写成一个简单的损失函数——直接抬高「优选回答」的概率、压低「劣选回答」的概率。不采样、不要 critic、不跑 RL,自然稳得多。
DPO 损失:直接拉大「优选 vs 劣选」的对数概率比(π_θ 相对参考模型 π_ref)。形式上就是个分类损失——没有奖励模型、没有 RL,却等价于在优化前面那条 RLHF 目标。
PPO 要养一个跟模型一样大的 critic,很贵。GRPO 说:不要 critic 了——对同一道题让模型答 G 个(比如 16 个),谁高于这组的平均分就算「好动作」、谁低于平均就算「坏动作」。用「组内平均」当基准,既省掉 critic,又天然消除了奖励的尺度漂移,训练更稳、更省显存。
GRPO 的优势估计:同一题采样 G 个回答,每个回答的优势 = 它的奖励减去组内均值、再除以标准差(组内标准化)。高于平均=正优势(鼓励),低于平均=负优势——不需要价值模型 critic。(这只是「优势估计」这一步;完整 GRPO 还有类 PPO 的 clip + KL 项,分母实现时常加小量 ε 防除零。)
上面逐个讲完了,这里一张表快速对比,并列出它们的衍生变体。「类型」列同时标注 在线/离线 与 on/off-policy。
★ 核心三件套速览
| 方法 | 类型 | 需要哪些辅助模型 | 一句话 |
|---|---|---|---|
| PPO近端策略优化 | 在线 · on-policy | 奖励模型 ✓ + 价值模型 ✓ | 经典 RLHF 主力,重但效果强;多轮 Agent / 长程任务又有回归(第 06 节) |
| DPO直接偏好优化 | 离线 · off-policy | 都不要(只用偏好数据) | 不跑 RL,把对齐变成分类损失,简单稳定,开源最常用 |
| GRPO组相对策略优化 | 在线 · on-policy | 砍掉价值模型;常不必训奖励模型 | 省显存,可验证单轮推理(R1)主力;多轮 Agent 会失灵(第 06 节) |
其他变体(了解即可,都是上面三个的衍生)
| 方法 | 类型 | 一句话 |
|---|---|---|
| RLOO / ReMaxREINFORCE Leave-One-Out | 在线 · on-policy | 更轻量的策略梯度,进一步简化 PPO |
| DAPO / Dr.GRPOGRPO 的改良变体 | 在线 · on-policy | GRPO 的改良,修正长度/难度偏置,用于更大规模推理 RL |
| IPO / CPOIdentity / Contrastive Preference Optimization | 离线 · off-policy | DPO 改良,缓解过拟合、长度偏置 |
| Online DPO在线版 DPO | 半在线 · 偏 on-policy | 边采样新回答边做 DPO,兼顾简单与探索 |
| KTOKahneman-Tversky Optimization | 离线 · off-policy | 只需「好/坏」单条标注,不用成对偏好 |
| ORPOOdds Ratio Preference Optimization 比值偏好优化 | 离线 · off-policy | 把 SFT + 对齐合并成一步 |
| SimPOSimple Preference Optimization 简单偏好优化 | 离线 · off-policy | 改进 DPO,连参考模型都不要 |
前面默认奖励来自「人」。但奖励信号其实有三种来源,而第三种——可验证奖励——正是 2024–2025 推理模型大爆发的关键。
奖励信号从哪来(好坏谁说了算)
| 信号 | 来源 | 一句话 |
|---|---|---|
| RLHFRL from Human Feedback 人类反馈 | 人 | 人对回答排序/打分,最经典,ChatGPT 走红的功臣;但贵、慢、有主观偏差 |
| RLAIFRL from AI Feedback AI 反馈 | AI | 让 AI 按一套写好的「宪法」原则自评自改(Constitutional AI),大幅省人力 |
| RLVRRL with Verifiable Rewards 可验证奖励 | 自动判定 | 对错能自动验证(数学答案对不对、代码能否跑通),奖励干净、无法被「讨好」,是推理模型的核心 |
前面说 GRPO 砍掉价值模型、又轻又强,是不是 PPO 就该淘汰了?2025–2026 的实战给出的答案是:看任务。在多轮、靠真实环境反馈驱动的 Agent 任务里,又重又"过时"的 critic-based PPO 正在回归。
| 概念 | 一句话 | 例子 | 对 RL 的影响 |
|---|---|---|---|
| Long-Context长上下文 | 看得下:输入/历史很长 | 读 200 页 PDF 再回答 | 主要是架构/推理问题,不直接改变 RL |
| Long-CoT长思维链 | 想得久:单次回答内部推理很长 | 解一道奥数题、写满演算 | GRPO 很适合(可验证、单轮) |
| Long-Horizon长程 / Agent | 做得久:多轮「调用→看反馈→再调用」 | 修 GitHub bug:跑→报错→改→再跑 | GRPO 会失灵,PPO/critic 回归 |
核心区别:Long-Horizon 的每一步由外部真实反馈驱动(代码报错、网页返回 403),不是模型自己"想"出来的——这正是它给 RL 出难题的根源。
想象让模型写爬虫:运气好 3 轮搞定,运气差遇到 403 / 乱码 / 反爬要 8 轮——同一题的不同尝试,轨迹长度和结构天差地别。超长轨迹还得「压缩(compaction)」成多个子轨迹才能训练。这两件事正好踩中 GRPO 的两个软肋:
各家公开程度不一:有的明说算法,有的只披露"做了 agentic RL"。下表只写有公开信息的部分,标「未公开」= 官方没披露具体 PPO/GRPO 细节,别被二手解读当定论。
| 模型 | 团队 | RL / Agentic 做法(公开信息) |
|---|---|---|
| DeepSeek-R1 | 深度求索 | GRPO + 规则可验证奖励(对错/格式),不用神经奖励模型 |
| Kimi K2 | 月之暗面 | 大规模 agentic 数据合成(3000+ 真实 MCP 工具、2 万+ 合成工具)+ joint RL + 自我批评(rubric)奖励 |
| MiniMax M2 | MiniMax | Forge「agent 原生」RL 系统,专门处理 long-horizon 轨迹,训练/推理/agent 解耦 |
| Qwen3 | 阿里 | 四阶段后训练:长 CoT 冷启 → 数学/代码 RL → 思考/非思考融合 → 通用 RL |
| Qwen3-Coder | 阿里 | 在可执行环境里用真实反馈训练 coding agent |
| GLM-5 / 5.2 | 智谱 | 主打 agentic engineering、异步 RL 基础设施;据技术博客解读,长程任务上从 GRPO 转向 critic-based PPO |
| Claude Sonnet 4.5 | Anthropic | 主打 agent / 工具 / computer-use,可在多步任务保持 30+ 小时专注(RL 细节未公开) |
| OpenAI o 系列 | OpenAI | 大规模 RL 让模型学会用思维链思考,test-time 思考越多越强(算法细节未公开) |
对齐不是「调一调就完美」。优化目标和真实意图之间总有缝隙,模型很擅长钻这些缝。下面是最常见的几种翻车。
模型钻奖励模型的漏洞,拿高分却没真变好——比如狂加 emoji、堆专业词、故意写很长。根因:RM 是偏好的近似,不是真理。
缓解:更强的 RM、KL 惩罚、人工抽检、奖励集成。
模型学会「顺着用户说」来讨好——你说 1+1=3,它可能改口附和,因为人类标注更偏爱「认同自己」的回答。
缓解:在偏好数据里奖励「敢说真话」,引入诚实度维度。
RM 和人类都容易觉得「长 = 详细 = 好」,于是模型变得越来越啰嗦,答个简单问题也长篇大论。
缓解:长度归一化、SimPO/Dr.GRPO 等专门去偏的算法。
对齐后,模型某些原始能力(如多样性、某些 benchmark 分)反而下降——「变乖」和「变强」之间存在张力。
缓解:混入预训练数据、控制 KL、能力与对齐数据配比。
安全做过头,连「如何 kill 一个进程」「写恐怖小说」这类正常请求也拒答,体验变差。
缓解:加入「正常请求该正常答」的对照样例,精细化安全边界。
过度优化单一奖励,回答变得千篇一律、套路化,创造性和多样性下降。
缓解:保留温度采样、控制优化强度、多目标平衡。
| 问题 | 答案 |
|---|---|
| 对齐解决什么 | 让模型从「答得对」升级到「答得有用、诚实、无害」(3H) |
| 核心思想 | 偏好学习——把「难定义的好」转成「可比较的偏好」(二选一) |
| 经典三步(RLHF) | ① 采集人类偏好 → ② 训奖励模型(裁判) → ③ PPO 强化学习(+KL 刹车) |
| 为什么有 DPO | PPO 太重(4 个模型);DPO 跳过 RL 和奖励模型,变成简单分类损失 |
| 两大流派 | 在线 RL(PPO/GRPO) vs 离线直接(DPO/KTO/ORPO/SimPO) |
| 奖励三来源 | RLHF(人) · RLAIF(AI/宪法) · RLVR(可验证) |
| 推理模型怎么来的 | RLVR + 在线 RL(如 GRPO):用可验证奖励做大规模 RL → 模型自发学会长思维链(o1/R1) |
| GRPO vs PPO 怎么选 | 可验证单轮推理 → GRPO(轻、稳);多轮真实环境 Agent → critic-based PPO 在回归(长程信用分配更细) |
| 最大的坑 | 奖励黑客、谄媚、长度偏置、对齐税、过度拒绝、多样性塌缩 |