对齐技术(SFT / RLHF / DPO)
预训练赋予大模型强大的语言理解和生成能力,但预训练后的模型只会"续写文本",不会遵循指令,也不具备安全性。对齐(Alignment)是将"原始大模型"变成"有用助手"的关键步骤。本章详细剖析从 SFT 到 RLHF 再到 DPO 的完整对齐技术栈。
预训练赋予大模型强大的语言理解和生成能力,但预训练后的模型只会"续写文本",不会遵循指令,也不具备安全性。对齐(Alignment)是将"原始大模型"变成"有用助手"的关键步骤。本章详细剖析从 SFT 到 RLHF 再到 DPO 的完整对齐技术栈。
建议先阅读第 01 章
为什么需要对齐、监督微调(SFT, Supervised Fine-Tuning)、基于人类反馈的强化学习(RLHF)
技术地基 · 大模型核心原理
文章导航
- 引言
- 1. 为什么需要对齐
- 1.1 预训练模型 vs 对齐后的模型
- 1.2 对齐的三个目标(HHH)
- 2. 监督微调(SFT, Supervised Fine-Tuning)
- 2.1 SFT 的核心思想
- 2.2 SFT 数据的特点
- 2.3 SFT 的训练过程
- 2.4 SFT 模型的能力与局限
- 3. 基于人类反馈的强化学习(RLHF)
- 3.1 RLHF 的完整流程
- 3.2 奖励模型(Reward Model)
- 3.3 PPO 训练
- 3.4 RLHF 的效果
- 3.5 RLHF 的挑战
- 4. DPO:直接偏好优化
- 4.1 DPO 的核心思想
- 4.2 DPO 的数学推导
- 4.3 DPO vs RLHF
- 4.4 DPO 变体
- 5. Constitutional AI(ConAI)
- 5.1 Anthropic 的创新
- 5.2 RLAIF(RL from AI Feedback)
- 6. 对齐技术的演进全景
- 7. 本章小结
- 相关章节
- 延伸阅读
点击图中节点可定位到对应正文。
引言
预训练赋予大模型强大的语言理解和生成能力,但预训练后的模型只会"续写文本",不会遵循指令,也不具备安全性。对齐(Alignment)是将"原始大模型"变成"有用助手"的关键步骤。本章详细剖析从 SFT 到 RLHF 再到 DPO 的完整对齐技术栈。
1. 为什么需要对齐
1.1 预训练模型 vs 对齐后的模型
根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
预训练模型的行为(给定输入"什么是AI?"):
→ 可能续写:"'s influence on modern society..."
→ 或者续写:"Artificial Intelligence is a term coined by..."
→ 或者输出完全无关的文本根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
对齐后的模型:
→ "人工智能(AI)是指让计算机系统模拟人类智能行为的技术..."
→ 结构化、有帮助、安全的回答1.2 对齐的三个目标(HHH)
| 目标 | 含义 | 示例 |
|---|---|---|
| Helpful(有帮助) | 准确理解并满足用户需求 | 给出详细、有用的回答 |
| Honest(诚实) | 不编造事实,承认不确定性 | "我不确定"比瞎猜更好 |
| Harmless(无害) | 不生成有害、歧视、危险内容 | 拒绝教授制作炸弹的方法 |
2. 监督微调(SFT, Supervised Fine-Tuning)
2.1 SFT 的核心思想
用高质量的“指令-回答”对来微调预训练模型,让它学会遵循指令:
SFT 训练数据格式:
[指令] 请解释什么是机器学习
[回答] 机器学习是人工智能的一个分支,它使计算机系统能够从数据中学习和改进,而不需要显式编程...
[指令] 写一首关于春天的五言绝句
[回答] 春风拂柳绿,细雨润花红。燕子归来早,人间四月中。
[指令] 将以下 Python 代码转换为 JavaScript
[回答] ...2.2 SFT 数据的特点
| 维度 | 说明 |
|---|---|
| 数据量 | 通常 10K-100K 条(远小于预训练的万亿 token) |
| 质量要求 | 极高——每条数据都由人类专家精心编写 |
| 多样性 | 覆盖问答、创作、编程、分析等多种任务类型 |
| 来源 | 人工编写、GPT-4 辅助生成、社区贡献 |
2.3 SFT 的训练过程
根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
预训练模型 → SFT 微调 → SFT 模型2.4 SFT 模型的能力与局限
SFT 让模型学会:
- 遵循指令回答问题
- 按照要求的格式输出
- 基本的对话交互
SFT 的局限:
- 模型学会了"好的回答"的格式,但没有学会判断回答质量的相对好坏
- 可能仍然生成不安全内容(训练数据中有正反例)
- 容易产生"幻觉"——看起来很自信但事实错误
→ 需要更精细的对齐方法:RLHF
3. 基于人类反馈的强化学习(RLHF)
3.1 RLHF 的完整流程
RLHF 是 OpenAI 在 InstructGPT/ChatGPT 中使用的对齐方法:
根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
阶段 1: SFT(监督微调)
预训练模型 → 用高质量指令数据微调 → SFT 模型根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
阶段 2: 奖励模型训练(Reward Model Training)
SFT 模型 → 对同一个 prompt 生成多个回答
人类标注者 → 对回答进行排序(A > B > C > D)
用排序数据 → 训练奖励模型(Reward Model)根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
阶段 3: PPO 强化学习
SFT 模型(策略模型)→ 生成回答
奖励模型 → 对回答打分
PPO 算法 → 更新策略模型以获取更高奖励3.2 奖励模型(Reward Model)
训练数据:
Prompt: "解释什么是区块链"
回答 A: "区块链是一种分布式账本技术..." (人类评为最好)
回答 B: "区块链就是比特币..." (人类评为中等)
回答 C: "区块链是一种数据库..." (人类评为最差)
排序:A > B > C奖励模型的学习目标:
给定 (prompt, response),预测一个标量奖励值
Loss = -log(σ(r_A - r_B)) // 让好的回答得分高于差的回答
其中:
r_A = RM(prompt, response_A) // 回答 A 的奖励分数
r_B = RM(prompt, response_B) // 回答 B 的奖励分数
σ = sigmoid 函数3.3 PPO 训练
使用 Proximal Policy Optimization(PPO)算法更新模型:
目标函数 = 奖励分数 - KL 惩罚
奖励分数:奖励模型对模型输出的评分(越高越好)
KL 惩罚:策略模型与 SFT 模型之间的分布差异(防止偏离太远)
即:让模型生成奖励模型认为好的回答,同时不要偏离 SFT 模型太远3.4 RLHF 的效果
| 能力 | SFT 模型 | RLHF 模型 |
|---|---|---|
| 遵循指令 | 好 | 更好 |
| 安全性 | 中等 | 显著提升 |
| 回答质量 | 好 | 显著更好 |
| 拒绝不当请求 | 差 | 好 |
| 承认不确定性 | 差 | 好 |
3.5 RLHF 的挑战
| 挑战 | 说明 |
|---|---|
| 奖励模型质量 | 如果奖励模型学偏了,策略模型会利用漏洞(Reward Hacking) |
| 训练不稳定 | PPO 对超参数敏感,训练可能崩溃 |
| 标注成本高 | 需要大量人类标注者进行排序 |
| 标注者偏差 | 不同标注者的偏好可能不一致 |
| 计算成本 | 需要同时维护 4 个模型(策略、参考、奖励、价值) |
4. DPO:直接偏好优化
4.1 DPO 的核心思想
2023 年,Rafailov 等人提出了 DPO(Direct Preference Optimization),绕过奖励模型,直接从偏好数据优化策略:
RLHF 路线:偏好数据 → 训练奖励模型 → PPO 优化
DPO 路线:偏好数据 → 直接优化策略模型4.2 DPO 的数学推导
DPO 证明了 RLHF 的最优策略可以用奖励函数的封闭形式表达,而这个奖励函数可以用策略模型本身来表示:
DPO 损失函数:
L_DPO = -log σ(β × (log π(y_w|x)/π_ref(y_w|x) - log π(y_l|x)/π_ref(y_l|x)))
其中:
π = 当前策略模型
π_ref = 参考模型(SFT 模型)
y_w = 人类偏好的好回答
y_l = 人类不偏好的差回答
β = 温度参数
x = 输入的 prompt直觉理解: 增大好回答的相对概率,减小差回答的相对概率,同时不要偏离参考模型太远。
4.3 DPO vs RLHF
| 维度 | RLHF | DPO |
|---|---|---|
| 训练流程 | SFT → 奖励模型 → PPO | SFT → 直接优化 |
| 需要的模型数量 | 4 个 | 2 个(策略 + 参考) |
| 训练稳定性 | 差(PPO 不稳定) | 好(标准交叉熵损失) |
| 计算成本 | 高 | 低(约 RLHF 的一半) |
| 效果 | 好 | 相当或略好 |
| 奖励模型 | 需要 | 不需要 |
| 采用情况 | OpenAI、Anthropic | Mistral、LLaMA 3、Qwen |
4.4 DPO 变体
| 方法 | 创新点 |
|---|---|
| IPO (Identity Preference Optimization) | 正则化的 DPO,更稳定 |
| KTO (Kahneman-Tversky Optimization) | 不需要成对偏好数据,只需"好"/"坏"标签 |
| ORPO (Odds Ratio Preference Optimization) | 将 SFT 和偏好优化合并为一步 |
| SimPO | 无需参考模型的 DPO 变体 |
5. Constitutional AI(ConAI)
5.1 Anthropic 的创新
Anthropic 提出了 Constitutional AI,减少对人类标注的依赖:
传统 RLHF:人类标注者评估每个回答的好坏
Constitutional AI:
1. 模型自己生成回答
2. 模型根据一组"宪法原则"自我批评
3. 模型根据批评修改回答
4. 用修改后的数据训练宪法原则示例:
- "选择最不有害的回答"
- "选择最诚实的回答"
- "避免刻板印象"
- "拒绝提供危险信息"
5.2 RLAIF(RL from AI Feedback)
阶段 1: 模型自我批评和修正(使用宪法原则)
阶段 2: 用 AI 的评判代替人类评判来训练奖励模型
阶段 3: 使用 RLHF 的 PPO 流程进行训练优势: 大幅降低了对人类标注者的依赖,可以规模化扩展。
6. 对齐技术的演进全景
根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
2017: 预训练模型(只能续写文本)
↓
2020: SFT(学会遵循指令)
↓
2022: RLHF(InstructGPT/ChatGPT,学会HHH)
↓
2023: DPO(更简单高效的对齐)
↓
2023: Constitutional AI(减少人类标注依赖)
↓
2024: 推理模型的对齐(o1/o3 用 RL 训练思考过程)
↓
未来: 超级对齐(Superalignment,对齐超越人类的AI)7. 本章小结
| 技术 | 核心机制 | 优势 | 劣势 |
|---|---|---|---|
| SFT | 高质量指令数据微调 | 简单有效 | 无法学习质量排序 |
| RLHF | 奖励模型 + PPO | 效果好 | 复杂、不稳定、昂贵 |
| DPO | 直接偏好优化 | 简单、稳定 | 依赖高质量偏好数据 |
| ConAI | 宪法原则 + 自我修正 | 减少人工标注 | 宪法原则设计困难 |
相关章节
- 预训练原理与工程实践 — 对齐的前置步骤
- 微调技术(Fine-tuning) — SFT 与微调技术的关系
- AI 对齐与安全研究前沿 — 对齐领域的前沿探索
- 提示工程在 Agent 中的应用 — 对齐之后如何引导模型
延伸阅读
- Ouyang, L. et al. (2022). "Training Language Models to Follow Instructions with Human Feedback". NeurIPS
- Rafailov, R. et al. (2023). "Direct Preference Optimization: Your Language Model is Secretly a Reward Model". NeurIPS
- Bai, Y. et al. (2022). "Constitutional AI: Harmlessness from AI Feedback". arXiv:2212.08073
- Ethayarajh, K. et al. (2024). "KTO: Model Alignment as Prospect Theoretic Optimization". ICML