核心要点
标准回答
RLHF(基于人类反馈的强化学习)的目标是把「人类偏好」注入模型,让它的回答更有用、更符合人意。标准流程分三阶段。
阶段一:监督微调(SFT)
- 数据:人工撰写的高质量「示范数据」,即 prompt 配上人工写的理想回答。
- 做法:在预训练模型上用这些数据做标准的监督学习(最大似然),让模型学会按指令、按期望风格作答。
- 产出:一个初始策略模型 π_SFT,它已经会对话,但还没有被细粒度地按偏好对齐。这个模型后面还会被当作 PPO 的参考模型。
阶段二:训练奖励模型(Reward Model)
- 数据:对同一个 prompt,用 SFT 模型采样出多个回答,请标注员排序(哪个更好),得到成对/排序的偏好数据。
- 做法:训练一个奖励模型 RM,输入「prompt + 回答」,输出一个标量分数;用排序损失(如 Bradley-Terry,让被偏好的回答得分高于被拒绝的)训练。
- 目的:把昂贵、离散的人类偏好,压缩成一个可以对任意回答自动打分的连续奖励函数,供下一阶段大规模使用。
阶段三:用 PPO 做强化学习
- 循环:策略模型对 prompt 生成回答 → 把回答喂给 RM 得到奖励分数 → 用 PPO 这个策略梯度算法,按奖励更新策略,让高分回答的生成概率上升。
- KL 惩罚:在奖励里减去当前策略与 SFT 参考模型之间的 KL 散度惩罚。这是关键约束——防止模型为了骗取高分而钻 RM 漏洞(reward hacking)、生成怪异文本,或偏离 SFT 太远导致语言能力和多样性坍塌。
- 产出:最终对齐后的策略模型。
整体串联:SFT 提供会说话的起点和参考锚,RM 把人类偏好变成可计算的奖励,PPO 在 RM 奖励和 KL 约束的拉扯下,把策略推向「人类更喜欢、又不跑偏」的方向。
常见误区
⚠️ 常见踩坑
一是误以为 RLHF 只是「再做一次监督微调」——SFT 是模仿示范,而 RM+PPO 是用奖励信号做强化学习,能利用「排序/比较」这类更易标注的偏好信号,去优化没有标准答案的开放回答。二是忽视 KL 惩罚的作用——去掉它模型会 reward hacking,专挑 RM 打高分的套路输出、语言退化。三是把奖励模型当成「真理」——RM 只是人类偏好的有噪声近似,过度优化它会放大其偏差,所以要早停、控制 KL,并定期用人评校准。
追问
追问 1:PPO 阶段为什么必须保留一个参考模型并加 KL 惩罚?
参考模型一般就是 SFT 模型,被冻结。KL 惩罚衡量当前策略偏离它的程度,并从奖励里扣除。没有这个约束,策略会一味追逐 RM 高分、钻奖励模型的漏洞(reward hacking),输出重复、谄媚或语义退化的文本,丢失预训练学到的语言能力。KL 把模型「拴」在合理分布附近,在提升偏好得分和保持原有能力之间取得平衡。
追问 2:奖励模型的数据为什么用「排序」而不是直接打分?
让人对单条回答打绝对分数主观、不一致、跨标注员难校准;而「A 和 B 哪个更好」这种相对比较对人来说更容易、更稳定可靠。RM 用排序/成对偏好损失(如 Bradley-Terry)学习,把相对偏好转化为相对分数,既降低标注难度,又减少了绝对分尺度漂移带来的噪声。
追问 3:DPO 相比这套 RLHF 流程做了什么简化?
DPO(直接偏好优化)跳过了显式训练奖励模型和 PPO 在线强化学习这两步,用一个闭式损失直接在偏好数据上优化策略,相当于把「RM + PPO」隐式合并。它仍需要一份参考模型来约束(类似 KL 的作用),但去掉了 RM 训练、在线采样和 PPO 调参,流程更短、更稳、更省算力,代价是可控性和上限通常略逊于精调好的完整 RLHF。
🔗 相似问题
同一考点的不同问法,面试官可能换着问,一起刷更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习