真实面经题目 · 原创解析
一个模型对prompt会生成多种回答,那么DPO的pair数据如何选取?
DPO 的 pair 数据不是简单地从同一个 prompt 的多个回答里任意两两组合,而是要构造“同一上下文下,偏好方向明确、质量差异可学习、噪声可控”的 chosen/rejected 对。核心目标是让模型学习相对偏好,同时避免把无意义差异、标注偏差或长度偏置放大。
真实面经题目 · 原创解析
DPO 的 pair 数据不是简单地从同一个 prompt 的多个回答里任意两两组合,而是要构造“同一上下文下,偏好方向明确、质量差异可学习、噪声可控”的 chosen/rejected 对。核心目标是让模型学习相对偏好,同时避免把无意义差异、标注偏差或长度偏置放大。
可以先说 DPO 需要的是同一个 prompt 下的偏好对,通常由 chosen 和 rejected 组成。选取时要保证两条回答都针对同一个输入,且偏好判断有明确依据,比如正确性、完整性、安全性、指令遵循和表达质量。实践中会从模型采样得到多个候选回答,再通过人工标注、规则过滤、奖励模型或强模型辅助评审形成排序,随后选取差距适中的正负样本对。太接近的 pair 噪声大,太悬殊的 pair 学习信号可能过于简单。还要控制长度、格式、拒答、重复、幻觉等偏差,保证 pair 的偏好来自真实质量差异,而不是无关特征。
DPO 训练样本通常是三元组:prompt、chosen response、rejected response。chosen 表示在同一输入下更符合人类偏好或任务标准的回答,rejected 表示相对较差的回答。关键点在于两条回答必须共享同一个 prompt,否则模型学到的不是回答质量偏好,而可能是输入难度或话题差异。
候选回答一般来自同一个或多个策略模型的采样结果,可以通过不同温度、top-p、beam 或不同 checkpoint 生成多样候选。也可以混入人工写作答案、历史线上答案或经过安全策略处理的答案。来源可以多样,但最终进入 pair 前必须统一评估标准,避免来源本身成为隐含标签。
如果一个 prompt 有多条候选回答,常见做法是先做评分或排序,再从排序中构造 chosen/rejected。评分维度可包括事实正确性、指令遵循、推理完整性、信息密度、语气、安全合规和是否胡编。人工标注更可靠,但成本高;奖励模型或强模型辅助评审可以扩展规模,但需要抽检和校准。
不是所有正负组合都适合训练。质量差距太小的 pair 容易引入标注噪声,模型难以获得稳定信号;质量差距过大的 pair 虽然清楚,但学习价值可能有限。更合理的做法是选取偏好明确且有一定难度的 pair,并覆盖不同错误类型,让模型学会区分细粒度质量差异。
DPO 很容易受到数据偏差影响,例如 chosen 总是更长、格式更固定、拒答比例更低,模型就可能学习到表面相关性。构造 pair 时要控制长度分布、模板痕迹、语言风格、拒答场景、重复内容和安全边界,确保偏好主要来自回答质量,而不是无关统计特征。
训练前应过滤掉无效 pair,例如两个回答都严重错误、偏好无法判断、回答与 prompt 不匹配、存在敏感违规内容或标注者意见高度分歧。对多标注者结果可以计算一致性,保留高置信样本。DPO 对偏好方向较敏感,噪声 pair 会直接损害对齐效果。
理论上可以,但不一定推荐全部使用。相邻质量回答可能偏好不清,极端组合又可能太简单。通常会基于排序差距、标注置信度和错误类型覆盖来采样,而不是机械地全组合。
不是必须。可以来自人工偏好、规则评估、奖励模型打分或强模型辅助评审,但高质量人工标注通常更可信。无论来源如何,都需要抽检、去噪和偏差控制。
最好和最差的差距虽然明显,但训练信号可能过于粗糙,模型只能学到很容易的区分。加入质量差距适中的 pair,可以帮助模型学习更细粒度的偏好边界。
如果 chosen 系统性更长,模型可能把长度当成偏好信号,生成冗长回答,而不是提升真实质量。因此需要做长度分布控制或在标注标准中明确避免长度偏置。