数据集和格式
您的模型的好坏取决于您的数据。以下是如何正确格式化它。
支持的文件格式
AITraining 支持多种数据源:
| 格式 | 如何加载 | 用例 |
|---|
| JSONL | pandas.read_json(lines=True) | LLM 训练、对话 |
| CSV | pandas.read_csv() | 分类、表格数据 |
| HF Dataset ID | datasets.load_dataset() | 来自 Hub 的远程数据集 |
| Local HF Dataset | load_from_disk() | 预处理的数据集 |
Parquet 文件通过暴露 Parquet 格式的 HuggingFace 数据集间接支持。
常见格式
CSV(最常见)
简单且通用。适用于分类、回归和基本任务。
text,label
"This product is amazing",positive
"Terrible experience",negative
"Average quality",neutral
JSON/JSONL
更适合复杂数据、对话和嵌套结构。
{"messages": [
{"role": "user", "content": "What is Python?"},
{"role": "assistant", "content": "Python is a programming language"}
]}
图像文件夹
按类别组织图像:
dataset/
cats/
cat1.jpg
cat2.jpg
dogs/
dog1.jpg
dog2.jpg
数据质量基础
平衡您的类别
不好:
好:
清理您的数据
删除:
大小指南
| 任务类型 | 最少 | 良好 | 优秀 |
|---|
| Text Classification | 100 | 1,000 | 10,000+ |
| Image Classification | 200 | 2,000 | 20,000+ |
| Language Generation | 50 | 500 | 5,000+ |
按训练器要求的列
不同的训练器需要特定的列:
| 训练器 | 必需列 | 可选 |
|---|
sft / default | text(或 messages) | - |
dpo | prompt, chosen, rejected | - |
orpo | prompt, chosen, rejected | - |
reward | text (chosen), rejected | - |
如果缺少必需的列,您将收到一个清晰的验证错误,列出缺少和可用的列。
特殊格式
DPO/ORPO(偏好数据)
{
"prompt": "Explain gravity",
"chosen": "Gravity is a force that attracts objects...",
"rejected": "gravity is thing that make stuff fall"
}
Token Classification
John B-PERSON
Smith I-PERSON
visited O
Paris B-LOCATION
对话格式
对话期望 {role, content} 对象列表:
{"messages": [
{"role": "user", "content": "Hello"},
{"role": "assistant", "content": "Hi there!"}
]}
或 ShareGPT 格式(自动检测和转换):
{"conversations": [
{"from": "human", "value": "Hello"},
{"from": "assistant", "value": "Hi there!"}
]}
自动数据集转换
AITraining 可以自动检测和转换常见的数据集格式。无需手动预处理。
支持的格式
| 格式 | 检测 | 示例列 |
|---|
| Alpaca | 自动 | instruction, input, output |
| ShareGPT | 自动 | conversations 带 from/value |
| Messages | 自动 | messages 带 role/content |
| Q&A | 自动 | question/answer, query/response |
| User/Assistant | 自动 | user, assistant |
| DPO | 自动 | prompt, chosen, rejected |
| Plain Text | 自动 | text |
列映射是可选的 - 使用它将不同的列名转换为预期格式。
使用自动转换
aitraining llm --train \
--model google/gemma-3-270m \
--data-path tatsu-lab/alpaca \
--auto-convert-dataset \
--chat-template gemma3 \
--trainer sft
Chat Templates
Chat templates 将您的数据格式化为模型预期的对话结构。
| 选项 | 描述 |
|---|
tokenizer | 使用模型的内置 chat template(SFT/DPO/ORPO 的默认值) |
chatml | 标准 ChatML 格式 |
zephyr | Zephyr/Mistral 格式 |
none | 无模板(纯文本) |
模板根据您的训练器自动选择,或手动指定:
--chat-template tokenizer # 使用模型的模板(推荐)
--chat-template chatml # 强制 ChatML
--chat-template none # 禁用纯文本
统一渲染器一致地应用模板。为了向后兼容,仍支持旧版模板路径。
对话扩展
将单轮示例合并为多轮对话:
aitraining llm --train \
--model google/gemma-3-270m \
--data-path ./qa_pairs.jsonl \
--auto-convert-dataset \
--conversation-extension 3 \
--trainer sft
快速提示
- 从小开始 - 在扩展之前先用 100 个示例测试
- 尽早验证 - 在收集数千个示例之前检查您的格式是否有效
- 保持一致 - 在整个数据集中使用相同的格式
- 记录一切 - 注意任何预处理或特殊规则
- 使用自动转换 - 让 AITraining 自动检测和转换格式
下一步