厨房里两份菜端上来,蒙住眼睛二选一,不用写评分表——DPO 的思路和这一样:过去教模型对齐人类偏好,要先训一个奖励模型当裁判;DPO 把裁判省了,直接拿这个回答比那个好的排序来训练。讯飞星火、Kimi 的技术讨论里都能见到这条路线,本文用盲测二选一把它讲清。
不要裁判:直接拿排序训练
先说什么叫偏好数据:同一个问题,收集两个回答,人工标注哪个更好。传统路线拿这批数据训一个打分的裁判,再用裁判的分数去调模型,中间隔着一层。DPO 绕开了这一层,排序信息直接进训练:模型看到好回答时把它的参数往上抬,看到差回答时压一压,偏好本身成了教材。
排序数据的产出门槛也不高:同一问题的两个回答,人只要几分钟就能比出高下,批量做,一天能攒几百条。这正是小团队够得着的原因——不需要养一个专职打分的团队,也能起步训练。
省工序换来的是实打实的便宜:少训一个模型,少一套调参,材料和算力的门槛都降一截。这也是它在开源社区格外流行的原因——小团队拿几千条排序数据也能起步。它和什么是奖励模型?给 AI 回答打分的裁判那篇讲的裁判路线,是同一道题的两种解法。
两份菜盲测:二选一也能学出味觉
盲测这个比方的妙处在于:食客不必给每道菜打八十分还是九十分,只要指出甲比乙强。人的偏好本来就常常说不清为什么,但排序做得干脆。模型学排序也一样——大量二选一攒起来,它慢慢知道什么样的回答排前头,不需要一个精确的分数。
盲测的另一个启发是「比较比打分容易」:人对两个回答的高下判断更自信,对给一个回答打七十分还是八十分却含糊。构造数据时顺势多攒两两对比,比攒精确分数稳得多。
盲测还避免了一个坑:裁判自己的偏好会被模型钻空子,而排序来自人的直接比较,钻空子的空间小得多——想讨好,先真的比另一个回答强。什么是 AI 反馈?让模型帮着训练模型那篇用模型来生产排序,正好接着这里往下讲。
两条对齐路线对照表
- 裁判路线:先训打分模型,再按分调模型,中间多一道工序
- 直接路线:排序直接进训练,工序少、门槛低
- 共同点:吃的都是人类偏好排序数据
- 选择:材料多、要精细控制选裁判路线,快速试水选直接路线
类比失效的地方:只能二选一时的局限
盲测类比有一处对不上:美食二选一,食客再犹豫也能憋出一个高下;真实的回答对比里,两个回答常常半斤八两,强行排序等于逼着眼给噪声打分。排序数据里的噪声,会被模型原样学走——垃圾进,垃圾出,在这里格外明显。
还有一处:盲测有现场主持控场,排序数据没有。标注的人标准不一、前后矛盾,模型学到的就是一团糨糊偏好。什么是数据配比?训练材料怎么搭配那篇讲的配料思路,在准备排序数据时同样要派上用场。
盲测里成立的三件事,换成真实回答对比后卡在哪,可以这样对照。
| 盲测里成立的事 | 换成真实回答对比的问题 | 后果 | 怎么处理 |
|---|---|---|---|
| 食客再犹豫也能憋出一个高下 | 两个回答常常半斤八两,强行排序等于逼着眼给噪声打分 | 排序噪声被模型原样学走,垃圾进垃圾出 | 宁可少标几条,不要糊弄几条 |
| 盲测有现场主持控场 | 标注的人标准不一、前后矛盾 | 模型学到的是一团糨糊偏好 | 准备排序数据时用上数据配比的思路 |
| 只要指出甲比乙强,不必给精确分数 | 只有排序没有分数,控制的精细度要让出去 | 精细调味的场景,裁判路线仍有优势 | 按数据规模和算力预算决定选哪条 |
换个问法再问DPO三句
- 它比裁判路线效果差吗?:多数场合差距不大,精细调味的场景裁判路线仍有优势;选哪条,先看数据规模和算力预算。
- 排序数据要多少条?:没有硬标准,小团队几千条能跑出效果,要做稳通常上万条;质量永远排在数量前面。
- 排序错了要紧吗?:要紧。错误的排序会被当成铁律学走,宁可少标几条,不要糊弄几条。
偏好数据的质量,决定这条路能走多远。它省掉了裁判,却没省掉对数据的敬畏——排序错一片,模型就歪一片;排序干净,二选一也能喂出稳当的偏好。省事不等于省心,排序这一关的功夫,一分都省不掉。


