PERSONAL AI LAB从零开始,真正训练自己的模型30 天实验计划
MODULE 11 · PROGRESS 0%

DPO 与偏好数据:把“我喜欢这种答案”变成训练信号

学习 chosen/rejected 数据、偏好标准和 DPO 的适用边界。

11.1 SFT 和偏好训练解决不同问题

SFT 教模型“面对这种输入,大概应该输出什么”;偏好训练进一步告诉模型“两个都能回答的版本里,我更偏好哪个”。如果模型连基本任务都不会,先 SFT;如果它会做但风格、深度、拒答策略或推理呈现不符合预期,偏好数据更有价值。

11.2 chosen / rejected

一条偏好样本通常包含同一个 prompt 和两个回答:chosen 是更喜欢的,rejected 是更差的。差异应该和你的目标行为有关,例如 chosen 有完整决策依据、rejected 只有模板话,而不是随机找一个特别糟答案。

11.3 偏好 Rubric

偏好必须稳定。你可以定义:不允许空泛开场、优先给具体判断、遇到复杂任务必须拆验收、不能用大量占位文件冒充完成。每条 chosen/rejected 都记录为什么选。这样数据以后还能审计。

11.4 DPO 的直觉

DPO 不需要像经典 RLHF 那样单独训练 reward model 再跑复杂 RL 环节。它直接利用偏好对,让模型提高 chosen 相对于 rejected 的偏好概率,同时参考 reference model 限制漂移。你先理解目标即可,不必第一天推导公式。

11.5 数据陷阱

如果 chosen 永远特别长、rejected 永远特别短,模型可能学到“长就是好”;如果偏好标注前后矛盾,训练信号会互相抵消。因此偏好对要尽量控制无关变量。

本课最小代码 / 结构

{"prompt":"为复杂项目写PRD",
 "chosen":"先定义边界、决策和验收……",
 "rejected":"当然可以,下面是一个简单PRD模板……",
 "reason":"chosen有决策依据与验收;rejected为空泛模板"}

动手实验:不做完不算学完

常见错误 / 排错提醒

  • chosen 和 rejected 的差异只是长度
  • 偏好标准今天一个明天一个
  • 用错误事实当 rejected 主要差异,最后只学会事实而非风格

本课验收产物

preference-v0.1:至少 50 组有明确理由的偏好对。