gcloud CLI または Vertex AI API を使用してモデルをデプロイするには、まずパブリック エンドポイントを作成する必要があります。
既存の公開エンドポイントがある場合は、この手順をスキップして、gcloud CLI または Vertex AI API を使用してモデルをデプロイするに進みます。
このドキュメントでは、新しいパブリック エンドポイントを作成するプロセスについて説明します。
専用パブリック エンドポイントを作成する(推奨)
専用パブリック エンドポイントのデフォルトのリクエスト タイムアウトは 10 分です。Vertex AI API API と Vertex AI SDK for Python では、次の例に示すように、新しい inferenceTimeout
値を含む clientConnectionConfig
オブジェクトを追加して、別のリクエスト タイムアウトを指定できます。タイムアウトの最大値は 3,600 秒(1 時間)です。
Google Cloud コンソール
-
Google Cloud コンソールの Vertex AI セクションで、[オンライン予測] ページに移動します。
[オンライン予測] ページに移動 - [ 作成] をクリックします。
- [新しいエンドポイント] ペインで、次の操作を行います。
- [エンドポイント名] を入力します。
- アクセスタイプとして [標準] を選択します。
- [専用 DNS を有効にする] チェックボックスをオンにします。
- [続行] をクリックします。
- [完了] をクリックします。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION_ID: 使用するリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
- ENDPOINT_NAME: エンドポイントの表示名。
- INFERENCE_TIMEOUT_SECS: (省略可)省略可能な
inferenceTimeout
フィールドの秒数。
HTTP メソッドと URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
リクエストの本文(JSON):
{ "display_name": "ENDPOINT_NAME" "dedicatedEndpointEnabled": true, "clientConnectionConfig": { "inferenceTimeout": { "seconds": INFERENCE_TIMEOUT_SECS } } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
"done":
true
が含まれるまで、オペレーションのステータスをポーリングできます。Python
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Vertex AI Python API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- LOCATION_ID: Vertex AI を使用するリージョン。
- ENDPOINT_NAME: エンドポイントの表示名。
- INFERENCE_TIMEOUT_SECS:(省略可)省略可能な
inference_timeout
値の秒数。
from google.cloud import aiplatform
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION_ID"
ENDPOINT_NAME = "ENDPOINT_NAME"
INFERENCE_TIMEOUT_SECS = "INFERENCE_TIMEOUT_SECS"
aiplatform.init(
project=PROJECT_ID,
location=LOCATION,
api_endpoint=ENDPOINT_NAME,
)
dedicated_endpoint = aiplatform.Endpoint.create(
display_name=DISPLAY_NAME,
dedicated_endpoint_enabled=True,
sync=True,
inference_timeout=INFERENCE_TIMEOUT_SECS,
)
推論のタイムアウト構成
推論リクエストのデフォルトのタイムアウト時間は 600 秒(10 分)です。このタイムアウトは、エンドポイントの作成時に明示的な推論タイムアウトが指定されていない場合に適用されます。最大許容タイムアウト値は 1 時間です。
エンドポイントの作成時に推論タイムアウトを構成するには、次のコード スニペットに示すように、inference_timeout
パラメータを使用します。
timeout_endpoint = aiplatform.Endpoint.create(
display_name="dedicated-endpoint-with-timeout",
dedicated_endpoint_enabled=True,
inference_timeout=1800, # Unit: Seconds
)
エンドポイントの作成後に推論タイムアウト設定を変更するには、EndpointService.UpdateEndpointLongRunning
メソッドを使用します。EndpointService.UpdateEndpoint
メソッドはこの変更をサポートしていません。
リクエスト / レスポンス ロギング
リクエスト / レスポンス ロギング機能は、API インタラクションをキャプチャします。ただし、BigQuery の制限に準拠するため、サイズが 10 MB を超えるペイロードはログから除外されます。
エンドポイントの作成時にリクエスト / レスポンス ロギングを有効にして構成するには、次のコード スニペットに示すように、次のパラメータを使用します。
logging_endpoint = aiplatform.Endpoint.create(
display_name="dedicated-endpoint-with-logging",
dedicated_endpoint_enabled=True,
enable_request_response_logging=True,
request_response_logging_sampling_rate=1.0, # Default: 0.0
request_response_logging_bq_destination_table="bq://test_logging",
# If not set, a new BigQuery table will be created with the name:
# bq://{project_id}.logging_{endpoint_display_name}_{endpoint_id}.request_response_logging
)
エンドポイントの作成後にリクエスト / レスポンス ロギング設定を変更するには、EndpointService.UpdateEndpointLongRunning
メソッドを使用します。EndpointService.UpdateEndpoint
メソッドはこの変更をサポートしていません。
共有パブリック エンドポイントを作成する
Google Cloud コンソール
-
Google Cloud コンソールの Vertex AI セクションで、[オンライン予測] ページに移動します。
[オンライン予測] ページに移動 - [ 作成] をクリックします。
- [新しいエンドポイント] ペインで、次の操作を行います。
- [エンドポイント名] を入力します。
- アクセスタイプとして [標準] を選択します。
- [続行] をクリックします。
- [完了] をクリックします。
gcloud
次の例では、gcloud ai endpoints create
コマンドを使用します。
gcloud ai endpoints create \
--region=LOCATION_ID \
--display-name=ENDPOINT_NAME
次のように置き換えます。
- LOCATION_ID: Vertex AI を使用するリージョン。
- ENDPOINT_NAME: エンドポイントの表示名。
Google Cloud CLI ツールがエンドポイントを作成するまでに数秒かかる場合があります。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION_ID: 使用するリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
- ENDPOINT_NAME: エンドポイントの表示名。
HTTP メソッドと URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
リクエストの本文(JSON):
{ "display_name": "ENDPOINT_NAME" }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
"done":
true
が含まれるまで、オペレーションのステータスをポーリングできます。Terraform
次のサンプルでは、google_vertex_ai_endpoint
Terraform リソースを使用してエンドポイントを作成します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
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 リファレンス ドキュメントをご覧ください。