跳转到主要内容

数据集和格式

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

支持的文件格式

AITraining 支持多种数据源:
Parquet 文件通过暴露 Parquet 格式的 HuggingFace 数据集间接支持。

常见格式

CSV(最常见)

简单且通用。适用于分类、回归和基本任务。

JSON/JSONL

更适合复杂数据、对话和嵌套结构。

图像文件夹

按类别组织图像:

数据质量基础

平衡您的类别

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

清理您的数据

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

大小指南

按训练器要求的列

不同的训练器需要特定的列:
如果缺少必需的列,您将收到一个清晰的验证错误,列出缺少和可用的列。

特殊格式

DPO/ORPO(偏好数据)

Token Classification

对话格式

对话期望 {role, content} 对象列表:
或 ShareGPT 格式(自动检测和转换):

Tool 角色支持

AITraining 支持 tool 角色用于函数调用训练数据:
自动兼容性:对于不原生支持 tool 角色的模型(如 Gemma),AITraining 会自动将 tool 消息转换为带有 [Tool Result] 前缀的 user 消息。具有原生 tool 支持的模型(Llama 3.1+、Qwen 等)使用其原生格式。
旧版格式支持:旧版 OpenAI function 角色(在引入 tool 之前使用)也受支持,处理方式与 tool 角色相同。

Tool Calls(函数调用)

AITraining 还支持 tool_calls 字段用于训练模型进行函数调用:
智能格式检测:AITraining 会检测您的模型是否原生支持 tool_calls
  • Qwen、Llama 3.1+:使用原生 <tool_call> 格式
  • Gemma、旧模型:将工具调用序列化为内容中的 OpenAI 格式 JSON
在推理时,从助手输出中解析 JSON 以提取工具调用。

Tool Call 格式转换

对于没有原生工具支持的模型,AITraining 将工具调用序列化为 OpenAI 格式 JSON 并附加到助手内容中: 输入(带有 tool_calls 字段的消息):
输出(序列化在内容中):
序列化格式保留了完整的 OpenAI 结构,包括 idtypefunction 字段。这与系统提示中描述的格式一致,有助于模型更好地学习。

消息交替处理

某些模型(Gemma、Mistral)要求严格的 user/assistant 交替。AITraining 会自动修复常见问题: 连续相同角色的消息会被合并:
assistant 前缺少 user 会添加占位符:
这些修复仅在 tokenizer 拒绝原始格式时应用。接受灵活消息顺序的模型会保持原始结构。

自动数据集转换

AITraining 可以自动检测和转换常见的数据集格式。无需手动预处理。

支持的格式

列映射是可选的 - 使用它将不同的列名转换为预期格式。

使用自动转换

Chat Templates

Chat templates 将您的数据格式化为模型预期的对话结构。 模板根据您的训练器自动选择,或手动指定:
统一渲染器一致地应用模板。为了向后兼容,仍支持旧版模板路径。

对话扩展

将单轮示例合并为多轮对话:

处理后数据集输出

处理后,您的数据集将包含:
原始列被重命名为 _original_*,以防止其他工具自动检测并错误使用未处理的数据。

保存处理后的数据

使用 --save-processed-data 控制处理后数据的保存位置:

快速提示

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

下一步

超参数

配置您的训练

训练任务

选择您的任务类型