7.4 DPO 与直接偏好优化 RLHF 虽然效果显著,但训练流程复杂、成本极高——需要同时维护 4 个大模型(policy、reference、RM、critic),调参困难,显存爆炸。DPO(Direct Preference Optimization,直接偏好优化) 是 2023 年斯坦福提出的简化方案,绕过 RM,直接从偏好数据优化策略。本节梳理 DPO 的原理与工程价值。 一、DPO 的动机:简化 RLHF RLHF 的三步流程: 每一步都有挑战: SFT:相对简单 RM:需要单独训练一个标量输出模型 PPO:训练不稳定,需要 4 个模型同时跑,显存爆炸 DPO 的核心洞察:可以跳过 RM 训练和 PPO 优化,直接从偏好数据推导最优策略。
RLHF 虽然效果显著,但训练流程复杂、成本极高——需要同时维护 4 个大模型(policy、reference、RM、critic),调参困难,显存爆炸。DPO(Direct Preference Optimization,直接偏好优化) 是 2023 年斯坦福提出的简化方案,绕过 RM,直接从偏好数据优化策略。本节梳理 DPO 的原理与工程价值。
RLHF 的三步流程:
SFT → RM → RL(PPO)
每一步都有挑战:
DPO 的核心洞察:可以跳过 RM 训练和 PPO 优化,直接从偏好数据推导最优策略。这一数学洞察让 DPO 的训练流程变成:
SFT → DPO(直接基于偏好对训练)
只比 SFT 多一步,工程门槛大幅降低。
DPO 的数学推导有点精妙,我们尽量用直觉解释。
RLHF 实际上在解这样一个优化问题:
含义:最大化奖励 r 的同时,不让新策略 \pi 偏离参考策略 \pi_\text{ref}(即 SFT 模型)太远。
这个优化问题有解析解:
其中 Z(x) 是归一化常数。
把这个式子反过来,可以用策略表示奖励:
把 RM 的偏好损失 \mathcal{L}_\text{RM} = -\log \sigma(r(x,y_w) - r(x,y_l)) 中的 r 用上面的表达式替换:
注意 \log Z(x) 在相减中抵消了!
最终得到 DPO 损失:
其中:
DPO 损失的含义:
直觉上,DPO 在做「双向调整」:
这种调整通过 sigmoid 软化,避免极端更新。
| 维度 | RLHF (PPO) | DPO |
|---|---|---|
| 需要训练 RM | 是 | 否 |
| 训练阶段模型数 | 4(policy + ref + RM + critic) | 2(policy + ref) |
| 显存占用 | 极高 | 中等 |
| 训练稳定性 | 不稳定 | 稳定 |
| 超参敏感度 | 高 | 低 |
| 实现复杂度 | 高 | 低 |
| 效果 | 略好(理论上限高) | 接近 RLHF |
| 训练速度 | 慢 | 快(与 SFT 相当) |
DPO 的核心价值是让中小团队也能做对齐——单机 8 卡就能跑 DPO,而 RLHF 通常需要集群。
DPO 应用到多模态,主要改动是输入扩展到含图:
输入: [图像] + [指令] + [回答 A (好)] / [回答 B (差)] DPO 损失: 提升 π(A | 图像+指令) / π_ref(A | 图像+指令) 降低 π(B | 图像+指令) / π_ref(B | 图像+指令)
偏好数据格式:
{ "图像": <猫的图>, "指令": "图中有几只猫?", "chosen": "图中有两只猫", ← 正确回答 "rejected": "图中有三只猫" ← 幻觉回答 }
用这种数据训练,模型会降低幻觉概率,提升准确性。
LLaVA 团队用 DPO 减少幻觉:
用 AI 反馈(GPT-4V 当裁判)生成偏好数据,然后做 DPO。绕过人类标注成本。
阿里的多模态模型大量使用 DPO 进行对齐,特别在中文场景。
专门为多模态设计的 DPO 数据集与方法,用 GPT-4V 自动生成偏好对。
面壁智能的端侧多模态模型用 DPO 提升对齐质量,在小模型上效果显著。
DPO 训练的超参相对少:
β 控制「偏离 SFT 的程度」:
典型值:0.01-0.5。LLaVA-DPO 用 0.1 左右。
DPO 出现后,社区提出了一系列变体:
解决 DPO 在数据充分时过拟合的问题,加入正则项。
不要求成对偏好数据,只用「好/坏」二元标签:
原 DPO: 需要 (chosen, rejected) 对 KTO: 只需要 (response, good/bad)
数据采集更简单。
去掉参考模型 \pi_\text{ref},进一步简化:
DPO: 需要 ref 模型计算 ratio SimPO: 不需要 ref,直接用 length-normalized log-prob
更省显存。
把 SFT 与 DPO 合并为单阶段训练。
如 V-DPO、mDPO 等专门为视觉场景设计,处理视觉 token 的偏好优化。
虽然 DPO 简化了 RLHF,但它也有局限:
理论上 RLHF 的 PPO 优化能找到更优策略,DPO 是其简化版本。在充分数据与算力下,RLHF 上限更高。
DPO 在 SFT 基础上调整,SFT 不好 DPO 也救不回来。
DPO 简化了训练,但仍需要偏好数据。多模态偏好数据采集成本仍然高。
DPO 对整体偏好(A 整体比 B 好)有效,但对细粒度偏好(A 在准确性上比 B 好,但 B 在流畅性上比 A 好)效果有限。
DPO 在训练分布内效果好,但分布外(未见过的任务、领域)泛化能力较弱。
根据你的情况选:
| 你的情况 | 推荐 |
|---|---|
| 大公司,充足算力与数据 | RLHF(理论上限高) |
| 中小团队,算力有限 | DPO(工程简单) |
| 想快速实验对齐效果 | DPO(迭代快) |
| 追求极致效果 | RLHF + DPO 组合 |
| 减少幻觉 | DPO(足够好) |
| 多目标对齐 | RLHF(更灵活) |
实践中,DPO 已成为开源社区对齐的事实标准。LLaVA、Qwen-VL、InternVL、MiniCPM-V 等大量模型都使用 DPO 或其变体。
当代多模态大模型的训练流程已基本标准化为「三段式」:
预训练 → SFT → 对齐 (DPO 或 RLHF)
例如 LLaVA-NeXT 的训练:
当代对齐数据来源:
相比纯文本对齐,多模态对齐的特殊关注点:
对齐研究仍在快速演化:
RLAIF、Constitutional AI 等让 AI 自己批评自己,降低对人类标注的依赖。
PRM(Process Reward Model)不只奖励最终回答,还奖励推理过程。适合数学、推理任务。
不同用户偏好不同(详细 vs 简洁、正式 vs 随意)。未来模型可能支持「个性化对齐」——根据用户调整对齐策略。
不再分别对齐文本与图像,而是联合优化所有模态的偏好。GPT-4o、Gemini 等原生多模态模型正在探索这一方向。
DPO 用一个数学洞察绕过 RM 与 PPO,让对齐训练从「集群级 RLHF」简化为「单机即可 DPO」。它已成为开源社区对齐的事实标准,在多模态场景中广泛用于减少幻觉、提升回答质量。RLHF 在理论上限上仍略高,但 DPO 的工程价值让对齐能力普及到中小团队。当代多模态大模型的训练流程已标准化为「预训练 → SFT → DPO」三段式。
下一节(7.5)速览 LLaVA-NeXT、mPLUG-Owl3、MiniCPM-V 等当代对齐方法的 SOTA 实践。