s21 RLHF:当强化学习遇见大模型
WARNING
🧪 Beta公测版本提示:教程主体已完成,正在优化细节,欢迎大家提Issue反馈问题或建议。
前置已经齐了:PPO 的裁剪目标与 GAE,GRPO 的组相对优势,AlphaGo 说明策略梯度可以赢过人类。这一章不再推优化器,只做一件事:把这些零件接到 token 序列上——SFT、奖励模型、KL 橡皮筋、以及不必走在线 RL 的 DPO。
一、为什么大模型需要强化学习?
预训练只优化「下一个 token 的交叉熵」。它学的是互联网文本的统计分布:会续写,但不保证遵循指令、承认不知道、或拒绝有害请求。
对齐问题(Alignment):如何让 LLM 的行为与人类意图和价值观一致?三个常用维度是 HHH:
- 有用(Helpful):跟着指令把任务做完
- 诚实(Honest):不编造、不懂装懂
- 无害(Harmless):不输出危险或歧视内容
交叉熵衡量不了「整段回复好不好」。强化学习擅长的恰好是延迟的整段奖励——把一次生成看成一条轨迹,结束时打一个标量分。
目标从「预测对下一个 token」变成「生成一段人类觉得好的回复」。

二、RLHF 三阶段流程
RLHF(Reinforcement Learning from Human Feedback)由 Christiano et al. (2017) 提出,InstructGPT / ChatGPT(Ouyang et al., 2022)把它做成对齐的默认流水线。
阶段 1:监督微调(SFT)
- 数据:人类按 prompt 写高质量回复
- 目标:
,标准监督学习 - 产出:
,初步会听指令
没有 SFT 就直接做 RL,模型连「什么叫遵循指令」都不知道,奖励几乎没有意义。
阶段 2:奖励模型(RM)
同一个 prompt 让 SFT 生成
数字例。 demo.py 在玩具词表上对比 PPO 与 DPO。
逐步推导:Bradley-Terry → RM 损失 → DPO(点击展开)
BT:
PPO 路线:在线采
阶段 3:用已经学过的优化器微调策略
- 初始策略:
- 奖励:RM 的分数,再减一项到参考策略的 KL(下一节)
- 优化器原样拿来用:
三、把生成写成 MDP
| RL 符号 | 在 LLM 里是什么 |
|---|---|
| 状态 | prompt + 已写 token |
| 动作 | 下一个 token |
| 策略 | 模型本身的 next-token 分布 |
| 奖励 | 中间 token 为 0;序列结束时才有标量 |
| 轨迹 | 一次完整生成 |
一次自回归生成 = 一条 RL 轨迹。每个 token = 一个动作。
奖励稀疏,所以 InstructGPT 需要 Critic 估「写到这里还值多少分」——这就是 PPO 章的
四、PPO 接到 LLM 上:新东西只有奖励塑形
概率比和裁剪不要重新推,直接抄 PPO:
LLM 对齐真正多出来的是 KL 橡皮筋。把参考策略
没有这根筋,策略会 奖励黑客:专攻 RM 的癖好(特别长、套话、假装权威),把预训练学到的语言能力抽走。
GRPO 论文把
实践里这一阶段要同时盯四个网络:Actor

图解说明:这张图是 PPO 章 裁剪目标的回顾。
时 不能过 ; 时不能过 。
五、可验证任务可以换成 GRPO
数学、代码、带单测的推理:最终对错可以由规则说了算,不一定每一步都要人类。DeepSeekMath / DeepSeek-R1 用 GRPO:
- 同一 prompt 采
条完整输出; ,没有 Critic; - 目标仍是 PPO-Clip,外加到
的 KL。
和「经典 RLHF」的分工:
| InstructGPT 式 RLHF | R1 式强化学习 | |
|---|---|---|
| 奖励从哪来 | 人类偏好 → RM | 验证器 / 规则(可加少量偏好) |
| 优化器 | PPO + GAE + | GRPO 组相对 |
| 还要不要 SFT | 要 | 要(冷启动) |
HHH、偏好数据、奖励黑客,仍然是本章的主题;换优化器不会自动解决对齐。
六、DPO:离线偏好,绕过显式 RM 和在线 RL
PPO+RM 的痛点:多一个可能被黑客的 RM、四模型同步、on-policy 采样贵。DPO(Rafailov et al., 2023)从 Bradley-Terry 反解出:最优策略对应的奖励可以写成
直观:相对参考模型,抬高
| 维度 | RLHF(PPO / GRPO) | DPO |
|---|---|---|
| 模型 | PPO 要 Actor/Critic/Ref/RM;GRPO 省 Critic | Policy + Ref |
| 数据 | on-policy 采样(GRPO 还必须成组) | 离线偏好对 |
| 奖励 | 显式 RM 或验证器 | 隐含在 |
| 稳定性 | 要调 clip、 | 更像分类损失 |
| 灵活性 | 能接在线反馈、可验证奖励 | 偏好分布一变就要重采数据 |
高质量闭源助手仍常用 PPO 一类在线 RL;开源微调大量用 DPO / ORPO,因为省。DPO 不是 GRPO 的替代:一个吃离线对,一个吃 on-policy 组采样。

七、挑战与前沿
- 奖励黑客:策略欺骗 RM。KL 只能减缓,不能从根上消掉。
- 分布偏移:on-policy 生成渐渐离开 RM 训练时见过的回复,RM 失效。
- 偏好不一致:标注者对「好」的定义不同,直接进
。 - 对齐税:过度讨好人类,基准能力掉一点。
前沿(点到为止):Constitutional AI(AI 按「宪法」自批评)、Iterated RLHF、多目标奖励、ORPO / RRHF 等更短的偏好损失。推理向则把验证器 + GRPO 做成主路径。

八、本节小结
| 概念 | 一句话 | 公式在哪 |
|---|---|---|
| 对齐 / HHH | 有用、诚实、无害 | 本章 |
| SFT | 示范数据上先学会听指令 | 本章 |
| 奖励模型 | Bradley-Terry 拟合人类排序 | 本章 |
| token-MDP | 前缀是状态,token 是动作 | 本章 |
| 接到 LLM 上的优化器 | PPO | |
| 组相对优势 | 可验证任务上可以不训 | GRPO |
| KL 橡皮筋 | 本章(接到 PPO/GRPO 上) | |
| DPO | 离线偏好,不显式训 RM | 本章 |
RLHF 不是一种新算法,是「人类反馈 → 标量奖励 → 已经学过的策略优化器」。棋上的自我对弈见 AlphaGo;更新别迈太大见 PPO;组内相对见 GRPO。
📥 Code
| File | View | Download |
|---|---|---|
| demo.py | Open | Download |
| exercise.py | Open | Download |
参考
- Christiano, P., et al. (2017). Deep Reinforcement Learning from Human Preferences. NeurIPS. [arXiv:1706.03741]
- Ouyang, L., et al. (2022). Training language models to follow instructions with human feedback. NeurIPS. (InstructGPT) [arXiv:2203.02155]
- Schulman, J., et al. (2017). Proximal Policy Optimization Algorithms. [arXiv:1707.06347] — 推导见 PPO
- Shao, Z., et al. (2024). DeepSeekMath. [arXiv:2402.03300] — GRPO,见 GRPO
- DeepSeek-AI (2025). DeepSeek-R1. [arXiv:2501.12948]
- Rafailov, R., et al. (2023). Direct Preference Optimization. NeurIPS. [arXiv:2305.18290]