Anthropic 工程博客 · 中文学习笔记Anthropic 工程笔记

    基于人类偏好的深度强化学习:不写奖励函数,让人比较两段录像

    Deep Reinforcement Learning from Human Preferences

    Day 30 · P5 原论文发布:2017-06-12 发表:NIPS 2017 阅读约 8 分钟 原论文链接 ↗ 30u30 单元 ↗
    作者
    Paul Christiano, Jan Leike, Tom B. Brown, Miljan Martic, Shane Legg, Dario Amodei
    依据版本
    arXiv v4
    30u30 单元
    30_RLHF(讲解、实现与练习请到原仓库查看,本站不翻译、不改编,见导读)
    ⚠️ arXiv 首版 2017-06-12,现行为第 4 版(2023-02-17)。arXiv 页面未标注会议信息;NeurIPS 会议论文集页面显示发表于 NIPS 2017。本笔记依据 arXiv 现行版本撰写。
    本页目录(15)
    1. 一句话总结
    2. 解决什么问题
    3. 核心思想
    4. 关键公式或机制
    5. 1. 从比较到奖励:Bradley–Terry 模型
    6. 2. 让奖励模型更可靠的几个做法
    7. 3. 优化器
    8. 4. 实验结果(论文所写)
    9. 5. 消融里最值得记住的一条
    10. 图解
    11. 关键原话
    12. 和 Anthropic 笔记的对应
    13. 读的时候要注意
    14. 30u30 对应单元
    15. 延伸阅读

    一句话总结#

    把“定义目标”这件事从写代码变成两两比较:人只回答“这两段里哪段更好”,模型从这些回答里学出奖励函数,强化学习再去优化它,三者同时、异步地进行。

    解决什么问题#

    强化学习需要奖励函数,但很多我们真正想要的行为很难写成代码:“把炒蛋做好”“做一个漂亮的后空翻”。常见的替代办法各有问题:

    • 直接让人打分:人要盯着每一步,成本太高;绝对分数也难以保持一致。
    • 模仿示范:需要人能亲自演示,而有些行为(比如非人形的机器人动作)人示范不出来。
    • 手写一个近似奖励:智能体可能会利用近似里的漏洞,做出“分数高但不是我们想要”的行为。

    本文的目标是:用非专家的、少量的人类反馈,在现代深度强化学习任务上学出想要的行为,并且把人类监督的成本降到可以实用的程度。

    核心思想#

    三个过程同时、异步地运行:

    1. 策略和环境交互,最大化当前奖励模型给出的预测奖励 r̂。
    2. 从策略产生的轨迹里挑出成对的短片段(每段 1–2 秒),做成短视频发给人,人选更好的一段,或表示两段一样好、无法比较。
    3. 奖励模型用这些比较结果做监督学习,不断更新 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 对应单元#

    • 30u30 的 Day 30 单元↗(仓库采用 CC BY-NC-ND 4.0,本笔记没有使用其内容)。
    • 路线位置:30u30 导读 的原理支线 P5(Day 29 → 30)。

    延伸阅读#


    本笔记依据 2026-10-18 抓取的在线原文撰写,仅为导读与总结。原文:Paul Christiano 等,《Deep Reinforcement Learning from Human Preferences》, NIPS 2017。

    本页目录