AI导航

DPO是什么?跳过奖励模型,大模型对齐训练为何更简单

AI百科
4 min read
2 次阅读

DPO 是一种直接用人类偏好数据训练大模型的方法,全称 Direct Preference Optimization,中文译作直接偏好优化。它的数据长这样:同一个问题配两个回答,一个是标注者更喜欢的,一个是被淘汰的;训练要做的事,就是让模型以后多生成前一类回答、少生成后一类。它和 RLHF 想达到的目的相同,都是把模型往人更认可的方向推,区别在于它把中间最麻烦的两步省掉了:不再单独训练一个奖励模型,也不再跑强化学习,而是把偏好直接写成一条损失函数,像普通微调一样训练。

它省掉的,正是 RLHF 最难伺候的部分

回顾 RLHF 的流程:先收集人类对多个回答的排序,训出一个能给回答打分的奖励模型;再让大模型反复生成、按分数用强化学习调整自己。这条链的问题不在效果,而在工程:奖励模型本身要训练和校准,强化学习阶段又出了名的不稳定,参数没调好,模型会钻分数的空子,或者把原有能力练丢。2023 年斯坦福大学 Rafael Rafailov 等人发表 DPO 论文时,给出的关键推导是:在常用的偏好模型假设下,最优策略和奖励函数之间存在一个可以直接换算的关系,也就是说,模型自身其实就隐含着奖励函数,不必先把奖励模型单独训出来。既然奖励能从模型概率里反推,偏好训练就可以改写成一个普通的分类式损失,训练过程随之变成和监督微调差不多的形态:稳定、好复现、一台机器上就能跑通。

一对回答进来,模型到底在学什么

DPO 的每条训练样本包含三样东西:问题、被选中的回答、被拒绝的回答。训练时同时看两份模型:一份是正在训练的模型,另一份是训练开始前的模型副本,冻结不动,称作参考模型。损失函数比较的不是回答的绝对概率,而是两个回答相对于参考模型的概率变化:如果被选中的回答相对参考模型变得更可能、被拒绝的变得更不可能,损失就小;反过来就大,模型被往回推。

这个设计里藏着一个容易被忽略的细节:DPO 真正放大的是两个回答之间的差距,而不是保证被选中回答的绝对概率一定上升。训练数据偏激进时,两个回答的概率可能一起下降,只是被拒绝的那个降得更多。理解这一点,就能明白为什么 DPO 练完有时会出现回答变短、变保守或某些表达退化的问题——它优化的是相对偏好,不是逐字模仿标准答案,这和监督微调的逻辑有本质区别。

β 参数:学偏好和别跑偏之间的一根拉绳

DPO 里最重要的参数是 β,它控制模型可以偏离参考模型的程度。β 越大,拉绳越紧:模型学偏好学得慢、幅度小,但原有能力保存得好,不容易练出怪毛病;β 越小,拉绳越松:偏好信号吸收得快,但模型可能为了迎合偏好数据走得太远,出现能力退化甚至输出质量崩坏。实践中 β 常在 0.1 附近起步调试,具体取值要看数据规模和任务。它没有通用最优值,这也是 DPO 简单归简单、依然需要做评测对比的原因:同一批数据换一个 β,训出来的模型性格可能明显不同。

适合的活和露怯的地方

DPO 最适合的场景,是模型已经完成监督微调、基本会回答问题,只差最后一道口味校准:让回答更有帮助、语气更合适、在该拒绝的请求上守住边界。开源社区早期出名的 Zephyr 模型就是靠 DPO 在公开偏好数据上再训一轮,聊天评测明显超过了它的监督微调版本,这也是 DPO 在开源生态里迅速普及的原因之一——配方公开、算力门槛低、效果立竿见影。

它的短板同样清楚。第一,DPO 是离线学习:它只见过数据集里现成的回答对,模型更新后会生成的新回答长什么样、好不好,它没有机会再获得反馈,而在线强化学习可以在训练中不断采样新回答、即时纠偏。第二,它的天花板被偏好数据的质量锁死:标注者意见不一致、偏好标准模糊,模型学到的就是一团噪声。第三,它有已知的长度偏好问题:标注者常常更喜欢写得长的回答,模型可能学会用啰嗦换取偏好,而不是真的答得更好。后续出现的 IPO、KTO 等变体,以及把 DPO 多轮迭代、接近在线做法的方案,针对的正是这些短板。

三个流传很广的误解

第一个误解是 DPO 不需要人类数据。它省的是奖励模型和强化学习,省不掉偏好标注:回答对从哪来,依然要靠人类挑选,或靠更强的模型生成再筛选,只是组织形式从打分排序变成了成对比较。第二个误解是 DPO 全面强于 RLHF。它赢在简单和稳定,复杂任务上的上限、以及对训练中新生错误的纠正能力,在线强化学习路线仍有优势,前沿实验室的后训练也远没有被 DPO 一家包办。第三个误解是把 DPO 当成换了名字的监督微调。监督微调学的是照着这一个答案说,DPO 学的是这两个答案里哪个更好;前者教知识和格式,后者教取舍和口味,两者在训练流水线里通常是前后衔接的两步,而不是互相替代。

推荐工具

NVIDIA Chat with RTX AI聊天 Chat with RTX 是 NVIDIA 面向 RTX 电脑的本地 AI 聊天工具,可围绕本地文档和视频资料做问答,适合重视隐私、离线检索并具备硬件条件的用户更适合资料不便上传云 HuggingChat AI聊天 HuggingChat 是 Hugging Face 的开源模型聊天应用,支持 Omni 自动选模型,也可手动选社区开放模型对话。它适合体验开源模型、技术探索和问答,结果可能不稳定,重要内容需复核。 纳米AI搜索 AI搜索 纳米AI 是 360 旗下 AI 搜索和智能体入口,支持文字、语音、拍照提问、多模型协作与内容创作,适合中文用户做日常搜索、学习问答、移动查询、热点追踪、生活决策、知识整理和轻量创作。 Qwen Chat(通义千问) AI聊天 Qwen Chat 是Qwen 大模型聊天助手,支持Qwen 模型聊天、写作和编程问答,适合中文用户和开发者完成 AI 对话、资料问答和任务协作,适合上线前核对权限、成本和资料质量。 DuckDuckGo AI Chat AI聊天 DuckDuckGo AI Chat 适合重视隐私的普通用户使用,围绕隐私 AI 聊天、免账户使用和多模型问答提供对话式 AI 支持和任务协作能力,适合上线前核对权限、成本和资料质量。 Goody-2 AI聊天 Goody-2 是以极端安全和伦理对齐为特色的 AI 聊天助手,常用于观察模型拒答边界、内容安全策略、保守输出体验和 AI 风险讨论,更适合作为安全边界样本使用前应理解它偏实验性质,不适合。