本页面介绍了如何准备文本数据,以便在 Vertex AI 数据集中使用来训练单标签和多标签分类模型。
单标签分类
对于单标签分类,训练数据包含文档以及适用于这些文档的分类类别。单标签分类只允许为一个文档分配一个标签。
数据要求
- 您必须提供至少 20 个训练文档,但最多不得超过 100 万个训练文档。
- 您必须提供至少 2 个具有唯一性的类别标签,但最多不得超过 5000 个。
- 您必须将每个标签应用于至少 10 个文档。
- 对于多标签分类,您可以对文档应用一个或多个标签。
- 您可以添加内嵌或引用 Cloud Storage 存储桶中的 TXT 文件。
用于训练 AutoML 模型的文本数据的最佳做法
以下建议适用于训练 AutoML 模型的数据集。
- 使用与要对其执行预测的数据一样的训练数据。包含不同长度的文档,由不同人员撰写的文档,使用不同措辞和风格的文档等等。
- 使用人类读者可以轻松分类的文档。 AutoML 模型通常不能预测人类无法分配的类别标签。因此,如果一个人经过训练,仍无法在阅读某个文档后为其分配标签,那么模型很可能也无法通过训练做到这一点。
- 为每个标签提供尽可能多的训练文档。您可以每个标签使用更多样本,从而提高模型的置信度分数。每个标签使用 50 个示例训练模型并评估结果。添加更多示例并进行重新培训,直到达到准确性目标为止,每个标签可能需要数百甚至 1000 个示例。
- 当最常用标签的文档最多比最不常用标签的文档多 100 倍时,该模型效果最佳。建议移除出现频率极低的标签。
- 考虑为不符合任何已定义标签的文档添加网域外部标签(例如
None_of_the_above
)。例如,如果您仅为艺术和娱乐方面的文档添加了标签,但数据集包含有关其他主题(例如体育或技术)的文档,请为有关其他主题的文档添加None_of_the_above
标签。如果没有这样的标签,则经过训练的模型会尝试将所有文档分配给已定义的标签之一,即使这些标签并不适合文档也是如此。 - 如果您的大量文档当前与您的标签不匹配,请过滤掉这些文档,这样模型就不会将预测与域外标签混淆。例如,您可能有一个过滤模型,用于预测文档是适合当前标签集还是位于例外网域中。过滤之后,您会获得另一个模型,以便仅对网域文档进行分类。
输入文件
单标签分类支持 JSON 行或 CSV 输入文件。对于一个给定文档,您只能指定一个标签(注解)。以下部分介绍输入文件并为每种文件类型提供示例。
JSON 行
JSON 行文件的格式、字段名称、值类型由架构文件(可公开访问的 YAML 文件)决定。
您可以从以下 Cloud Storage 位置下载单标签分类的架构文件:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml
JSON 行示例
以下示例展示了如何使用架构创建自己的 JSON 行文件。为了便于阅读,示例包括换行符。在 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 模型通常不能预测人类无法分配的类别标签。因此,如果一个人经过训练,仍无法在阅读某个文档后为其分配标签,那么模型很可能也无法通过训练做到这一点。
- 使用多标签分类时,请为每个文档应用所有相关标签。例如,如果您要为详细介绍药物的文档添加标签,则要会有标有
Dosage
和Side Effects
的文档。 - 为每个标签提供尽可能多的训练文档。您可以每个标签使用更多样本,从而提高模型的置信度分数。如果模型对文档进行分类时返回多个标签,提高置信度分数尤其有用。 每个标签使用 50 个示例训练模型并评估结果。添加更多示例并进行重新培训,直到达到准确性目标为止,每个标签可能需要数百甚至 1000 个示例。
- 当最常用标签的文档最多比最不常用标签的文档多 100 倍时,该模型效果最佳。建议移除出现频率极低的标签。
- 考虑为不符合任何已定义标签的文档添加网域外部标签(例如
None_of_the_above
)。例如,如果您仅为艺术和娱乐方面的文档添加了标签,但数据集包含有关其他主题(例如体育或技术)的文档,请为有关其他主题的文档添加None_of_the_above
标签。如果没有这样的标签,则经过训练的模型会尝试将所有文档分配给已定义的标签之一,即使这些标签并不适合文档也是如此。 - 如果您的大量文档当前与您的标签不匹配,请过滤掉这些文档,这样模型就不会将预测与域外标签混淆。例如,您可能有一个过滤模型,用于预测文档是适合当前标签集还是位于例外网域中。过滤之后,您会获得另一个模型,以便仅对网域文档进行分类。
输入文件
多标签分类支持 JSON 行或 CSV 输入文件。对于一个给定文档,您可以指定多个标签(注解)。以下部分介绍输入文件并为每种文件类型提供示例。
JSON 行
JSON 行文件的格式、字段名称、值类型由架构文件(可公开访问的 YAML 文件)决定。
您可以从以下 Cloud Storage 位置下载多标签分类的架构文件:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml
JSON 行示例
以下示例展示了如何使用架构创建自己的 JSON 行文件。为了便于阅读,示例包括换行符。在 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