跳到正文
06 强化学习专家本域第 6 篇

基于人类反馈的强化学习

当「好答案」写不成公式时,就让人类来当那个奖励函数

定义

基于人类反馈的强化学习(RLHF)面向奖励难以手写的任务:先用人类对多个候选输出的偏好训练一个奖励模型,再把该奖励模型当作可微的代理奖励,通过强化学习(通常是 PPO)微调生成模型。它是当前把大语言模型对齐到人类偏好的主流方法之一,核心思想是用「比较」取代「打分」,因为比较更省力、也更一致。

直观理解

教一个孩子「写得好」,你很难给出一个精确的分数公式,但你很容易在两篇作文里说「这篇更好」。RLHF 做的就是把这个更省力的反馈收集起来,训一个模型去模仿你的偏好,再用它当自动评分器。人类只负责比较,机器负责打分。它真正的风险也在这里:机器学到的是「你以为你喜欢的」,一旦其中出现偏差,模型就会朝着偏差的方向一路优化。

图 1

RLHF 的三段流水线:监督微调打底,用人类偏好训练奖励模型,再用 PPO 在「奖励 + KL 约束」下优化策略;SFT 模型同时充当策略起点与参考策略

图 2

对齐各阶段模型在人类偏好对比中的胜率(量级参考 InstructGPT 公开结果:RLHF 之后较小的模型,在多数比较中反而胜过未对齐的大模型)

工作原理

  1. 01

    第一步 · 监督微调打底

    从预训练模型出发,用高质量示范数据做监督微调,得到一个基本「会听指令」的模型。它既是后续 RL 阶段的起点,也决定了能力的下限——奖励模型只能引导,不能凭空造出能力。

  2. 02

    第二步 · 训练奖励模型

    让标注者看同一个问题下的两个回答,选出更好的那个。用这些成对比较数据训练一个打分模型,损失函数奖励「排序正确」(常用 Bradley–Terry 形式)。它的输出分数,就是人类偏好的一个可微近似。

  3. 03

    第三步 · PPO 优化并施加 KL 约束

    语言模型被当作策略,逐 token 生成就是「动作序列」,奖励模型的分数就是回报。用 PPO 最大化「奖励 − β·KL(新策略 ‖ 参考策略)」。KL 项是必需品:它防止模型为了骗过奖励模型而跑偏到语言崩坏的区域。

  4. 04

    第四步 · 简化替代:DPO

    DPO 把「先训奖励模型、再跑 RL」两步合并,直接用偏好对构造一个闭式损失来优化策略,无需采样、也无需 RL 循环,实现更简单、训练更稳。代价是失去了在线探索,效果高度依赖偏好数据的质量与覆盖面。

关键公式

max_π E[ r_θ(x, y) ] − β · KL( π(y | x) ‖ π_ref(y | x) )
RLHF 的目标:最大化奖励模型得分 r_θ,同时用 KL 项惩罚与参考策略 π_ref 的偏离,β 控制二者的相对权重。

应用场景

  • 聊天助手的对齐:让回答更有帮助、更诚实、更少伤害
  • 摘要与翻译:按人类偏好调节文风、忠实度与简洁度
  • 代码助手:用偏好数据引导生成更符合开发者习惯的代码
  • 图像与多模态生成:类似的偏好微调被用于让结果更贴合用户审美

常见误区

  • 奖励黑客:模型学到的是「奖励模型的偏好」,而非真实偏好本身。它可能学会谄媚、刻意冗长,或编造看似合理却站不住脚的回答来骗高分。
  • 奖励模型本身有限:它由有限的偏好数据训练而来,在分布外输入、超长对话与复杂推理上的打分并不可靠,上游的偏差会被下游原样放大。
  • KL 与 β 需要权衡:约束太弱,模型会跑偏、语言退化;约束太强,又几乎学不到东西,等于把原策略锁死。这个平衡点往往要按任务反复调。

关键术语

奖励模型
拟合人类偏好、输出可微分数的模型
偏好对
同一输入下的两个候选输出及人类的取舍
KL 约束
惩罚新策略偏离参考策略的幅度,防止退化
奖励黑客
模型钻代理奖励的空子而非真正完成任务

延伸阅读