站长提示:这里有RLHF完整流程的可视化-RLHF 完整训练流程
一、RLHF 总览
RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)是大模型对齐的核心技术之一。
它的核心思想是:用人类偏好数据训练一个奖励模型,再用强化学习让语言模型生成更符合人类偏好的回答。
RLHF 的完整流程通常分为三个阶段:
- 1、SFT:监督微调,让模型学会遵循指令;
- 2、RM:训练奖励模型,学习人类偏好;
- 3、RL:用 PPO 等算法优化策略模型,使其输出获得更高奖励。
一句话总结:RLHF 用人类偏好作为信号,通过奖励模型和强化学习,把语言模型的行为对齐到人类期望。
二、RLHF 的完整流程
1、第一阶段:SFT(Supervised Fine-Tuning)
目标:让预训练模型学会遵循指令、生成合理回答。
数据:
训练:
- 标准监督学习;
- 只对回答部分计算交叉熵损失;
- 通常训练 1–3 个 epoch。
产出:
2、第二阶段:训练奖励模型(Reward Model)
目标:学习人类偏好,给模型输出打分。
数据:
- 对同一个 prompt,让 SFT 模型生成多个回答;
- 人工对这些回答进行排序或打分;
- 常见形式是成对比较:回答 A 和回答 B,哪个更好。
训练:
- 用偏好数据训练一个打分模型;
- 输入是 prompt + response;
- 输出是一个标量奖励。
产出:
3、第三阶段:RL 微调(PPO)
目标:用奖励模型的信号优化策略模型。
流程:
- 策略模型(Actor)生成回答;
- 奖励模型给回答打分;
- 用 PPO 更新策略模型,使其获得更高奖励;
- 同时用 KL 散度约束,防止策略偏离 SFT 模型太远。
产出:
4、完整流程图
$$
\text{预训练模型} \rightarrow \text{SFT} \rightarrow \text{RM} \rightarrow \text{PPO} \rightarrow \text{对齐模型}
$$
三、奖励模型是怎么训练的
1、数据收集
步骤:
第一步,用 SFT 模型对每个 prompt 生成 $K$ 个回答,通常 $K = 4$ 到 9。
第二步,人工对这些回答排序。
第三步,把排序转化为成对比较:
- 如果 A 优于 B,则 $(A, B)$ 是一个偏好对;
- 如果 B 优于 A,则 $(B, A)$ 是一个偏好对。
数据形式:
$$
(x, y_w, y_l)
$$
其中:
- $x$ 是 prompt;
- $y_w$ 是更优的回答(winner);
- $y_l$ 是较差的回答(loser)。
2、模型结构
奖励模型通常:
- 基于 SFT 模型;
- 把最后的语言模型头替换为标量输出头;
- 输入 prompt + response;
- 输出一个标量奖励 $r(x, y)$。
3、损失函数
常用 Bradley-Terry 模型:
$$
P(y_w \succ y_l | x) = \sigma(r(x, y_w) - r(x, y_l))
$$
其中 $\sigma$ 是 sigmoid 函数。
损失函数为负对数似然:
$$
\mathcal{L}_{\text{RM}} = -\mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma(r(x, y_w) - r(x, y_l)) \right]
$$
这个损失鼓励:
- $r(x, y_w)$ 比 $r(x, y_l)$ 大;
- 差值越大,损失越小。
4、训练细节
- 通常只训练 1 个 epoch,避免过拟合;
- 学习率较小;
- 可以用多个奖励模型取平均,减少方差;
- 奖励模型的大小通常和策略模型相当或略小。
5、奖励模型的挑战
- 奖励黑客:策略模型可能找到奖励模型的漏洞,获得高分但质量差;
- 分布偏移:RL 过程中策略模型输出分布变化,奖励模型可能不准;
- 标注噪声:人类偏好不一致,标注有噪声;
- 长度偏差:奖励模型可能偏好更长的回答。
四、PPO 在 RLHF 中扮演什么角色
1、PPO 的基本思想
PPO(Proximal Policy Optimization)是一种策略梯度算法。
核心思想:
在更新策略时,限制新旧策略的差异,避免更新过大导致训练不稳定。
2、RLHF 中的四个模型
PPO 在 RLHF 中通常涉及四个模型:
- Actor(策略模型):要优化的语言模型;
- Critic(价值模型):估计状态价值,用于计算优势;
- Reward Model:给回答打分;
- Reference Model:SFT 模型的副本,用于计算 KL 惩罚。
3、PPO 的优化目标
RLHF 中 PPO 的奖励通常为:
$$
r_{\text{total}}(x, y) = r_{\text{RM}}(x, y) - \beta \cdot \text{KL}(\pi_\theta(y|x) | \pi_{\text{ref}}(y|x))
$$
其中:
- $r_{\text{RM}}$:奖励模型的分数;
- $\text{KL}$:策略模型和参考模型的 KL 散度;
- $\beta$:KL 惩罚系数。
KL 惩罚的作用:
- 防止策略偏离 SFT 模型太远;
- 防止奖励黑客;
- 保持语言质量。
4、PPO 的损失函数
PPO 的 clipped 目标:
$$
\mathcal{L}_{\text{PPO}} = \mathbb{E} \left[ \min\left( \rho_t A_t, \text{clip}(\rho_t, 1-\epsilon, 1+\epsilon) A_t \right) \right]
$$
其中:
- $\rho_t = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)}$ 是概率比;
- $A_t$ 是优势函数;
- $\epsilon$ 是裁剪范围。
5、PPO 的角色
- 优化策略模型:让 Actor 生成更高奖励的回答;
- 约束偏离:用 KL 惩罚保持和 SFT 模型接近;
- 稳定训练:用 clip 限制更新幅度;
- 利用 Critic:估计优势,减少方差。
6、PPO 的流程
第一步,用 Actor 生成回答。
第二步,Reward Model 打分。
第三步,Critic 估计价值。
第四步,计算优势。
第五步,计算 PPO 损失。
第六步,更新 Actor 和 Critic。
第七步,重复。
五、PPO 有哪些不稳定和难调的地方
1、超参数敏感
- 学习率;
- KL 系数 $\beta$;
- clip 范围 $\epsilon$;
- batch size;
- GAE 参数。
这些参数对训练稳定性影响很大,调参困难。
2、奖励黑客
策略模型可能:
- 找到奖励模型的漏洞;
- 生成高分但质量差的回答;
- 比如重复、冗长、讨好式回答。
3、KL 控制困难
- KL 太小:策略偏离太远,语言质量下降;
- KL 太大:策略更新不足,效果有限;
- 需要动态调整 $\beta$。
4、训练不稳定
- 奖励波动大;
- 策略崩溃;
- 梯度爆炸;
- 需要大量实验。
5、计算成本高
- 四个模型同时加载;
- 显存需求大;
- 训练速度慢;
- 通常需要多卡。
6、Critic 难训练
- 价值估计不准;
- 优势估计方差大;
- Critic 和 Actor 需要平衡。
7、样本效率低
- 需要大量采样;
- 每个样本只更新几次;
- 训练时间长。
8、分布式复杂
9、评估困难
- 奖励高不代表质量好;
- 需要人工评估;
- 自动化指标有限。
六、RLHF 的替代和简化方案
1、DPO
- 直接优化偏好,不需要奖励模型和 PPO;
- 更简单、更稳定;
- 效果接近 RLHF。
2、RLAIF
3、GRPO
- 组相对策略优化;
- 不需要 Critic;
- 在 DeepSeek 等模型中使用。
4、其他
七、简单评价这道面试题
1、这道题的价值
- 这是大模型对齐中最核心的一道题;
- 一道题能考察 RLHF 流程、奖励模型、PPO 原理和工程难点;
- 区分度好,初级可能只知道 RLHF 三步,中级能说清 RM 和 PPO,高级能讲清 KL 控制、奖励黑客和替代方案;
- 贴近实战,做对齐必然遇到。
2、这道题的不足
- 题目偏综合,如果没有实际训练经验,容易答得空泛;
- 没有涉及具体超参数和调参经验;
- 对 DPO 等替代方案考察不够;
- 没有涉及分布式实现细节。
3、建议的追问方向
- 奖励模型的损失函数怎么推导?
- KL 惩罚系数怎么调?
- 奖励黑客怎么发现和缓解?
- PPO 和 DPO 的效果差距在哪里?
- 四个模型怎么放显存?
- GRPO 相比 PPO 有什么改进?
4、总体评价
这是一道很好的大模型对齐面试题,适合考察候选人对 RLHF 全流程的理解。它既能考察奖励模型和 PPO 的原理,也能延伸到工程难点和替代方案。如果候选人能把 RLHF 三阶段、奖励模型训练、PPO 角色以及不稳定因素都讲清楚,并能结合实际调参经验,基本可以判断其具备大模型对齐的扎实基础。
评论专区
评论加载中...登录后即可发表评论