このガイドでは、モデルを Model Registry にインポートする方法について説明します。モデルをインポートすると、Model Registry に表示されます。Model Registry から、インポートしたモデルをエンドポイントにデプロイし、予測を実行できます。
必要なロール
モデルをインポートするために必要な権限を取得するため、プロジェクトに対する Vertex AI ユーザー(roles/aiplatform.user
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
ビルド済みコンテナまたはカスタム コンテナ
モデルをインポートするときに、Vertex AI が予測リクエストを実行するためにモデルをコンテナに関連付けます。Vertex AI が提供するビルド済みコンテナを使用することも、独自のカスタム コンテナをビルドして Artifact Registry に push することもできます。
モデルが次の要件を満たしている場合、ビルド済みコンテナを使用できます。
- Python 3.7 以降でトレーニングされている
- TensorFlow、PyTorch、scikit-learn、または XGBoost でトレーニングされている
- ビルド済みの予測コンテナのフレームワーク固有の要件を満たすようにエクスポートされている
以前にエクスポートした表形式の AutoML モデルをインポートする場合は、Vertex AI が提供する特定のカスタム コンテナを使用する必要があります。
それ以外の場合は、新しいカスタム コンテナを作成するか、Artifact Registry 内の既存のカスタム コンテナを使用します。
モデル アーティファクトを Cloud Storage にアップロードする
モデルのアーティファクトは、使用しているリージョン エンドポイントと一致するリージョンの Cloud Storage バケットに保存する必要があります。
Cloud Storage バケットが別の Google Cloud プロジェクトにある場合、モデル アーティファクトを読み取るには、Vertex AI にアクセス権を付与する必要があります。
ビルド済みコンテナを使用する場合は、モデル アーティファクトのファイル名が次の例と完全に一致していることを確認します。
- TensorFlow SavedModel:
saved_model.pb
- PyTorch:
model.mar
- scikit-learn:
model.joblib
またはmodel.pkl
- XGBoost:
model.bst
、model.joblib
、model.pkl
詳しくは、予測に使用するモデル アーティファクトのエクスポートをご覧ください。
Google Cloud コンソールを使用してモデルをインポートする
Google Cloud コンソールを使用してモデルをインポートするには:
Google Cloud コンソールで、Vertex AI の [モデル] ページに移動します。
[インポート] をクリックします。
新しいモデルをインポートするには、[新しいモデルとしてインポート] を選択します。
モデルを既存のモデルのバージョンとしてインポートするには、[新しいバージョンとしてインポート] を選択します。モデルのバージョニングの詳細については、モデルのバージョニングをご覧ください。
名前とリージョン: モデルの名前を入力します。バケットのリージョンと、使用している Vertex AI リージョン エンドポイントの両方に一致するリージョンを選択します。[続行] をクリックします。
[詳細オプション] を開くと、必要に応じて顧客管理の暗号鍵を追加できます。
使用しているコンテナの種類に応じて、該当するタブを選択してください。
ビルド済みコンテナ
[新しいビルド済みコンテナにモデル アーティファクトをインポートする] を選択します。
モデルのトレーニングに使用したモデル フレームワークとモデル フレームワークのバージョンを選択します。
GPU を使用して予測を行う場合は、[アクセラレータ タイプ] を [GPU] に設定します。
GPU のタイプは、後でモデルをエンドポイントにデプロイするときに選択します。
モデル アーティファクトを含むディレクトリの Cloud Storage パスを指定します。
例:
gs://BUCKET_NAME/models/
[予測スキマータ] は空白のままにします。
Vertex Explainable AI の設定を使用せずにモデルをインポートするには、[インポート] をクリックします。
インポートが完了すると、[モデル] ページにモデルが表示されます。
それ以外の場合は、[説明可能性] タブに説明可能性の設定を入力して、モデルの構成を続けます。詳細については、説明可能性の設定をご覧ください。
カスタム コンテナ
[既存のカスタム コンテナをインポート] を選択します。
コンテナ イメージの URI を設定します。
コンテナ イメージに加えてモデル アーティファクトも含める場合は、モデル アーティファクトが格納されたディレクトリの Cloud Storage パスを指定します。
例:
gs://BUCKET_NAME/models/
その他のフィールドに値を指定します。
詳細については、省略可能なフィールドをご覧ください。
Vertex Explainable AI の設定を使用せずにモデルをインポートするには、[インポート] をクリックします。
インポートが完了すると、[モデル] ページにモデルが表示されます。
それ以外の場合は、[説明可能性] タブに説明可能性の設定を入力して、モデルの構成を続けます。詳細については、説明可能性の設定をご覧ください。
AutoML 表形式のコンテナ
[既存のカスタム コンテナをインポート] を選択します。
[コンテナ イメージ] フィールドに「
MULTI_REGION-docker.pkg.dev/vertex-ai/automl-tabular/prediction-server-v1:latest
」と入力します。MULTI_REGION
をus
、europe
、またはasia
に置き換え、Docker イメージの取得元となる Docker リポジトリを選択します。各リポジトリは同じ Docker イメージを提供しますが、Docker を実行しているマシンに最も近い Artifact Registry マルチリージョンを選択すると、レイテンシが短縮される可能性があります。[パッケージの場所] フィールドに、モデル アーティファクトが格納されているディレクトリの Cloud Storage パスを指定します。
パスは次の例のようになります。
gs://BUCKET_NAME/models-MODEL_ID/tf-saved-model/TIMESTAMP/
その他のフィールドは空欄のままにします。
[インポート] をクリックします。
インポートが完了すると、[モデル] ページにモデルが表示されます。このモデルは他の AutoML 表形式モデルと同じように使用できますが、インポートした AutoML 表形式モデルでは Vertex Explainable AI がサポートされません。
モデルをプログラムでインポートする
次の例は、さまざまなツールを使用してモデルをインポートする方法を示しています。
gcloud
次の例では、gcloud ai models upload
コマンドを使用します。
gcloud ai models upload \
--region=LOCATION \
--display-name=MODEL_NAME \
--container-image-uri=IMAGE_URI \
--artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY
次のように置き換えます。
- LOCATION_ID: Vertex AI を使用するリージョン。
-
MODEL_NAME:
Model
の表示名。 -
IMAGE_URI: 予測に使用するコンテナ イメージの URI。例:
us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-1:latest
。ビルド済みコンテナまたはカスタム コンテナを使用します。 -
PATH_TO_MODEL_ARTIFACT_DIRECTORY: モデル アーティファクトを含む Cloud Storage 内のディレクトリの Cloud Storage URI(
gs://
で始まります)。
上の例は、ほとんどのモデルのインポートで必要になるフラグを示しています。ビルド済みコンテナを予測に使用しない場合は、Vertex AI がコンテナ イメージを使用できるように、追加のオプション フラグの指定が必要になることがあります。これらのフラグは --container-
で始まり、Model
の containerSpec
のフィールドに対応します。
REST
次のコードサンプルを使用して、model
リソースの upload
メソッドを使用してモデルをアップロードします。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION_ID: Vertex AI を使用するリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
-
MODEL_NAME:
Model
の表示名。 - MODEL_DESCRIPTION: 省略可。モデルの説明。
-
IMAGE_URI: 予測に使用するコンテナ イメージの URI。例:
us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-1:latest
。ビルド済みコンテナまたはカスタム コンテナを使用します。 -
PATH_TO_MODEL_ARTIFACT_DIRECTORY: モデル アーティファクトを含む Cloud Storage 内のディレクトリの Cloud Storage URI(
gs://
で始まります)。カスタム コンテナを使用している場合、この変数とartifactUri
フィールドは省略可能です。 labels
: 省略可。モデルを整理するための任意の Key-Value ペアのセット。例:- "env": "prod"
- "tier": "backend"
- このトレーニング パイプラインに適用するラベルの LABEL_NAME と LABEL_VALUE を指定します。
HTTP メソッドと URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models:upload
リクエストの本文(JSON):
{ "model": { "displayName": "MODEL_NAME", "predictSchemata": {}, "containerSpec": { "imageUri": "IMAGE_URI" }, "artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY", "labels": { "LABEL_NAME_1": "LABEL_VALUE_1", "LABEL_NAME_2": "LABEL_VALUE_2" } } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models:upload"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth 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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models:upload" | Select-Object -Expand Content
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
Vertex Explainable AI の設定を有効にしてモデルをインポートするには、Vertex Explainable AI モデルのインポート例をご覧ください。
オペレーションのステータスを取得する
一部のリクエストでは、完了までに長時間かかるオペレーションが実行されます。このようなリクエストではオペレーション名が返されます。そのオペレーション名を使用して、オペレーションのステータス確認やキャンセルを行うことができます。Vertex AI には、長時間実行オペレーションに対して呼び出しを行うためのヘルパー メソッドが用意されています。詳細については、長時間実行オペレーションによる作業をご覧ください。
制限事項
- サポートされるモデルの最大サイズは 10 GiB です。
次のステップ
- プログラムにより、または Google Cloud コンソールを使用して、エンドポイントにモデルをデプロイする。