合成文本类数据集
功能介绍
数据合成是利用预置或自定义的数据指令对原始数据集进行处理,并根据设定的轮数生成新的数据。
当前,数据合成功能支持合成单轮问答、单轮问答(人设)、问答排序、偏好优化DPO、偏好优化DPO(人设)类型的数据。
约束限制
- 合成预置指令调测,自定义指令创建,以及合成任务运行都需要依赖大模型,需要在ModelArtsStudio中购买模型并部署。
- 使用合成任务前,请确保有已部署的NLP大模型,具体步骤详见创建NLP大模型部署任务。
创建文本类数据集合成任务
合成文本类数据集任务前,请先完成数据导入操作,具体步骤请参见导入数据至盘古平台。
创建文本类数据集合成任务步骤如下:
- 登录ModelArts Studio大模型开发平台,在“我的空间”模块,单击进入所需空间。
图1 我的空间
- 在左侧导航栏中选择“数据工程 > 数据加工 > 合成任务”,单击界面右上角“创建合成任务”。
- 在“创建合成任务”页面,选择需要合成的数据集,选择合成内容与预期合成条数,如图2,系统指定预期合成条数则为数据集初始数据条数。
- 如果合成前的数据集类型与合成后的数据集类型相同,可选择开启“将源数据集整合至合成后数据”,在合成任务运行完成后,将生成的数据与原始数据集合并,单击“下一步”。
- 进入“合成编排”页面,如图3所示页面开始栏会显示当前数据集数据类型对应的固定字段和除固定字段以外,数据集内其它的自定义字段,这些字段可以在指令输入输出变量中选中。在左侧“添加指令”页面可选择预置指令或自定义指令,指令编排需要按逻辑编排,若同时选择三个生成问答对类型的指令,最终输出结果也只会保存一条问答对数据。
- 编排完成的指令,可单击"创建合成模板",保存当前的指令编排内容供下次一键复用,在右侧可通过单击“选择合成模板”选择一个模板编排,如图4所示,模板只有输入类型和输出类型相同的情况下才可见,如:输入为预训练文本,输出为单轮问答,若当前输入数据类型(如:单轮问答)与保存模板时的输入类型(如:预训练)不一致,当前数据选择合成模板时将不可见该模板。
- 预置指令。平台为用户提供了多种预置指令,便于用户执行合成任务,请详见预置数据指令介绍。
- 自定义指令。平台支持编排用户自定义指令。自定义指令的创建详见创建自定义数据合成指令。
- 指令选择完成后,单击“确定”,并配置指令参数。
如图5,展示了预训练文本类数据集的合成指令参数配置示例,该合成任务实现利用预训练文本生成问答对,除了输出问答对的固定字段context和target外,还支持将指令中间结果保存到最终输出结果。编排完的指令可以单击右侧“保存合成模板”,后续的预训练文本可一键选中模板生成问答对。
- 指令编排完成后,单击右上角“启用调测”,可以对当前编排的指令效果进行预览。
- 指令调测完成后,单击右下角“下一步”,选择是否勾选自动生成加工数据集。
勾选,配置生成加工数据集的信息,如图6 自动生成加工数据集;单击右下角“创建并启动”,平台将启动合成任务。合成任务运行成功后自动生成加工数据集。
不勾选,单击右下角“创建并启动”,平台将启动合成任务。合成任务运行成功后手动生成加工数据集。
- 当数据合成任务运行成功后,状态将从“运行中”变为“运行成功”,表示数据已经完成合成操作。

在完成数据合成后,若无需使用数据标注、数据配比功能,可直接在“合成任务”页面单击操作列“生成”,生成加工数据集。
生成的加工数据集可在“数据工程 > 数据管理 > 数据集 > 加工数据集”中查看。
预置数据指令介绍
ModelArts Studio平台的数据合成功能为用户提供了预置指令,用户可以在“数据工程 > 数据加工 > 合成任务 > 管理合成指令 > 系统预置”查看指令详情,如图7,单击“调测”可查看调测指南,如图8,帮助用户更好地使用该指令。
预置的数据指令清单详见表1。
指令分类 |
指令名称 |
指令描述 |
---|---|---|
生成问题 |
问题改写为更低难度 |
该指令可以通过用户输入的问题,使大模型按要求生成一个难度更低、更为简单的问题。 |
问题改写为更高难度 |
该指令通过用户输入的问题,使大模型按要求生成一个难度更高、更为复杂的问题。 |
|
基于提问生成作答要求 |
该指令根据输入的问题,使大模型泛化一个相应问题的作答要求,该要求与原问题内容不直接相关。该指令可与根据作答要求回答问题的指令进行编排,实现风格多样回答的合成。 |
|
根据样例生成相似问题_few-shot |
该指令通过用户输入的多个问题样例,生成一个或多个与样例风格相匹配的新问题。 |
|
根据文本生成问题 |
根据用户输入的上下文,生一个问题。可用于文本生成QA对的合成编排。 |
|
问题改写 |
改写问题,生成更复杂的问题,可用于指令泛化。 |
|
生成回答 |
回答改写 |
根据用户指定人设,改写回答的风格,不改变回答内容。可与人设泛化指令编排,实现问答对泛化。 |
根据文本生成回答_遵循要求 |
根据用户指定的指令要求和问题,根据输入的上下文生成相应回答。可与指令泛化进行编排,实现事实遵循类问答对泛化。 |
|
问题生成回答 |
根据提问,生成回答。 |
|
根据文本生成回答_扮演指定人设 |
根据用户指定的人设和问题,根据输入的上下文生成相应回答。可与人设泛化指令编排,实现事实遵循类问答对泛化。 |
|
问题生成回答_扮演指定人设 |
根据用户指定的人设和问题,生成相应回答。可与人设泛化指令编排,实现问答对泛化。 |
|
根据文本生成回答 |
根据用户输入的上下文和问题,生成相应回答。可实现事实遵从的合成。 |
|
生成问答对 |
文本生成问答对_判断题 |
该指令能够从用户提供的参考文本中构建出一个判断题,同时给出其正确回答。 |
文本生成问答对_填空题 |
该指令能够从用户提供的参考文本中构建出一个填空题,同时给出其正确回答。 |
|
文本生成问答对_问答题 |
该指令能够从用户提供的参考文本中构建出一个问题,同时给出其相应回答。 |
|
根据文本抽取问答对_金融场景 |
根据用户输入的金融类文档进行问答对的抽取。 |
|
生成人设 |
根据问题生成人设 |
根据用户输入的问题生成一个人物设定。 |
其他 |
BadCase问题泛化 |
该指令通过用户提供的badcase问题和回答,利用大模型生成在类似情景下可能犯错的攻击性问题。用户可指定生成的攻击性问题个数,个数不超过10。 |
根据答案推导解题思路 |
指令通过用户输入的问题和回答,利用大模型生成包含相应解题思路的回答。 |
|
指令泛化 |
根据用户指定风格,进行指令泛化。可与指定要求类的问答对生成相关指令编排,实现问答对泛化。 |
创建自定义数据合成指令
平台支持用户创建自定义数据合成指令。
本章节将以“生成主题散文”的场景为例,详细介绍自定义数据合成指令的配置步骤。
- 登录ModelArts Studio大模型开发平台,在“我的空间”模块,单击进入所需空间。
图9 我的空间
- 在左侧导航栏中选择“数据工程 > 数据加工 > 合成任务 > 管理合成指令”,在“自定义”页签,单击“创建自定义指令”。
- 在“创建指令”弹窗中,输入名称与描述,单击“确定”,进入配置合成指令页面。
- 选择变量标识符为“双大括号{{}}”,输入指令为“请以{{topic}}为主题,写一篇字数不超过{{num}}的散文。”
图10 配置指令
- 按照表2进行变量配置。
其中,输出变量的“变量描述”字段为大模型理解的内容,需仔细填写。
图11 配置变量 - 调测数据指令。
- 在“调试 > 模型”中,选择指令所需的模型,单击“配置超参”可自定义设定超参数值。
- 温度:温度采样,较高的值,如0.8会使输出更随机,而较低的值,如0.2会使其更加集中和确定性。取值范围0-1。
- 多样性:即top_p,核心采样,模型会考虑具有top_p概率质量的标记结果。0.1 表示只有占前 10% 概率质量的标记被考虑。建议该参数和temperature只设置一个。取值范围0-1。
- 重复惩罚:重复采样惩罚值,取值越大表示惩罚越大,因此可降低模型重复相同行为的可能性。取值范围-2.0-2.0。
- 采样:即top_k,采样参数,每轮token生成时,保留k个概率最高的token作为候选。取值越大,生成文本的多样性越强。
- 在“调试 > 输入”中,可通过给变量赋值来查看效果。
图12 指令调测
- 在“调试 > 模型”中,选择指令所需的模型,单击“配置超参”可自定义设定超参数值。
- 调试完成后,单击“立即创建”,创建该数据指令。