SFT 数据集应该如何构建?高质量指令数据有哪些标准?
简化版
SFT 数据通常由指令或多轮消息及目标回答组成,核心不是盲目堆数量,而是保证正确、相关、多样、边界清晰且与线上任务分布一致。数据还要去重、脱敏、控制长度,并按用户、实体或时间合理划分训练集和测试集,防止泄漏。
详细版
一套可用的 SFT 数据流水线包括:
- 从业务目标和失败案例定义任务分布;
- 制定标注规范、正确答案标准与拒答边界;
- 收集或生成候选数据,并由规则和人工审核;
- 去重、纠错、脱敏,清理模板残留和互相矛盾的样本;
- 覆盖常规请求、难例、边界、无答案和安全样本;
- 使用目标模型的 Chat Template 格式化;
- 按实体、来源或时间切分,避免相似样本跨集合泄漏;
- 保留独立测试集,训练后按任务切片评估。
高质量数据的四个关键词是正确性、相关性、多样性和一致性。合成数据可以扩量,但生成模型的错误、偏好和固定句式也会被学生模型学走,必须抽检和过滤。
完整版教学
记忆钩子:SFT 数据是行为教材;正确、覆盖、边界一致和无泄漏比原始数量更重要。
一、SFT 在优化什么
因果语言模型通常用下一 token 预测损失训练。SFT 把期望回答作为目标序列,让模型提高这些目标 token 的概率。模型会学习答案内容,也会学习长度、语气、格式、拒答方式和数据中的错误。
因此数据不是普通文档集合,而是对模型行为的示范。
二、先定义线上分布
数据集应来自明确任务:用户会问什么、输入多长、允许使用哪些信息、答案怎样才算正确。只收集理想问题会让模型在线上边界输入上失效。
应同时覆盖高频常规样本、少见但高风险样本、容易混淆的反例、信息不足场景和对抗输入。
三、正确性比表面流畅更重要
回答语气自然但事实错误,会直接把错误监督写入权重。审核要检查事实、计算、引用、代码可运行性和是否满足指令,不能只看文字是否顺畅。
多位标注者意见不一致时,应先完善规则并记录争议,而不是随机挑一个答案。
四、多样性与一致性并不冲突
多样性指任务、长度、语言、用户表达和难度覆盖充分;一致性指相同规则下的答案边界一致。数据可以有不同写法,但不能一部分样本允许某行为,另一部分又无解释地禁止。
模板化合成数据若开头、结构完全相同,会让模型过度模仿模板。应检查重复率和语言模式,而不只是文件哈希。
五、数据泄漏怎么发生
同一用户会话的不同轮次、同一文档的相邻切片或同一道题的改写,若被随机拆到训练集和测试集,测试分数会虚高。更稳妥的做法是按会话、实体、文档来源或时间分组切分。
正式测试集不应参与 Prompt 调试、样本生成和超参数选择,否则它也会逐渐变成训练信息。
六、合成数据能不能用
合成数据适合覆盖稀缺场景和扩充表达方式,但要控制来源模型、生成 Prompt 和过滤规则。可以用确定性规则检查格式,用外部工具验证计算或代码,再对高风险样本人工复核。
教师模型更强不代表每条输出都正确,自动评分模型也可能与生成模型共享偏差。
七、数据治理
为每批数据记录来源、授权、版本、清洗规则和变更历史,使单条样本可以追溯、删除和重建。进入训练前删除密钥、个人信息和无权使用的内容,并让安全过滤结果接受抽样复核,避免误伤特定语言或群体。上线失败案例只能作为候选数据回流,必须重新脱敏、标注和审核,不能把原始用户日志直接投入训练。
八、从一万条原始数据得到可训集合
假设收集 10,000 条对话:精确与近重复去掉 1,800 条,事实核验淘汰 900 条,模板或角色错误去掉 600 条,隐私与许可问题去掉 200 条,最终保留 6,500 条。保留率 65% 不代表过滤成功,还要看被删样本是否集中伤害某个语言、意图或长尾领域。
| 质量维度 | 检查问题 | 失败处理 |
|---|---|---|
| 正确性 | 答案事实和推理是否可靠 | 专家复核或删除 |
| 一致性 | 指令、模板、答案是否冲突 | 规范化或重写 |
| 多样性 | 意图与表达是否被模板淹没 | 降采样重复簇 |
| 安全合规 | 是否含隐私、未授权内容 | 脱敏、追溯来源 |
10,000 raw -> 8,200 deduplicated -> 7,300 factual -> 6,500 compliant
数据应先按来源或语义簇去重,再按组切分训练/验证,避免近邻泄漏。自动过滤器只能缩小人工范围;最终要通过抽检、训练消融和坏例回流证明每个数据版本真正改善模型。
九、常见误区与追问
- 误区:SFT 数据越多越好。 重复、冲突或错误样本会被反复放大,质量和覆盖比原始条数更重要。
- 追问:为什么去重应在切分前做? 否则同一语义簇可能跨训练和验证集,制造虚高评测。
- 追问:合成数据能否直接使用? 应有来源标记、规则与人工抽检,并验证是否放大教师模型偏差。
- 误区:格式统一就是内容模板化。 协议应一致,但意图、难度、表达和推理路径需要保持多样。
- 追问:怎样证明一次清洗有效? 比较抽检缺陷率、重复率和固定训练消融,而不是只看删除比例。
十、加强记忆
SFT 数据是模型的行为教材:答案正确、场景贴近线上、角色与安全边界一致,才值得产生梯度。先去重再按来源或语义簇切分,避免验证泄漏;合成数据要保留来源并抽检,用户日志也必须经过隐私和许可治理。最后用缺陷率、覆盖率与固定训练消融证明数据版本的价值。