第5讲:数据工程
5.1 常见数据来源
SFT 与后训练的主流开源数据集清单、聚合枢纽与许可证注意事项
数据的五类来源
先把问题正交化。做 SFT 或后训练,你的数据可能来自下列五类的任意组合:
人工标注集
Dolly-15k、Aya Human、OpenAssistant 等由人工编写指令和回答,质量高但成本高
蒸馏集
Alpaca、Vicuna/ShareGPT、UltraChat 等把强教师模型(GPT-3.5/4)的输出当金标
合成集
Self-Instruct、Evol-Instruct、MAGPIE、PersonaHub 从少量种子出发自增扩(方法细节见 5.3 合成数据)
对话集
LMSYS-Chat-1M、WildChat、OpenHermes,源自真实用户对话日志
偏好集
HH-RLHF、UltraFeedback、LMSYS preferences,用于 DPO/RLHF 的 (chosen, rejected) 对
英语主流数据集清单
下表只列被后续工作反复引用的代表性数据集。
通用指令(SFT)
| 数据集 | 规模 | 类型 | 许可证 | 备注 |
|---|---|---|---|---|
| Stanford Alpaca | 52K | 蒸馏(text-davinci-003) | CC BY-NC 4.0 | 继承 OpenAI 条款;不可商用 |
| Dolly-15k | 15K | 人工(Databricks 员工) | CC BY-SA 3.0 | 首个可商用人工作者指令集 |
| Vicuna / ShareGPT | 70K | 蒸馏(GPT-4 对话) | 研究用 | LMSYS 捕获 |
| UltraChat | 1.5M | 蒸馏(ChatGPT 自对话) | MIT | 多轮,覆盖 30 个主题 |
| OpenHermes 2.5 | ~1M | 聚合多源 | MIT | Teknium 维护 |
| OpenAssistant | 161K | 人工+偏好树 | Apache-2.0 | 35 语言,含对话树 |
| LIMA | 1K | 精选人工 | 研究 | "Less Is More"——仅 1K 条可比肩 52K |
| FLAN v2 | 15M+ | 多任务模板化 | Apache-2.0 | 超大规模;判别任务强 |
| Evol-Instruct / WizardLM | 250K | 合成演化 | MIT | 5 种深化 + 1 种广度变异 |
| Magpie | 300K | 零种子合成 | MIT | 从 Llama-3-Instruct 自提取 |
| PersonaHub | 1B personas | 合成(Persona 驱动) | 研究(腾讯) | 10 亿角色作为条件 |
代码、数学、工具使用
| 数据集 | 规模 | 用途 |
|---|---|---|
| OSS-Instruct / Magicoder | 75K | 代码生成(7B 比肩 ChatGPT) |
| WizardMath | 15K | 数学推理(过程奖励 RL) |
| MetaMathQA | 395K | GSM8K / MATH 增强 |
| ToolBench | 126K | 多工具调用 |
| ToolAlpaca | 3.9K | API 调用轨迹 |
| Nemotron-4 340B 合成 | ~1M+ | NVIDIA 报告 98% 是合成的 |
偏好数据(DPO / RLHF)
| 数据集 | 规模 | 偏好来源 |
|---|---|---|
| Anthropic HH-RLHF | 170K | 人工(helpfulness + harmlessness) |
| UltraFeedback | 64K | GPT-4 评分的 4 路候选 |
| LMSYS Preferences | 100K+ | 真实用户对战 |
| Nectar | 183K | 7 路排名 |
多语与低资源数据集
详细讨论见 5.4 低资源语言 SFT 数据合成,这里给一个按区域的速查:
| 区域 | 代表数据集 | 规模 & 语言 |
|---|---|---|
| 泛多语 | Aya Dataset + Collection | 65 语 20.4 万人工 + 114 语 5.13 亿模板 |
| 泛多语 | Bactrian-X | 52 语 340 万(翻译+重生成) |
| 泛多语 | Okapi | 26 语 158K + 偏好 |
| 印度 | IndicInstruct / Airavata | 14 语(IndicTrans2 翻译 + 人工) |
| 东南亚 | SEA-LION | 11+ 语 1680 万对 |
| 阿拉伯 | CIDAR | 10K 文化本地化(胜过 30× 翻译量) |
| 非洲 | AfriInstruct | 19 语 混合任务 |
| 中文 | COIG-Kun | 100 万条(反向翻译 + 答案打磨) |
| 中文 | WildChat-1M | 真实用户对话 |
| 藏语 | Alpaca-Ti / TIB-STC | 42,676 条 + 多样化 DPO |
数据枢纽(去哪找)
| 枢纽 | 主要资源 | 适合 |
|---|---|---|
| Hugging Face Datasets | 上万 SFT / DPO 数据集;支持 streaming | 英语 + 泛多语主流 |
| ModelScope | 阿里维护;中文/多模态/垂直领域 | 中文重点项目 |
| OpenCompass | 评测集为主,也含训练数据 | 需要配套评测时 |
| PaperWithCode Datasets | 分类 benchmark | 找"某任务的标准数据" |
| BAAI Data | 悟道/万卷/COIG 系 | 中文大规模 |
| AI4Bharat | 印度语系 | 多印度语 |
| Masakhane | 非洲语系 | 社区治理范式 |
许可证与合规
最易踩坑的三个类别:
- 继承 OpenAI 条款的数据集(Alpaca / Vicuna / ShareGPT / UltraChat)——明确条款是不得用于训练与 OpenAI 竞争的模型;商用产品请替换为 Dolly-15k / OpenAssistant / Aya 等
- CC BY-NC 家族——只允许非商用;许多 Alpaca 衍生集继承此条款
- 爬取的对话日志——即使来自公开网站,也要核查网站服务条款与用户隐私(去除 PII、按需合规脱敏)
推荐的商用友好子集:
- Dolly-15k (CC BY-SA 3.0)
- OpenAssistant (Apache-2.0)
- Aya Dataset 人工子集 (Apache-2.0)
- Evol-Instruct / WizardLM (MIT)
- Magpie (MIT)
- UltraFeedback (MIT,偏好数据)
- FLAN v2 (Apache-2.0)
自建还是采购?一个简单决策
下一步
- 拿到数据后怎么准备(格式、chat template、masking):→ 5.2 准备 SFT 数据
- 需要自己合成:→ 5.3 合成数据
- 目标是中文方言 / 藏语 / 其他低资源语言:→ 5.4 低资源语言 SFT 数据合成
- 过滤:→ 5.5 质量过滤
关键词
Alpaca · Dolly-15k · ShareGPT · UltraChat · OpenHermes · FLAN · Aya · LMSYS-Chat-1M · HH-RLHF · UltraFeedback · Hugging Face Datasets · ModelScope · License Compliance