Vertex AI を使用すると、メタデータとアノテーション セットを Dataset
リソースからエクスポートできます。この機能は、アノテーションの変更、追加、または削除の特定の履歴を記録として保持する場合に便利です。
Dataset
をエクスポートすると、Vertex AI は Dataset
のメタデータとアノテーションを含む 1 つ以上の JSON Lines ファイルを作成し、これらの JSON Lines ファイルを任意の Cloud Storage ディレクトリに保存します。
画像、テキスト、動画の Dataset
リソースはエクスポートできますが、表形式の Dataset
リソースはエクスポートできません。
Dataset
をエクスポートしても、Dataset
のベースとなっている画像、テキスト、動画データの追加のコピーは作成されません。エクスポート プロセスによって作成された JSON Lines ファイルには、Dataset
にデータをインポートしたときに指定したデータの元の Cloud Storage URI が含まれています。
Google Cloud コンソールまたは API を使用して Dataset
をエクスポートする
Google Cloud コンソールまたは Vertex AI API を使用して、Dataset
をエクスポートできます。該当するタブの手順に沿って操作してください。
コンソール
Google Cloud コンソールの [Vertex AI] セクションで、[データセット] ページに移動します。
[リージョン] プルダウン リストで、
Dataset
が保存されているロケーションを選択します。Dataset
の行を探します。すべてのアノテーション セットまたは特定のアノテーション セットのメタデータとアノテーションをエクスポートできます。Dataset
のすべてのアノテーション セットのメタデータとアノテーションをエクスポートする場合は、[ をさらに表示] をクリックします。次に、[データセットをエクスポート] をクリックします。これにより、Vertex AI は各アノテーション セットの JSON Lines ファイルのセットを作成します。
特定のアノテーション セットのメタデータとアノテーションをエクスポートする場合は、次の手順を行います。
[ノードを展開
] をクリックして、Dataset
の各アノテーション セットの行を表示します。エクスポートするアノテーション セットの行で、[
をさらに表示] をクリックしてから、[アノテーション セットをエクスポート] をクリックします。
これにより、Vertex AI は指定されたアノテーション セットの JSON Lines ファイルのセットを作成します。
[データのエクスポート] ダイアログで、Vertex AI でエクスポートされた JSON Lines ファイルを保存する Cloud Storage ディレクトリを入力します。[エクスポート] をクリックします。
REST
Dataset
の ID を取得する
Dataset
をエクスポートするには、Dataset
の数値 ID が必要です。Dataset
の表示名はわかっているが ID がわからない場合は、次のセクションを展開し、API を使用して ID を取得する方法を確認します。
表示名からデータセットの ID を取得する
リクエストのデータを使用する前に、次のように置き換えます。
LOCATION:
Dataset
が保存されているロケーション。例:us-central1
PROJECT_ID: 実際のプロジェクト ID。
DATASET_DISPLAY_NAME:
Dataset
の表示名。
HTTP メソッドと URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME" | Select-Object -Expand Content
次のレスポンス例は、Dataset
の ID を検索する場所を強調するため、...
で省略されています。これは、DATASET_ID の代わりとなる番号です。
{ "datasets": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID", "displayName": "DATASET_DISPLAY_NAME", ... } ] }
または、Google Cloud コンソールから Dataset
の ID を取得します。Vertex AI の [データセット] ページに移動し、[ID] 列で番号を確認します。
1 つ以上のアノテーション セットをエクスポートする
リクエストのデータを使用する前に、次のように置き換えます。
LOCATION:
Dataset
が保存されているロケーション。例:us-central1
PROJECT_ID: 実際のプロジェクト ID。
DATASET_ID:
Dataset
の数値 ID。EXPORT_DIRECTORY: Vertex AI でエクスポートされた JSON Lines ファイルを保存するディレクトリの Cloud Storage URI(
gs://
で始まる)。これは、アクセスできる Cloud Storage バケットに存在している必要がありますが、ディレクトリはまだ存在していなくても構いません。FILTER: エクスポートするアノテーション セットを決定するフィルタ文字列。
Dataset
のすべてのアノテーション セットのメタデータとアノテーションをエクスポートする場合は、FILTER を空の文字列に置き換えます(または、リクエスト本文からannotationsFilter
フィールド全体を省略します)。これにより、Vertex AI は各アノテーション セットの JSON Lines ファイルのセットを作成します。特定のアノテーション セットのメタデータとアノテーションをエクスポートする場合は、FILTER を次のように置き換えます。
labels.aiplatform.googleapis.com/annotation_set_name=ANNOTATION_SET_ID
これにより、Vertex AI は数値 ID が ANNOTATION_SET_ID のアノテーション セットに JSON Lines ファイルのセットを作成します。
指定するアノテーション セットの数値 ID を確認するには、Google Cloud コンソールでアノテーション セットを表示し、URL で
annotationSetId
に続く値を探します。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export
リクエストの本文(JSON):
{ "exportConfig": { "gcsDestination": { "outputUriPrefix": "EXPORT_DIRECTORY" }, "annotationsFilter": "FILTER" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportDataOperationMetadata", "genericMetadata": { "createTime": "2021-02-17T00:54:58.827429Z", "updateTime": "2021-02-17T00:54:58.827429Z" }, "gcsOutputDirectory": "EXPORT_DIRECTORY/export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z" } }
一部のリクエストでは、完了までに長時間かかるオペレーションが実行されます。このようなリクエストではオペレーション名が返されます。そのオペレーション名を使用して、オペレーションのステータス確認やキャンセルを行うことができます。Vertex AI には、長時間実行オペレーションに対して呼び出しを行うためのヘルパー メソッドが用意されています。詳細については、長時間実行オペレーションによる作業をご覧ください。
エクスポートされたファイルの説明
前のセクションで指定したエクスポート ディレクトリ内に、Vertex AI は Dataset
の表示名とタイムスタンプでラベル付けされた新しいディレクトリを作成します(例: export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z
)。このディレクトリには、エクスポートしたアノテーション セットごとにサブディレクトリがあります。
各アノテーション セットには、1 つ以上の JSON Lines ファイルがあります。各 JSON Lines ファイルの各行は、アノテーション セットのデータ項目を表します。各データ項目には、データを Vertex AI にインポートしたときに指定したメタデータとアノテーション、さらに、データをインポートした後に追加したメタデータとアノテーションが含まれている場合があります。たとえば、Dataset
のデータのラベル付けをリクエストした場合や、Google Cloud コンソールで Dataset
に手動でラベルまたはアノテーションを追加した場合は、この情報はエクスポートされたファイルに含まれます。
複数のアノテーション セットをエクスポートすると、複数の JSON Lines ファイルに同じデータ項目が表示される場合があります。たとえば、複数のアノテーション セットを含む画像 Dataset
をエクスポートする場合、1 つの JSON Lines ファイルに単一ラベル分類アノテーションを持つデータ項目が含まれる場合があります。異なるアノテーション セットの別の JSON Lines ファイルに、同じデータ項目が含まれていても、代わりにオブジェクト検出アノテーションが含まれている場合があります。
エクスポートされたファイルの形式は、Vertex AI へのデータのインポートに使用できる JSON Lines インポート ファイル形式と一致します。この形式は、データの種類(画像、表形式、テキスト、動画)と目的(オブジェクト トラッキング、エンティティ抽出、分類など)によって異なります。たとえば、単一ラベルの画像分類のアノテーション セットをエクスポートする場合、画像データの準備で説明されているように、各 JSON Lines ファイルの各行は gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml
スキーマ ファイルに従ってフォーマットされます。
アノテーション セットの種類に応じた JSON Lines の形式については、次のガイドをご覧ください。
次のステップ
- データのラベル付けをリクエストする方法を学ぶ。
- Vertex AI でのデータセットの操作について確認する。