Google Cloud コンソールの Model Garden を使用して、モデルの検出、テスト、チューニング、デプロイを行います。Google Cloud CLI を使用して Model Garden モデルをデプロイすることもできます。
テスト プロンプトを送信する
Google Cloud コンソールで、[Model Garden] ページに移動します。
テストするサポート対象のモデルを見つけて、[詳細を表示] をクリックします。
[プロンプト設計を開く] をクリックします。
[Prompt design] ページが表示されます。
[Prompt] に、テストするプロンプトを入力します。
省略可: モデル パラメータを構成します。
[送信] をクリックします。
モデルをチューニングする
Google Cloud コンソールで、[Model Garden] ページに移動します。
[モデルを検索] で [BERT] または [T5-FLAN] と入力し、虫メガネをクリックして検索します。
[T5-FLAN] または [BERT] モデルカードで [詳細を表示] をクリックします。
[ファインチューニング パイプラインを開く] をクリックします。
[Vertex AI Pipelines] ページが表示されます。
チューニングを開始するには、[実行を作成] をクリックします。
ノートブックでチューニングする
ほとんどのオープンソース基盤モデルとファインチューニング可能なモデルのモデルカードは、ノートブックでのチューニングをサポートしています。
Google Cloud コンソールで、[Model Garden] ページに移動します。
チューニングするサポート対象モデルを見つけて、そのモデルカードに移動します。
[ノートブックを開く] をクリックします。
オープンモデルをデプロイする
モデルは、 Google Cloud コンソールのモデルカードを使用するか、プログラムでデプロイできます。
Google Gen AI SDK または Google Cloud CLI の設定の詳細については、Google Gen AI SDK の概要または Google Cloud CLI をインストールするをご覧ください。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
デプロイ可能なモデルを一覧で確認し、デプロイするモデルのモデル ID を記録します。必要に応じて、Model Garden でサポートされている Hugging Face モデルの一覧を表示して、モデル名でフィルタすることもできます。出力には、チューニングされたモデルは含まれません。
前のステップのモデル ID を使用して、モデルのデプロイ仕様を確認します。Model Garden で特定のモデルに対して検証されたマシンタイプ、アクセラレータ タイプ、コンテナ イメージ URI を確認できます。
エンドポイントにモデルをデプロイします。引数と値を追加で指定しない限り、Model Garden はデフォルトのデプロイ構成を使用します。
gcloud
始める前に、次のコマンドを実行する割り当てプロジェクトを指定します。実行したコマンドは、そのプロジェクトの割り当てに対してカウントされます。詳細については、割り当てプロジェクトを設定するをご覧ください。
gcloud ai model-garden models list
コマンドを実行して、デプロイ可能なモデルを一覧で確認します。このコマンドは、すべてのモデル ID と、セルフデプロイできるモデル ID を一覧で表示します。gcloud ai model-garden models list
デプロイするモデル ID を出力で確認します。次の例で示すのは、省略された出力です。
MODEL_ID CAN_DEPLOY CAN_PREDICT google/gemma2@gemma-2-27b Yes No google/gemma2@gemma-2-27b-it Yes No google/gemma2@gemma-2-2b Yes No google/gemma2@gemma-2-2b-it Yes No google/gemma2@gemma-2-9b Yes No google/gemma2@gemma-2-9b-it Yes No google/gemma3@gemma-3-12b-it Yes No google/gemma3@gemma-3-12b-pt Yes No google/gemma3@gemma-3-1b-it Yes No google/gemma3@gemma-3-1b-pt Yes No google/gemma3@gemma-3-27b-it Yes No google/gemma3@gemma-3-27b-pt Yes No google/gemma3@gemma-3-4b-it Yes No google/gemma3@gemma-3-4b-pt Yes No google/gemma3n@gemma-3n-e2b Yes No google/gemma3n@gemma-3n-e2b-it Yes No google/gemma3n@gemma-3n-e4b Yes No google/gemma3n@gemma-3n-e4b-it Yes No google/gemma@gemma-1.1-2b-it Yes No google/gemma@gemma-1.1-2b-it-gg-hf Yes No google/gemma@gemma-1.1-7b-it Yes No google/gemma@gemma-1.1-7b-it-gg-hf Yes No google/gemma@gemma-2b Yes No google/gemma@gemma-2b-gg-hf Yes No google/gemma@gemma-2b-it Yes No google/gemma@gemma-2b-it-gg-hf Yes No google/gemma@gemma-7b Yes No google/gemma@gemma-7b-gg-hf Yes No google/gemma@gemma-7b-it Yes No google/gemma@gemma-7b-it-gg-hf Yes No
出力には、チューニングされたモデルや Hugging Face モデルは含まれません。サポートされている Hugging Face モデルを確認するには、
--can-deploy-hugging-face-models
フラグを追加します。モデルのデプロイ仕様を確認するには、
gcloud ai model-garden models list-deployment-config
コマンドを実行します。Model Garden で特定のモデルでサポートされているマシンタイプ、アクセラレータ タイプ、コンテナ イメージ URI を確認できます。gcloud ai model-garden models list-deployment-config \ --model=MODEL_ID
MODEL_ID は、前の list コマンドで取得したモデル ID(
google/gemma@gemma-2b
やstabilityai/stable-diffusion-xl-base-1.0
など)に置き換えます。gcloud ai model-garden models deploy
コマンドを実行して、モデルをエンドポイントにデプロイします。引数と値を追加で指定しない限り、Model Garden はエンドポイントの表示名を生成し、デフォルトのデプロイ構成を使用します。コマンドを非同期で実行するには、
--asynchronous
フラグを含めます。gcloud ai model-garden models deploy \ --model=MODEL_ID \ [--machine-type=MACHINE_TYPE] \ [--accelerator-type=ACCELERATOR_TYPE] \ [--endpoint-display-name=ENDPOINT_NAME] \ [--hugging-face-access-token=HF_ACCESS_TOKEN] \ [--reservation-affinity reservation-affinity-type=any-reservation] \ [--reservation-affinity reservation-affinity-type=specific-reservation, key="compute.googleapis.com/reservation-name", values=RESERVATION_RESOURCE_NAME] \ [--asynchronous]
各プレースホルダを次のように置き換えます。
- MODEL_ID: 前の list コマンドのモデル ID。Hugging Face モデルの場合は、
stabilityai/stable-diffusion-xl-base-1.0
などの Hugging Face モデル URL 形式を使用します。 - MACHINE_TYPE: モデルにデプロイするリソースのセット(
g2-standard-4
など)を定義します。 - ACCELERATOR_TYPE:
NVIDIA_L4
などの負荷の高いワークロードを処理する際のパフォーマンスを向上させるため、デプロイに追加するアクセラレータを指定します。 - ENDPOINT_NAME: デプロイされた Vertex AI エンドポイントの名前。
- HF_ACCESS_TOKEN: Hugging Face モデルにおいてモデルがゲートされている場合は、アクセス トークンを指定します。
- RESERVATION_RESOURCE_NAME: 特定の Compute Engine 予約を使用するには、予約の名前を指定します。特定の予約を指定した場合、
any-reservation
は指定できません。
出力には、Model Garden が使用したデプロイ構成、エンドポイント ID、デプロイ オペレーション ID が含まれます。デプロイ オペレーション ID を使用して、デプロイ ステータスを確認できます。
Using the default deployment configuration: Machine type: g2-standard-12 Accelerator type: NVIDIA_L4 Accelerator count: 1 The project has enough quota. The current usage of quota for accelerator type NVIDIA_L4 in region us-central1 is 0 out of 28. Deploying the model to the endpoint. To check the deployment status, you can try one of the following methods: 1) Look for endpoint `ENDPOINT_DISPLAY_NAME` at the [Vertex AI] -> [Online prediction] tab in Cloud Console 2) Use `gcloud ai operations describe OPERATION_ID --region=LOCATION` to find the status of the deployment long-running operation
- MODEL_ID: 前の list コマンドのモデル ID。Hugging Face モデルの場合は、
デプロイの詳細を確認するには、
gcloud ai endpoints list --list-model-garden-endpoints-only
コマンドを実行します。gcloud ai endpoints list --list-model-garden-endpoints-only \ --region=LOCATION_ID
LOCATION_ID は、モデルをデプロイしたリージョンに置き換えます。
出力には、Model Garden から作成されたすべてのエンドポイントのほか、エンドポイント ID、エンドポイント名、エンドポイントがデプロイされたモデルに関連付けられているかどうかなどの情報が含まれます。デプロイを見つけるには、前のコマンドから返されたエンドポイント名を探します。
REST
デプロイ可能なすべてのモデルを一覧で確認し、デプロイするモデルの ID を取得します。その後、デフォルトの構成とエンドポイントを使用してモデルをデプロイできます。または、特定のマシンタイプの設定や専用エンドポイントの使用など、デプロイをカスタマイズすることもできます。
1. デプロイできるモデルを一覧表示する
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- QUERY_PARAMETERS: Model Garden モデルを一覧で確認するには、次のクエリ パラメータ
listAllVersions=True&filter=is_deployable(true)
を追加します。Hugging Face モデルを一覧で確認するには、フィルタをalt=json&is_hf_wildcard(true)+AND+labels.VERIFIED_DEPLOYMENT_CONFIG%3DVERIFIED_DEPLOYMENT_SUCCEED&listAllVersions=True
に設定します。
HTTP メソッドと URL:
GET https://us-central1-aiplatform.googleapis.com/v1/publishers/*/models?QUERY_PARAMETERS
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
"https://us-central1-aiplatform.googleapis.com/v1/publishers/*/models?QUERY_PARAMETERS"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/publishers/*/models?QUERY_PARAMETERS" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "publisherModels": [ { "name": "publishers/google/models/gemma3", "versionId": "gemma-3-1b-it", "openSourceCategory": "GOOGLE_OWNED_OSS_WITH_GOOGLE_CHECKPOINT", "supportedActions": { "openNotebook": { "references": { "us-central1": { "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/model_garden/model_garden_gradio_streaming_chat_completions.ipynb" } }, "resourceTitle": "Notebook", "resourceUseCase": "Chat Completion Playground", "resourceDescription": "Chat with deployed Gemma 2 endpoints via Gradio UI." }, "deploy": { "modelDisplayName": "gemma-3-1b-it", "containerSpec": { "imageUri": "us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250312_0916_RC01", "args": [ "python", "-m", "vllm.entrypoints.api_server", "--host=0.0.0.0", "--port=8080", "--model=gs://vertex-model-garden-restricted-us/gemma3/gemma-3-1b-it", "--tensor-parallel-size=1", "--swap-space=16", "--gpu-memory-utilization=0.95", "--disable-log-stats" ], "env": [ { "name": "MODEL_ID", "value": "google/gemma-3-1b-it" }, { "name": "DEPLOY_SOURCE", "value": "UI_NATIVE_MODEL" } ], "ports": [ { "containerPort": 8080 } ], "predictRoute": "/generate", "healthRoute": "/ping" }, "dedicatedResources": { "machineSpec": { "machineType": "g2-standard-12", "acceleratorType": "NVIDIA_L4", "acceleratorCount": 1 } }, "publicArtifactUri": "gs://vertex-model-garden-restricted-us/gemma3/gemma3.tar.gz", "deployTaskName": "vLLM 128K context", "deployMetadata": { "sampleRequest": "{\n \"instances\": [\n {\n \"@requestFormat\": \"chatCompletions\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"What is machine learning?\"\n }\n ],\n \"max_tokens\": 100\n }\n ]\n}\n" } }, ...
2. モデルをデプロイする
Model Garden のモデルまたは Hugging Face のモデルをデプロイします。追加の JSON フィールドを指定して、デプロイをカスタマイズすることもできます。
デフォルト構成でモデルをデプロイします。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: モデルがデプロイされているリージョン。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- MODEL_ID: デプロイするモデルの ID。デプロイ可能なすべてのモデルの一覧から取得できます。ID の形式は publishers/PUBLISHER_NAME/models/MODEL_NAME@MODEL_VERSION です。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
リクエストの本文(JSON):
{ "publisher_model_name": "MODEL_ID", "model_config": { "accept_eula": "true" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF' { "publisher_model_name": "MODEL_ID", "model_config": { "accept_eula": "true" } } EOF
その後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth 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:deploy"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@' { "publisher_model_name": "MODEL_ID", "model_config": { "accept_eula": "true" } } '@ | Out-File -FilePath request.json -Encoding utf8
その後、次のコマンドを実行して REST リクエストを送信します。
$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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata", "genericMetadata": { "createTime": "2025-03-13T21:44:44.538780Z", "updateTime": "2025-03-13T21:44:44.538780Z" }, "publisherModel": "publishers/google/models/gemma3@gemma-3-1b-it", "destination": "projects/PROJECT_ID/locations/LOCATION", "projectNumber": "PROJECT_ID" } }
Hugging Face モデルをデプロイする
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: モデルがデプロイされているリージョン。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- MODEL_ID: デプロイする Hugging Face モデル ID。デプロイ可能なすべてのモデルの一覧から取得できます。ID は PUBLISHER_NAME/MODEL_NAME の形式を使用します。
- ACCESS_TOKEN: モデルがゲートされている場合は、アクセス トークンを指定します。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
リクエストの本文(JSON):
{ "hugging_face_model_id": "MODEL_ID", "hugging_face_access_token": "ACCESS_TOKEN", "model_config": { "accept_eula": "true" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF' { "hugging_face_model_id": "MODEL_ID", "hugging_face_access_token": "ACCESS_TOKEN", "model_config": { "accept_eula": "true" } } EOF
その後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth 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:deploy"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@' { "hugging_face_model_id": "MODEL_ID", "hugging_face_access_token": "ACCESS_TOKEN", "model_config": { "accept_eula": "true" } } '@ | Out-File -FilePath request.json -Encoding utf8
その後、次のコマンドを実行して REST リクエストを送信します。
$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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/us-central1LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata", "genericMetadata": { "createTime": "2025-03-13T21:44:44.538780Z", "updateTime": "2025-03-13T21:44:44.538780Z" }, "publisherModel": "publishers/PUBLISHER_NAME/model/MODEL_NAME", "destination": "projects/PROJECT_ID/locations/LOCATION", "projectNumber": "PROJECT_ID" } }
カスタマイズを加えてモデルをデプロイする
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: モデルがデプロイされているリージョン。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- MODEL_ID: デプロイするモデルの ID。デプロイ可能なすべてのモデルの一覧から取得できます。ID は publishers/PUBLISHER_NAME/models/MODEL_NAME@MODEL_VERSION の形式になります(
google/gemma@gemma-2b
やstabilityai/stable-diffusion-xl-base-1.0
など)。 - MACHINE_TYPE: モデルにデプロイするリソースのセット(
g2-standard-4
など)を定義します。 - ACCELERATOR_TYPE:
NVIDIA_L4
などの負荷の高いワークロードを処理する際のパフォーマンスを向上させるため、デプロイに追加するアクセラレータを指定します。 - ACCELERATOR_COUNT: デプロイで使用するアクセラレータの数。
reservation_affinity_type
: デプロイに既存の Compute Engine 予約を使用するには、任意の予約または特定の予約を指定します。この値を指定する場合は、spot
を指定しないでください。spot
: デプロイに Spot VM を使用するかどうかを指定します。- IMAGE_URI: 使用するコンテナ イメージのロケーション(
us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20241016_0916_RC00_maas
など)。 - CONTAINER_ARGS: デプロイ時にコンテナに渡す引数。
- CONTAINER_PORT: コンテナのポート番号。
fast_tryout_enabled
: モデルのテスト時に、高速デプロイを使用できます。このオプションは、特定のマシンタイプでよく使用されるモデルでのみ使用できます。有効にすると、モデルまたはデプロイ構成を指定できません。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
リクエストの本文(JSON):
{ "publisher_model_name": "MODEL_ID", "deploy_config": { "dedicated_resources": { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACCELERATOR_TYPE", "accelerator_count": ACCELERATOR_COUNT, "reservation_affinity": { "reservation_affinity_type": "ANY_RESERVATION" } }, "spot": "false" } }, "model_config": { "accept_eula": "true", "container_spec": { "image_uri": "IMAGE_URI", "args": [CONTAINER_ARGS ], "ports": [ { "container_port": CONTAINER_PORT } ] } }, "deploy_config": { "fast_tryout_enabled": false }, }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF' { "publisher_model_name": "MODEL_ID", "deploy_config": { "dedicated_resources": { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACCELERATOR_TYPE", "accelerator_count": ACCELERATOR_COUNT, "reservation_affinity": { "reservation_affinity_type": "ANY_RESERVATION" } }, "spot": "false" } }, "model_config": { "accept_eula": "true", "container_spec": { "image_uri": "IMAGE_URI", "args": [CONTAINER_ARGS ], "ports": [ { "container_port": CONTAINER_PORT } ] } }, "deploy_config": { "fast_tryout_enabled": false }, } EOF
その後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth 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:deploy"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@' { "publisher_model_name": "MODEL_ID", "deploy_config": { "dedicated_resources": { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACCELERATOR_TYPE", "accelerator_count": ACCELERATOR_COUNT, "reservation_affinity": { "reservation_affinity_type": "ANY_RESERVATION" } }, "spot": "false" } }, "model_config": { "accept_eula": "true", "container_spec": { "image_uri": "IMAGE_URI", "args": [CONTAINER_ARGS ], "ports": [ { "container_port": CONTAINER_PORT } ] } }, "deploy_config": { "fast_tryout_enabled": false }, } '@ | Out-File -FilePath request.json -Encoding utf8
その後、次のコマンドを実行して REST リクエストを送信します。
$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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata", "genericMetadata": { "createTime": "2025-03-13T21:44:44.538780Z", "updateTime": "2025-03-13T21:44:44.538780Z" }, "publisherModel": "publishers/google/models/gemma3@gemma-3-1b-it", "destination": "projects/PROJECT_ID/locations/LOCATION", "projectNumber": "PROJECT_ID" } }
コンソール
Google Cloud コンソールで、[Model Garden] ページに移動します。
デプロイするサポート対象モデルを見つけて、そのモデルカードをクリックします。
[デプロイ] をクリックして、[モデルのデプロイ] ペインを開きます。
[モデルのデプロイ] ペインで、デプロイの詳細を指定します。
- 生成されたモデル名とエンドポイント名を使用するか、変更します。
- モデル エンドポイントを作成するロケーションを選択します。
- デプロイの各ノードに使用するマシンタイプを選択します。
- Compute Engine の予約を使用するには、[デプロイの設定] セクションで [詳細] を選択します。
[予約タイプ] フィールドで予約タイプを選択します。予約は、指定したマシンの仕様に一致している必要があります。
- 作成済みの予約を自動的に使用する: Vertex AI は、一致するプロパティを持つ許可された予約を自動的に選択します。自動的に選択された予約に容量がない場合、Vertex AI は Google Cloud の一般リソースプールを使用します。
- Select specific reservations: Vertex AI は特定の予約を使用します。選択した予約に容量がない場合は、エラーがスローされます。
- 使用しない(デフォルト): Vertex AI は、一般的なGoogle Cloud リソースプールを使用します。この値は、予約を指定しない場合と同じ効果があります。
[デプロイ] をクリックします。
Terraform
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。詳細については、Terraform プロバイダのリファレンス ドキュメントをご覧ください。
モデルをデプロイする
次の例では、デフォルトの構成を使用して、gemma-3-1b-it
モデルを us-central1
の新しい Vertex AI エンドポイントにデプロイします。
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "6.45.0"
}
}
}
provider "google" {
region = "us-central1"
}
resource "google_vertex_ai_endpoint_with_model_garden_deployment" "gemma_deployment" {
publisher_model_name = "publishers/google/models/gemma3@gemma-3-1b-it"
location = "us-central1"
model_config {
accept_eula = True
}
}
カスタマイズを使用してモデルをデプロイするには、Model Garden デプロイによる Vertex AI エンドポイントをご覧ください。
構成を適用する
terraform init
terraform plan
terraform apply
構成を適用すると、Terraform は新しい Vertex AI エンドポイントをプロビジョニングし、指定されたオープンモデルをデプロイします。
クリーンアップ
エンドポイントとモデルのデプロイを削除するには、次のコマンドを実行します。
terraform destroy
パートナー モデルをデプロイして予測リクエストを送る
Google Cloud コンソールで、[Model Garden] ページに移動し、[モデル コレクション] フィルタを使用して、セルフデプロイ パートナー モデルを表示します。セルフデプロイ パートナー モデルのリストから選択し、[有効にする] をクリックしてモデルを購入します。
パートナーの Model Garden モデルカードの「推奨ハードウェア構成」セクションに記載されているように、パートナーの必要なマシンタイプにデプロイする必要があります。デプロイされたモデル サービング リソースは、安全な Google マネージド プロジェクトに配置されます。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
コードで、次のプレースホルダを置き換えます。
- LOCATION: モデルとエンドポイントをデプロイする予定のリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
- DISPLAY_NAME: 関連付けられたリソースのわかりやすい名前。
- PUBLISHER_NAME: アップロードまたはデプロイするモデルを提供するパートナーの名前。
- PUBLISHER_MODEL_NAME: アップロードするモデルの名前。
- MACHINE_TYPE: モデルにデプロイするリソースのセット(
g2-standard-4
など)を定義します。パートナーが提供する構成のいずれかに一致する必要があります。 - ACCELERATOR_TYPE:
NVIDIA_L4
などの負荷の高いワークロードを処理する際のパフォーマンスを向上させるため、デプロイに追加するアクセラレータを指定します。パートナーが提供する構成のいずれかに一致する必要があります。 - ACCELERATOR_COUNT: 使用するアクセラレータの数。パートナーが提供する構成のいずれかに一致する必要があります。
- REQUEST_PAYLOAD: 予測リクエストに含めるフィールドと値。パートナーの Model Garden モデルカードを表示して、使用可能なフィールドを確認します。
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=LOCATION)
# Upload a model
model = aiplatform.Model.upload(
display_name="DISPLAY_NAME_MODEL",
model_garden_source_model_name = f"publishers/PUBLISHER_NAME/models/PUBLISHER_MODEL_NAME",
)
# Create endpoint
my_endpoint = aiplatform.Endpoint.create(display_name="DISPLAY_NAME_ENDPOINT")
# Deploy model
MACHINE_TYPE = "MACHINE_TYPE" # @param {type: "string"}
ACCELERATOR_TYPE = "ACCELERATOR_TYPE" # @param {type: "string"}
ACCELERATOR_COUNT = ACCELERATOR_COUNT # @param {type: "number"}
model.deploy(
endpoint=my_endpoint,
deployed_model_display_name="DISPLAY_NAME_DEPLOYED_MODEL",
traffic_split={"0": 100},
machine_type=MACHINE_TYPE,
accelerator_type=ACCELERATOR_TYPE,
accelerator_count=ACCELERATOR_COUNT,
min_replica_count=1,
max_replica_count=1,
)
# Unary call for predictions
PAYLOAD = {
REQUEST_PAYLOAD
}
request = json.dumps(PAYLOAD)
response = my_endpoint.raw_predict(
body = request,
headers = {'Content-Type':'application/json'}
)
print(response)
# Streaming call for predictions
PAYLOAD = {
REQUEST_PAYLOAD
}
request = json.dumps(PAYLOAD)
for stream_response in my_endpoint.stream_raw_predict(
body = request,
headers = {'Content-Type':'application/json'}
):
print(stream_response)
REST
デプロイ可能なすべてのモデルを一覧で確認し、デプロイするモデルの ID を取得します。その後、デフォルトの構成とエンドポイントを使用してモデルをデプロイできます。または、特定のマシンタイプの設定や専用エンドポイントの使用など、デプロイをカスタマイズすることもできます。
curl コマンドの例で、次のプレースホルダを置き換えます。
- LOCATION: モデルとエンドポイントをデプロイする予定のリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
- DISPLAY_NAME: 関連付けられたリソースのわかりやすい名前。
- PUBLISHER_NAME: アップロードまたはデプロイするモデルを提供するパートナーの名前。
- PUBLISHER_MODEL_NAME: アップロードするモデルの名前。
- ENDPOINT_ID: エンドポイントの ID。
- MACHINE_TYPE: モデルにデプロイするリソースのセット(
g2-standard-4
など)を定義します。パートナーが提供する構成のいずれかに一致する必要があります。 - ACCELERATOR_TYPE:
NVIDIA_L4
などの負荷の高いワークロードを処理する際のパフォーマンスを向上させるため、デプロイに追加するアクセラレータを指定します。パートナーが提供する構成のいずれかに一致する必要があります。 - ACCELERATOR_COUNT: 使用するアクセラレータの数。パートナーが提供する構成のいずれかに一致する必要があります。
- REQUEST_PAYLOAD: 予測リクエストに含めるフィールドと値。パートナーの Model Garden モデルカードを表示して、使用可能なフィールドを確認します。
モデルをアップロードして、Model Registry に追加します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapi.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/models:upload \ -d '{ "model": { "displayName": "DISPLAY_NAME_MODEL", "baseModelSource": { "modelGardenSource": { "publicModelName": f"publishers/PUBLISHER_NAME/models/PUBLISHER_MODEL_NAME", } } } }'
エンドポイントを作成します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapi.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints \ -d '{ "displayName": "DISPLAY_NAME_ENDPOINT" }'
アップロードしたモデルをエンドポイントにデプロイします。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapi.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:deployModel \ -d '{ "deployedModel": { "model": f"projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID", "displayName": "DISPLAY_NAME_DEPLOYED_MODEL", "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorType": "ACCELERATOR_TYPE", "acceleratorCount":"ACCELERATOR_COUNT", }, "minReplicaCount": 1, "maxReplicaCount": 1 }, }, "trafficSplit": { "0": 100 } }'
モデルをデプロイした後、予測の単項呼び出しまたはストリーミング呼び出しを行うことができます。パートナーの Model Garden モデルカードを表示して、サポートされている API メソッドを確認します。
- 単項呼び出しの例:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapi.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:rawPredict \ -d 'REQUEST_PAYLOAD'
- ストリーミング呼び出しの例:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapi.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:streamRawPredict \ -d 'REQUEST_PAYLOAD'
コンソール
Google Cloud コンソールで、[Model Garden] ページに移動します。
特定のモデルを検索するには、Model Garden の検索ボックスにモデル名を入力します。
セルフデプロイできるすべてのモデルを表示するには、フィルタパネルの [モデル コレクション] セクションで、[パートナーのモデルをセルフデプロイする] を選択します。結果のリストには、自己デプロイ可能なすべてのパートナー モデルが含まれます。
デプロイするモデルの名前をクリックします。モデルカードが開きます。
[デプロイ オプション] をクリックします。
[Vertex AI へのデプロイ] ペインで、ロケーションやマシンタイプなどのデプロイを構成します。
[デプロイ] をクリックします。
デプロイが完了したら、SDK または API を使用して予測をリクエストできます。追加の手順については、モデルカードの [ドキュメント] セクションをご覧ください。
エンドポイントを表示または管理する
エンドポイントを表示して管理するには、Vertex AI の [オンライン予測] ページに移動します。
Vertex AI は、特定のリージョンのプロジェクト内のすべてのエンドポイントを一覧表示します。エンドポイントをクリックすると、そのエンドポイントにデプロイされているモデルなどの詳細が表示されます。
モデルのデプロイを解除してリソースを削除する
デプロイされたモデルがプロジェクトのリソースを使用しないようにするには、エンドポイントからモデルのデプロイを解除します。エンドポイントとモデルを削除する前に、モデルのデプロイを解除する必要があります。
モデルのデプロイ解除
エンドポイントからモデルのデプロイを解除します。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
コードで、次の要素を置き換えます。
- PROJECT_ID はプロジェクト ID に置き換えます。
- LOCATION はリージョンに置き換えます(例: us-central1)。
- ENDPOINT_ID は、エンドポイント ID に置き換えます。
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=LOCATION)
# To find out which endpoints are available, un-comment the line below:
# endpoints = aiplatform.Endpoint.list()
endpoint = aiplatform.Endpoint(ENDPOINT_ID)
endpoint.undeploy_all()
gcloud
これらのコマンドでは、次のように置き換えます。
- PROJECT_ID は、プロジェクト名に置き換えます。
- LOCATION_ID は、モデルとエンドポイントをデプロイしたリージョンに置き換えます。
- ENDPOINT_ID は、エンドポイント ID に置き換えます。
- MODEL_ID は、モデルリスト コマンドのモデル ID に置き換えます。
- DEPLOYED_MODEL_ID は、デプロイされたモデル ID に置き換えます。
gcloud ai endpoints list
コマンドを実行して、デプロイに関連付けられているエンドポイント ID を確認します。gcloud ai endpoints list \ --project=PROJECT_ID \ --region=LOCATION_ID
gcloud ai models list
コマンドを実行してモデル ID を取得します。gcloud ai models list \ --project=PROJECT_ID \ --region=LOCATION_ID
前のコマンドのモデル ID を使用して、
gcloud ai models describe
コマンドを実行してデプロイされたモデル ID を取得します。gcloud ai models describe MODEL_ID \ --project=PROJECT_ID \ --region=LOCATION_ID
省略された出力は、次の例のようになります。出力では、ID は
deployedModelId
と呼ばれます。Using endpoint [https://us-central1-aiplatform.googleapis.com/] artifactUri: [URI removed] baseModelSource: modelGardenSource: publicModelName: publishers/google/models/gemma2 ... deployedModels: - deployedModelId: '1234567891234567891' endpoint: projects/12345678912/locations/us-central1/endpoints/12345678912345 displayName: gemma2-2b-it-12345678912345 etag: [ETag removed] modelSourceInfo: sourceType: MODEL_GARDEN name: projects/123456789123/locations/us-central1/models/gemma2-2b-it-12345678912345 ...
gcloud ai endpoints undeploy-model
コマンドを実行して、前のコマンドのエンドポイント ID とデプロイされたモデル ID を使用して、エンドポイントからモデルのデプロイを解除します。gcloud ai endpoints undeploy-model ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID \ --deployed-model-id=DEPLOYED_MODEL_ID
このコマンドは出力を生成しません。
コンソール
Google Cloud コンソールで、[オンライン予測] ページの [エンドポイント] タブに移動します。
[リージョン] プルダウン リストで、エンドポイントが配置されているリージョンを選択します。
エンドポイント名をクリックして詳細ページを開きます。
モデルの行で、
[アクション] をクリックして、次に [エンドポイントからモデルのデプロイを解除] をクリックします。[エンドポイントからモデルのデプロイを解除] ダイアログで [デプロイ解除] をクリックします。
エンドポイントの削除
モデルのデプロイに関連付けられている Vertex AI エンドポイントを削除します。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
コードで、次の要素を置き換えます。
- PROJECT_ID はプロジェクト ID に置き換えます。
- LOCATION はリージョンに置き換えます(例: us-central1)。
- ENDPOINT_ID は、エンドポイント ID に置き換えます。
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=LOCATION)
# To find out which endpoints are available, un-comment the line below:
# endpoints = aiplatform.Endpoint.list()
endpoint = aiplatform.Endpoint(ENDPOINT_ID)
endpoint.delete()
gcloud
これらのコマンドでは、次のように置き換えます。- PROJECT_ID は、プロジェクト名に置き換えます。
- LOCATION_ID は、モデルとエンドポイントをデプロイしたリージョンに置き換えます。
- ENDPOINT_ID は、エンドポイント ID に置き換えます。
gcloud ai endpoints list
コマンドを実行して、削除するエンドポイント ID を取得します。このコマンドを使用すると、プロジェクト内のすべてのエンドポイントのエンドポイント ID が一覧表示されます。gcloud ai endpoints list \ --project=PROJECT_ID \ --region=LOCATION_ID
gcloud ai endpoints delete
コマンドを実行して、エンドポイントを削除します。gcloud ai endpoints delete ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID
プロンプトが表示されたら、「
y
」と入力して確定します。このコマンドは出力を生成しません。
コンソール
Google Cloud コンソールで、[オンライン予測] ページの [エンドポイント] タブに移動します。
[リージョン] プルダウン リストで、エンドポイントが配置されているリージョンを選択します。
エンドポイントの行の末尾にある
[アクション] をクリックし、[エンドポイントを削除] を選択します。確認プロンプトで [確認] をクリックします。
モデルを削除する
モデルのデプロイに関連付けられていたモデルリソースを削除します。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
コードで、次の要素を置き換えます。
- PROJECT_ID はプロジェクト ID に置き換えます。
- LOCATION はリージョンに置き換えます(例: us-central1)。
- MODEL_ID はモデル ID に置き換えます。
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=LOCATION)
# To find out which models are available in Model Registry, un-comment the line below:
# models = aiplatform.Model.list()
model = aiplatform.Model(MODEL_ID)
model.delete()
gcloud
これらのコマンドでは、次のように置き換えます。- PROJECT_ID は、プロジェクト名に置き換えます。
- LOCATION_ID は、モデルとエンドポイントをデプロイしたリージョンに置き換えます。
- MODEL_ID は、モデルリスト コマンドのモデル ID に置き換えます。
gcloud ai models list
コマンドを実行して、削除するモデル ID を見つけます。gcloud ai models list \ --project=PROJECT_ID \ --region=LOCATION_ID
gcloud ai models delete
コマンドを実行して、モデル ID とモデルのロケーションを指定してモデルを削除します。gcloud ai models delete MODEL_ID \ --project=PROJECT_ID \ --region=LOCATION_ID
コンソール
Google Cloud コンソールの Vertex AI セクションから [Model Registry] ページに移動します。
[リージョン] プルダウン リストで、モデルをデプロイしたリージョンを選択します。
モデルの行で、
[アクション] をクリックして、次に [モデルを削除] をクリックします。モデルを削除すると、関連するすべてのモデル バージョンと評価が Google Cloud プロジェクトから削除されます。
確認プロンプトで [削除] をクリックします。
コードサンプルを表示する
タスク固有のソリューション モデルのほとんどのモデルカードには、コピーしてテストできるコードサンプルが含まれています。
Google Cloud コンソールで、[Model Garden] ページに移動します。
コードサンプルを表示するサポート対象モデルを見つけて、[ドキュメント] タブをクリックします。
ページがスクロールすると、サンプルコードが埋め込まれたドキュメント セクションが表示されます。
ビジョンアプリを作成する
該当するコンピュータ ビジョン モデルのモデルカードは、ビジョン アプリケーションの作成をサポートします。
Google Cloud コンソールで、[Model Garden] ページに移動します。
[タスク固有のソリューション] セクションで、ビジョン アプリケーションの作成に使用するビジョンモデルを探し、[詳細を表示] をクリックします。
[アプリを構築] をクリックします。
Vertex AI Vision が表示されます。
[アプリケーション名] にアプリケーションの名前を入力し、[続行] をクリックします。
お支払いプランを選択し、[作成] をクリックします。
Vertex AI Vision Studio が表示され、コンピュータ ビジョン アプリケーションの作成を続行できます。