偏好优化(Preference Optimization)总论
1. 为什么 SFT 之后还需要偏好优化
1.1 SFT 的本质局限
监督微调(Supervised Fine-Tuning, SFT)的目标是让模型在给定 prompt 的条件下,生成与参考文本尽可能一致的输出。其优化目标可以写成标准的似然损失:
这一定义决定了 SFT 的三个根本局限:
局限性一:依赖单一参考答案。 SFT 假设存在一个”标准答案”,但实际上对于大多数开放性任务(对话、写作、代码生成),同一 prompt 下可以有多个质量相当但风格迥异的优秀回答。强制模型只拟合某一个回答,会不必要地压缩输出多样性,甚至导致模型表达受限。
局限性二:无法捕捉隐式质量信号。 人类对文本质量的判断不仅取决于”是否正确”,还涉及流畅性、帮助性、安全性、情感适恰性等多个维度。这些维度难以用一条参考文本显式编码,却在人类偏好中存在。SFT 对所有正样本一视同仁,无法区分”哪个更好的”。
局限性三:无法处理矛盾标注。 在实际标注中,不同标注员对同一 prompt 的同一回答可能给出不同评价,或者同一回答在安全性与帮助性之间存在权衡。SFT 的逐点损失无法表达这种偏好结构。
1.2 偏好信号的引入
偏好优化(Preference Optimization)将监督信号从”这个回答好不好”转化为”两个回答中哪个更好”。这一转变看似微小,实则意义深远:
- 比较信息比绝对评价更丰富:判断”回答 A 比回答 B 更好”所需的认知成本低于判断”回答 A 是好是坏”,且前者能提供更稳定的监督信号。
- 自然地消解标注歧义:当存在多个可接受的回答时,pairwise 比较避免了指定单一参考答案的任意性。
- 与人类最终目标对齐:模型部署的最终目标是让人满意,而人满意的本质是比较而非评分。偏好优化直接优化这一目标。
铺垫提示:以上问题设定是 RLHF(Reinforcement Learning from Human Feedback)的核心动机。RLHF 通过偏好数据训练一个奖励模型(reward model),再用强化学习优化策略使模型获得的累积奖励最大化。DPO(Direct Preference Optimization)则绕过了强化学习阶段,直接在偏好数据上优化策略。我们在后续章节会详细展开。
2. 偏好优化的基本问题设定
2.1 核心问题
给定一个 prompt
其中
偏好数据的形式化定义如下:
每一组偏好样本包含三个要素:
| 要素 | 含义 | 示例 |
|---|---|---|
| prompt | 输入文本/对话 | ”请用 Python 写一个快速排序” |
| chosen | 人类偏好的回答 | 提供完整代码并加注释的版本 |
| rejected | 人类不偏好的回答 | 只给代码片段无注释的版本 |
2.2 偏好数据的来源
实际应用中,偏好数据的来源主要有以下几种:
人工标注:由标注员根据给定指南对同一 prompt 的多个回答进行两两比较或排序。这是 RLHF 早期工作的主要方式(如 InstructGPT)。优点是质量高、可控;缺点是成本高、速度慢。
AI 反馈(AI Feedback):用另一个模型(如 GPT-4)替代人类进行偏好判断,即 RLAIF(Reinforcement Learning from AI Feedback)。优点是成本低、可规模化;缺点是引入模型自身偏见。
自动化指标:基于规则或启发式方法生成偏好信号,例如基于语法检查、毒性检测、安全扫描等自动判断回答质量。缺点是只能捕捉预设的质量维度。
用户交互数据:在在线部署中收集用户反馈(如点赞/点踩、停留时长、再次提问率等),构建大规模偏好数据集。优点是真实反映人类偏好;缺点是噪声大、分布偏斜。
铺垫提示:Constitutional AI 提出了用一套”宪法规则”(Constitutional principles)来指导 AI 自我评价,从而生成偏好数据。这种方法本质上是在 AI 反馈基础上加入了结构化的约束机制。
3. 数学推导
3.1 Pairwise Preference 的基本建模
给定偏好数据集
最常用的建模方式是使用 Bradley-Terry 模型。该模型假设存在一个隐式的奖励函数
其中
写成完整形式:
3.2 Reward Model 的作用
Reward model 的训练目标是最小化以下交叉熵损失:
展开得:
这实际上是 pairwise logistic regression 的形式——它预测两个回答之间偏好的相对顺序,而不是各自的绝对分数。
关键洞察:Reward model 本身不是一个绝对质量度量,而是一个相对偏好度量。它的值只有在比较中才有意义;绝对分数会随着训练过程漂移。这与 SFT 中逐 token 预测的绝对似然有本质区别。
3.3 偏好优化与最大似然、分类、排序的关系
让我们从更高角度审视偏好优化的数学本质。
与最大似然的关系:在 SFT 中,最大似然估计(MLE)优化的是
与分类的关系:Pairwise preference 可以被视为一个 二分类问题,输入是
- 输入中的两个样本不是独立的,而是成对出现的;
- 损失函数必须对成对样本之间的相对关系建模;
- 推理时关心的不是类别预测,而是隐式 reward 的排序。
与排序的关系:偏好学习本质上是学习一个 排序函数
三种框架的核心对比:
| 框架 | 目标 | 输入 | 损失类型 |
|---|---|---|---|
| MLE / SFT | 最大化似然 | 自回归交叉熵 | |
| Pairwise Classification | 预测偏好标签 | 成对交叉熵 | |
| Learning-to-Rank | 学习排序函数 | pairwise ranking loss |
4. 深度讨论
4.1 为什么偏好学习比只做 SFT 更接近”人类满意度”
人类满意度是一个多维度、主观性、相对性的概念。SFT 试图通过单一参考答案逼近人类满意度,存在天然的能力边界。偏好学习从以下几个层面突破了这一边界:
多维质量信号的隐式提取:人类偏好的背后是多个隐式维度的综合作用(安全性、帮助性、简洁性、情感适恰性等)。Reward model 作为一个神经网络,有能力在偏好信号的监督下自动学习这些维度的加权组合,而 SFT 只能捕捉标注文本的表层模式。
比较结构提供更强的梯度信号:在 SFT 中,模型对每个负样本的梯度方向是相同的(推开负样本),而不区分负样本之间质量的相对差异。偏好学习通过 pairwise 比较,对两个候选回答给出方向相反但强度相同的梯度更新——这相当于一个天然的对比学习(contrastive learning)信号,使模型更高效地学习到区分性特征。
避免”标准答案幻觉”:SFT 隐含假设存在一个最优回答,但现实任务中答案往往多元且等效。偏好学习通过比较而非匹配来学习,天然适配这种非唯一答案的场景。
4.2 偏好数据的噪声、偏差与标注一致性问题
偏好数据是大模型对齐技术的核心燃料,但其质量往往不如预期。以下是需要高度关注的三类问题:
噪声问题:人类标注天然存在噪声。同一标注员在不同时间、不同心境下对同一回答的判断可能不一致;不同标注员之间的判断差异更为显著。偏好数据的噪声会直接传递到 reward model,进而影响策略模型的质量。已有研究表明,即使使用高置信度过滤,低质量偏好数据仍可能贡献约 20%~30% 的性能损失。
偏差问题:偏好数据最容易引入的偏差是 位置偏差(position bias)——人类倾向于选择出现在列表中更靠前位置的回答。这一偏差在 AI 反馈场景中尤为明显,因为 AI 模型往往对输入序列中靠后的 token 给予更多注意力。此外,长度偏差 也广泛存在:人类往往偏好更长的回答,因为长文本通常显得更详细、更专业,即便短回答可能同样正确甚至更简洁。
标注一致性问题:对于复杂问题,不同标注员之间的一致性(inter-annotator agreement)往往很低。这是因为:
- 问题本身的模糊性(同一回答在不同场景下可能有不同的最优解)
- 标注员个人背景和价值观差异(特别是涉及安全性、敏感话题时)
- 标注指南的不完善(无法覆盖所有边界情况)
解决这些问题的方法包括:多轮标注与仲裁机制、标注员资格考试与培训、基于置信度的数据加权、使用一致性指标过滤争议样本等。
4.3 偏好优化与安全对齐之间的联系
安全对齐(Safety Alignment)是偏好优化最重要的应用场景之一。两者的联系可以从以下角度理解:
安全性本质上是一种偏好:人类对”有害内容”的拒绝,本质上是对”安全回答 > 有害回答”的偏好。将这种偏好编码进训练数据,就将安全问题转化为偏好优化问题。
Reward model 是安全策略的载体:通过在偏好数据中纳入安全相关样本(如拒绝有害请求、给出适当安全建议等),训练的 reward model 可以将安全性作为一个维度纳入其隐式质量评估。这使得模型在生成阶段就能通过 reward 信号规避有害输出。
RLHF 与 Constitutional AI 的安全维度:InstructGPT 的 RLHF 流程中,约有显著比例的偏好数据用于训练模型遵循安全边界的能力。Constitutional AI 则更进一步,提出用结构化的”宪法原则”(如”不要伤害他人”、“不要传播虚假信息”等)来约束 AI 的自我评价,从而生成更可靠的安全对齐数据。
5. 工程流程
5.1 偏好数据收集
第一步:生成候选回答池
对于每个目标 prompt,使用待对齐的模型(或者多个模型变体)生成 K 个候选回答。K 通常取 4~10,以保证候选池的多样性同时控制标注成本。生成时可以使用温度采样(temperature sampling)来增加多样性。
第二步:两两比较标注
对于候选池中的所有回答,随机组成 pair 并由标注员进行偏好判断。每个 prompt 应当产生足够数量的 pair,以保证偏好关系的可靠估计。实际操作中通常采用 Elbow method 或基于方差的自适应采样策略来决定每个 prompt 的标注数量。
第三步:构建偏好数据集
将标注结果整理为
5.2 数据组织
偏好数据的基本组织单位是 prompt 级别的偏好三元组:
{
"prompt": "请解释什么是梯度下降法",
"chosen": "梯度下降法是一种优化算法,用于寻找函数的局部最小值...",
"rejected": "就是往下走找最低点",
"metadata": {
"source": "model_response_v3",
"annotator_id": "ann_004",
"timestamp": "2025-11-20T10:30:00Z",
"confidence": 0.95,
"category": "technical_explanation"
}
}
Metadata 字段虽然在训练时不一定被使用,但对于数据审计和质量追踪至关重要。
5.3 数据清洗与标注审核
清洗流程:
- 一致性过滤:对同一 prompt 的多个偏好标注,计算标注员之间的一致性(如 Fleiss’ Kappa 或成对一致率)。低于阈值的样本进入仲裁流程或直接丢弃。
- 矛盾检测:检测并处理训练数据中的逻辑矛盾,如
且 同时出现在数据中。 - 长度过滤:过滤掉候选回答长度差异过大的样本(如相差 10 倍以上),以减少长度偏差。
- Prompt 质量审查:确保 prompt 本身不包含答案线索、不存在歧义性表述、符合业务场景需求。
标注审核:
- 采用双盲抽审机制:随机抽取 10%~20% 的已标注样本,由高级标注员或专家进行质量审查。
- 建立标注质量排行榜,将质量指标反馈给标注员用于持续改进。
- 定期召开标注对齐会议,统一对边界案例的理解。
6. 适用边界:何时使用与何时不用偏好优化
6.1 何时不需要偏好优化
场景一:任务定义明确、参考答案唯一。 例如数学计算、代码 Debug、事实问答等任务,正确的回答在技术上只有一个或少数几个。此时 SFT 即可达到对齐目标,偏好优化的额外成本并不值得。
场景二:数据规模极度受限。 偏好优化需要大量高质量偏好数据,而 SFT 相对而言对数据量的需求更低且更稳定。如果只有几百条甚至更少的样本,偏好优化的噪声可能反而损害模型性能。
场景三:模型规模较小、偏好信号不显著。 小规模模型(例如 1B 以下参数)的表示能力有限,可能无法有效利用偏好信号中蕴含的细粒度信息。此种情况下,优先使用 SFT 建立基座能力。
场景四:部署场景对多样性要求高于质量要求。 例如创意写作、头脑风暴等任务,用户更希望看到多样化的输出而非单一的最优输出。此类场景下,偏好优化对输出的”收敛”效应可能反而是有害的。
6.2 何时偏好优化会把模型带偏
危险信号一:偏好数据覆盖不足。 如果偏好数据只覆盖了少数几个领域或场景,而模型需要在更多样化的场景中工作,偏好优化会导致模型在见过的场景中表现过拟合,在未见过的场景中表现不稳定甚至退化。
危险信号二:标注指南存在隐性偏见。 如果标注指南反映的是少数标注员或设计者的价值观,而非更广泛的人类偏好,偏好优化会系统性地放大这一偏见。例如,如果标注员倾向于选择语气保守的回答,模型会逐渐学会”过度安全”而丧失有用性。
危险信号三:Reward hacking。 与强化学习中常见的 reward hacking 问题类似,偏好优化中的 reward model 可能被策略模型利用——模型学会产生”表面上看起来好”(符合 reward model 浅层特征)但实际上存在缺陷的回答。例如,模型可能学会通过使用特定的积极词汇、避免特定敏感词来欺骗 reward model,而非真正提升回答质量。
危险信号四:偏好数据与最终用户偏好分布不匹配。 偏好数据通常由特定人群(如众包标注员)生成,而最终用户可能是另一群体。两者的偏好分布差异会导致对齐偏差(alignment tax)。如果偏好优化忽视了这一点,模型在目标用户群上的满意度可能反而下降。
7. 附录
附录 A:偏好数据格式模板
{
"version": "1.0",
"dataset_name": "example_preference_dataset",
"schema": {
"prompt": "string (必需)",
"chosen": "string (必需)",
"rejected": "string (必需)",
"metadata": {
"source": "string (来源描述)",
"annotator_id": "string (标注员ID)",
"timestamp": "ISO8601格式时间戳",
"confidence": "float [0,1] (置信度)",
"category": "string (任务类别)",
"quality_score": "float [0,1] (可选的质量评分)"
}
},
"preferences": [
{
"prompt": "请用一句话解释量子纠缠",
"chosen": "量子纠缠是两个粒子之间存在的一种特殊关联,测量一个粒子的状态会瞬间影响另一个粒子的状态,无论它们相距多远。",
"rejected": "量子纠缠很神奇",
"metadata": {
"source": "model_v2_candidates",
"annotator_id": "ann_001",
"timestamp": "2025-11-20T10:30:00Z",
"confidence": 0.92,
"category": "scientific_explanation"
}
},
{
"prompt": "帮我写一段 Python 代码实现快速排序",
"chosen": "def quicksort(arr):\n if len(arr) <= 1:\n return arr\n pivot = arr[len(arr) // 2]\n left = [x for x in arr if x < pivot]\n middle = [x for x in arr if x == pivot]\n right = [x for x in arr if x > pivot]\n return quicksort(left) + middle + quicksort(right)",
"rejected": "print('quick sort')",
"metadata": {
"source": "model_v2_candidates",
"annotator_id": "ann_002",
"timestamp": "2025-11-20T10:35:00Z",
"confidence": 0.98,
"category": "code_generation"
}
}
]
}格式说明:
- 每条偏好样本的 prompt、chosen、rejected 三个字段为必需项。
- Metadata 用于记录来源和标注过程信息,是可选但强烈建议保留的字段。
- 实际工程中可将 JSON 转换为 Arrow / Parquet 等列式存储格式以提升训练时的数据读取效率。
附录 B:偏好优化方法总览图
偏好优化(Preference Optimization)总览
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【问题设定】
给定 prompt x 和两个回答 y1, y2
预测 / 学习人类偏好:y_w 优于 y_l
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【偏好数据来源】
┌─────────────┐
│ 人工标注 │ ← RLHF / InstructGPT
└──────┬──────┘
│
┌──────▼──────┐
│ AI 反馈 │ ← RLAIF
└──────┬──────┘
│
┌──────▼──────┐
│ 自动化规则 │ ← 安全性扫描等
└──────┬──────┘
│
┌──────▼──────┐
│ 用户反馈 │ ← 在线收集
└────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【训练范式】
┌─────────────────────────────────────────────────┐
│ │
│ Reward Model 训练 │
│ p(y_w > y_l|x) = σ(r(x,y_w) - r(x,y_l)) │
│ L_R = -E[log σ(r_w - r_l)] │
│ │
└─────────────┬───────────────────────────────────┘
│
┌───────────┴───────────┐
│ │
▼ ▼
┌───────────┐ ┌─────────────────┐
│ RLHF │ │ 直接策略优化 │
│ (PPO) │ │ (DPO / IPO) │
└───────────┘ └─────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【代表性方法链】
InstructGPT (2022) RLHF
Anthropic (2022) Constitutional AI
Stanford (2023) DPO (Direct Preference Optimization)
Cambridge (2023) IPO (Identity Preference Optimization)
Meta (2024) KTO (Khanah-Thouvenin et al.)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【关键权衡】
偏好优化 vs SFT
┌──────────────────────┬──────────────────────┐
│ 偏好优化 │ SFT │
├──────────────────────┼──────────────────────┤
│ 比较信号(相对) │ 参考文本(绝对) │
│ 多维度隐式学习 │ 单维度显式匹配 │
│ 对齐人类满意度 │ 拟合给定答案 │
│ 数据成本高 │ 数据成本低 │
│ 训练稳定性挑战 │ 训练稳定 │
└──────────────────────┴──────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【主要挑战】
1. 标注噪声与一致性问题
2. 位置偏差 / 长度偏差
3. Reward hacking
4. 对齐税(Alignment Tax)
5. 分布偏移(偏好数据 vs 真实用户)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【安全对齐维度】
偏好优化 ←→ 安全性
- 安全性 = 一种特殊偏好
- Reward model 隐式编码安全维度
- Constitutional AI 用规则约束自我评价
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
8. 下游章节预告
本篇作为偏好优化的总论,重点在于建立统一的问题框架和数学语言。以下是与本篇直接衔接的下游章节:
- RLHF 详解:介绍从 reward model 到 PPO 策略优化的完整 RLHF 流程,分析 RLHF 的优势与不稳定性来源。
- DPO 详解:介绍如何绕过强化学习,通过直接优化偏好损失实现策略更新,以及 DPO 与 RLHF 的理论联系。
- Constitutional AI 详解:介绍如何用结构化规则生成偏好信号,以及 self-critique 机制如何提升安全性。
- RLAIF 详解:介绍用 AI 模型替代人类进行偏好判断的方法,以及引入的额外偏差与控制手段。
这些章节将在本总论的基础上,各自深入展开特定方法的细节,形成从”为什么需要偏好优化”到”如何具体实现偏好优化”的完整知识链条。