准备文本训练数据

本页面介绍如何准备文本数据以在 Vertex AI 数据集中使用。文本输入数据的格式取决于目标。例如,与文本情感分析相比,文本分类的数据准备有所不同。

以下部分介绍每个目标的数据要求、建议和输入文件。

单标签分类

对于单标签分类,训练数据包含文档以及适用于这些文档的分类类别。单标签分类只允许为一个文档分配一个标签。

数据要求

  • 您必须提供至少 20 个训练文档,但最多不得超过 100 万个训练文档。
  • 您必须提供至少 2 个具有唯一性的类别标签,但最多不得超过 5000 个。
  • 您必须将每个标签应用于至少 10 个文档。
  • 对于多标签分类,您可以对文档应用一个或多个标签。
  • 您可以添加内嵌或引用 Cloud Storage 存储分区中的 TXT 文件。

用于训练 AutoML 模型的文本数据的最佳做法

以下建议适用于训练 AutoML 模型的数据集。

  • 使用与要对其执行预测的数据一样的训练数据。包含不同长度的文档,由不同人员撰写的文档,使用不同措辞和风格的文档等等。
  • 使用人类读者可以轻松分类的文档。 AutoML 模型通常不能预测人类无法分配的类别标签。因此,如果一个人经过训练,仍无法在阅读某个文档后为其分配标签,那么模型很可能也无法通过训练做到这一点。
  • 为每个标签提供尽可能多的训练文档。您可以每个标签使用更多样本,从而提高模型的置信度分数。每个标签使用 50 个示例训练模型并评估结果。添加更多示例并进行重新培训,直到达到准确性目标为止,每个标签可能需要数百甚至 1000 个示例。
  • 当最常用标签的文档最多比最不常用标签的文档多 100 倍时,该模型效果最佳。建议移除出现频率极低的标签。
  • 考虑为不符合任何已定义标签的文档添加网域外部标签(例如 None_of_the_above)。例如,如果您仅为艺术和娱乐方面的文档添加了标签,但数据集包含有关其他主题(例如体育或技术)的文档,请为有关其他主题的文档添加 None_of_the_above 标签。如果没有这样的标签,则经过训练的模型会尝试将所有文档分配给已定义的标签之一,即使这些标签并不适合文档也是如此。
  • 如果您的大量文档当前与您的标签不匹配,请过滤掉这些文档,这样模型就不会将预测与域外标签混淆。例如,您可能有一个过滤模型,用于预测文档是适合当前标签集还是位于例外网域中。过滤之后,您会获得另一个模型,以便仅对网域文档进行分类。

输入文件

单标签分类支持 JSONL 或 CSV 输入文件。对于一个给定文档,您只能指定一个标签(注解)。以下部分介绍输入文件并为每种文件类型提供示例。

JSONL

JSONL 文件的格式、字段名称、值类型由架构文件(可公开访问的 YAML 文件)决定。

您可以从以下 Cloud Storage 位置下载单标签分类的架构文件:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml

JSONL 示例

以下示例说明如何使用架构创建您自己的 JSONL 文件。为了便于阅读,示例包括换行符。在 JSON 文件中,请仅在每个文档后面添加换行符。例如,dataItemResourceLabels 字段指定 ml_use 且是可选的。


{
  "classificationAnnotation": {
    "displayName": "label"
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
},
{
  "classificationAnnotation": {
    "displayName": "label2"
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

CSV 文件中的每一行指的是一个文档。以下示例展示了有效 CSV 文件的一般格式。ml_use 列是可选列。

[ml_use],gcs_file_uri|"inline_text",label

以下片段是输入 CSV 文件的一个示例。

test,gs://path_to_file,label1
test,"inline_text",label2
training,gs://path_to_file,label3
validation,gs://path_to_file,label1

多标签分类

对于多标签分类,训练数据包含文档以及适用于这些文档的分类类别。多标签分类允许为一个文档分配一个或多个标签。

数据要求

  • 您必须提供至少 20 个训练文档,但最多不得超过 100 万个训练文档。
  • 您必须提供至少 2 个具有唯一性的类别标签,但最多不得超过 5000 个。
  • 您必须将每个标签应用于至少 10 个文档。
  • 对于多标签分类,您可以对文档应用一个或多个标签。
  • 您可以添加内嵌或引用 Cloud Storage 存储分区中的 TXT 文件。

用于训练 AutoML 模型的文本数据的最佳做法

以下建议适用于训练 AutoML 模型的数据集。

  • 使用与要对其执行预测的数据一样的训练数据。包含不同长度的文档,由不同人员撰写的文档,使用不同措辞和风格的文档等等。
  • 使用人类读者可以轻松分类的文档。 AutoML 模型通常不能预测人类无法分配的类别标签。因此,如果一个人经过训练,仍无法在阅读某个文档后为其分配标签,那么模型很可能也无法通过训练做到这一点。
  • 使用多标签分类时,请为每个文档应用所有相关标签。例如,如果您要为详细介绍药物的文档添加标签,则要会有标有 DosageSide Effects 的文档。
  • 为每个标签提供尽可能多的训练文档。您可以每个标签使用更多样本,从而提高模型的置信度分数。如果模型对文档进行分类时返回多个标签,提高置信度分数尤其有用。 每个标签使用 50 个示例训练模型并评估结果。添加更多示例并进行重新培训,直到达到准确性目标为止,每个标签可能需要数百甚至 1000 个示例。
  • 当最常用标签的文档最多比最不常用标签的文档多 100 倍时,该模型效果最佳。建议移除出现频率极低的标签。
  • 考虑为不符合任何已定义标签的文档添加网域外部标签(例如 None_of_the_above)。例如,如果您仅为艺术和娱乐方面的文档添加了标签,但数据集包含有关其他主题(例如体育或技术)的文档,请为有关其他主题的文档添加 None_of_the_above 标签。如果没有这样的标签,则经过训练的模型会尝试将所有文档分配给已定义的标签之一,即使这些标签并不适合文档也是如此。
  • 如果您的大量文档当前与您的标签不匹配,请过滤掉这些文档,这样模型就不会将预测与域外标签混淆。例如,您可能有一个过滤模型,用于预测文档是适合当前标签集还是位于例外网域中。过滤之后,您会获得另一个模型,以便仅对网域文档进行分类。

输入文件

多标签分类支持 JSONL 或 CSV 输入文件。对于一个给定文档,您可以指定多个标签(注解)。以下部分介绍输入文件并为每种文件类型提供示例。

JSONL

JSONL 文件的格式、字段名称、值类型由架构文件(可公开访问的 YAML 文件)决定。

您可以从以下 Cloud Storage 位置下载多标签分类的架构文件:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml

JSONL 示例

以下示例说明如何使用架构创建您自己的 JSONL 文件。为了便于阅读,示例包括换行符。在 JSON 文件中,请仅在每个文档后面添加换行符。例如,dataItemResourceLabels 字段指定 ml_use 且是可选的。


{
  "classificationAnnotations": [{
    "displayName": "label1"
    },{
    "displayName": "label2"
  }],
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
},
{
  "classificationAnnotations": [{
    "displayName": "label2"
    },{
    "displayName": "label3"
  }],
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

CSV 文件中的每一行指的是一个文档。以下示例展示了有效 CSV 文件的一般格式。ml_use 列是可选列。

[ml_use],gcs_file_uri|"inline_text",label1,label2,...

以下片段是输入 CSV 文件的一个示例。

test,gs://path_to_file,label1,label2
test,"inline_text",label3
training,gs://path_to_file,label1,label2,label3
validation,gs://path_to_file,label4,label5

实体提取

实体提取训练数据包含使用您希望模型识别的实体类型的标签进行注释的文档。例如,您可以创建一个实体提取模型,以识别法律文档或专利中的专用术语。注释指定了您要添加标签的实体的位置和标签本身。

如果您为用于训练 AutoML 模型的数据集(例如帐单或合同)中的结构化或半结构化文档添加注解,Vertex AI 可以将注解在页面上的位置视为影响其正确标签的一个因素。例如,房地产合同同时设置了接受日期和关闭日期。Vertex AI 可以学习根据注解的空间位置来区分这些实体。

数据要求

  • 您必须提供至少 50 个训练文档,但最多不得超过 10 万个训练文档。
  • 您必须提供至少 1 个,但不超过 100 个独特标签,以便标记您想要提取的实体。
  • 您可以使用标签为 1 到 10 个字词添加注释。
  • 标签名称可以包含 2 到 30 个字符。
  • 您可以在 JSONL 文件中添加注释,也可以在以后上传文档时使用 Google Cloud Console 添加注释。
  • 您可以添加内嵌或引用 Cloud Storage 存储分区中的 TXT 文件。

用于训练 AutoML 模型的文本数据的最佳做法

以下建议适用于训练 AutoML 模型的数据集。

  • 在训练数据集中至少使用每个标签 200 次。
  • 为您希望模型识别的每个实体都添加注释。

输入文件

实体提取类型的输入文件类型必须为 JSONL。JSONL 文件的格式、字段名称、值类型由架构文件(可公开访问的 YAML 文件)决定。

您可以从以下 Cloud Storage 位置下载用于实体提取的架构文件:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml

以下示例说明如何使用架构创建您自己的 JSONL 文件。为了便于阅读,示例包括换行符。在 JSON 文件中,请仅在每个文档后面添加换行符。例如,dataItemResourceLabels 字段指定 ml_use 且是可选的。


{
    "textSegmentAnnotations": [
      {
        "startOffset":number,
        "endOffset":number,
        "displayName": "label"
      },
      ...
    ],
    "textContent": "inline_text"|"textGcsUri": "gcs_uri_to_file",
    "dataItemResourceLabels": {
      "aiplatform.googleapis.com/ml_use": "training|test|validation"
    }
}

您还可以使用 Google Cloud Console 为文档添加注释。创建一个仅包含内容(没有 textSegmentAnnotations 字段)的 JSONL 文件;文档会上传到 Vertex AI 并且没有任何注释。

情感分析

情感分析训练数据包含与指示内容情感的情感值相关联的文档。例如,您可能有关于某个特定域名(如航空旅行)的 Twitter 微博。每条 Twitter 微博都会与情感值相关联,以表明 Twitter 微博是正面、负面还是中立的。

数据要求

  • 您必须提供至少 10 个,但不得超过 10 万个训练文档。
  • 情感值必须是 0 到 10 之间的整数。最高情感值由您自行选择。例如,如果您想标识情感是消极的、积极的还是中立的,则会用情感分数 0(消极)、1(中立)和 2(积极)为训练数据添加标签。数据集的最高情感得分为 2。如果要捕捉更多粒度,例如五个级别的情感,可以从 0(最负)和 4(最积极)对文档进行标记。
  • 您必须将每个情感值应用于至少 10 个文档。
  • 情感分数值应是从零开始的连续整数。如果您的分数不是连续的或者没有从零开始,请重新映射您的得分,以从零开始从零开始的连续整数。
  • 您可以添加内嵌或引用 Cloud Storage 存储分区中的 TXT 文件。

用于训练 AutoML 模型的文本数据的最佳做法

以下建议适用于训练 AutoML 模型的数据集。

  • 至少为每个情感值提供 100 个文档。
  • 文档数量对每个情感分数而言都是均衡的。如果为某些特定情感分数提供较多示例,可能会给模型带来偏差。

输入文件

用于情感分析的输入文件类型可以是 JSONL 或 CSV。

JSONL

JSONL 文件的格式、字段名称、值类型由架构文件(可公开访问的 YAML 文件)决定。

您可以从以下 Cloud Storage 位置下载架构文件进行情感分析:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_sentiment_io_format_1.0.0.yaml

JSONL 示例

以下示例说明如何使用架构创建您自己的 JSONL 文件。为了便于阅读,示例包括换行符。在 JSON 文件中,请仅在每个文档后面添加换行符。例如,dataItemResourceLabels 字段指定 ml_use 且是可选的。


{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
},
{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

CSV 文件中的每一行指的是一个文档。以下示例展示了有效 CSV 文件的一般格式。ml_use 列是可选列。

[ml_use],gcs_file_uri|"inline_text",sentiment,sentimentMax

以下片段是输入 CSV 文件的一个示例。

test,gs://path_to_file,sentiment_value,sentiment_max_value
test,"inline_text",sentiment_value,sentiment_max_value
training,gs://path_to_file,sentiment_value,sentiment_max_value
validation,gs://path_to_file,sentiment_value,sentiment_max_value

后续步骤