总体说明
任务式建模-内置大模型精调模块使用平台训练模板,用户仅需要准备好用于精调的训练数据集即可一键发起训练,本文旨在详细说明监督微调和预训练两种训练方式下的数据格式要求。
注意:
平台支持的数据集文件格式为 jsonl 格式(jsonl 文件内一行表示一组样本数据),编码仅支持 UTF-8,训练数据路径下的多个文件会被合并训练。
监督微调(SFT)数据
由数据样本中的 messages 描述多角色对话与互动。多轮对话中,对话须以 assistant 结尾。可填写的角色包括:
Role(角色) | 是否必需 | 说明 | 字段 |
system | 否 | 代表系统角色设定 | content: 角色设定信息 |
user | 是 | 代表用户的输入 | content: 用户输入内容 |
assistant | 是 | 代表模型的回答 | content: 模型回答内容 |
单轮对话数据集样本示例
{"messages": [{"role": "system", "content": "你是TIONE智能问答机器人,能理解用户问题并流利解答"}, {"role": "user", "content": "阅读以下文本,用一句话进行总结。\\n 周五,一名联邦法官做出了有利于一名前加州大学洛杉矶分校大学篮球明星的裁决,该明星起诉要求终止NCAA对大学运动员姓名、图像和肖像权的控制。"}, {"role": "assistant", "content": "法官支持一位挑战NCAA的前加州大学洛杉矶分校信息控制的篮球明星。"}]}
多轮对话数据集样本示例
{"messages": [{"role": "system", "content": "你是TIONE智能问答机器人,能理解用户问题并流利解答"}, {"role": "user", "content": "阅读以下文本,用一句话进行总结。\\n 周五,一名联邦法官做出了有利于一名前加州大学洛杉矶分校大学篮球明星的裁决,该明星起诉要求终止NCAA对大学运动员姓名、图像和肖像权的控制。"}, {"role": "assistant", "content": "法官支持一位挑战NCAA的前加州大学洛杉矶分校信息控制的篮球明星。"}, {"role": "user", "content": "阅读以下文本,用一句话进行总结。\\n 奥巴马总统星期四向那些因他支持的联邦卫生法而取消保险计划的美国人道歉,尽管他一再表示,如果他们愿意,他们可以保留保险。\\n他在接受NBC新闻独家采访时表示:“我很抱歉,根据我的保证,他们发现自己陷入了这种境地。”"}, {"role": "assistant", "content": "奥巴马在接受美国全国广播公司采访时表示抱歉。"}]}
含思维链的数据集
由数据样本中的 messages 描述多角色对话与互动,在 Role=assistant 的回答中由<think>和</think>包围思考内容。多轮对话中,对话须以 assistant 结尾。可填写的角色包括:
Role(角色) | 是否必需 | 说明 | 字段 |
system | 否 | 代表系统角色设定 | content: 角色设定信息 |
user | 是 | 代表用户的输入 | content: 用户输入内容 |
assistant | 是 | 代表模型的回答,由<think>和</think>包围思考内容 | content: 模型回答内容 |
样本示例
{"messages": [{"role": "system", "content": "你是TIONE智能问答机器人,能理解用户问题并流利解答"}, {"role": "user", "content": "阅读以下文本,用一句话进行总结。\\n 周五,一名联邦法官做出了有利于一名前加州大学洛杉矶分校大学篮球明星的裁决,该明星起诉要求终止NCAA对大学运动员姓名、图像和肖像权的控制。"}, {"role": "assistant", "content": "<think>用户要求我阅读上述文本并用一句话进行总结,我需要找出这件事的主语、宾语和谓语,并找到合适的修饰词来进行限定,连接起来概括成一句话。</think>法官支持一位挑战NCAA的前加州大学洛杉矶分校信息控制的篮球明星。"}]}
请关注,Hunyuan 系列模型的思维链要求格式略有不同,描述如下:
由数据样本中的 messages 描述多角色对话与互动,在 Role=assistant 的回答中由<think>和</think>包围思考内容。多轮对话中,对话须以 assistant 结尾,最后一轮对话用<answer>\\n和\\n</answer>包围,用一个换行符\\n隔开思考内容和回答内容。可填写的角色包括:
Role(角色) | 是否必需 | 说明 | 字段 |
system | 否 | 代表系统角色设定 | content: 角色设定信息 |
user | 是 | 代表用户的输入 | content: 用户输入内容 |
assistant | 是 | 代表模型的回答;最后一轮回答由<think>\\n和\\n</think>包围思考内容,回答内容用<answer>\\n和\\n</answer>包围 | content: 模型回答内容 |
样本示例
{"messages": [{"role": "system", "content": "你是TIONE智能问答机器人,能理解用户问题并流利解答"}, {"role": "user", "content": "阅读以下文本,用一句话进行总结。\\n 周五,一名联邦法官做出了有利于一名前加州大学洛杉矶分校大学篮球明星的裁决,该明星起诉要求终止NCAA对大学运动员姓名、图像和肖像权的控制。"}, {"role": "assistant", "content": "<think>\\n用户要求我阅读上述文本并用一句话进行总结,我需要找出这件事的主语、宾语和谓语,并找到合适的修饰词来进行限定,连接起来概括成一句话。\\n</think>\\n<answer>\\n法官支持一位挑战NCAA的前加州大学洛杉矶分校信息控制的篮球明星。\\n</answer>"}]}
含工具调用的数据集
由数据样本中的 messages 描述多角色对话与互动,tools 使用 json 格式的字符串来定义模型可调用的工具。请注意工具调用数据集应使用于支持工具调用的模型(如 Qwen3 等)。多轮对话中,对话须以 assistant 或 tool_call 结尾。可填写的角色包括:
Role(角色) | 是否必需 | 说明 | 字段 |
system | 否 | 代表系统角色设定 | content: 角色设定信息 |
user | 是 | 代表用户的输入,除系统角色设定外,需出现在奇数条(从1开始) | content: 用户输入内容 |
assistant | 是 | 代表模型的回答,除系统角色设定外,需出现在偶数条(从1开始) | content: 模型回答内容 |
tool_call | 是 | 代表工具调用,除系统角色设定外,需出现在偶数条(从1开始) | content: 调用工具名称、参数 |
tool | 是 | 代表工具调用结果,除系统角色设定外,需出现在奇数条(从1开始) | content: 调用返回结果 |
以 assistant 为结尾的样本示例:
{"messages": [{"role": "system", "content": "你是TIONE智能问答机器人,能理解用户问题并流利解答"}, {"role": "user", "content": "请你回答下列问题:小李今年25岁,小王今年20岁,请问他们两位的年龄之和为多少"}, {"role": "tool_call", "content": "{\\"name\\":\\"calculate_age_sum\\", \\"arguments\\": {\\"age_1\\": 25, \\"age_2\\": 20}}"}, {"role": "tool", "content": "/no_think{\\"age_sum\\": 45}"}, {"role": "assistant", "content": "<think>\\n\\n</think>\\n<answer>\\n根据我的计算,小李和小王的年龄之和为45岁\\n</answer>"}], "tools": "[{\\"name\\": \\"calculate_age_sum\\", \\"description\\": \\"计算并返回两人的年龄之和\\", \\"parameters\\": {\\"type\\": \\"object\\", \\"properties\\": {\\"age_1\\": {\\"type\\": \\"number\\", \\"description\\": \\"第一个人的年龄\\"}, \\"age_2\\": {\\"type\\": \\"number\\", \\"description\\": \\"第二个人的年龄\\"}}, \\"required\\": [\\"age_1\\", \\"age_2\\"]}}]"}
以 tool_call 为结尾的样本示例:
{"messages": [{"role": "system", "content": "你是TIONE智能问答机器人,能理解用户问题并流利解答"}, {"role": "user", "content": "/no_think请你回答下列问题:小李今年25岁,小王今年20岁,请问他们两位的年龄之和为多少"}, {"role": "tool_call", "content": "<think>\\n\\n</think>\\n<answer>\\n{\\"name\\":\\"calculate_age_sum\\", \\"arguments\\": {\\"age_1\\": 25, \\"age_2\\": 20}}\\n</answer>"}], "tools": "[{\\"name\\": \\"calculate_age_sum\\", \\"description\\": \\"计算并返回两人的年龄之和\\", \\"parameters\\": {\\"type\\": \\"object\\", \\"properties\\": {\\"age_1\\": {\\"type\\": \\"number\\", \\"description\\": \\"第一个人的年龄\\"}, \\"age_2\\": {\\"type\\": \\"number\\", \\"description\\": \\"第二个人的年龄\\"}}, \\"required\\": [\\"age_1\\", \\"age_2\\"]}}]"}
工具调用内容说明:
工具描述 tools:(展开结果)
"tools": "[{\\"name\\": \\"calculate_age_sum\\",\\"description\\": \\"计算并返回两人的年龄之和\\",\\"parameters\\": {\\"type\\": \\"object\\",\\"properties\\": {\\"age_1\\": {\\"type\\": \\"number\\",\\"description\\": \\"第一个人的年龄\\"},\\"age_2\\": {\\"type\\": \\"number\\",\\"description\\": \\"第二个人的年龄\\"}},\\"required\\": [\\"age_1\\", \\"age_2\\"]}}]"
对话中,工具调用 Role=tool_call:(展开结果)
{"role": "tool_call","content": "{\\"name\\":\\"calculate_age_sum\\",\\"arguments\\": {\\"age_1\\": 25,\\"age_2\\": 20}}"}
对话中,工具调用结果 Role=tool:(展开结果)
{"role": "tool","content": "{\\"age_sum\\": 45}"}
预训练(PT)数据
由数据样本中的 text 描述无标签的文本。
样本示例
{"text": "鲁镇的酒店的格局,是和别处不同的:都是当街一个曲尺形的大柜台,柜里面预备着热水,可以随时温酒。做工的人,傍午傍晚散了工,每每花四文铜钱,买一碗酒,——这是二十多年前的事,现在每碗要涨到十文,——靠柜外站着,热热的喝了休息;倘肯多花一文,便可以买一碟盐煮笋,或者茴香豆,做下酒物了,如果出到十几文,那就能买一样荤菜,但这些顾客,多是短衣帮,大抵没有这样阔绰。只有穿长衫的,才踱进店面隔壁的房子里,要酒要菜,慢慢地坐喝。"}{"text": "我从十二岁起,便在镇口的咸亨酒店里当伙计,掌柜说,样子太傻,怕侍候不了长衫主顾,就在外面做点事罢。外面的短衣主顾,虽然容易说话,但唠唠叨叨缠夹不清的也很不少。他们往往要亲眼看着黄酒从坛子里舀出,看过壶子底里有水没有,又亲看将壶子放在热水里,然后放心:在这严重监督下,羼水也很为难。所以过了几天,掌柜又说我干不了这事。幸亏荐头的情面大,辞退不得,便改为专管温酒的一种无聊职务了。"}
自定义格式
除了您可以在训练数据路径下放入符合上文描述格式的数据文件以外,您也可以按照 LLaMA-Factory 数据集格式 准备 dataset_info.json 指定训练数据集。当您的训练数据路径下已存在 dataset_info.json 时,平台将会且只会直接读入该描述文件中指定的所有数据集。
示例:
训练数据目录(以/opt/ml/input/data/train为例)
/opt/ml/input/data/train├── dataset1.json└── dataset_info.json
训练数据 dataset1.json
[{"messages": [{"role": "system","content": "你是TIONE智能问答机器人,能理解用户问题并流利解答"},{"role": "user","content": "阅读以下文本,用一句话进行总结。\\n 文本:(美国有线电视新闻网)-周五,一名联邦法官做出了有利于一名前加州大学洛杉矶分校大学篮球明星的裁决,该明星起诉要求终止NCAA对大学运动员姓名、图像和肖像权的控制。"},{"role": "assistant","content": "法官支持一位挑战NCAA的前加州大学洛杉矶分校信息控制的篮球明星。"}]},{"messages": [{"role": "system","content": "你是TIONE智能问答机器人,能理解用户问题并流利解答"},{"role": "user","content": "阅读以下文本,用一句话进行总结。\\n 文本:奥巴马总统星期四向那些因他支持的联邦卫生法而取消保险计划的美国人道歉,尽管他一再表示,如果他们愿意,他们可以保留保险。"},{"role": "assistant","content": "奥巴马在接受美国全国广播公司采访时就保险计划取消表示抱歉。"}]}]
数据集描述文件 dataset_info.json
{"dataset1": {"file_name": "dataset1.json","formatting": "sharegpt","columns": {"messages": "messages",},"tags": {"role_tag": "role","content_tag": "content","user_tag": "user","assistant_tag": "assistant"}},}