文档首页/ 盘古大模型 PanguLargeModels/ 常见问题/ 典型训练问题和优化策略/ 数据量足够,但质量较差,可以微调吗
更新时间:2024-08-29 GMT+08:00
分享

数据量足够,但质量较差,可以微调吗

对于微调而言,数据质量非常重要。一份数据量少但质量高的数据,对于模型效果的提升要远大于一份数据量多但质量低的数据。若微调数据的质量较差,那么可能会导致模型学习到一些错误或者不完整的信息,从而影响模型的准确性和可靠性。因此,不建议您直接使用低质量数据进行微调。

一份高质量的数据应具备以下几类特征:

  • 数据与目标任务一致:微调数据应该与微调任务的目标和分布保持一致,反映出任务的实际要求。比如,现在需要微调一个情感分类的模型,模型只需要回复“消极”或者“积极”:
    • 情感分类场景-典型低质量数据:数据中存在与目标任务不一致的样本
      {"context": ["请分析以下内容的情感,只回复积极或者消极\n内容:xxx], "target": "积极"}
      {"context": ["请分析以下内容的情感,只回复积极或者消极\n内容:xxx], "target": "消极"}
      {"context": ["请分析以下内容的情感,只回复积极或者消极\n内容:xxx], "target": "这段内容xxx"}
      {"context": ["请分析以下内容的情感,回复你的看法\n内容:xxx], "target": "这段内容xxx"}
      ……
    • 情感分类场景-较高质量数据:数据指向性明确
      {"context": ["请分析以下内容的情感,回复积极或者消极\n内容:xxx], "target": "积极"}
      {"context": ["请分析以下内容的情感,回复积极或者消极\n内容:xxx], "target": "消极"}
      ……
  • 数据中无异常样本:微调数据需要清洗和校验,滤除其中的噪声,尽可能保证回答中不存在异常数据。如空数据、重复、水印异常字符等。
  • 数据多样性:微调数据需要具有一定的多样性,多样性能增加任务的复杂度和难度,让模型能够处理不同的情况和问题,提升模型泛化性。如,现在需要微调一个文案创作的模型,模型需要生成各个城市的宣传文案:
    • 文案创作场景-典型低质量数据:数据多样性差
      {"context": ["请帮我写一份宣传文案"], "target": "北京,xxx"}
      {"context": ["请帮我写一份宣传文案"], "target": "上海,xxx "}
      {"context": ["请帮我写一份宣传文案"], "target": "广州,xxx "}
      {"context": ["请帮我写一份宣传文案"], "target": "深圳,xxx "}
      ……
    • 文案创作场景-较高质量数据:数据有一定多样性
      {"context": ["请帮我写一份宣传文案介绍北京"], "target": "北京,xxx"}
      {"context": ["现在需要你写一份文案来宣传上海"], "target": "上海,xxx "}
      {"context": ["广州市需要一份推广文案,请开始创作"], "target": "广州,xxx "}
      {"context": ["你是一名导游,现在请向我介绍下深圳这座城市"], "target": "深圳,xxx "}
      ……

若目标任务是相对明确的,则在微调数据中,每个任务的Prompt可以保持固定。注意,这里Prompt保持固定和保证数据多样性,二者并不冲突。

当然,如果您的数据质量较差,也可以采取一些方法来提升数据质量,比如:

  • 数据清洗:您可以通过一些简单基础的规则逻辑来过滤异常数据,比如,去空、去重、字符串过滤等。同时,您也可以采用PPL(困惑度),或训练一个二分类模型等方式过滤脏数据。
  • 数据增强:您可以通过一些规则来提升数据的多样性,比如:同义词替换、语法结构修改、标点符号替换等,保证数据的多样性。
  • 基于大模型的数据泛化:您可以通过调用大模型(比如盘古提供的任意一个规格的基础功能模型)来获取目标场景的数据,以此提升数据质量。一个比较常见的方法是,将微调数据以及数据评估标准输入给模型,让模型来评估数据的优劣。
  • 人工标注:如果以上两种方案均无法满足您的要求,您也可以使用“数据标注”功能,采用人工标注方式来清洗数据。

相关文档