如要使用 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。。
- ENDPOINT_NAME:端點的顯示名稱。
HTTP 方法和網址:
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
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI 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 指令。
下列範例會將 Model 部署至 Endpoint,不使用 GPU 加速預測服務,也不會將流量分配至多個 DeployedModel 資源:
使用下列任何指令資料前,請先替換以下項目:
- ENDPOINT_ID:端點 ID。
- LOCATION_ID:您使用 Agent Platform 的區域。
- MODEL_ID:要部署的模型 ID。
-
DEPLOYED_MODEL_NAME:
DeployedModel的名稱。您也可以將Model的顯示名稱用於DeployedModel。 - 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。。
- ENDPOINT_ID:端點 ID。
- MODEL_ID:要部署的模型 ID。
-
DEPLOYED_MODEL_NAME:
DeployedModel的名稱。您也可以將Model的顯示名稱用於DeployedModel。 -
MACHINE_TYPE:選用。這項部署作業中每個節點使用的機器資源。預設設定為
n1-standard-2。進一步瞭解機型。 - ACCELERATOR_TYPE:要附加至機器的加速器類型。如果未指定 ACCELERATOR_COUNT 或值為零,則為選用。不建議用於 AutoML 模型或使用非 GPU 映像檔的自訂訓練模型。瞭解詳情。
- ACCELERATOR_COUNT:每個副本要使用的加速器數量。選用。如果是 AutoML 模型或使用非 GPU 映像檔的自訂訓練模型,則應為零或未指定。
- 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 方法和網址:
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
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。詳情請參閱 Python API 參考文件。
瞭解如何變更推論記錄的預設設定。
取得作業狀態
部分要求會啟動長時間執行的作業,需要一些時間才能完成。這些要求會傳回作業名稱,您可以使用該名稱查看作業狀態或取消作業。Agent Platform 提供輔助方法,可對長時間執行的作業發出呼叫。詳情請參閱「 使用長時間執行的作業」。