请说说RLHF (Reinforcement Learning from Human Feedback) 的三个阶段?
RLHF (Reinforcement Learning from Human Feedback,基于人类反馈的强化学习) 是训练像 ChatGPT、Claude 或 Llama 2-Chat 这样的大语言模型的核心技术,目的是让模型不仅仅会“续写文字”,还能理解人类指令,做到有用(Helpful)、诚实(Honest)和无害(Harmless)。
RLHF 的标准流程通常分为以下三个阶段:
第一阶段:有监督微调 (Supervised Fine-Tuning, SFT)
——“老师示范,学生模仿”
- 目标:让预训练好的基座模型(Base Model)学会如何以对话或指令跟随的形式回答问题。
- 数据:由人类专家编写的高质量问答对(Prompt + Answer)。
- 过程:
- 从提示库中抽取问题。
- 人类标注员写出标准的、高质量的回答。
- 使用这些数据对基座模型进行微调。
- 结果:得到了一个能够基本听懂指令并流畅回答的模型(SFT模型),但它的回答质量可能还不够稳定,也不一定完全符合人类偏好。
第二阶段:奖励模型训练 (Reward Model Training, RM)
——“学会当裁判,理解人类喜好”
- 目标:训练一个独立的模型(裁判),让它能够像人类一样判断哪个回答更好。
- 数据:排序/比较数据。
- 过程:
- 使用第一阶段的 SFT 模型,对同一个问题生成多个不同的回答(例如生成 A、B、C、D 四个回答)。
- 人类标注员不对回答直接写具体的字,而是对这几个回答进行排名(例如:A > C > B > D)。人类更擅长比较好坏,而不是给出一个绝对的分数。
- 利用这些排名数据训练“奖励模型”(Reward Model)。该模型的输入是“问题+回答”,输出是一个标量分数(Score)。
- 结果:得到了一个能给模型回答打分的“奖励模型”。它代表了人类的价值观和偏好。
第三阶段:基于近端策略优化的强化学习 (Reinforcement Learning via PPO)
——“刷题考试,追求高分”
- 目标:利用奖励模型作为反馈信号,通过强化学习算法优化 SFT 模型,使其生成的回答能获得更高的分数。
- 数据:主要是大量的 Prompt(不需要人类再写回答了)。
- 过程:
- 模型(此时称为 Policy)接收一个问题并生成回答。
- 奖励模型(RM) 给这个回答打分。
- 使用强化学习算法(通常是 PPO, Proximal Policy Optimization)根据分数来更新模型的参数。如果分数高,就鼓励模型多生成这类回答;分数低则惩罚。
- 注意:为了防止模型为了刷高分而胡言乱语(Reward Hacking),通常会加一个约束(KL Divergence),确保模型不要偏离第一阶段的 SFT 模型太远。
- 结果:最终的 RLHF 模型。它既保留了语言能力,又最大程度地对齐了人类的偏好。
总结(通俗类比)
- SFT (有监督微调):像是在上课,老师(人类)给题目并写出标准答案,学生(模型)照着背诵和模仿。
- RM (奖励模型):像是训练了一个助教,助教通过观察老师的评分标准,学会了怎么给卷子打分。
- RL (强化学习):学生开始大量做模拟题,助教负责批改打分。学生根据分数不断调整自己的答题策略,最终学会了如何考出高分(即最符合人类心意的回答)。