数据集工程
概述
数据集工程(dataset engineering)是为训练和适配 AI 模型而获取、精选、生成和处理数据的学科。尽管模型架构获得了更多关注,但许多从业者认为,数据质量如今已成为首要的差异化因素——尤其是在基础模型日益商品化的当下。数据差,模型就差,无论训练技术多先进。
数据集工程在多个环节都举足轻重:基础模型的预训练、后训练对齐、面向应用的微调,以及 RAG 检索语料库的构建。
数据质量
质量是多维度的。相关维度取决于你的用例:
| 维度 | 说明 | 如何评估 |
|---|---|---|
| 准确性 | 数据在事实层面正确 | 人工审阅、对照参考交叉核验 |
| 完整性 | 数据覆盖所需主题与边缘情况 | 覆盖度分析、留出集基准 |
| 一致性 | 数据集内部无矛盾 | 去重、一致性检查 |
| 多样性 | 代表模型将遇到的完整输入分布 | 嵌入空间覆盖度分析 |
| 相关性 | 数据契合目标任务或领域 | 人工判断、交叉编码器排序 |
| 时效性 | 对时间敏感的领域,数据保持最新 | 时间戳过滤 |
标注质量:对于指令遵循数据和偏好数据,标注质量至关重要。标注者应具备相应领域资质(例如医疗标注需要医学专业知识)。多名标注者之间的一致性(标注者间一致性)可作为标签质量的代理指标。
数据覆盖度
覆盖度意味着你的数据集代表了模型在生产环境中将遇到的完整输入分布。训练分布不完整会导致模型在代表性不足的输入上失效。
提升覆盖度的策略: - 分析失败案例:从生产中找出分布上的空白 - 分层抽样:确保稀有但重要的类别得到体现 - 对抗样本:纳入专门设计用来"绊倒"模型的输入 - 边缘情况:显式纳入边界条件、异常格式、多语种输入
数据数量
需要多少数据取决于所用的适配技术:
| 技术 | 典型数据需求 |
|---|---|
| 提示词工程 | 0 个样例(零样本)到约 20 个(少样本) |
| RAG | 检索无需训练数据;索引语料库可为任意规模 |
| 微调(PEFT/LoRA) | 约 100–10,000 个高质量样例 |
| 全量微调 | 数千到数十万 |
| 从零预训练 | 数十亿 token |
质量胜过数量:对于微调,1,000 个精心挑选的样例始终优于 100,000 个嘈杂样例。
数据获取与标注
数据来源
- 既有的内部数据:客户交互、工单、领域文档——往往是价值最高的来源
- 公开数据集:Common Crawl、Wikipedia、GitHub、学术数据集
- 授权数据:付费提供方(新闻档案、经同意的医疗记录、法律数据库)
- 合成数据:由 AI 模型生成(见下文)
- 人工标注:由专家或众包工作者针对目标任务标注
标注指南
标注指南定义了"好"与"坏"的输出各是什么样。设计良好的指南应当: - 给出边缘情况的具体示例以及处理方式 - 无歧义地定义评分标准 - 明确任务模糊时该如何处理 - 包含用于校准、对齐标注者的样例
糟糕的指南会产生不一致的标签,对模型质量的损害甚至超过样例数量偏少。
数据合成
AI 驱动的数据合成利用现有模型生成新的训练数据。这是现代 AI 工程中杠杆率最高的技术之一。
为何要合成数据?
- 成本:人工标注昂贵;AI 标注在规模上很便宜
- 可扩展性:数天内生成数百万个样例
- 覆盖度:系统性地为稀有场景生成样例
- 隐私:合成模仿专有分布的数据,而不暴露真实数据
传统合成技术
| 技术 | 说明 |
|---|---|
| 回译(Back-translation) | 将文本翻译成另一种语言再翻回来,产生同义改写 |
| 同义改写(Paraphrasing) | 用不同措辞重写句子 |
| 噪声注入(Noise injection) | 加入拼写错误、词序交换、删除,以测试鲁棒性 |
| Mixup | 在训练样例之间插值 |
AI 驱动的合成
自指令(Self-instruct):用你正在训练的同一个模型生成指令遵循样例。用一小组人工编写的样例作为种子,让模型生成多样化的变体。
面向指令数据的回译:给定一段回复,生成本应引出它的指令。当你有大量样例输出、但少有指令-回复配对时尤其有效。
蒸馏(Distillation):通过查询一个更强的"教师"模型来生成训练样例,并以其输出作为较小"学生"模型的目标。学生模型学习在你所关心的分布上逼近教师模型的行为。
合成偏好数据:对同一提示词生成多个回复,再用 AI 评审为它们排序。这些排序即成为用于 RLHF/DPO 的偏好训练数据(优选/拒绝配对)。
以验证作为过滤器:对于数学和代码,正确性可自动验证。生成大量候选解,运行测试或验证器,只保留正确的解。这样无需人工标注即可产出高质量训练数据。
数据飞轮
一个良性循环:使用数据改进模型,模型吸引更多用户,用户又产生更多数据:
用户使用产品 → 收集使用数据 → 改进模型 →
产品变好 → 更多用户 → 更多数据 → ...
数据飞轮是 AI 产品的主要竞争护城河。早早进入市场、收集专有使用数据的公司,即便竞争对手起步时用的是同一个基座模型,也能随时间不断放大自身优势。
数据处理
去重
重复数据会使模型对重复内容过拟合、浪费算力,还可能扭曲模型行为(例如过度体现某些主题)。去重方法:
| 方法 | 说明 |
|---|---|
| 精确去重 | 基于哈希;移除完全相同的文档 |
| 近似去重(MinHash/LSH) | 找出 token 重叠度高的文档;可扩展到大规模语料 |
| 语义去重 | 移除嵌入相似的文档;能捕捉同义改写的重复 |
质量过滤
对原始数据施加的过滤: - 困惑度过滤:移除困惑度极高(随机噪声)或极低(模板化/重复)的文档 - 语种检测:只保留目标语种的文档 - 毒性过滤:移除有害、冒犯或违法的内容 - 带质量评分的去重:在近似重复中保留质量最高的版本 - 来源过滤:优选高质量域(维基百科、同行评审论文),弃用低质量域(垃圾站点、机器翻译内容)
数据格式化
训练数据必须格式化为模型预期的输入格式。以指令遵循为例:
<|system|>You are a helpful assistant.</s>
<|user|>Summarize this document: {document}</s>
<|assistant|>{summary}</s>
一致的格式化(使用与基座模型相同的对话模板)至关重要。模板不匹配会导致训练伪影。
评估数据集质量
在投入训练之前,先评估数据质量: - 随机抽样检视:从每个来源人工审阅 50–100 个样例 - 嵌入可视化:绘制数据嵌入(t-SNE/UMAP),发现聚簇、离群点和分布空白 - 标签一致性检查:在留出集上计算标注者间一致性 - 在切分上评估模型表现:训练一个小的代理模型,在任务专项基准上评估
参见
参考资料
- AI Engineering: Building Applications with Foundation Models — Chip Huyen, O'Reilly, 2025. 第 8 章。
- Self-Instruct: Aligning Language Model with Self Generated Instructions — Wang et al., 2022.
- Constitutional AI: Harmlessness from AI Feedback — Bai et al., Anthropic, 2022.