ms-swift 通过 AutoPreprocessor 自动识别以下格式:
json展开代码{
"messages": [
{"role": "system", "content": "你是助手"},
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好!"}
]
}
json展开代码{
"system": "你是助手",
"conversation": [
{"human": "你好", "assistant": "你好!"}
]
}
json展开代码{
"system": "你是助手",
"query": "你好",
"response": "你好!",
"history": [["问题1", "回答1"]]
}
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 │ LlamaFactory │ ├──────────────────┼────────────────────────────────┼────────────────────────────┤ │ 默认ShareGPT格式 │ conversation + human/assistant │ conversations + from/value │ ├──────────────────┼────────────────────────────────┼────────────────────────────┤ │ 默认角色标签 │ human, assistant │ human, gpt │ ├──────────────────┼────────────────────────────────┼────────────────────────────┤ │ 默认消息字段 │ messages, conversation │ conversations │ ├──────────────────┼────────────────────────────────┼────────────────────────────┤ │ 格式指定 │ 自动识别,无需指定 │ 需要formatting: 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 自动兼容:
from → rolevalue → contenthuman/gpt → user/assistant结论:LlamaFactory 的 ShareGPT 数据可以直接用于 ms-swift,无需转换。


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