数据集指南
您的数据集是训练成功的最重要因素。小而高质量的数据集总是胜过庞大而嘈杂的数据集。数据集大小问题
为什么会这样?
这样想:- 小模型 = 小大脑 = 只能记忆这么多
- 大数据集 = 大量信息
- 结果 = 模型只是记忆示例而不是学习模式
gemma-3-270m:
- 模型记忆:“当被问及法国首都时,说巴黎”
- 但不学习:“如何一般性地回答地理问题”
如何修复
在向导中使用--max-samples:
数据集格式
向导自动检测您的数据集格式。Alpaca 格式(最常见)
instruction、input(可选)、output
适合:遵循指令、Q&A、完成任务
ShareGPT / 对话格式
Messages 格式(OpenAI 风格)
Q&A 格式
question/query/prompt + answer/response
适合:简单问答
DPO 格式(偏好训练)
纯文本
自动格式检测
向导分析您的数据集并建议转换:转换的作用
- 规范化您的数据为标准格式
- 应用正确的聊天模板给您的模型
- 处理特殊标记
使用本地数据
CSV 文件
创建包含示例的 CSV:JSON/JSONL 文件
创建.jsonl 文件(每行一个 JSON 对象):
文件夹结构
将所有文件放在文件夹中:数据集质量技巧
质量 > 数量
质量 > 数量
500 个高质量示例胜过 50,000 个平庸示例。每个示例应该:
- 准确且正确
- 格式良好
- 代表您希望模型执行的操作
多样性很重要
多样性很重要
包含各种示例: - 不同主题 - 不同长度 - 不同风格 - 边缘情况
匹配您的用例
匹配您的用例
如果您想要客户支持机器人,在客户支持对话上训练。
如果您想要代码助手,在代码示例上训练。 不要在通用数据上训练并期望特定技能。
清理您的数据
清理您的数据
删除: - 重复项 - 损坏的示例 - 不一致的格式 - 低质量响应
平衡您的类别
平衡您的类别
如果您有类别,尝试每个类别有相似数量。
1000 个类别 A 示例 + 50 个类别 B 示例 = 模型忽略 B。
热门数据集
用于学习/测试
| 数据集 | 大小 | 格式 | 最适合 |
|---|---|---|---|
tatsu-lab/alpaca | 52k | Alpaca | 通用指令遵循 |
databricks/databricks-dolly-15k | 15k | Alpaca | 商业/专业任务 |
OpenAssistant/oasst1 | 10k+ | Conversation | 有用的助手行为 |
用于特定任务
| 数据集 | 大小 | 格式 | 最适合 |
|---|---|---|---|
sahil2801/CodeAlpaca-20k | 20k | Alpaca | 代码生成 |
WizardLM/WizardLM_evol_instruct_70k | 70k | Alpaca | 复杂推理 |
timdettmers/openassistant-guanaco | 9k | Conversation | 有用的聊天 |
用于偏好训练(DPO/ORPO)
| 数据集 | 大小 | 格式 | 最适合 |
|---|---|---|---|
Anthropic/hh-rlhf | 170k | DPO | 有用且无害 |
argilla/ultrafeedback-binarized-preferences | 60k | DPO | 通用偏好 |
训练/验证分割
它们是什么
- Train split:模型学习的数据
- Validation split:检查模型是否在学习(而非记忆)的数据
何时使用验证
如果以下情况,使用验证分割:- 您有 1,000+ 示例
- 您想检测过拟合
- 您正在试验超参数
- 您有 < 500 示例(每个示例都很重要)
- 您正在进行快速测试运行
- 您将在训练后单独评估
在向导中设置分割
限制数据集大小
用于测试或防止过拟合:- 首次训练运行:使用 100-500 个样本验证一切正常
- 小模型:对于 270M-1B 模型限制为 1,000-5,000
- 快速迭代:使用较小数据测试不同设置