ms-swift SFT 训练数据格式
2026-01-10
ms-swift
00

目录

ms-swift SFT 训练数据格式指南
一、支持的4种数据格式
1. Messages 格式(推荐)
2. ShareGPT 格式
3. Query-Response 格式
4. Alpaca 格式
二、使用方式
ms-swift vs LlamaFactory 对比
功能特性对比
ShareGPT 格式对比
关键差异总结
互相转换

ms-swift SFT 训练数据格式指南

一、支持的4种数据格式

ms-swift 通过 AutoPreprocessor 自动识别以下格式:

1. Messages 格式(推荐)

json
展开代码
{ "messages": [ {"role": "system", "content": "你是助手"}, {"role": "user", "content": "你好"}, {"role": "assistant", "content": "你好!"} ] }

2. ShareGPT 格式

json
展开代码
{ "system": "你是助手", "conversation": [ {"human": "你好", "assistant": "你好!"} ] }

3. Query-Response 格式

json
展开代码
{ "system": "你是助手", "query": "你好", "response": "你好!", "history": [["问题1", "回答1"]] }

4. Alpaca 格式

json
展开代码
{ "system": "你是助手", "instruction": "告诉我", "input": "天气", "output": "今天天气晴朗" }

二、使用方式

bash
展开代码
# 直接传入文件路径,自动识别格式 swift sft --model qwen2.5-7b --dataset /path/to/data.jsonl # 支持列名映射 swift sft --model qwen2.5-7b --dataset /path/to/data.jsonl --columns query:input response:output

ms-swift vs LlamaFactory 对比

功能特性对比

展开代码
┌──────────────────┬────────────────────────────────┬────────────────────────────┐ │ 特性 │ ms-swift │ LlamaFactory │ ├──────────────────┼────────────────────────────────┼────────────────────────────┤ │ 默认ShareGPT格式 │ conversation + human/assistant │ conversations + from/value │ ├──────────────────┼────────────────────────────────┼────────────────────────────┤ │ 默认角色标签 │ human, assistant │ human, gpt │ ├──────────────────┼────────────────────────────────┼────────────────────────────┤ │ 默认消息字段 │ messages, conversation │ conversations │ ├──────────────────┼────────────────────────────────┼────────────────────────────┤ │ 格式指定 │ 自动识别,无需指定 │ 需要formatting: sharegpt │ └──────────────────┴────────────────────────────────┴────────────────────────────┘

ShareGPT 格式对比

LlamaFactory 的 ShareGPT 格式:

json
展开代码
{ "conversations": [ {"from": "human", "value": "你好"}, {"from": "gpt", "value": "你好!有什么可以帮助你的?"} ], "images": ["img.jpg"] }

ms-swift 的 ShareGPT 格式:

json
展开代码
{ "conversation": [ {"human": "你好", "assistant": "你好!有什么可以帮助你的?"} ], "images": ["img.jpg"] }

ms-swift 的 Messages 格式(更通用):

json
展开代码
{ "messages": [ {"role": "user", "content": "你好"}, {"role": "assistant", "content": "你好!有什么可以帮助你的?"} ], "images": ["img.jpg"] }

关键差异总结

展开代码
┌──────────────┬──────────────────────────────────┬─────────────────────────┐ │ 方面 │ ms-swift │ LlamaFactory │ ├──────────────┼──────────────────────────────────┼─────────────────────────┤ │ 消息字段名 │ messages 或 conversation │ conversations │ ├──────────────┼──────────────────────────────────┼─────────────────────────┤ │ 角色字段 │ role 或嵌入key (human/assistant) │ from │ ├──────────────┼──────────────────────────────────┼─────────────────────────┤ │ 内容字段 │ content 或嵌入value │ value │ ├──────────────┼──────────────────────────────────┼─────────────────────────┤ │ 助手角色名 │ assistant │ gpt │ ├──────────────┼──────────────────────────────────┼─────────────────────────┤ │ 格式自动识别 │ 是 │ 否,需配置 │ ├──────────────┼──────────────────────────────────┼─────────────────────────┤ │ 数据注册 │ 可选(支持直接路径) │ 需要dataset_info.json │ ├──────────────┼──────────────────────────────────┼─────────────────────────┤ │ loss控制 │ 支持"loss": true/false │ 支持mask_history_sample │ └──────────────┴──────────────────────────────────┴─────────────────────────┘

互相转换

如果你有 LlamaFactory 格式的数据想在 ms-swift 中使用:

bash
展开代码
# ms-swift 可以直接处理,通过 tags 配置兼容 swift sft --model qwen2.5-7b --dataset /path/to/llamafactory_data.json

ms-swift 的 MessagesPreprocessor 自动兼容:

  • fromrole
  • valuecontent
  • human/gptuser/assistant

结论:LlamaFactory 的 ShareGPT 数据可以直接用于 ms-swift,无需转换。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!