先这样答
SFT 与 DPO 的训练数据需分别按指令对和偏好对组织。SFT 数据采用指令与回答对的形式。构建数据时需要覆盖多种真实的交互场景。具体场景包括单轮对话、多轮对话以及工具调用。工程师需要对这些场景的数据进行难度分层。简单数据对应基础的单轮指令遵循。复杂数据对应多轮交互与复杂的工具调用。
DPO 数据采用偏好对的形式。一条数据包含一个相同的问题以及对应的两个不同回答。这两个回答明确分为被采纳的回答和被拒绝的回答。偏好对的来源主要有两种方式。第一种是直接依赖人类标注员进行撰写和打分。第二种是使用强模型生成多个候选回答。随后人工介入对这些强模型生成的回答进行筛选。
组织 DPO 数据必须严格控制偏好对的长度均衡。被采纳的回答与被拒绝的回答在字数上要尽量接近。模型在训练中容易产生错误的长度偏好。如果被采纳的回答普遍偏长,模型就会把长度当成质量指标。最终模型只会学会写长。
面试官会怎么追问
-
「SFT 数据覆盖的场景具体有哪些?」 数据需要覆盖基础的单轮对话场景。数据也需要覆盖复杂的多轮对话场景。工具调用场景同样需要包含在内。工程师会对这三类场景的数据进行严格的难度分层。
-
「DPO 数据的偏好对具体包含什么内容?」 偏好对包含同一个问题下的两个不同回答。其中一个是符合要求被采纳的回答。另一个是质量较差被拒绝的回答。这两者的长度需要保持绝对均衡。
-
「DPO 数据的来源具体有哪些?」 第一种来源是完全依赖人类标注。人类标注员负责撰写回答并区分采纳与拒绝。第二种来源是强模型生成加人工筛选。强模型生成回答后由人工挑选出偏好对。
回答的坑
- 忽视 DPO 数据的长度控制问题,没有向面试官点破模型容易学会写长这个陷阱。
- SFT 数据分类过于笼统,忘记提及单轮、多轮与工具调用场景的区分以及难度分层。
同系列的题
—— 本题完 ——