一、RLHF 概述:从监督学习到强化学习
大家好,我是这门课的主讲。今天咱们聊聊 RLHF——这个让对话系统真正「开窍」的技术。
先问个问题:你用过 ChatGPT 吧?有没有发现它说话特别「像人」?其实背后就有 RLHF 的功劳。我个人习惯把 RLHF 理解为「给模型请了个教练」——光看书(监督学习)不够,还得有人带着练(强化学习)。
1.1 为什么对话系统需要 RLHF?
传统的对话系统训练,说白了就是「模仿」。你给模型一堆问答对,让它照着学。但问题来了:
- 模仿不等于理解——模型可能背下了答案,但不懂为什么
- 缺乏反馈机制——答错了也没人告诉它错在哪
- 无法优化长期目标——比如让对话更安全、更有帮助
我在项目中遇到过这样的情况:一个用纯监督学习训练的客服机器人,能完美回答「怎么退款」,但用户问「我心情不好想骂人」时,它直接回复「请拨打客服热线」。嗯,这显然不是我们想要的。
核心观点:监督学习只能让模型「知道」答案,而 RLHF 能让模型「学会」如何更好地回答问题。
1.2 从监督学习到强化学习
咱们简单捋一下这两者的区别:
| 对比维度 | 监督学习 | 强化学习 |
|---|---|---|
| 学习方式 | 给定输入-输出对 | 通过试错+奖励信号 |
| 反馈信号 | 明确的标签 | 延迟的、稀疏的奖励 |
| 优化目标 | 最小化预测误差 | 最大化累积奖励 |
| 适用场景 | 有标准答案的任务 | 需要策略探索的任务 |
你想想看,对话系统其实天然适合强化学习——因为「好回答」没有唯一标准。同一个问题,可以有很多种好的回答方式。监督学习非要给个「标准答案」,反而把模型教死了。
1.3 RLHF 的三阶段流程
RLHF 不是一步到位的,它分三个阶段。我画了张图,方便你理解整体流程:
阶段一:SFT(监督微调)
这是打基础的一步。我们先用人工标注的高质量问答对,对预训练模型做微调。说白了,就是让模型先学会「说人话」。
我记得刚开始做 SFT 时,踩过一个坑:数据质量比数量重要得多。1000 条精心标注的数据,效果可能好过 10 万条随便扒来的数据。
小技巧:SFT 阶段不要训太久,否则模型会过拟合到标注数据上,失去多样性。我一般控制在 1-3 个 epoch。
阶段二:Reward Model(奖励模型)
这一步很有意思。我们让人类标注员对模型的多个输出做排序——比如「哪个回答更好?」。然后训练一个奖励模型,学会预测人类的偏好。
说白了,奖励模型就是一个「打分器」。它不生成回答,只负责给回答打分。分数越高,说明越符合人类偏好。
关键点:奖励模型的训练数据是「对比对」而不是「绝对分」。比如让标注员选「A 比 B 好」,而不是给 A 打 8 分、B 打 6 分。这样更符合人类的判断习惯。
阶段三:PPO(近端策略优化)
终于到了最核心的一步。我们用奖励模型作为「裁判」,用 PPO 算法来更新 SFT 模型的参数。目标是让模型生成的回答,能获得更高的奖励分数。
PPO 这个名字听起来吓人,其实核心思想很简单:
- 探索——让模型尝试不同的回答方式
- 利用——保留那些得分高的回答模式
- 约束——不要一次更新太多,防止模型「学歪了」
我曾经在 PPO 训练时遇到过模型「作弊」的情况——它学会了生成冗长的回答来刷分,因为奖励模型对长回答有偏好。嗯,这提醒我们:奖励模型的质量,直接决定了 RLHF 的成败。
避坑指南:PPO 训练时一定要加 KL 散度惩罚,防止模型偏离 SFT 太远。我曾经因为忘了加这个,结果模型输出变得乱七八糟,花了三天才调回来。
小结
RLHF 的三阶段,其实是一个「先学会、再评判、再优化」的过程。SFT 让模型学会基础对话,Reward Model 教会模型什么是「好回答」,PPO 则让模型朝着「好回答」的方向不断进化。
下一章我们会深入 SFT 的细节,包括数据构建、训练技巧、以及我在实际项目中踩过的坑。敬请期待。