RLHF 详解:用人类反馈强化学习训练更好的语言模型
RLHF(Reinforcement Learning from Human Feedback)是让大语言模型从"能说话"进化到"说好话"的关键技术。ChatGPT 的成功,很大程度上归功于这一训练范式。
为什么需要 RLHF?
传统的语言模型(如 GPT-2)通过预测下一个词来学习,它们的目标是模仿互联网上的文本分布。这带来一个严重问题:模型会学习到互联网上的偏见、有害内容和事实性错误。
传统预训练的局限:
输入: "如何制造..."
模型可能生成: 任何互联网上出现过的内容(包括有害的)
问题:模型只知道"人们会怎么写",不知道"人们希望它怎么写"
RLHF 的核心思想:让人类告诉模型哪些回答是好的,哪些是差的,然后用强化学习让模型学会生成人类偏好的回答。
RLHF 的三个阶段
阶段一:监督微调(SFT)
首先用高质量的人工标注数据对预训练模型进行微调:
SFT 阶段:
数据:人工编写的 (指令, 优质回答) 对
("解释量子力学", "量子力学是研究微观粒子行为的物理学分支...")
目标:让模型学会"按照指令回答问题"的格式
输出:SFT 模型(已经能生成像样的回答)
阶段二:训练奖励模型(Reward Model)
收集人类对模型回答的偏好排序数据,训练一个"打分器":
奖励模型训练数据:
对于同一个问题,让模型生成多个回答,人类标注员排序:
问题:"Python 和 Java 哪个更适合初学者?"
回答 A(排名 1):"Python 语法简洁,适合入门..."
回答 B(排名 2):"两者各有优势..."
回答 C(排名 3):"Java 更好因为..."(较偏颇)
奖励模型学习:给每个 (问题, 回答) 对输出一个分数
阶段三:PPO 强化学习优化
用奖励模型的分数作为奖励信号,通过 PPO 算法优化语言模型:
PPO 优化循环:
1. 模型生成一个回答
2. 奖励模型给这个回答打分(作为奖励)
3. PPO 算法调整模型参数,让高分回答更容易生成
4. 重复千万次
约束:不要偏离 SFT 模型太远(防止"钻空子")
三阶段流程图
┌─────────────────────────────────────────────────────┐
│ 阶段 1: SFT(监督微调) │
│ 输入:人工标注的优质数据 │
│ 输出:能按指令回答的 SFT 模型 │
└──────────────────────┬──────────────────────────────┘
↓
┌─────────────────────────────────────────────────────┐
│ 阶段 2: 奖励模型训练 │
│ 输入:人类偏好排序数据 │
│ 输出:能给回答打分的奖励模型 │
└──────────────────────┬──────────────────────────────┘
↓
┌─────────────────────────────────────────────────────┐
│ 阶段 3: PPO 强化学习 │
│ 输入:SFT 模型 + 奖励模型 │
│ 输出:对齐后的人类偏好模型 │
└─────────────────────────────────────────────────────┘
RLHF 与 ChatGPT 的关系
OpenAI 在 InstructGPT 和 ChatGPT 中首次大规模应用了 RLHF,验证了这一范式的有效性:
| 模型 | 训练方式 | 效果 |
|---|---|---|
| GPT-3 | 纯预训练 | 能写文章但经常"胡说八道" |
| InstructGPT | 预训练 + RLHF | 能遵循指令,减少有害输出 |
| ChatGPT | 预训练 + RLHF + 对话优化 | 流畅对话,符合人类期望 |
RLHF 的局限性
- 标注成本高:需要大量高质量的人类偏好数据
- 奖励模型偏差:奖励模型本身可能有偏见,模型会"钻空子"获得高分
- 分布漂移:PPO 训练过程中,生成的文本分布可能偏离训练数据
- 训练不稳定:PPO 需要精细的超参数调优
总结
RLHF 通过"让人类当老师"的方式,解决了语言模型"能力很强但不听话"的问题。它的三阶段流程——监督微调建立基础能力、奖励模型学习人类偏好、PPO 强化学习优化策略——已经成为训练对齐语言模型的标准范式。