外观
对齐:RLHF 与 DPO
对齐(alignment)是指通过人类反馈或偏好信号,调整语言模型的行为,使其符合人类的价值观、意图与安全要求。预训练和 SFT 解决"模型会不会",对齐解决"模型该不该"——它把"预测下一个词"的统计模型,调教成"有帮助、诚实、不伤人"的助手。
对齐的经典目标:HHH
业界常用的对齐目标框架是 helpful(有帮助)、honest(诚实)、harmless(无害)。三者经常互相拉扯:过于安全会显得死板(伤帮助性),过于讨好用户会编造答案(伤诚实性),真实的对齐工程就是在这三个目标之间做平衡。这三个词也是安全与风险一页讨论安全对齐时的出发点。
对齐的完整流水线建立在微调之上——它通常以 SFT 为第一步,再叠加偏好优化。本文按时间线展开:先讲开创性的 RLHF(基于人类反馈的强化学习),再讲无需强化学习的 DPO(直接偏好优化),最后是新方法与开放问题。
一、从 SFT 到 RLHF:InstructGPT 的三步
2022 年 OpenAI 的 InstructGPT 论文(Training language models to follow instructions with human feedback)第一次系统证明了"人类反馈"能把 GPT-3 这样"只会续写"的模型变成"会听话"的模型,其 175B 模型在人类评测中以显著优势击败原版 GPT-3。ChatGPT 正是这一技术的产品化,详见ChatGPT 与对话模型。
RLHF 一共三步:SFT → 训练奖励模型 → PPO 强化学习。
1. 第一步:SFT,让模型先学会模仿
用人类写的高质量指令-回答对(约 1.3 万条示范)对预训练模型做监督微调。这一步让模型学会"回答指令"的格式与基本行为,但此时模型仍会输出有害内容、编造事实——它只是"模仿得不错"。
2. 第二步:训练奖励模型(Reward Model, RM)
奖励模型是一个"打分器",负责给"同一个指令下的不同回答"排序打分,把人类偏好变成可优化的标量信号。
训练数据:标注员对同一个指令的多个回答两两比较("哪个更好"),形成偏好对(win/lose)。奖励模型用这些偏好对训练:
text
输入:指令 x 与候选回答 y
输出:标量分数 r(x, y)
训练目标(Bradley-Terry 模型):
让"被人类选中的回答 y_w 的分数"高于"落选的回答 y_l 的分数":
L_RM = - E_{(x, y_w, y_l) ~ D} [ log σ( r(x, y_w) - r(x, y_l) ) ]
直观理解:分数差越大越符合人类排序,损失越小。奖励模型通常从 SFT 模型初始化,把最后输出层换成一个标量回归头。它的质量直接决定 RLHF 的上限——奖励模型打分准,策略模型才学得对;奖励模型有漏洞,PPO 就会去"钻空子"(奖励黑客,reward hacking)。
3. 第三步:PPO 强化学习
用奖励模型作为环境反馈,通过近端策略优化(Proximal Policy Optimization, PPO)更新策略模型 π_θ,让它的回答"在奖励模型眼里分数更高":
text
目标函数:
max E_{y ~ π_θ(·|x)} [ r(x, y) ]
└ 想让模型输出获得高奖励的回答
但要加两个约束,否则会失控:
① KL 惩罚:奖励高 ≠ 回答好
max E [ r(x, y) ] - β · KL( π_θ(y|x) ‖ π_SFT(y|x) )
└ 不允许偏离 SFT 模型太远
超参 β 控制"听话程度":β 越大,越保守,越像 SFT 模型
② 混入原始预训练数据,防止"只会讨好 RM":
+ γ · E_{x ~ 预训练分布} [ log π_θ(x) ]PPO 的本质是在线策略:每轮更新都从当前模型采样回答 → 送进 RM 打分 → 用奖励做梯度更新。这也意味着 RLHF 训练非常昂贵——要反复跑推理采样和策略更新,工程复杂度远高于 SFT。
KL 惩罚是对齐的灵魂
没有 KL 惩罚,PPO 会迅速"过拟合奖励模型":模型学会输出 RM 偏好的套话、堆砌关键词,甚至语法崩坏但分数极高的句子。KL 惩罚把策略模型"拴在"SFT 模型附近,只允许在人类偏好方向上做有限偏移。这是 RLHF 防止奖励黑客的第一道闸。
InstructGPT 三步总结
| 步骤 | 数据/信号 | 模型 | 作用 |
|---|---|---|---|
| SFT | 1.3 万条人类示范 | 策略模型 π_SFT | 学会基本指令遵循 |
| RM | 3.3 万条人类偏好比较 | 奖励模型 r(x,y) | 把偏好变成分数 |
| PPO | RM 反馈 + KL 惩罚 | 策略模型 π_RL | 在偏好方向上优化行为 |
4. RLHF 的四个工程挑战
RLHF 效果上限高,但工程上极其磨人,四个主要挑战是:
| 挑战 | 表现 | 应对 |
|---|---|---|
| 奖励黑客(reward hacking) | 模型钻 RM 的漏洞,输出"分高但烂"的回答 | KL 惩罚、定期换 RM、红队检测 |
| 奖励模型过拟合 | RM 在训练偏好上饱和,失去区分度 | RM 数据多样化、持续补困难样本 |
| PPO 训练不稳定 | 采样随机性导致策略波动、训练崩溃 | 控 KL 系数、梯度裁剪、小步更新 |
| 在线采样成本 | 每轮更新都要跑策略采样 + RM 打分 | 算力预算高、训练周期长 |
这也是"RLHF 又贵又难"成为行业共识的原因:许多团队日常对齐用 DPO,把 PPO 留给真正需要在线探索的场景。
二、DPO:没有强化学习的偏好优化
RLHF 效果好,但工程上很重:要训练 RM、要写 PPO 循环、要调 KL 系数、要处理采样与更新之间的稳定性问题。2023 年 Rafailov 等人的 DPO 论文(Direct Preference Optimization: Your Language Model is Secretly a Reward Model)给出了一个"出乎意料的简洁"的替代方案。
1. 核心洞见:最优策略里"藏"着奖励模型
DPO 的关键观察是数学上的:RLHF 的 KL 约束优化问题有闭式解——最优策略 π* 与隐含奖励函数 r* 之间存在一一对应关系:
text
r*(x, y) = β · log( π*(y|x) / π_ref(y|x) ) + 常数
└ 最优策略的对数比值,就等价于一个奖励函数也就是说:"学一个奖励函数"和"学一个偏好对齐的策略"是同一件事的两面。既然两者等价,就不用显式训练 RM,直接把偏好数据喂给策略模型做"隐式奖励"的最大化。
2. DPO 损失
DPO 把偏好数据 (x, y_w, y_l) 直接写进损失函数,让策略模型 π_θ 对"被偏好的回答 y_w"的隐式奖励高于"落选回答 y_l":
text
L_DPO(π_θ; π_ref) = - E_{(x, y_w, y_l) ~ D} [ log σ( β · log( π_θ(y_w|x) / π_ref(y_w|x) )
- β · log( π_θ(y_l|x) / π_ref(y_l|x) ) ) ]
其中:
π_ref 是冻结的参考策略(通常是 SFT 模型)
β 是温度系数,控制对偏好的"信任程度"
σ 是 sigmoid 函数直观理解:如果当前模型给 y_w 的(相对 π_ref 的)概率提升得比 y_l 多,损失就小。整个训练就是普通的交叉熵梯度下降——没有 RM,没有 PPO,没有在线采样。
3. DPO 为什么能行:三个关键
- 隐式奖励:策略本身的概率比就编码了偏好信息,不必显式建模 RM。
- 离线训练:偏好对是固定数据集,训练稳定、好复现,显存和算力需求远低于 PPO。
- 不偏离参考策略:损失函数天然惩罚"背离 π_ref 太远",KL 约束被吸收进了目标函数,无需手动调 β 之外的复杂度。
DPO 的实际地位
DPO 已成为开源社区事实标准的对齐手段之一(如部分 Llama、Qwen、Mistral 系列的对齐报告),因为它简单、稳定、门槛低。但要理解它的边界:它假定偏好数据是"静态可信任的",无法像 PPO 那样在训练中通过在线采样发现新情况;在需要"探索式改进"的复杂场景(如推理能力强化)仍要回到 RL。
4. DPO 的实践注意事项
DPO 简单,但并非免调:偏好对的质量直接决定上限(标注噪声大时先清洗);温度系数 β 影响对齐强度,过大会过度偏离参考策略;参考模型 π_ref 通常用 SFT 模型,后续迭代需保持一致。这些细节的工程处理见微调实战:LoRA 全流程。
5. RLHF vs DPO 对比
| 维度 | RLHF(PPO 路线) | DPO |
|---|---|---|
| 是否需要奖励模型 | 需要,单独训练 RM | 不需要,策略即隐式奖励 |
| 训练方式 | 在线采样 + 强化学习 | 离线批量梯度下降 |
| 工程复杂度 | 高(PPO 循环、KL 调参、稳定性) | 低(标准交叉熵训练) |
| 显存/算力 | 高(额外 RM + 策略采样) | 低 |
| 可复现性 | 较差(采样随机性) | 好(确定性数据) |
| 探索能力 | 有(在线采样) | 无(固定偏好对) |
| 适用阶段 | 追求上限、数据在训练中演化 | 快速对齐、开源社区基线 |
三、更多对齐方法:RLAIF、宪法 AI、KTO、ORPO
1. 宪法 AI 与 RLAIF:让 AI 评价 AI
RLHF 的瓶颈是人类标注昂贵且不稳定(不同标注员的标准不同、有害样本还得人去看)。Anthropic 的宪法 AI(2022)提出:把一组人工撰写的**原则清单(宪法)**输入模型,让模型自己对回答进行"批评-修订-再批评"的自我修订,生成无害偏好对,再做偏好优化——人类只写原则,不逐条标注。用 AI 反馈替代人类反馈的版本称为 RLAIF(RL from AI Feedback)。
text
宪法 AI 的自我修订循环(一次示例):
模型原始回答 A0(可能有害)
① 批评:根据原则"不得提供危害他人的信息"指出 A0 的问题
② 修订:基于批评改写,得到 A1
③ 重复:A1 再批评再修订 → A2(通常已无害)
把 (原始 A0, 修订后 A2) 作为"坏/好"偏好对加入训练数据RLAIF 的实验结论是:AI 反馈在多数指标上与人类反馈效果接近(Anthropic 2023),这让对齐可以规模化——这也是后来各类"模型自我对齐"方法的共同起点。
2. KTO:只要"好/坏",不要成对比较
RLHF 和 DPO 都依赖成对偏好(哪个更好)。KTO(2024)观察到:真实产品里我们更容易得到的是单条反馈——"这条回答不错"或"这条回答很糟"(点赞/踩、审核通过/拒绝)。KTO 把前景理论(prospect theory,诺贝尔经济学奖得主 Kahneman & Tversky 的理论)引入对齐,直接用二元好/坏信号优化:
text
KTO 直觉:
- 对"好的回答":提升其概率(但避免过度奖励,符合前景理论中"获益递减")
- 对"坏的回答":惩罚其概率
不需要知道"它比谁好",只需要"它本身好/坏"3. ORPO:SFT 和偏好优化一把梭
ORPO(2024)的口号是"没有参考模型的单调偏好优化":它把"模仿好回答"与"偏好坏回答"合并进同一个损失,连参考模型 π_ref 都不需要,训练管线退化为一次普通微调。代价是理论上少了参考分布带来的稳定锚点,效果与 DPO 各有胜负。
对齐方法全景
| 方法 | 年份 | 信号来源 | 需要 RM | 需要 RL | 一句话 |
|---|---|---|---|---|---|
| RLHF (PPO) | 2022 | 人类成对偏好 | 是 | 是 | 经典三阶段,上限高、成本高 |
| 宪法 AI / RLAIF | 2022/2023 | AI 反馈 + 原则 | 否(RM 训练可省) | 可选 | 用原则替代人工标注 |
| DPO | 2023 | 人类/AI 成对偏好 | 否 | 否 | 策略即奖励,简单稳定 |
| KTO | 2024 | 单条好/坏信号 | 否 | 否 | 适配点赞/踩的真实数据 |
| ORPO | 2024 | 成对偏好 | 否 | 否 | 连参考模型都省掉 |
四、对齐的开放问题
1. 对齐税(alignment tax)
对齐训练(RLHF/DPO 及安全微调)有时会让模型在部分能力上变差——比如过度拒答导致工具使用率下降、安全约束让模型在边缘题上"过于谨慎"。这种"为了对齐牺牲的部分能力"被称为对齐税。它不是必然的:好的对齐工程(如用 RLAIF 规模化偏好、精调 KL 系数)可以把税降到很低,但"安全与能力此消彼长"的张力长期存在。这也是评测与基准中"对齐前后要同时看能力与安全两组指标"的原因。
2. 弱到强泛化(weak-to-strong generalization)
OpenAI 2023 年的论文提出一个面向"超级对齐"的学术问题:当未来模型强到人类无法可靠判断其输出质量时,我们还能不能对齐它? 实验发现:用"弱模型(人类水平)"的标签去监督"强模型",强模型往往比弱监督者本身表现得更好(弱到强泛化)——但它并未完全继承弱监督者的全部信号。这提示"用 AI 辅助监督 AI"可能是唯一可行路线,也是 RLAIF 长期化的理论注脚。
3. 对齐评测本身很难
对齐效果最终要靠评测落地。与能力评测不同,对齐评测的对象是"行为是否符合预期",手段也更复合:
| 评测手段 | 测什么 |
|---|---|
| 人工盲评胜率 | 对齐前后回答的"更好"比例(InstructGPT 的核心指标) |
| HHH 分级打分 | 按 helpful / honest / harmless 分维度打分 |
| 安全红队 | 越狱成功率、违规率(见安全与风险) |
| 偏好一致性 | 模型行为与标注员偏好的吻合度 |
| 拒答率监控 | 该拒绝的拒绝率、不该拒绝的误拒率(对齐税的量度) |
对齐不是一次性训练,而是"训练-评测-红队-再训练"的持续循环;具体工程方法见评估实战。记住一条原则:没有评测支撑的对齐都是自我感觉良好。
延伸阅读
- 微调:SFT 与参数高效微调——对齐的第一步 SFT 的完整展开
- 安全与风险——对齐的"无害"目标如何落地为风险治理
- 评测与基准——对齐效果靠什么验证
- ChatGPT 与对话模型——InstructGPT 技术的产品化案例
- 经典论文精读——InstructGPT 与 DPO 论文的精读指南
- 微调实战:LoRA 全流程——SFT 到对齐的实操路径
参考资料
- Ouyang et al. Training language models to follow instructions with human feedback(InstructGPT, 2022) —— RLHF 三阶段的原始论文
- Rafailov et al. Direct Preference Optimization: Your Language Model is Secretly a Reward Model(NeurIPS 2023) —— DPO 原始论文
- Bai et al. Constitutional AI: Harmlessness from AI Feedback(2022) —— 宪法 AI,用原则替代逐条标注
- Lee et al. RLAIF: Scaling Reinforcement Learning from Human Feedback with AI Feedback(2023) —— AI 反馈与人类反馈效果对比
- Ethayarajh et al. KTO: Model Alignment as Prospect Theoretic Optimization(ICML 2024) —— 基于单条好/坏信号的对齐
- Hong et al. ORPO: Monolithic Preference Optimization without Reference Model(2024) —— 免参考模型的对齐方法
- Burns et al. Weak-to-Strong Generalization: Eliciting Strong Capabilities With Weak Supervision(2023) —— 弱到强泛化
- Schulman et al. Proximal Policy Optimization Algorithms(2017) —— PPO 算法原始论文