mcpField
T
training-data-curation

training-data-curation

github.com/sundial-org数据与数据库15381 次安装15 周前更新
代码仓库

关于 training-data-curation

Training Data Curation Guidelines 是一份为大模型微调和偏好训练准备数据集的指南,面向数据整理与训练团队。内容涵盖质量检查、示例格式、数据来源考量及数据集规模建议。

主要功能

  1. 01SFT messages 格式示例
  2. 02偏好与奖励数据结构
  3. 03数据集质量检查清单
  4. 04数据来源质量指导
  5. 05文件格式与规模建议

适用场景

  1. 01准备微调用 JSONL 样例
  2. 02训练前检查数据质量
  3. 03为偏好数据集选择格式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sundial-org/skills --skill training-data-curation

安装后在 Claude Code 中输入/training-data-curation确认已加载。

详细介绍

训练数据整理指南

为 LLM 微调收集和准备训练数据的最佳实践。

数据质量原则

质量胜于数量。 Llama 2 仅使用了 27,540 个高质量 SFT 示例,效果优于使用规模更大、噪声更多的数据集训练的模型 [1]。应专注于干净、多样且格式规范的数据。

垃圾进,垃圾出。 模型会从数据中学习各种模式,包括错误、偏见和格式问题。训练前请手动检查样本。

匹配目标分布。 训练数据应反映你希望模型执行的任务和采用的风格。如果你希望模型给出正式回答,就不要用随意聊天数据训练。

格式要求

监督微调(SFT)

使用 messages 格式(OpenAI/Anthropic/Tinker 标准)[5]:

{"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
  • 每个样本都是一段完整对话
  • 多轮对话:用户和助手消息交替出现
  • 系统提示词为可选项:{"role": "system", "content": "..."}
  • 使用 JSONL 格式,每行一个样本
偏好学习(DPO/ORPO/KTO)

需要 成对比较 [2]:

{"prompt": "...", "chosen": "...", "rejected": "..."}
  • chosen 和 rejected 必须针对同一个提示词作答
  • 质量差异应明确且一致
  • 标注者一致率 >70% 表示样本可用 [1]

KTO 不需要成对数据——只需为补全文本添加二元标签 [7]:

{"prompt": "...", "completion": "...", "label": true/false}
奖励建模(RLHF)

需要 排序后的回答 [1]:

{"prompt": "...", "responses": ["best", "second", "worst"]}

质量检查清单

训练前,请确认:

  • 无重复项 — 删除完全重复和近似重复项 [3]
  • 无空字段 — 所有必填字段均已填写
  • 格式一致 — 全部数据均符合相同的架构
  • 长度合适 — 不能太短(噪声)或太长(截断)
  • 文本干净 — 编码正确,无 HTML 或模板文本残留 [8]
  • 人工检查 — 随机抽取 50-100 个示例进行审核
  • 无个人身份信息/敏感数据 — 除非有意纳入
  • 已核实许可证 — 允许用于训练

常见质量问题

问题检测方法修复方法来源
重复项基于哈希的去重删除完全匹配项;使用 MinHash 处理近似重复项[3]
模板文本关键词过滤删除“订阅”“Cookie 政策”等内容[8]
重复文本N-gram 分析若唯一三元组占比 <30%,则标记[4]
低质量文本字母占比若字母字符占比 <50%,则删除[8]
语言错误语言检测使用 fastText 分类器,筛选目标语言[3]
过短长度检查至少包含 3-5 个句子;文档至少 100 个词[8]

数据来源

高质量:

  • 精选的人工标注数据 [1]
  • 专家编写的示例
  • 经过筛选的高质量网页数据 [3]

中等质量:

  • 更强大模型生成的合成数据(蒸馏)
  • 带有投票信号的社区问答
  • 经过筛选的用户生成内容

谨慎使用:

  • 原始网页抓取数据
  • 未经筛选的合成数据
  • 来源不明确的数据 [6]

数据集规模指南

数据集规模用途来源
100-1K快速实验、特定行为—
1K-10K生产级 SFT、领域适配—
10K-100K全面的指令微调[1]
1M+ 偏好对大规模 RLHF[1]

Llama 2 使用了约 27K 个 SFT 示例和 1M+ 个偏好比较样本 [1]。

文件格式

  • JSONL — 每行一个 JSON 对象,便于人工阅读
  • Parquet — 适用于大型数据集,内置压缩功能 [3]
  • 分片 — 将大于 500MB 的文件拆分成多个块

参考资料

  1. Llama 2 论文 — Touvron 等人(2023)。SFT/RLHF 数据质量实践、27K 条 SFT 示例、标注者一致率阈值 >70%
  2. TRL 库 — HuggingFace 为 SFT、DPO、KTO、ORPO 提供的 Trainer 实现
  3. FineWeb 论文 — Penedo 等人(2024)。大规模过滤:MinHash 去重、语言检测、质量分类器
  4. Data-Juicer — 阿里巴巴的质量过滤工具包,包含重复内容过滤器、n-gram 分析
  5. Tinker API — 使用消息格式的训练 API,支持 SFT、DPO/RLHF
  6. Data Provenance Initiative — Longpre 等人(2023)。数据集许可与归属审计
  7. KTO 论文 — Ethayarajh 等人(2024)。无需成对样本的二元偏好学习
  8. C4/T5 论文 — Raffel 等人(2020)。基础过滤方法:句末标点、最少句子数、字母比例、模板内容移除

评论

支持 Markdown