gcloud CLI または Gemini Enterprise API を使用してモデルを パブリック エンドポイント にデプロイするには、既存のエンドポイントの エンドポイント ID を取得してからモデルをデプロイする必要があります。
エンドポイント ID を取得する
モデルをデプロイするには、エンドポイント ID が必要です。
gcloud
次の例では、gcloud ai endpoints list コマンドを使用します。
gcloud ai endpoints list \
--region=LOCATION_ID \
--filter=display_name=ENDPOINT_NAME
次のように置き換えます。
- LOCATION_ID: Agent Platform を使用しているリージョン。
- ENDPOINT_NAME: エンドポイントの表示名。
ENDPOINT_ID 列に表示される番号をメモします。この ID は次の手順で使用します。
REST
リクエストのデータを使用する前に、 次のように置き換えます。
- LOCATION_ID: Agent Platform を使用しているリージョン。
- PROJECT_ID: [プロジェクト ID](/resource-manager/docs/creating-managing-projects#identifiers)。 。
- ENDPOINT_NAME: エンドポイントの表示名。
HTTP メソッドと URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"endpoints": [
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID",
"displayName": "ENDPOINT_NAME",
"etag": "AMEw9yPz5pf4PwBHbRWOGh0PcAxUdjbdX2Jm3QO_amguy3DbZGP5Oi_YUKRywIE-BtLx",
"createTime": "2020-04-17T18:31:11.585169Z",
"updateTime": "2020-04-17T18:35:08.568959Z"
}
]
}
Python
Agent Platform SDK for Python をインストールまたは更新する方法については、Agent Platform SDK for Python をインストールするをご覧ください。 詳細については、 Python API リファレンス ドキュメントをご覧ください。
次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- LOCATION_ID: Agent Platform を使用しているリージョン。
- ENDPOINT_NAME: エンドポイントの表示名。
from google.cloud import aiplatform
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION_ID"
ENDPOINT_NAME = "ENDPOINT_NAME"
aiplatform.init(
project=PROJECT_ID,
location=LOCATION,
)
endpoint = aiplatform.Endpoint.list( filter='display_name=ENDPOINT_NAME', )
endpoint_id = endpoint.name.split("/")[-1]
モデルをデプロイする
モデルをデプロイする際は、デプロイされたモデルに ID を指定して、エンドポイントにデプロイされた他のモデルと区別します。
お使いの言語または環境に応じて、以下のタブを選択してください。
gcloud
次の例では、gcloud ai endpoints deploy-model コマンドを使用しています。
次の例では、予測処理を高速化するために GPU を使用せずに Model を Endpoint にデプロイし、複数の DeployedModel リソース間でトラフィックを分割しません。
後述のコマンドデータを使用する前に、次のように置き換えます。
- ENDPOINT_ID: エンドポイントの ID。
- LOCATION_ID: Agent Platform を使用しているリージョン。
- MODEL_ID: デプロイするモデルの ID。
-
DEPLOYED_MODEL_NAME:
DeployedModelの名前。DeployedModelのModelの表示名を使用することもできます。 - MIN_REPLICA_COUNT: このデプロイの最小ノード数。ノード数は、推論負荷に応じてノードの最大数まで増減できますが、この数より少なくすることはできません。
-
MAX_REPLICA_COUNT: このデプロイの最大ノード数。ノード数は、推論負荷に応じてこのノード数まで増減に応じて増減できますが、最大値を超えることはできません。
--max-replica-countフラグを省略した場合、最大ノード数は--min-replica-countの値に設定されます。
gcloud ai endpoints deploy-model コマンドを実行します。
Linux、macOS、Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100
Windows(PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100
Windows(cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100
トラフィックの分割
上記の例の --traffic-split=0=100 フラグでは、Endpoint が受信する新しい予測トラフィックの 100% を新しい DeployedModel に送信します。これは、一時的な ID 0 で表されます。Endpoint にすでに他の DeployedModel リソースがある場合は、新しい DeployedModel と古いリソースとの間でトラフィックを分割できます。たとえば、トラフィックの 20% を新しい DeployedModel に、80% を古いリソースに送信するには、次のコマンドを実行します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- OLD_DEPLOYED_MODEL_ID: 既存の
DeployedModelの ID。
gcloud ai endpoints deploy-model コマンドを実行します。
Linux、macOS、Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows(PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows(cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
モデルをデプロイします。
リクエストのデータを使用する前に、 次のように置き換えます。
- LOCATION_ID: Agent Platform を使用しているリージョン。
- PROJECT_ID: [プロジェクト ID](/resource-manager/docs/creating-managing-projects#identifiers)。 。
- ENDPOINT_ID: エンドポイントの ID。
- MODEL_ID: デプロイするモデルの ID。
-
DEPLOYED_MODEL_NAME:
DeployedModelの名前。DeployedModelのModelの表示名を使用することもできます。 -
MACHINE_TYPE: 省略可。このデプロイの各ノードで使用するマシンリソース。デフォルトの設定は
n1-standard-2です。マシンタイプの詳細。 - ACCELERATOR_TYPE: マシンに接続するアクセラレータのタイプ。ACCELERATOR_COUNT が指定されていない場合、またはゼロの場合は省略できます。AutoML モデルや、GPU 以外のイメージを使用するカスタム トレーニング モデルでは、推奨されません。詳細。
- ACCELERATOR_COUNT: 各レプリカで使用するアクセラレータの数。省略可。GPU 以外のイメージを使用する AutoML モデルまたはカスタム トレーニング モデルの場合、0 を指定するか何も指定しないかのどちらかにしてください。
- MIN_REPLICA_COUNT: このデプロイの最小ノード数。ノード数は、推論負荷に応じてノードの最大数まで増減できますが、この数より少なくすることはできません。1 以上の値を指定してください。
- MAX_REPLICA_COUNT: このデプロイの最大ノード数。ノード数は、推論負荷に応じてこのノード数まで増減に応じて増減できますが、最大値を超えることはできません。
- REQUIRED_REPLICA_COUNT: 省略可。このデプロイが成功とマークされるために必要なノード数。1 以上、ノードの最小数以下にする必要があります。指定しない場合、デフォルト値はノードの最小数です。
- TRAFFIC_SPLIT_THIS_MODEL: このオペレーションでデプロイするモデルにルーティングされる、このエンドポイントへの予測トラフィックの割合。デフォルトは 100 です。すべてのトラフィックの割合の合計は 100 になる必要があります。トラフィック分割の詳細
- DEPLOYED_MODEL_ID_N: 省略可。他のモデルがこのエンドポイントにデプロイされている場合は、すべての割合の合計が 100 になるように、トラフィック分割の割合を更新する必要があります。
- TRAFFIC_SPLIT_MODEL_N: デプロイされたモデル ID キーのトラフィック分割の割合値。
- PROJECT_NUMBER: プロジェクトに自動生成されたプロジェクト番号
HTTP メソッドと URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
リクエストの本文(JSON):
{
"deployedModel": {
"model": "projects/PROJECT/locations/us-central1/models/MODEL_ID",
"displayName": "DEPLOYED_MODEL_NAME",
"dedicatedResources": {
"machineSpec": {
"machineType": "MACHINE_TYPE",
"acceleratorType": "ACCELERATOR_TYPE",
"acceleratorCount": "ACCELERATOR_COUNT"
},
"minReplicaCount": MIN_REPLICA_COUNT,
"maxReplicaCount": MAX_REPLICA_COUNT,
"requiredReplicaCount": REQUIRED_REPLICA_COUNT
},
},
"trafficSplit": {
"0": TRAFFIC_SPLIT_THIS_MODEL,
"DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1,
"DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2
},
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployModelOperationMetadata",
"genericMetadata": {
"createTime": "2020-10-19T17:53:16.502088Z",
"updateTime": "2020-10-19T17:53:16.502088Z"
}
}
}
Java
このサンプルを試す前に、クライアント ライブラリを使用した Agent Platform クイックスタートのJava設定手順に沿ってください。
Agent Platform で認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、 ローカル開発環境の認証の設定をご覧ください。
Python
Agent Platform SDK for Python をインストールまたは更新する方法については、Agent Platform SDK for Python をインストールするをご覧ください。 詳細については、 Python API リファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した Agent Platform クイックスタートのNode.js の手順に沿って設定を行ってください。
Agent Platform で認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、 ローカル開発環境の認証の設定をご覧ください。
推論ロギングのデフォルト設定を変更する方法を確認する。
オペレーションのステータスを取得する
一部のリクエストでは、完了までに長時間かかるオペレーションが実行されます。このようなリクエストではオペレーション名が返されます。そのオペレーション名を使用して、オペレーションのステータス確認やキャンセルを行うことができます。Colab Enterprise には、長時間実行オペレーションに対して呼び出しを行うためのヘルパー メソッドが用意されています。詳細については、長時間実行 オペレーションによる作業をご覧ください。
次のステップ
- オンライン推論の取得方法を確認する。
- プライベート エンドポイントについて確認する。