3.1 对齐问题:为什么仅靠 SFT 不够
SFT 教会模型'说什么',但未教会它'如何选择'。人类偏好本质上是比较性的,偏好优化直接捕获这一信号。
从 SFT 到对齐:缺失的一环
在前两课中,我们通过监督微调(SFT)将 Qwen3-1.7B 基座模型转化为一个能够遵循指令、进行多轮对话的助手。SFT 的核心贡献是教会模型**"说什么"**——给定一个用户输入,模型学会了生成格式正确、内容相关的回复。
但仔细思考会发现,SFT 存在一个根本性的局限:它教会了模型模仿,但没有教会模型选择。
SFT 的本质:最大似然模仿
SFT 的训练目标是最大化参考回复的对数似然:
这意味着模型被训练去复制训练数据中的回复模式。如果训练数据中包含多种风格、多种质量水平的回复,模型会学习所有这些模式的混合分布,而不是学会辨别哪些回复更好。
"说什么" vs "如何选择"
考虑以下用户提示:
"请告诉我如何制作一个简单的网站。"
一个经过 SFT 的模型可能生成多个不同的回复:
制作一个简单网站的步骤:
1. 选择技术栈:对于初学者,推荐使用 HTML + CSS
2. 设置开发环境:安装 VS Code 编辑器
3. 创建 HTML 文件:编写基本的页面结构
4. 添加 CSS 样式:美化页面外观
5. 本地预览:在浏览器中打开 HTML 文件
6. 部署上线:使用 GitHub Pages 免费托管
需要我详细解释其中的某个步骤吗?评价:结构清晰、实用、有适当的后续引导。这是一个好回复。
用 HTML 和 CSS 就行了。评价:虽然技术上不算错误,但过于简短,对用户没有实际帮助。这是一个差回复。
制作网站是一个很好的学习目标!让我从互联网的历史开始讲起...
(接下来是3000字的计算机网络发展史)
...所以综上所述,你可以用 HTML 写一个网站。评价:信息可能准确,但严重偏离用户需求,浪费用户时间。这是一个不好的回复。
最简单的方法是下载这个免费软件:www.fake-website-builder.com,
一键就能生成网站,不需要学习任何代码。评价:可能引导用户访问不安全的网站,存在安全风险。这是一个有害回复。
SFT 模型在面对这些回复时缺乏一个关键能力——在回复 A、B、C、D 之间做出有意识的选择。如果训练数据中四种风格都存在,SFT 后的模型可能随机生成其中任何一种。
人类偏好的比较性本质
偏好是相对的,不是绝对的
人类在评判回复质量时,天然采用比较的方式思考:
- "回复 A 比回复 B 更好" ✓
- "回复 A 的绝对质量是 7.3 分" ✗(很难给出精确的绝对分数)
这种比较性偏好用数学语言描述就是:
表示在给定提示 的条件下,人类偏好(preferred)回复 (winner)胜过回复 (loser)。
Bradley-Terry 偏好模型
为了将这种比较性偏好形式化,我们采用经典的 Bradley-Terry 模型。假设存在一个潜在的奖励函数 ,那么人类偏好 胜过 的概率为:
其中 是 sigmoid 函数 。
Bradley-Terry 模型的直觉:两个回复的奖励差距越大,偏好就越明确。当 时,偏好概率趋近于 1;当差距为零时,偏好概率为 0.5(完全随机)。
这个模型最初来自心理学和体育竞赛排名领域(1952年),被 RLHF 领域借用来建模人类偏好判断。
SFT 的三个核心局限
局限一:无法处理偏好冲突
在真实应用中,模型经常需要在相互冲突的目标之间做出权衡:
| 冲突类型 | 选项 A | 选项 B | 正确选择 |
|---|---|---|---|
| 有用性 vs 安全性 | 详细回答"如何配制危险化学品" | 拒绝并解释原因 | 选项 B |
| 详细性 vs 简洁性 | 5000字的详细教程 | 300字的精要指南 | 取决于上下文 |
| 准确性 vs 可理解性 | 充满术语的专业回答 | 通俗易懂但略有简化 | 取决于用户 |
| 自信 vs 诚实 | "答案一定是 X" | "我不确定,但可能是 X,因为..." | 通常选项 B |
SFT 无法显式地教模型如何在这些冲突中做出正确的权衡——它只能从训练数据中隐式地学习,但不同标注者可能做出不同选择,导致模型行为不一致。
局限二:安全对齐的困境
安全对齐是一个特别棘手的问题:
SFT 安全困境:如果训练数据中包含大量拒绝回复("对不起,我不能回答这个问题"),模型可能变得过度拒绝(over-refusal),对无害的请求也拒绝回答。如果拒绝回复太少,模型又可能在有害请求上生成不安全的内容。SFT 很难找到精确的平衡点。
通过偏好优化,我们可以直接告诉模型:"对于有害请求,拒绝回复比详细回答更好;对于正常请求,有帮助的回复比拒绝更好。" 这种成对比较信号比单纯的模仿信号更精确。
局限三:回复多样性的不可控
SFT 训练后的模型可能产生高度多样的回复(因为训练数据中的回复风格多样),也可能产生极度同质的回复(因为过拟合到训练数据的某种模式)。我们缺乏一个机制来控制模型在多样性和一致性之间的平衡。
偏好优化通过 KL 散度约束(后续将详细介绍)提供了这一控制手段。
经典演示:同一提示下的 SFT 多样性问题
让我们用一个具体例子来直观感受 SFT 模型的局限。对同一个提示进行多次采样:
提示:"量子计算机和传统计算机有什么区别?"
# 多次采样同一个 SFT 模型
prompt = "量子计算机和传统计算机有什么区别?"
for i in range(5):
response = sft_model.generate(
prompt,
temperature=0.7,
do_sample=True
)
print(f"回复 {i+1}: {response}")典型结果可能是:
- 回复 1:准确、结构化的解释(质量:高)
- 回复 2:过于学术化、充满未解释的术语(质量:中)
- 回复 3:包含事实错误——"量子计算机已经比传统计算机快1000倍"(质量:低)
- 回复 4:优质回答但过于冗长(质量:中上)
- 回复 5:简短准确的概述(质量:高)
关键问题在于:SFT 模型对这5个回复的质量差异没有意识。它以类似的概率生成高质量和低质量的回复,因为 SFT 的训练目标只是模仿训练分布,而非最大化回复质量。
从"模仿"到"偏好":解决方案概览
为了解决 SFT 的上述局限,研究者提出了基于人类偏好的对齐方法。核心思路是:
收集偏好数据
对同一个提示,让模型(或人类)生成两个回复 和 ,由人类标注者判断哪个更好。得到三元组数据集 。
训练偏好信号
利用偏好数据训练模型区分好回复和差回复。有两条技术路线:
- RLHF 路线:先训练奖励模型(Reward Model),再用强化学习(PPO)优化策略
- DPO 路线:直接在偏好对上优化策略,跳过奖励模型和 RL 循环
对齐后的模型
经过偏好优化后,模型学会了在生成回复时自动"选择"更好的方向——更有帮助、更安全、更诚实。
偏好数据:对齐的基础设施
偏好数据集的结构
一条偏好数据包含三个部分:
{
"prompt": "请解释什么是机器学习",
"chosen": "机器学习是人工智能的一个分支...[高质量、结构化的回答]",
"rejected": "机器学习就是让机器学习...[低质量、含糊的回答]"
}主要偏好数据集
| 数据集 | 规模 | 标注方式 | 特点 |
|---|---|---|---|
| Anthropic HH-RLHF | 170K | 人类标注 | 早期代表性数据集 |
| UltraFeedback | 64K | GPT-4 标注 | 多维度评分,本课实验使用 |
| Nectar | 183K | GPT-4 排名 | 来自多个模型的回复 |
| Chatbot Arena | 持续增长 | 用户实时投票 | 最真实的人类偏好 |
本课实验数据:我们将使用 HuggingFaceH4/ultrafeedback_binarized 数据集,它包含 64K 条提示,每条提示都有 GPT-4 评分的 chosen 和 rejected 回复对。虽然使用 AI 标注而非人类标注存在一定偏差,但它是目前最广泛使用的开源偏好数据集之一。
本节小结
| 概念 | SFT | 偏好优化 |
|---|---|---|
| 教模型什么 | 说什么(模仿) | 如何选择(判断) |
| 训练信号 | 单个参考回复 | 成对比较(A > B) |
| 损失函数 | 交叉熵(最大似然) | 偏好对上的排名损失 |
| 处理冲突 | 隐式(依赖数据分布) | 显式(偏好信号) |
| 安全对齐 | 难以精确控制 | 可以直接建模偏好 |
在下一节中,我们将从数学上推导 DPO(Direct Preference Optimization)算法——它提供了一种优雅的方式,将偏好学习转化为一个简单的监督学习问题,完全消除了训练奖励模型和运行 RL 循环的需要。