在我们使用和构建数据集的时候,经常会碰到两种格式的数据,分别是Alpaca格式和ShareGPT格式,今天就来介绍一下它们的共同点和不同点。
1、典型数据
首先来看一下Alpaca格式的典型数据:
[{
"instruction": "将下面句子翻译成英语",
"input": "我叫张三",
"output": "My name is San Zhang"
}, {
"instruction": "将下面句子翻译成英语",
"input": "我叫李四",
"output": "My name is Si Li"
}]
然后是ShareGPT格式的典型数据
[{
"messages": [{
"role": "user",
"content": "3加2等于多少,只说数字"
},
{
"role": "assistant",
"content": "5"
}
]
}]
instruction、input、output 是 Alpaca 格式指令微调数据集的三个核心字段,用来让模型学会“看懂指令并给出对应回答”。
具体来说:
- instruction(必填):告诉模型要完成什么任务,比如“列出三种交通工具”“解释什么是机器学习”。
- input(选填):任务需要的辅助信息或上下文。如果指令本身已经说清楚了,这项可以留空字符串
""。 - output(必填):模型应该给出的标准回答,也就是“参考答案”。
数据一般存成 JSON 或 JSONL 文件,每行就是一条样本,例如:
json{"instruction":"列出三种交通工具。","input":"","output":"汽车、火车、飞机。"}
{"instruction":"总结下面这句话的主要观点。","input":"人工智能正在快速发展。","output":"人工智能发展迅速。"}
两种常见格式怎么选
- Alpaca 格式:就是 instruction/input/output,适合单轮问答、任务型指令,也是新手入门首选。
- ShareGPT 格式:用
conversations列表记录多轮对话(human和gpt轮流发言),适合训练聊天、客服这类多轮对话模型。
新手做数据集的小建议
字段必须是纯文本:如果 input 或 output 里出现了数组、字典这类嵌套结构,训练时会报错,需要先转成 JSON 字符串再喂给模型。
先跑通再扩量:50–100 条就够验证格式和训练流程没问题;想看到明显效果一般要 500–1000 条;3000 条以上效果才比较稳定。
别把知识全塞进微调:知识类内容适合用 RAG,微调更适合练回答格式、分析逻辑和风格。