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

このページでは、単一ラベル分類モデルとマルチラベル分類モデルをトレーニングするために 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 というラベルを付けます。このようなラベルがない場合、トレーニング済みモデルは、不適切であってもすべてのドキュメントを定義されたラベルに割り当てようとします。
  • 現在ラベルと一致しないドキュメントが多数ある場合は、モデルが予測をドメイン外ラベルに外すことがないように、ドキュメントをフィルタで除外します。たとえば、ドキュメントが現在のラベルセットに収まるか、ドメイン外に外れるかを予測するフィルタリング モデルを作成できます。フィルタリング後に、ドメイン内ドキュメントのみを分類する別のモデルを作成できます。

入力ファイル

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

JSON Lines

JSON Lines ファイルの形式、フィールド名、値の型は、一般公開されている YAML ファイルであるスキーマ ファイルによって決まります。

単一ラベル分類用のスキーマ ファイルは、次の Cloud Storage の場所からダウンロードできます。
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml

JSON Lines の例

次の例は、スキーマを使用して独自の JSON Lines ファイルを作成する方法を示しています。この例では、読みやすくするため改行されています。実際の 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 というラベルを付けます。このようなラベルがない場合、トレーニング済みモデルは、不適切であってもすべてのドキュメントを定義されたラベルに割り当てようとします。
  • 現在ラベルと一致しないドキュメントが多数ある場合は、モデルが予測をドメイン外ラベルに外すことがないように、ドキュメントをフィルタで除外します。たとえば、ドキュメントが現在のラベルセットに収まるか、ドメイン外に外れるかを予測するフィルタリング モデルを作成できます。フィルタリング後に、ドメイン内ドキュメントのみを分類する別のモデルを作成できます。

入力ファイル

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

JSON Lines

JSON Lines ファイルの形式、フィールド名、値の型は、一般公開されている YAML ファイルであるスキーマ ファイルによって決まります。

マルチラベル分類用のスキーマ ファイルは、次の Cloud Storage の場所からダウンロードできます。
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml

JSON Lines の例

次の例は、スキーマを使用して独自の JSON Lines ファイルを作成する方法を示しています。この例では、読みやすくするため改行されています。実際の 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