このページでは、Agent Platform マネージド データセットを使用してカスタムモデルをトレーニングする方法について説明します。マネージド データセットには、次の利点があります。
- データセットを一元的に管理する。
- ラベルと複数のアノテーション セットを作成する。
- 統合データのラベル付けを使用して、ヒューマン ラベリングのタスクを作成する。
- ガバナンスと反復型開発のため、モデルのリネージをトラッキングする。
- 同じデータセットを使用して AutoML モデルとカスタムモデルをトレーニングし、モデルのパフォーマンスを比較する。
- データの統計情報を生成して可視化する。
- データをトレーニング セット、テストセット、検証セットに自動的に分割する。
始める前に
トレーニング アプリケーションでマネージド データセットを使用する前に、データセットを作成する必要があります。トレーニングに使用するデータセットとトレーニング パイプラインを同じリージョン内に作成する必要があります。Dataset リソースを利用できるリージョンを使用する必要があります。
トレーニング アプリケーションからデータセットにアクセスする
サーバーレス トレーニング パイプラインを作成するときに、トレーニング アプリケーションが Agent Platform データセットを使用するように 指定できます。
実行時に、Agent Platform はトレーニング コンテナに次の環境変数を設定し、データセットに関するメタデータをトレーニング アプリケーションに渡します。
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 を参照します。データファイルのサイズを比較的小さくするため、Agent Platform はデータセットを複数のファイルに分割します。トレーニング、検証、テストデータが複数のファイルに分割される可能性があるため、URI はワイルドカード形式で提供されます。
Cloud Storage のコードサンプルを使用してオブジェクトをダウンロードする方法についてご確認ください。
AIP_DATA_FORMAT が bigquery の場合、データ URI 値は BigQuery URI を参照します(bq://project.dataset.table など)。
BigQuery データのページングについてご確認ください。
データセットのフォーマット
以降のセクションでは、トレーニング アプリケーションにデータセットを渡すときに Agent Platform がデータをフォーマットする方法について説明します。
画像データセット
画像データセットは、JSON Lines 形式でトレーニング アプリケーションに渡されます。 データセットの目標のタブを選択すると、Agent Platform によるデータセットのフォーマット方法の詳細が表示されます。
単一ラベル分類
Agent Platform は、単一ラベルの画像分類データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は 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 の文字列ペアが含まれます。Agent Platform はこのフィールドを使用して、 アノテーション セットを指定します。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"}}
...マルチラベル分類
Agent Platform は、マルチラベルの画像分類データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は 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 の文字列ペアが含まれます。Agent Platform はこのフィールドを使用して、 アノテーション セットを指定します。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"}}
...オブジェクト検出
Agent Platform は、オブジェクト検出データセットのエクスポート時に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は 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 の文字列ペアが含まれます。Agent Platform はこのフィールドを使用して、 アノテーション セットを指定します。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"}}
...表形式のデータセット
Agent Platform は、表形式データを CSV 形式または BigQuery のテーブルやビューへの URI としてトレーニング アプリケーションに渡します。データソースの形式と要件の詳細については、 インポート ソースの準備をご覧ください。データセット スキーマの詳細については、 Google Cloud コンソールのデータセットをご覧ください。
テキスト データセット
テキスト データセットは JSON Lines 形式でトレーニング アプリケーションに渡されます。 データセットの目標のタブを選択すると、Agent Platform によるデータセットのフォーマット方法の詳細が表示されます。
単一ラベル分類
Agent Platform は、単一ラベルのテキスト分類データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は 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"
}
}マルチラベル分類
Agent Platform は、マルチラベルのテキスト分類データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は 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"
}
}エンティティの抽出
Agent Platform は、エンティティ抽出データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は 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"
}
}感情分析
Agent Platform は、感情分析データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は 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 形式でトレーニング アプリケーションに渡されます。 データセットの目標のタブを選択すると、Agent Platform によるデータセットのフォーマット方法の詳細が表示されます。
動作認識
Agent Platform は、動作認識データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は 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"}}
...分類
Agent Platform は、分類データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は 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"}}
...オブジェクト トラッキング
Agent Platform は、オブジェクト トラッキング データセットをエクスポートする際に、一般公開されている次のスキーマを使用します。このスキーマにより、データ エクスポート ファイルの形式が決まります。スキーマの構造は 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"}}
...次のステップ
- トレーニング パイプラインを作成して、サーバーレス トレーニングでマネージド データセットを使用する方法を学習する。