Skip to main content
模型数据

数据清洗或增强

数据处理支持用户使用多种模型算子,对模型调优所使用的训练集进行数据清洗和数据增强,从而获得更高质量的训练集。

本文档仅适用于华北2(北京)地域。
如果您训练集中的数据不适合数据清洗与增强(如法律文件、医学记录、文学作品、方言汇总、用户评论、技术手册等),建议您直接跳过本文的阅读。

为什么做数据处理

模型调优过程中,高质量的训练集将显著提升大模型的训练效果和预测能力。不过,目前绝大多数训练集的数据质量较低且数据量不足。因此,有必要先借助阿里云百炼的数据处理功能,对您的训练集进行数据清洗数据增强。待获得足够的高质量训练数据后,再进行模型调优。
构建一个有效的SFT训练集通常需要1000+样本。
处理方式适用场景
数据清洗需要修正训练数据中存在的规范性、合规性、一致性以及重复等问题(阿里云百炼目前已支持特殊内容移除敏感信息打码等十种清洗操作)。
特殊内容移除:识别并剔除训练数据中的URL、特殊字符等。
image
敏感信息打码:识别并脱敏训练数据中的敏感信息。
image
数据增强需要增加训练数据的多样性和均衡性,或扩展数据的规模(增广数据)。

支持的训练集

数据处理支持SFT-文本生成训练集,暂不支持SFT-图片理解训练集DPO-文本生成训练集
SFT-文本生成训练集包含一轮或多轮对话数据,采用ChatML格式。SFT-ChatML格式示例.jsonl

创建数据流任务

阿里云百炼目前暂未提供可用的API进行数据处理。
本段落将指导您在控制台搭建一个自定义数据流,以说明数据处理过程。该数据流的功能是先对训练数据中的敏感信息进行敏感信息打码(数据清洗),随后增广数据(数据增强)。只需简单两步:
  1. 创建数据流:通过空白数据流画布搭建一个自定义数据流。
  2. 创建数据流任务:基于已搭建的数据流,启动一个数据流任务,处理您的训练集。
此处先清洗数据再进行增强的原因是:可以确保增强操作是在一个干净、高质量的数据集上进行的,从而保证模型调优的数据源是准确的。
如果您仅需对训练数据进行清洗或增强,可以直接使用阿里云百炼预置的数据流模板:访问数据管理页面,在数据流页签下单击数据流模板基于此模板创建数据流

步骤一:创建数据流

  1. 访问数据管理页面,在数据流页签下单击数据流列表创建数据流
  2. 创建数据流对话框中,输入数据流名称数据流描述,单击确定进入数据流画布(在单击右上角发布之前,数据流处于草稿状态)。
    开始节点会预设一个对话文本参数表示待处理的训练集(此参数无法自行更改)。
    单击左上角的image图标可退出画布,系统会自动保存您的数据流草稿,单击管理再次进入后可继续编辑。
    image
  3. 将左侧数据清洗节点拖入画布,并为数据清洗节点开启敏感信息打码算子,其余算子关闭。
    数据清洗节点会预设一个dataSetCount参数表示该节点处理完成后生成的训练集大小(此参数无法自行更改)。
    image
  4. 开始节点连接到数据清洗节点。
  5. 将左侧数据增强节点拖入画布,并为数据增强节点配置对应参数。了解参数详情
    参数对应配置
    场景选择数据增强-通用
    指令生成依赖样本数须小于当前节点输入的数据量,否则保持默认即可。
    过滤相似度阈值保持默认即可。
    生成样本数保持默认即可。
    Prompt配置使用阿里云百炼提供的默认模板。
    System Prompt:
    请你仔细观察多个示例数据的输入和输出,按照你的理解,总结出相应规律,然后写出一个新的【问题】和【回答】。注意,新生成的【问题】和【回答】需要满足如下要求:
    1. 生成的【问题】和【回答】不能与输入的【问题】和【回答】一致,但是需要保持格式相同。
    2. 生成的【问题】不一定要局限于输入【问题】的话题或领域,生成的【回答】需要正确回答生成的【问题】。
    3. 提供的【问题】和【回答】可能是多轮对话,生成的【问题】和【回答】也可以是多轮,但是需要保持格式相同。
    4. 生成的【问题】和【回答】必须成对出现,而且【问题】需要在【回答】之前。
    
    ${few_shot_examples}
    
  6. 数据清洗节点连接到数据增强节点,并将数据增强节点连接到结束节点。
    image
  7. 单击右上角发布(数据流变为发布状态,如果再次编辑,数据流会回到草稿状态),至此本数据流搭建完成,单击页面左上角的image图标退出画布。
    关于搜索数据流:数据流列表页签的搜索框中输入数据流名称后,单击image图标查找数据流,支持模糊搜索。
  8. 接下来,请参考下方步骤二:创建数据流任务启动一个数据流任务,使用此数据流来处理您的训练集。

步骤二:创建数据流任务

  1. 访问数据管理页面,在数据流页签下单击任务列表从数据流列表创建任务。在对话框中选择目标数据流后,单击确定。如果列表中没有您已创建的数据流,可能是因为:
    • 该数据流尚未发布。
      您可以单击数据流数据流列表,在列表中找到您想要发布的数据流后,单击管理发布
    • 该数据流不属于当前业务空间。
  2. 输入任务名称,选择模型数据作为数据来源,并从列表中选择要处理的训练集。
    若无可用训练集,请单击去管理前往模型数据上传一个训练集。具体操作,请参见训练集与评测集
    模型数据提供了训练集的版本管理能力,您的训练集将在清洗或增强后自动生成一个新版本。新版本独立保存,不会覆盖原训练集。
    数据处理目前仅支持处理SFT-文本生成训练集,不支持ChatML以外格式。SFT-ChatML格式示例.jsonl
  3. 单击创建完成,数据流任务将自动开始执行。
    执行需要一定时间,请您耐心等待,执行期间暂不支持手动终止。
  4. 单击image图标,刷新处理状态查看任务是否处理完成。任务所有可能的处理状态如下表所示。

    处理状态

    说明

    处理中

    表示数据流任务在执行中。在请求高峰时段,数据流任务需要排队等待执行,期间无需您介入操作。

    已完成

    表示数据流任务已成功完成。单击目标数据流任务右侧的执行过程,查看处理结果。

    处理失败

    表示数据流任务执行失败。建议您提交工单咨询具体原因。

  5. 任务完成后,系统将为处理后的训练集生成一个新版本,请您在使用时注意区分版本。

管理数据流任务

本段落为您说明如何查看业务空间下的数据流任务列表,查找某个数据流任务,以及查看指定数据流任务的基本信息、配置、处理状态和处理结果。 访问数据管理页面,单击任务列表页签,在此页面您可以:
  • 查看数据流任务列表:查看当前业务空间下的完整数据流任务列表及概况,包括每个数据流任务的处理状态数据流向等信息。
  • 查找数据流任务:搜索框中输入数据流任务名称后,单击image图标查找数据流,支持模糊搜索。
  • 查看数据来源和数据流向:您的训练集将在清洗或增强后自动生成一个新版本。新版本独立保存,不会覆盖原训练集。如下图示例中,处理前训练集为V1版本,处理后的数据则存储为训练集的V2版本。
    建议检查清洗后的训练集,以确保数据的完整性和真实性没有被破坏。
    image
  • 查看执行过程:单击操作列的执行过程,查看数据流任务的处理结果和耗时情况,包括每个处理节点的中间结果和耗时情况。
    image
    数据清洗节点支持显示每次经过算子后的输出训练集大小。以上图为例,敏感词过滤算子在敏感信息打码算子后执行,敏感词过滤算子过滤掉了1条数据。
  • 删除数据流任务:单击操作列的删除
    任务删除后其对应执行过程将无法找回,请慎重操作。

节点说明

  • 定义开始节点用于开启一个数据流,结束节点用于输出数据流的结果。请注意,每个数据流都必须包含一个开始节点和一个结束节点。结束节点为最后节点,用于输出处理后的训练集,后面不能再添加其它节点,工作流应用中运行到结束节点后才输出执行结果。
  • 开始节点参数配置

    简介

    参数配置

    输入

    输出

    其他参数

    用于接收用户待清洗或增强的训练集,暂不支持自定义变量。

    对话文本表示用户待处理的训练集(此参数无法自行更改)。

    与输入变量相同,将输入变量向后传递。

    无。

  • 结束节点参数配置

    简介

    参数配置

    输入

    输出

    其他参数

    用于输出已清洗或增强的训练集。暂不支持自定义变量。

    前置节点已处理完成的训练集。

    与输入变量相同。

    无。

  • 节点示例 下方示例中,结束节点的输入为前置节点数据清洗节点的输出,即该数据流会在数据清洗节点执行完成后结束,并输出数据清洗节点的处理结果。
    image
  • 结束节点输出 结束节点输出会自动生成一个新版本(可在数据流向列查看)。新版本独立保存,不会覆盖原训练集。
    image
  • 用法:设置条件,满足条件后字段选择后续链路,支持且/或条件配置,多个条件是从上而下按顺序执行。
  • 参数配置:

    参数

    说明

    条件分支

    填写条件判断语句。

    其他

    不需要条件判断的可从此输出。

  • 节点示例: 以下是一个简单的先数据清洗后增强的示例。其工作流程逻辑如下:待处理的训练集先经过数据清洗节点清洗,随后清洗后的数据被传递给条件判断节点。在节点内部对dataSetCount(即清洗后结果中messages的数量)进行条件判断,如果数量小于等于10就经过数据增强节点进行数据增广,最后由结束节点输出。
    image
  • 用法:需要修正训练数据中存在的规范性、合规性、一致性以及重复等问题。
  • 参数配置:
    参数说明
    输入本节点需要清洗的训练集(对话文本,ChatML格式)。
    清洗算子选择需要执行的清洗算子和操作,如文章相似度去重敏感词过滤毒性消除等,支持单选,算子执行顺序按照编排顺序来执行,用于后续节点处理。
    调整算子执行顺序:可通过拖拽image图标调整算子的执行顺序。数据清洗节点将根据您此处设置的顺序对训练数据依次执行不同的算子。
    是否开启image开启代表执行此算子(建议每个数据清洗节点只开启一个算子,这样您可以更容易地检测和纠正错误)。
    算子配置image勾选代表算子需要执行此操作,若未勾选,算子将不会执行该操作。
    输出输出本节点的清洗处理结果(即清洗后的训练集),和变量dataSetCount(表示结果中messages的数量,此参数无法自行更改)。
  • 节点示例 下方示例中,用户待清洗的训练集会被开始节点传递给数据清洗节点。在节点内部,清洗算子将按编排好的顺序,对训练数据进行对应处理,最终从结束节点输出清洗后训练集。
    image
  • 用法:用于增加训练数据的多样性和均衡性,或扩展数据的规模(增广数据)。
  • 场景选择
    • 数据增强-通用:从需要增强的训练集(种子池)中随机选出样本(种子)拼接到Prompt后,请求千问-Max大模型(暂不支持选择模型),通过Few-Shot策略生成新数据,适用于增强微调文本问答大模型所需的SFT训练集。
    • 数据增强-文本分类数据增强-文本抽取以及数据增强-文本创作则是在数据增强-通用的基础上经过场景优化,专门设计用于增强微调文本分类、文本抽取或文本创作相关大模型所需的SFT训练集。
      它们在各自特定场景中的增强效果优于数据增强-通用
  • 参数配置
    • 数据增强-通用
    • 数据增强-文本分类
    • 数据增强-文本抽取
    • 数据增强-文本创作
    参数说明
    输入本节点需要增强的训练集(对话文本,ChatML格式)。格式示例:
    {
      "messages": [
        {
          "role": "user",
          "content": "你经常锻炼身体吗?"
        },
        {
          "role": "assistant",
          "content": "经常锻炼身体。"
        }
      ]
    }
    
    生成样本数本节点需要生成的数据量。如果原训练集包含10条训练数据,而生成样本数设置为10,则增强后的训练集将总计达到20条数据。
    数据增强-通用任务每次最多生成2000条样本。
    基于提供的种子,数据增强-通用生成的数据示例:
    {
      "messages": [
        {
          "role": "user",
          "content": "你喜欢阅读哪种类型的书籍?"
        },
        {
          "role": "assistant",
          "content": "我喜欢阅读科幻类和历史类的书籍。"
        }
      ],
      "foreignKey": "8ba0304e2452476d89ed6a60c4xxxxxx"
    }
    
    输出数据中foreignKey为系统后添加,用于标识文本信息。增强后的训练集可直接用于模型调优,您无需删除foreignKey,不会影响模型调优效果。
    指令生成依赖样本数系统从增强前训练集中选出的种子数量。种子将被拼接到Prompt中(见下方Prompt配置),提供给大模型进行增强。
    如果种子加上Prompt的总长度超过千问-Max最大输入Token数,系统将自动调整指令生成依赖样本数以符合限制。
    Prompt配置您可以在这里定义对本次数据增强任务的输入和输出的具体要求,系统也提供默认模板供您参考和使用。
    System Prompt:
    请你仔细观察多个示例数据的输入和输出,按照你的理解,总结出相应规律,然后写出一个新的【问题】和【回答】。注意,新生成的【问题】和【回答】需要满足如下要求:
    1. 生成的【问题】和【回答】不能与输入的【问题】和【回答】一致,但是需要保持格式相同。
    2. 生成的【问题】不一定要局限于输入【问题】的话题或领域,生成的【回答】需要正确回答生成的【问题】。
    3. 提供的【问题】和【回答】可能是多轮对话,生成的【问题】和【回答】也可以是多轮,但是需要保持格式相同。
    4. 生成的【问题】和【回答】必须成对出现,而且【问题】需要在【回答】之前。
    
    ${few_shot_examples}
    
    数据增强-通用节点本质上是一个千问-Max大模型。节点将基于Prompt配置,通过Few-Shot策略对输入的训练数据进行增强。建议您根据每次数据增强的目标(比如提升数据多样性、均衡性等)适当调整Prompt配置内容。目前只支持few_shot_examples参数。
    Few-Shot策略:比如在创建数据流任务时选择一个包含1000条数据的训练集,指令生成依赖样本数是5,期望生成样本数是200。此时算法每次从1000条数据中抽样5条拼入Prompt中的few_shot_examples,然后请求千问-Max生成1条数据,重复200次,最终获得200条数据。
    小贴士:精准与多样化
    • 任务相关性:在数据增强时,确保生成的增强数据与目标任务高度相关,避免引入不相关的变体,保持数据上下文和语义的一致性。
    • 多样化策略:使用多种数据增强策略(如同义词替换、随机抽样、翻译变换等),以最大限度地增加数据的多样性。这有助于提升大模型的泛化能力。
    • 平衡增强:生成的增强数据应在类别、难度和结构上相对平衡,避免让大模型接触过多的特定类型数据,导致过拟合。确保在数据增强过程中,不偏离数据的真实分布。
      减少过拟合风险:当训练集的数据量或多样性不足时,大模型在进行全参数训练时可能会过度拟合占主导的训练数据,从而无法有效学习特定对象更泛化的特征。
    过滤相似度阈值取值范围0.1到1。此阈值越低,系统接受新生成数据的标准越严格(避免加入高相似度,即高Rouge-L得分的数据,系统根据整条ChatML数据进行相似度判断), 从而减少数据重复。
    系统会对大模型生成的待选增强数据进行评估。若相似度低于设定阈值,则采纳为增强数据;若高于阈值则丢弃。
    Rouge-L通过计算生成文本与参考文本之间的最长公共子序列(LCS)长度来衡量相似度,越接近1表示生成的文本与参考文本越相似。
    输出输出本节点增强后的训练集,和变量dataSetCount(表示增强后的训练集中messages的数量)。
    目前阿里云百炼无法标识增强后的训练集中哪些数据是本次新生成的,哪些是原有的,需要您使用其它第三方diff工具手动比较。
    输出格式示例:
    {
      "messages": [
        {
          "role": "user",
          "content": "你喜欢阅读哪种类型的书籍?"
        },
        {
          "role": "assistant",
          "content": "我喜欢阅读科幻类和历史类的书籍。"
        }
      ],
      "foreignKey": "8ba0304e2452476d89ed6a60c4xxxxxx"
    }
    
    输出数据中foreignKey为系统后添加,用于标识文本信息。增强后的训练集可直接用于模型调优,您无需删除foreignKey,不会影响模型调优效果。
  • 节点示例: 下方示例中,用户待增强的训练集会被开始节点传递给数据增强节点。后者根据配置的场景和参数,对训练数据进行对应处理,最终从结束节点输出增强后训练集。
    image

计费说明

当前为限时免费阶段,具体收费时间另行通知。

下一步

如果您对处理后的训练集感到满意,即可开始模型调优
Token Plan
模型体验
  • 3D模型生成
  • 音乐生成
模型调优
模型压缩目录节点
用量统计与性能监控
资产中心
服务支持