卷2 · LLM 内功
2.7 对齐技术:RLHF → DPO → GRPO
展开本章目录与同卷章节
1. 什么是对齐,为什么难2. 第一代:RLHF 三部曲(InstructGPT,2022)3. 第二代:DPO(直接偏好优化,2023)4. 第三代:GRPO 与 RLVR(2024–2026 的主引擎)5. 三代对比(背下来)6. 实操路线(TRL)7. 自测题8. 动手作业案例 · 数值:代一次 DPO loss9. 延伸资源同卷章节2.1 语言模型前史:n-gram → RNN → 注意力(20 分钟走完 30 年)2.2 BPE tokenizer 原理与实现2.3 GPT 架构工程版:从 TinyGPT 到 nanoGPT2.4 预训练:数据、Scaling Law 与训练稳定性2.5 SFT 与指令微调实战2.6 参数高效微调:LoRA 与 QLoRA2.7 对齐技术:RLHF → DPO → GRPO2.8 推理优化与 vLLM:把模型变成服务2.9 架构前沿:MoE、长上下文与注意力变体2.10 小模型时代的科研机会:1B–7B 甜点区本章目标:搞懂”模型变聪明之后,如何变得有用/可靠”的三代技术。这一章是卷5.1(多模态推理 RL,当前最热方向)的理论地基——GRPO 就是你未来科研最可能亲手跑的算法。学完标准:能白板推导 DPO 的 loss,能讲清 GRPO 为什么去掉 critic 还能工作。
1. 什么是对齐,为什么难
SFT 之后的模型会回答了,但还有三层问题:回答质量的天花板(好答案 vs 更好答案,SFT 数据给不出稠密的区分)、幻觉(编造但自信)、目标偏差(讨好而非真实)。对齐(alignment)的本质:把人类模糊的”好坏”判断,变成模型可优化的信号。难点:人类偏好是相对的(比较容易、标定难——8.2 章美学评分同样的道理)且昂贵的。
2. 第一代:RLHF 三部曲(InstructGPT,2022)
- SFT:先教会行为格式(2.5);
- 训练奖励模型(RM):人类对同一 prompt 的多个回答做成对排序;RM 是个打分头,用 Bradley-Terry 模型拟合——“A 比 B 好”的概率 = ,本质是学习序关系而非绝对分( again,与 8.2 的 SRCC 逻辑同源);
- PPO 强化学习:模型生成回答 → RM 打分 → 按分更新策略。
KL 惩罚是这个阶段的灵魂设计:奖励里减去与参考模型(SFT 版)的 KL 散度——奖励模型会过优化(reward hacking:模型学会讨好 RM 的漏洞),KL 是”别漂太远”的缰绳:
PPO 的痛点:同时养四个模型(策略、价值网络、参考、奖励),采样-训练交替,超参敏感、训练不稳——工程上劝退了一票团队。于是第二代诞生。
3. 第二代:DPO(直接偏好优化,2023)
洞察:RLHF 目标有解析解——最优策略下的奖励可由当前模型与参考模型的概率比闭式表达:。把它代回 Bradley-Terry,奖励模型被整个消掉,得到直接监督学习式的 loss:
读法:让模型相对参考模型,把”好回答”的概率抬得比”坏回答”更高。两个模型(策略+参考,参考只做前向)、无采样、无 RL 训练循环——一次普通的前向反向就完成。
代价与局限:offline——只在给定偏好对上优化,模型不主动探索新回答,上限受数据覆盖限制;隐式奖励在分布外会失真。变体扫盲:IPO(修过拟合)、KTO(不成对,只要”好/坏”标签)、SimPO(去参考模型,用序列长度归一)。
4. 第三代:GRPO 与 RLVR(2024–2026 的主引擎)
动机来自”推理模型”时代:数学/代码题答案可自动验证(对答案、跑测试),不需要人类偏好标注,也不需要 RM——这就是 RLVR(可验证奖励的强化学习)。DeepSeek 用它练出 R1 的推理能力,引擎是 GRPO(Group Relative Policy Optimization)。
GRPO = PPO 去掉 critic 的简化:对每个问题,采样一组 G 个回答(比如 16 个),组内算分:
组内平均就是 baseline——“比我组内平均好的放大概率,差的缩小”。省掉价值网络(不用再训一个”预测期望得分”的模型),显存和稳定性双赢。配上 KL 到参考模型的约束,训练流程和 PPO 同构但简单得多。
为什么这是你科研的引擎:把”可验证”从数学/代码换到视觉领域——几何题的图、图表问答的数值、GUI agent 的任务完成——就是多模态推理 RL 的研究现场(卷5.1),且 GRPO 在 3B 模型上单卡可跑(TRL 的 GRPOTrainer / verl 框架)。当前这个方向论文的标配组件:Qwen-VL 小模型 + LoRA + GRPO + 自建可验证奖励,你在寒假后完全够格上手。
5. 三代对比(背下来)
| RLHF+PPO | DPO | GRPO/RLVR | |
|---|---|---|---|
| 模型数量 | 4(策略/价值/参考/奖励) | 2(策略/参考) | 2–3(策略/参考±奖励规则) |
| 奖励来源 | 训练出的 RM | 隐式(从偏好对反解) | 规则/验证器(零标注) |
| 数据 | 成对偏好 | 成对偏好 | 问题+可验证答案 |
| 稳定性 | 最难调 | 最稳(纯监督式) | 中等(组采样设计关键) |
| 典型用途 | 产品对齐 | 轻量偏好微调 | 推理能力训练 |
6. 实操路线(TRL)
- DPO 最短路径:
trl.DPOTrainer+ 成对数据(prompt/chosen/rejected三列 json),LoRA 底座,=0.1 起步,lr 比 SFT 再小一个档; - GRPO:
trl.GRPOTrainer,reward_funcs传一个 Python 函数(比如”最终答案与标准答案一致=1 否则=0”),G=8–16。奖励函数设计本身就是研究——写得太松会 reward hacking; - 数据:数学题用 GSM8K,验证用 str 匹配或小解析器。
7. 自测题
- RLHF 为什么要 KL 惩罚?去掉会怎样?(防奖励模型过优化/策略漂移;reward hacking 到崩)
- Bradley-Terry 模型把偏好建模成什么?和美学评分(8.2)的联系?(成对比较的 sigmoid 概率;都是”相对判断比绝对打分可靠”)
- DPO 的核心推导步骤?(RLHF 目标 → 最优策略下奖励的闭式解 → 代回消掉 RM)
- DPO 的 offline 局限是什么?(不探索新回答,上限受数据覆盖限制——对比 GRPO 的在线采样)
- GRPO 怎么省掉 critic?(组内采样的均值/方差即 baseline——同一问题的相对比较天然消去题难度)
- RLVR 的”可验证”指什么?举一个视觉领域的可能验证器?(规则自动判分;图表数值题比对数字、几何作图比对结论、GUI 任务完成状态)
- reward hacking 在 RLVR 里还发生吗?(发生:验证器松了就被钻空子——比如输出格式猜答案;验证器设计是研究活)
8. 动手作业
- 白板推导 DPO loss(从 KL 正则的 RL 目标出发,两步闭式代入)——推不动就对照原论文附录;
- TRL 跑一次 DPO:拿 2.5 的 SFT 模型当底座,构造 500 对偏好(好答案用强模型改写、坏答案故意注入错误),前后对比 20 个案例;
- 用 GRPOTrainer 在 GSM8K 子集上对 Qwen2.5-1.5B 做 RLVR(答案匹配奖励),观察训练中奖励均值曲线与回答长度曲线——R1 论文里”回答变长”现象的亲身体验;
- 读 DeepSeek-R1 论文前半部分(训练流程图级别),对照本章写一页总结。
案例 · 数值:代一次 DPO loss
案例:把公式里的符号全换成数字
。某样本的对数概率——策略模型:;参考模型:。
隐式奖励 = β ×(策略 − 参考): 好回答:;坏回答:。
margin → → 。
读出三件事:① 0.664 只比 (纯瞎猜)好一点——这个策略刚起步;② DPO 关心的唯一量是”相对参考模型的提升差”:把好回答的概率抬高、或把坏回答压低,都能拉开 margin;③ 永远不更新——它是整把尺子的零点,KL 缰绳以”对数概率差”的形式藏在公式里,而不是显式的惩罚项。
9. 延伸资源
- InstructGPT(RLHF 原始设定)/ DPO 论文——两篇必精读
- DeepSeek-R1 论文(2025)——GRPO+RLVR 的工业级叙事
- TRL 文档 DPOTrainer / GRPOTrainer 章节——实操手册
