基于人类偏好的深度强化学习:不写奖励函数,让人比较两段录像
Deep Reinforcement Learning from Human Preferences
- 作者
- Paul Christiano, Jan Leike, Tom B. Brown, Miljan Martic, Shane Legg, Dario Amodei
- 依据版本
- arXiv v4
- 30u30 单元
- 30_RLHF(讲解、实现与练习请到原仓库查看,本站不翻译、不改编,见导读)
本页目录(15)
一句话总结#
把“定义目标”这件事从写代码变成两两比较:人只回答“这两段里哪段更好”,模型从这些回答里学出奖励函数,强化学习再去优化它,三者同时、异步地进行。
解决什么问题#
强化学习需要奖励函数,但很多我们真正想要的行为很难写成代码:“把炒蛋做好”“做一个漂亮的后空翻”。常见的替代办法各有问题:
- 直接让人打分:人要盯着每一步,成本太高;绝对分数也难以保持一致。
- 模仿示范:需要人能亲自演示,而有些行为(比如非人形的机器人动作)人示范不出来。
- 手写一个近似奖励:智能体可能会利用近似里的漏洞,做出“分数高但不是我们想要”的行为。
本文的目标是:用非专家的、少量的人类反馈,在现代深度强化学习任务上学出想要的行为,并且把人类监督的成本降到可以实用的程度。
核心思想#
三个过程同时、异步地运行:
- 策略和环境交互,最大化当前奖励模型给出的预测奖励
r̂。 - 从策略产生的轨迹里挑出成对的短片段(每段 1–2 秒),做成短视频发给人,人选更好的一段,或表示两段一样好、无法比较。
- 奖励模型用这些比较结果做监督学习,不断更新
r̂。
为什么用比较而不是打分:论文发现某些领域里比较更容易给出,同时对学习偏好同样有用;而比较短片段(而不是单个状态)带来的信息要多得多。
关键公式或机制#
1. 从比较到奖励:Bradley–Terry 模型#
假设人偏好某段的概率,取决于奖励模型在该段每一步上预测奖励的总和:
P̂[σ1 ≻ σ2] = exp(Σ r̂(σ1)) / ( exp(Σ r̂(σ1)) + exp(Σ r̂(σ2)) )
用人的实际选择(偏好哪段,或各一半)和这个预测概率之间的交叉熵作为损失训练 r̂。论文说明这就是从两两偏好估计分数的 Bradley–Terry 模型,和国际象棋 Elo 等级分的思路一致。
2. 让奖励模型更可靠的几个做法#
- 集成:训练多个预测器,每个在有放回抽样的数据上训练,结果分别归一化后取平均。
- 留出验证:每个预测器留出 1/e 的数据做验证,调整 L2 正则强度。
- 建模人的失误:假设有 10% 的概率人是随机作答,而不是完全相信 softmax 预测。
- 挑选问题:从大量候选片段对中,挑集成成员之间分歧最大的去问人。论文自己承认这是粗糙的近似,消融实验显示它在一些任务上反而有害。
3. 优化器#
Atari 任务用 A2C,MuJoCo 机器人任务用 TRPO(PPO 的前身,见 Day 29)。因为奖励模型一直在变,奖励在这里是非平稳的,论文因此偏好对奖励变化更鲁棒的策略梯度方法。
4. 实验结果(论文所写)#
- 人力成本:反馈覆盖不到 1% 的交互;人类评估者平均每个问题 3–5 秒,真实人类反馈的实验需要 30 分钟到 5 小时的人力。
- MuJoCo:用一个按真实奖励自动作答的“合成评估者”做对照时,700 个标签就能在所有任务上接近直接用真实奖励的强化学习;到 1400 个标签时甚至略好,作者推测是学出来的奖励形状更好。
- Atari:用 5,500 个真人标签训练,在多数游戏上有明显学习,部分游戏(如 BeamRider、Pong)接近或达到直接强化学习,另一些(SpaceInvaders、Breakout)达不到,但仍有明显提升。
- 新行为:Hopper 机器人连续后空翻用了 900 个问题、不到一小时;Half-Cheetah 单腿前进 800 个问题;Enduro 中与其他车辆并行约 1,300 个问题。
5. 消融里最值得记住的一条#
如果不是在线、而是离线训练奖励模型(先收集一批比较、训练好再固定下来让策略去优化),效果很差。原因是策略一变,遇到的状态分布也变了,固定的奖励模型只抓住了真实奖励的一部分。论文举例:Pong 里智能体学会不丢分但也不得分,打出无休止的长回合。这就是奖励模型被利用的典型样子。
图解#
flowchart LR
ENV[环境] <--> POL["策略:最大化预测奖励 r̂"]
POL --> SEG["挑选成对的 1–2 秒片段"]
SEG --> HUM["人:选出更好的一段"]
HUM --> RM["奖励模型:Bradley–Terry 交叉熵训练"]
RM -->|"更新 r̂"| POL
图解:策略在环境中最大化当前的预测奖励 r̂,系统从轨迹里挑出成对片段交给人比较,奖励模型用 Bradley–Terry 形式的交叉熵损失从这些比较中学习,再把更新后的 r̂ 交回策略;三个环节异步、持续地运行。
关键原话#
“We show that this approach can effectively solve complex RL tasks without access to the reward function”
和 Anthropic 笔记的对应#
| Anthropic 笔记 | 对得上的地方 |
|---|---|
| 揭秘 AI 智能体评测 | 那篇列出的模型评分器做法里有“两两比较”,并要求 LLM 评委与人工校准。本文用比较训练奖励模型、用合成评估者对照真实奖励,是同一个问题的早期版本:怎样让一个可规模化的评分器贴近人的判断。 |
| BrowseComp 中的评测察觉 | 离线奖励模型导致 Pong 智能体“只防守不进攻”,和模型绕开评测意图拿分,都是“优化的东西”和“想要的东西”出现偏差。规模和形式完全不同,只是类比。 |
| Claude Code auto 模式 | 用分类器替代人逐条审批,并公开误报率和漏报率;本文用奖励模型替代人逐步打分,并用人在少量样本上纠偏。两者都是“用模型近似人的判断、把人力集中在少数关键样本上”。只是设计思路的类比,auto 模式并没有使用 RLHF。 |
读的时候要注意#
- 这里还没有语言模型:任务是 Atari 游戏和 MuJoCo 机器人。把同一套方法用到语言模型上,是后来的《Learning to summarize from human feedback》和 InstructGPT 等工作。
- “人”的设定:评估者是拿到一两句任务说明的非专家合同工;不同人、不同说明会得到什么样的奖励模型,本文没有系统研究。
- 合成标签与真人标签要分开看:很多曲线用的是按真实奖励自动作答的合成评估者,衡量的是方法上限,不是真人反馈的效果。
- 片段长度是权衡:论文发现比较更长的片段每段更有帮助、每帧的帮助却更少;短片段让人需要时间理解情境。
- 主动提问不一定有益:按集成分歧挑问题是粗糙近似,在部分任务上有害。
30u30 对应单元#
延伸阅读#
- Day 29:PPO:后来语言模型 RLHF 里常用的优化器。
- Learning to summarize from human feedback:把本文方法用到语言模型摘要任务上。
- Training language models to follow instructions with human feedback(InstructGPT):人类偏好 + 奖励模型 + PPO 用于指令跟随。
本笔记依据 2026-10-18 抓取的在线原文撰写,仅为导读与总结。原文:Paul Christiano 等,《Deep Reinforcement Learning from Human Preferences》, NIPS 2017。