跳转到主要内容

数据集和格式

您的模型的好坏取决于您的数据。以下是如何正确格式化它。

支持的文件格式

AITraining 支持多种数据源:
格式如何加载用例
JSONLpandas.read_json(lines=True)LLM 训练、对话
CSVpandas.read_csv()分类、表格数据
HF Dataset IDdatasets.load_dataset()来自 Hub 的远程数据集
Local HF Datasetload_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

数据质量基础

平衡您的类别

不好:
  • 1000 个积极示例
  • 50 个消极示例
好:
  • 500 个积极示例
  • 500 个消极示例

清理您的数据

删除:
  • 重复项
  • 空值
  • 明显错误
  • 不一致的格式

大小指南

任务类型最少良好优秀
Text Classification1001,00010,000+
Image Classification2002,00020,000+
Language Generation505005,000+

按训练器要求的列

不同的训练器需要特定的列:
训练器必需列可选
sft / defaulttext(或 messages-
dpoprompt, chosen, rejected-
orpoprompt, chosen, rejected-
rewardtext (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自动conversationsfrom/value
Messages自动messagesrole/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 格式
zephyrZephyr/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

快速提示

  1. 从小开始 - 在扩展之前先用 100 个示例测试
  2. 尽早验证 - 在收集数千个示例之前检查您的格式是否有效
  3. 保持一致 - 在整个数据集中使用相同的格式
  4. 记录一切 - 注意任何预处理或特殊规则
  5. 使用自动转换 - 让 AITraining 自动检测和转换格式

下一步