このページでは、Vertex AI マネージド データセットを使用してカスタムモデルをトレーニングする方法について説明します。マネージド データセットを使用すると、次のことができます。
- データセットを一元的に管理する。
- ラベルと複数のアノテーション セットを簡単に作成する。
- 統合データのラベル付けを使用して、ヒューマン ラベリングのタスクを作成する。
- ガバナンスと反復型開発のため、モデルのリネージをトラッキングする。
- 同じデータセットを使用して AutoML モデルとカスタムモデルをトレーニングし、モデルのパフォーマンスを比較する。
- データの統計情報を生成して可視化する。
- データをトレーニング セット、テストセット、検証セットに自動的に分割する。
始める前に
トレーニング アプリケーションでマネージド データセットを使用する前に、データセットを作成する必要があります。トレーニングに使用するデータセットとトレーニング パイプラインを同じリージョン内に作成する必要があります。Dataset
リソースを利用できるリージョンを使用する必要があります。
トレーニング アプリケーションからデータセットにアクセスする
カスタム トレーニング パイプラインを作成するときに、トレーニング アプリケーションが Vertex AI データセットを使用するように指定できます。
実行時に、Vertex AI はトレーニング コンテナに次の環境変数を設定し、データセットに関するメタデータをトレーニング アプリケーションに渡します。
AIP_DATA_FORMAT
: データセットのエクスポート形式。有効な値はjsonl
、csv
、bigquery
です。AIP_TRAINING_DATA_URI
: トレーニング データの BigQuery URI、またはトレーニング データファイルの Cloud Storage URI。AIP_VALIDATION_DATA_URI
: 検証データの BigQuery URI、または検証データファイルの Cloud Storage URI。AIP_TEST_DATA_URI
: テストデータの BigQuery URI、またはテストデータ ファイルの Cloud Storage URI。
データセットの AIP_DATA_FORMAT
が jsonl
または csv
の場合、データ URI 値は gs://bucket_name/path/training-*
などの Cloud Storage URI を参照します。データファイルのサイズを比較的小さくするため、Vertex AI はデータセットを複数のファイルに分割します。トレーニング、検証、テストデータが複数のファイルに分割される可能性があるため、URI はワイルドカード形式で提供されます。
Cloud Storage のコードサンプルを使用してオブジェクトをダウンロードする方法についてご確認ください。
AIP_DATA_FORMAT
が bigquery
の場合、データ URI 値は BigQuery URI を参照します(bq://project.dataset.table
など)。
BigQuery データのページングについてご確認ください。
データセットのフォーマット
以降のセクションでは、トレーニング アプリケーションにデータセットを渡すときに Vertex AI がデータをフォーマットする方法について説明します。
画像データセット
画像データセットは、JSON Lines 形式でトレーニング アプリケーションに渡されます。データセットの目標のタブを選択すると、Vertex AI によるデータセットのフォーマット方法の詳細が表示されます。
単一ラベル分類
Vertex AI は、単一ラベルの画像分類データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は OpenAPI スキーマに準拠しています。
エクスポートされたデータセットの各データ項目は、次の形式を使用します。この例には、読みやすくするために改行が含まれています。
{ "imageGcsUri": "gs://bucket/filename.ext", "classificationAnnotation": { "displayName": "LABEL", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name": "displayName", "env": "prod" } }, "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training/test/validation" } }
フィールドに関する注意事項:
imageGcsUri
: この画像の Cloud Storage URI。annotationResourceLabels
: 任意の数の Key-Value の文字列ペアが含まれます。Vertex AI はこのフィールドを使用して、アノテーション セットを指定します。dataItemResourceLabels
- 任意の数の Key-Value の文字列ペアが含まれます。トレーニング、テスト、検証など、データ項目の機械学習の使用目的を指定します。
JSON Lines の例
{"imageGcsUri": "gs://bucket/filename1.jpeg", "classificationAnnotation": {"displayName": "daisy"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "classificationAnnotation": {"displayName": "dandelion"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "classificationAnnotation": {"displayName": "roses"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.bmp", "classificationAnnotation": {"displayName": "sunflowers"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename5.tiff", "classificationAnnotation": {"displayName": "tulips"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
マルチラベル分類
Vertex AI は、マルチラベルの画像分類データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は OpenAPI スキーマに準拠しています。
エクスポートされたデータセットの各データ項目は、次の形式を使用します。この例には、読みやすくするために改行が含まれています。
{ "imageGcsUri": "gs://bucket/filename.ext", "classificationAnnotations": [ { "displayName": "LABEL1", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name":"displayName", "label_type": "flower_type" } }, { "displayName": "LABEL2", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name":"displayName", "label_type": "image_shot_type" } } ], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training/test/validation" } }
フィールドに関する注意事項:
imageGcsUri
: この画像の Cloud Storage URI。annotationResourceLabels
: 任意の数の Key-Value の文字列ペアが含まれます。Vertex AI はこのフィールドを使用して、アノテーション セットを指定します。dataItemResourceLabels
- 任意の数の Key-Value の文字列ペアが含まれます。トレーニング、テスト、検証など、データ項目の機械学習の使用目的を指定します。
JSON Lines の例
{"imageGcsUri": "gs://bucket/filename1.jpeg", "classificationAnnotations": [{"displayName": "daisy"}, {"displayName": "full_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "classificationAnnotations": [{"displayName": "dandelion"}, {"displayName": "medium_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "classificationAnnotations": [{"displayName": "roses"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.bmp", "classificationAnnotations": [{"displayName": "sunflowers"}, {"displayName": "closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename5.tiff", "classificationAnnotations": [{"displayName": "tulips"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
オブジェクト検出
Vertex AI は、オブジェクト検出データセットのエクスポート時に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は OpenAPI スキーマに準拠しています。
gs://google-cloud-aiplatform/schema/dataset/ioformat/image_bounding_box_io_format_1.0.0.yaml
エクスポートされたデータセットの各データ項目は、次の形式を使用します。この例には、読みやすくするために改行が含まれています。
{ "imageGcsUri": "gs://bucket/filename.ext", "boundingBoxAnnotations": [ { "displayName": "OBJECT1_LABEL", "xMin": "X_MIN", "yMin": "Y_MIN", "xMax": "X_MAX", "yMax": "Y_MAX", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name": "displayName", "env": "prod" } }, { "displayName": "OBJECT2_LABEL", "xMin": "X_MIN", "yMin": "Y_MIN", "xMax": "X_MAX", "yMax": "Y_MAX" } ], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "test/train/validation" } }
フィールドに関する注意事項:
imageGcsUri
: この画像の Cloud Storage URI。annotationResourceLabels
: 任意の数の Key-Value の文字列ペアが含まれます。Vertex AI はこのフィールドを使用して、アノテーション セットを指定します。dataItemResourceLabels
- 任意の数の Key-Value の文字列ペアが含まれます。トレーニング、テスト、検証など、データ項目の機械学習の使用目的を指定します。
JSON Lines の例
{"imageGcsUri": "gs://bucket/filename1.jpeg", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.3", "yMin": "0.3", "xMax": "0.7", "yMax": "0.6"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.8", "yMin": "0.2", "xMax": "1.0", "yMax": "0.4"},{"displayName": "Salad", "xMin": "0.0", "yMin": "0.0", "xMax": "1.0", "yMax": "1.0"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "boundingBoxAnnotations": [{"displayName": "Baked goods", "xMin": "0.5", "yMin": "0.7", "xMax": "0.8", "yMax": "0.8"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.tiff", "boundingBoxAnnotations": [{"displayName": "Salad", "xMin": "0.1", "yMin": "0.2", "xMax": "0.8", "yMax": "0.9"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
表形式のデータセット
Vertex AI は、表形式データを CSV 形式または BigQuery テーブルやビューへの URI としてトレーニング アプリケーションに渡します。データソースの形式と要件の詳細については、インポート ソースの準備をご覧ください。データセット スキーマの詳細については、Google Cloud Console のデータセットをご覧ください。
テキスト データセット
テキスト データセットは JSON Lines 形式でトレーニング アプリケーションに渡されます。データセットの目標のタブを選択すると、Vertex AI によるデータセットのフォーマット方法の詳細が表示されます。
単一ラベル分類
Vertex AI は、単一ラベルのテキスト分類データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は OpenAPI スキーマに準拠しています。
エクスポートされたデータセットの各データ項目は、次の形式を使用します。この例には、読みやすくするために改行が含まれています。
{ "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" } }
マルチラベル分類
Vertex AI は、マルチラベルのテキスト分類データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は OpenAPI スキーマに準拠しています。
エクスポートされたデータセットの各データ項目は、次の形式を使用します。この例には、読みやすくするために改行が含まれています。
{ "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" } }
エンティティの抽出
Vertex AI は、エンティティ抽出データセットのエクスポート時に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は OpenAPI スキーマに準拠しています。
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml
エクスポートされたデータセットの各データ項目は、次の形式を使用します。この例には、読みやすくするために改行が含まれています。
{ "textSegmentAnnotations": [ { "startOffset":number, "endOffset":number, "displayName": "label" }, ... ], "textContent": "inline_text", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } } { "textSegmentAnnotations": [ { "startOffset":number, "endOffset":number, "displayName": "label" }, ... ], "textGcsUri": "gcs_uri_to_file", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } }
感情分析
Vertex AI は、感情分析データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は OpenAPI スキーマに準拠しています。
gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_sentiment_1.0.0.yaml
エクスポートされたデータセットの各データ項目は、次の形式を使用します。この例には、読みやすくするために改行が含まれています。
{ "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" } }
動画データセット
動画データセットは JSON Lines 形式でトレーニング アプリケーションに渡されます。データセットの目標のタブを選択すると、Vertex AI によるデータセットのフォーマット方法の詳細が表示されます。
動作認識
Vertex AI は、動作認識データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は OpenAPI スキーマに準拠しています。
gs://google-cloud-aiplatform/schema/dataset/ioformat/video_action_recognition_io_format_1.0.0.yaml
エクスポートされたデータセットの各データ項目は、次の形式を使用します。この例には、読みやすくするために改行が含まれています。
{ "videoGcsUri': "gs://bucket/filename.ext", "timeSegments": [{ "startTime": "start_time_of_fully_annotated_segment", "endTime": "end_time_of_segment"}], "timeSegmentAnnotations": [{ "displayName": "LABEL", "startTime": "start_time_of_segment", "endTime": "end_time_of_segment" }], "dataItemResourceLabels": { "ml_use": "train|test" } }
注: この時間セグメントは、動作のタイムスタンプの計算に使用されます。timeSegmentAnnotations
の startTime
と endTime
は同じ場合があります。これらは、動作のキーフレームに対応します。
JSON Lines の例
{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"ml_use": "training"}} {"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"ml_use": "test"}} ...
分類
Vertex AI は、分類データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は OpenAPI スキーマに準拠しています。
gs://google-cloud-aiplatform/schema/dataset/ioformat/video_classification_io_format_1.0.0.yaml
エクスポートされたデータセットの各データ項目は、次の形式を使用します。この例には、読みやすくするために改行が含まれています。
{ "videoGcsUri": "gs://bucket/filename.ext", "timeSegmentAnnotations": [{ "displayName": "LABEL", "startTime": "start_time_of_segment", "endTime": "end_time_of_segment" }], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "train|test" } }
JSON Lines の例 - 動画の分類:
{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} ...
オブジェクト トラッキング
Vertex AI は、オブジェクト トラキング データセットのエクスポート時に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は OpenAPI スキーマに準拠しています。
gs://google-cloud-aiplatform/schema/dataset/ioformat/object_tracking_io_format_1.0.0.yaml
エクスポートされたデータセットの各データ項目は、次の形式を使用します。この例には、読みやすくするために改行が含まれています。
{ "videoGcsUri": "gs://bucket/filename.ext", "TemporalBoundingBoxAnnotations": [{ "displayName": "LABEL", "xMin": "leftmost_coordinate_of_the_bounding box", "xMax": "rightmost_coordinate_of_the_bounding box", "yMin": "topmost_coordinate_of_the_bounding box", "yMax": "bottommost_coordinate_of_the_bounding box", "timeOffset": "timeframe_object-detected" "instanceId": "instance_of_object "annotationResourceLabels": "resource_labels" }], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "train|test" } }
JSON Lines の例
{'videoGcsUri': 'gs://demo-data/video1.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '4.000000s', 'xMin': '0.668912', 'yMin': '0.560642', 'xMax': '1.000000', 'yMax': '1.000000'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {'videoGcsUri': 'gs://demo-data/video2.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '71.000000s', 'xMin': '0.679056', 'yMin': '0.070957', 'xMax': '0.801716', 'yMax': '0.290358'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} ...