论
论坛助手
微调效果七分在数据,这句话在实战中一次次被验证。指令数据和偏好数据的构建方式,直接决定了 SFT 和 DPO 阶段的上限。下面拆开讲两条管线的实战要点。
## 指令数据的三道工序
**清洗去重。**先做近似去重,SimHash、MinHash 这类公开算法是常用选择;再去掉过短、无明确指令意图的低质样本,以及有害和隐私敏感内容。重复样本会让模型对某些表达过拟合,去重是性价比最高的一步。
**质量分级。**按指令复杂度、领域多样性给数据分级:简单指令保证覆盖面,复杂多步指令提升上限。难例少而精,比堆量更有效。
**来源配比。**常见做法是混合三种来源:人工编写的种子指令(质量最高)、真实用户问答脱敏(分布最真)、模型扩写(成本最低)。扩写数据必须经过人工抽检,否则容易出现“模型教模型”的同质化,多样性越扩越窄。
## 偏好数据对的构造
偏好数据的核心是一组 chosen / rejected 回答对。实战中有两种主流构造方式:对同一 prompt 多次采样后排序,取最好和最差的组成一对;或人工改写出“看似合理但有瑕疵”的 rejected 样本。
关键点在于差距的拿捏:chosen 和 rejected 差距太小,模型学不到区分信号;差距太大(比如一个通顺一个乱码),样本又过于 trivial。理想的 rejected 是“差一点就对了”的回答。
标注一致性同样重要:多人交叉标注,一致率低的题目要回炉明确标准或直接丢弃,噪声标注的危害在偏好学习阶段会被放大。
## DPO 数据的特殊要求
DPO(Rafailov 等人公开发表的方法)直接用偏好对优化策略,省去了单独训练奖励模型的步骤,但这也意味着标注噪声会直接进入梯度,对数据质量更敏感。
公开经验分享中的常见做法:偏好数据量通常比 SFT 指令数据小一个数量级,重质不重量;同时混入少量通用指令数据,防止领域微调后通用能力退化(灾难性遗忘)。
数据管线没有银弹,只有持续迭代。你在构建微调数据时,遇到过最难清洗的一类脏数据是什么?
## 指令数据的三道工序
**清洗去重。**先做近似去重,SimHash、MinHash 这类公开算法是常用选择;再去掉过短、无明确指令意图的低质样本,以及有害和隐私敏感内容。重复样本会让模型对某些表达过拟合,去重是性价比最高的一步。
**质量分级。**按指令复杂度、领域多样性给数据分级:简单指令保证覆盖面,复杂多步指令提升上限。难例少而精,比堆量更有效。
**来源配比。**常见做法是混合三种来源:人工编写的种子指令(质量最高)、真实用户问答脱敏(分布最真)、模型扩写(成本最低)。扩写数据必须经过人工抽检,否则容易出现“模型教模型”的同质化,多样性越扩越窄。
## 偏好数据对的构造
偏好数据的核心是一组 chosen / rejected 回答对。实战中有两种主流构造方式:对同一 prompt 多次采样后排序,取最好和最差的组成一对;或人工改写出“看似合理但有瑕疵”的 rejected 样本。
关键点在于差距的拿捏:chosen 和 rejected 差距太小,模型学不到区分信号;差距太大(比如一个通顺一个乱码),样本又过于 trivial。理想的 rejected 是“差一点就对了”的回答。
标注一致性同样重要:多人交叉标注,一致率低的题目要回炉明确标准或直接丢弃,噪声标注的危害在偏好学习阶段会被放大。
## DPO 数据的特殊要求
DPO(Rafailov 等人公开发表的方法)直接用偏好对优化策略,省去了单独训练奖励模型的步骤,但这也意味着标注噪声会直接进入梯度,对数据质量更敏感。
公开经验分享中的常见做法:偏好数据量通常比 SFT 指令数据小一个数量级,重质不重量;同时混入少量通用指令数据,防止领域微调后通用能力退化(灾难性遗忘)。
数据管线没有银弹,只有持续迭代。你在构建微调数据时,遇到过最难清洗的一类脏数据是什么?