RLHF 与 DPO 对齐详解
预训练让模型「懂语言」,对齐让模型「听话、有用、无害」。面试官必问:RLHF 三步分别干嘛?奖励模型怎么训?DPO 为什么不用 RL 也能对齐?
01什么是对齐(Alignment)
大模型基座经过预训练 + SFT 后已能续写,但未必符合人类偏好(可能冗长、有害、不按要求)。对齐就是把模型输出分布调整到「人类真正想要的」:有用(Helpful)、诚实(Honest)、无害(Harmless),即 3H 原则。
02RLHF 经典三步法
- SFT:用人工示范数据让模型学会按指令回答(见 fine-tuning 目录)。
- 奖励模型(RM):收集人类对同一提示多个回答的好坏排序,训出一个给回答打分的模型。
- RL 优化(PPO):用 RM 当奖励,在「拿高分」与「别偏离 SFT 太远」之间优化策略。
03奖励模型怎么训
用成对偏好数据 (x, y_w, y_l)(x 是提示,y_w 好回答、y_l 差回答),训练 RM 输出标量分 r:
L_RM = −E[ log σ( r(x, y_w) − r(x, y_l) ) ]
即让「好回答分 − 差回答分」越大越好。训练好了,RM 就把「人类偏好」压缩成一个可微分数,供 PPO 优化。
04PPO 优化目标
max_π E[ r_φ(x, y) ] − β·KL( π(y|x) ‖ π_ref(y|x) )
第一项用奖励模型给高分,第二项(KL 惩罚)约束新策略不要偏离参考模型 π_ref(通常是 SFT 模型)太远,防止乱套、保持语言能力。
05DPO:不用 RL 也能对齐
DPO 证明:在 KL 约束下的最优策略可以解析写成偏好数据的损失,从而跳过 RM 和 RL,直接用偏好对训练:
L_DPO = −E[ log σ( β·log(π(y_w|x)/π_ref(y_w|x)) − β·log(π(y_l|x)/π_ref(y_l|x)) ) ]
它等价于在训练一个「隐式奖励」r(x,y)=β·log(π(y|x)/π_ref(y|x))。只要让好回答的相对概率高于差回答即可。
RLHF / PPO
需 RM + RL + 四模型,强但重、不稳。
DPO
单阶段、只需策略+参考两模型,稳定好实现,已成主流。
06对齐的关键坑
奖励黑客
模型钻 RM 空子(如变谄媚/冗长)骗高分,而非真变好。需 KL 约束 + 迭代更新 RM。
对齐税
对齐提升安全/有用的同时,可能略微损伤原有能力(基准掉点)。靠数据覆盖与控 KL 缓解。
Constitutional AI
用「宪法原则」让模型自我批评自我修正,减少人工标注依赖(Anthropic 提出)。
07面试速记卡
三步
SFT → 奖励模型 → PPO;RM 学偏好、PPO 用奖励优化。
RM 损失
成对偏好 + Bradley-Terry,让好答案分更高。
PPO 目标
最大化奖励 − β·KL(策略‖参考),防偏离。
DPO 优势
免 RM/RL,单阶段直接训偏好,稳定易实现。