テキスト トレーニング データを準備する

このページでは、Vertex AI データセットで使用するテキストデータを準備する方法について説明します。テキスト入力データの形式は目的によって異なります。たとえば、テキスト分類のデータの準備は、テキスト感情分析におけるものとは異なります。

以下のセクションでは、各目標のデータ要件、推奨事項、入力ファイルについて説明します。

単一ラベル分類

単一ラベル分類の場合、トレーニング データはドキュメントとそれに適用される分類カテゴリで構成されます。単一ラベル分類では、1 つのドキュメントに 1 つのラベルを割り当てることができます。

データ要件

  • 20 個以上、1,000,000 個以下のトレーニング ドキュメントを用意する必要があります。
  • 2 個以上、5,000 個以下の一意のカテゴリラベルを指定する必要があります。
  • 各ラベルを 10 個以上のドキュメントに適用する必要があります。
  • マルチラベル分類では、1 つのドキュメントに 1 つ以上のラベルを適用できます。
  • インラインにドキュメントを含めることや、Cloud Storage バケット内の TXT ファイルを参照することもできます。

AutoML モデルのトレーニングに使用するテキストデータに関するベスト プラクティス

次の推奨事項は、AutoML モデルのトレーニングに使用されるデータセットに適用されます。

  • 予測を行うデータと同じくらい多様なトレーニング データを使用します。さまざまな長さのドキュメント、作成者の異なるドキュメント、さまざまな言い回しやスタイルを使用したドキュメントなどを含めます。
  • 人間が読んで容易に分類可能なドキュメントを使用します。 通常、AutoML モデルは、人間でも割り当てられないカテゴリラベルを予測することはできません。そのため、ドキュメントを読んでラベルを割り当てるように人間をトレーニングすることができなければ、モデルもそのようにトレーニングすることはできません。
  • ラベルごとにできるだけ多くのトレーニング ドキュメントを用意します。ラベルあたりの例を増やすことで、モデルの信頼スコアを上げることができます。ラベルごとに 50 の例を使用してモデルをトレーニングし、結果を評価します。正確な目標を達成するまで、例を追加して再トレーニングします。これには、ラベルごとに数百個から 1,000 個の例が必要になる場合があります。
  • モデルは、最も一般的なラベルのドキュメント数が、最も一般的ではないラベルのドキュメント数よりも、最大 100 倍存在する場合に最適に動作します。非常に低い頻度のラベルは削除することをおすすめします。
  • 定義されたラベルのいずれとも一致しないドキュメントには、ドメイン外ラベル(None_of_the_above など)を含めることを検討してください。たとえば、芸術やエンターテイメントに関するドキュメントにのみラベルを付けたものの、データセットにスポーツやテクノロジーなどの他のテーマに関するドキュメントが含まれている場合は、他のテーマに関するドキュメントに None_of_the_above というラベルを付けます。このようなラベルがない場合、トレーニング済みモデルは、不適切であってもすべてのドキュメントを定義されたラベルに割り当てようとします。
  • 現在ラベルと一致しないドキュメントが多数ある場合は、モデルが予測をドメイン外ラベルに外すことがないように、ドキュメントをフィルタで除外します。たとえば、ドキュメントが現在のラベルセットに収まるか、ドメイン外に外れるかを予測するフィルタリング モデルを作成できます。フィルタリング後に、ドメイン内ドキュメントのみを分類する別のモデルを作成できます。

入力ファイル

単一ラベル分類は、JSONL または CSV 入力ファイルをサポートしています。特定のドキュメントに対して指定できるラベル(アノテーション)は 1 つのみです。以降のセクションでは、入力ファイルについて説明し、各ファイル形式の例を示します。

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 ファイルの各行は 1 つのドキュメントを参照します。次の例は、有効な 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

マルチラベル分類

マルチラベル分類の場合、トレーニング データはドキュメントとそれに適用される分類カテゴリで構成されます。マルチラベル分類では、1 つのドキュメントに 1 つ以上のラベルを割り当てることができます。

データ要件

  • 20 個以上、1,000,000 個以下のトレーニング ドキュメントを用意する必要があります。
  • 2 個以上、5,000 個以下の一意のカテゴリラベルを指定する必要があります。
  • 各ラベルを 10 個以上のドキュメントに適用する必要があります。
  • マルチラベル分類では、1 つのドキュメントに 1 つ以上のラベルを適用できます。
  • インラインにドキュメントを含めることや、Cloud Storage バケット内の TXT ファイルを参照することもできます。

AutoML モデルのトレーニングに使用するテキストデータに関するベスト プラクティス

次の推奨事項は、AutoML モデルのトレーニングに使用されるデータセットに適用されます。

  • 予測を行うデータと同じくらい多様なトレーニング データを使用します。さまざまな長さのドキュメント、作成者の異なるドキュメント、さまざまな言い回しやスタイルを使用したドキュメントなどを含めます。
  • 人間が読んで容易に分類可能なドキュメントを使用します。 通常、AutoML モデルは、人間でも割り当てられないカテゴリラベルを予測することはできません。そのため、ドキュメントを読んでラベルを割り当てるように人間をトレーニングすることができなければ、モデルもそのようにトレーニングすることはできません。
  • マルチラベル分類を使用する場合は、関連するすべてのラベルを各ドキュメントに適用します。たとえば、医薬品に関する詳細を説明したドキュメントにラベルを付ける場合には、DosageSide Effects というラベルを付けることができます。
  • ラベルごとにできるだけ多くのトレーニング ドキュメントを用意します。ラベルあたりの例を増やすことで、モデルの信頼スコアを上げることができます。より高い信頼スコアは、特に、モデルでドキュメントを分類して複数のラベルを返す場合に役立ちます。 ラベルごとに 50 の例を使用してモデルをトレーニングし、結果を評価します。正確な目標を達成するまで、例を追加して再トレーニングします。これには、ラベルごとに数百個から 1,000 個の例が必要になる場合があります。
  • モデルは、最も一般的なラベルのドキュメント数が、最も一般的ではないラベルのドキュメント数よりも、最大 100 倍存在する場合に最適に動作します。非常に低い頻度のラベルは削除することをおすすめします。
  • 定義されたラベルのいずれとも一致しないドキュメントには、ドメイン外ラベル(None_of_the_above など)を含めることを検討してください。たとえば、芸術やエンターテイメントに関するドキュメントにのみラベルを付けたものの、データセットにスポーツやテクノロジーなどの他のテーマに関するドキュメントが含まれている場合は、他のテーマに関するドキュメントに None_of_the_above というラベルを付けます。このようなラベルがない場合、トレーニング済みモデルは、不適切であってもすべてのドキュメントを定義されたラベルに割り当てようとします。
  • 現在ラベルと一致しないドキュメントが多数ある場合は、モデルが予測をドメイン外ラベルに外すことがないように、ドキュメントをフィルタで除外します。たとえば、ドキュメントが現在のラベルセットに収まるか、ドメイン外に外れるかを予測するフィルタリング モデルを作成できます。フィルタリング後に、ドメイン内ドキュメントのみを分類する別のモデルを作成できます。

入力ファイル

マルチラベル分類は、JSONL または CSV 入力ファイルをサポートしています。1 つのドキュメントに複数のラベル(アノテーション)を指定できます。以降のセクションでは、入力ファイルについて説明し、各ファイル形式の例を示します。

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 ファイルの各行は 1 つのドキュメントを参照します。次の例は、有効な 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 はページ上のアノテーションの位置を適切なラベルの要素の 1 つとみなすことができます。たとえば、不動産契約には同意日と履行日の両方がありますが、Vertex AI は、アノテーションの空間的位置に基づいてエンティティを区別するように学習できます。

データ要件

  • 50 個以上、100,000 個以下のトレーニング ドキュメントを用意する必要があります。
  • 抽出するエンティティにアノテーションを付けるには、1 個以上、100 個以下の一意のラベルを用意する必要があります。
  • 1 つのラベルを使用して、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 を使用してドキュメントにアノテーションを付けることもできます。コンテンツのみを含む JSONL ファイルを作成します(textSegmentAnnotations フィールドなし)。ドキュメントはアノテーションなしで Vertex AI にアップロードされます。

感情分析

感情分析のトレーニング データは、コンテンツの感情を示す感情値が関連付けられたドキュメントで構成されます。たとえば、空の旅など、特定の話題に関するツイートがある場合、それぞれのツイートが、ポジティブか、ネガティブか、ニュートラルかを示す感情値と関連付けられています。

データ要件

  • 10~100,000 個のトレーニング ドキュメントを用意する必要があります。
  • 感情値は 0~10 の整数である必要があります。感情値の最大値は任意で設定できます。たとえば、感情がネガティブか、ポジティブか、ニュートラルかを特定する場合には、0(ネガティブ)、1(ニュートラル)、2 (ポジティブ)の感情スコアでトレーニング データにラベル付けできます。このデータセットの感情スコアの最大値は 2 です。5 段階の感情など、より細かい粒度で特定する場合は、0(最もネガティブ)から 4(最もポジティブ)まででドキュメントにラベル付けできます。
  • 各感情値を少なくとも 10 個のドキュメントに適用する必要があります。
  • 感情スコア値は 0 から始まる連続した整数でなければなりません。スコアにギャップがある場合、または 0 から始まらない場合は、0 から始まる連続した整数になるようにスコアを再マッピングします。
  • インラインにドキュメントを含めることや、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 ファイルの各行は 1 つのドキュメントを参照します。次の例は、有効な 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

次のステップ