總覽
使用私人端點提供線上推論服務前,您必須設定私人服務存取權,在網路和 Vertex AI 之間建立對等互連連線。如果已完成設定,可以使用現有的對等互連連線。
本指南涵蓋下列工作:
- 驗證現有對等互連連線的狀態。
- 確認必要的 API 已啟用。
- 建立私人端點。
- 將模型部署至私人端點。
- 每個私人端點僅支援一個模型。這與公開 Vertex AI 端點不同,您可以在公開端點中,將流量分配給部署至同一端點的多個模型。
- 私人端點支援 AutoML 表格型模型和自訂訓練模型。
- 將推論結果傳送至私人端點。
- 清除資源
檢查現有對等互連連線的狀態
如果您有現成對等互連連線搭配 Vertex AI 使用,可以列出這些連線來檢查狀態:
gcloud compute networks peerings list --network NETWORK_NAME
您應該會看到對等互連連線的狀態為 ACTIVE。
進一步瞭解有效對等互連連線。
啟用必要的 API
gcloud services enable aiplatform.googleapis.com
gcloud services enable dns.googleapis.com
建立私人端點
如要建立私人端點,請使用 Google Cloud CLI 建立端點時,新增 --network 標記:
gcloud beta ai endpoints create \
--display-name=ENDPOINT_DISPLAY_NAME \
--network=FULLY_QUALIFIED_NETWORK_NAME \
--region=REGION
將 NETWORK_NAME 替換為完整網路名稱:
projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
如果您建立端點時未指定網路,系統會建立公開端點。
私人端點的限制
請注意私人端點的下列限制:
- 私人端點不支援流量分割。如要解決這個問題,您可以將模型部署至多個私人端點,並在每個私人端點產生的推論網址之間拆分流量,手動建立流量拆分。
- 私人端點不支援 SSL/TLS。
- 如要在私人端點上啟用存取記錄功能,請傳送電子郵件至 vertex-ai-feedback@google.com。
- 您只能在 Google Cloud專案中,為所有私人端點使用一個網路。如要改用其他電視網,請與
vertex-ai-feedback@google.com聯絡。 - 強烈建議您在發生可復原的錯誤時,在用戶端重試。可能包含下列錯誤:
- 回應空白 (HTTP 錯誤代碼
0),可能是暫時性連線中斷所致。 - HTTP 錯誤代碼
5xx,表示服務可能暫時無法使用。
- 回應空白 (HTTP 錯誤代碼
- 如果 HTTP 錯誤代碼
429表示系統負載過重,請考慮降低流量,以減輕這個問題,而不是重試。 - 系統不支援來自預測服務 (例如
PredictionServiceClient和PredictionServiceClient) 的推論要求。 - Private Service Access 端點不支援微調基礎模型。如要部署微調過基礎模型,請使用 Private Service Connect 端點。
監控私人端點
您可以使用指標資訊主頁,檢查傳送至私人端點的流量可用性和延遲時間。
如要自訂監控,請在 Cloud Monitoring 中查詢下列指標:
aiplatform.googleapis.com/prediction/online/private/response_count推論回應數量。您可以依據
deployed_model_id或 HTTP 回應碼篩選這項指標。aiplatform.googleapis.com/prediction/online/private/prediction_latencies推論要求的延遲時間 (以毫秒為單位)。您可以依
deployed_model_id篩選這項指標,但僅限於成功的要求。
瞭解如何在 Metrics Explorer 中選取、查詢及顯示這些指標。
部署模型
您可以匯入新模型,或部署已上傳的現有模型。如要上傳新模型,請使用 gcloud ai models upload。詳情請參閱「將模型匯入 Vertex AI」。
如要將模型部署至私人端點,請參閱部署模型指南。 除了流量分割和手動啟用存取記錄外,您也可以使用其他任何選項部署自訂訓練模型。如要進一步瞭解私人端點與公開端點的差異,請參閱私人端點的限制。
部署端點後,您可以從私有端點的中繼資料取得推論 URI。
如果您有私人端點的顯示名稱,請執行下列指令來取得端點 ID:
ENDPOINT_ID=$(gcloud ai endpoints list \ --region=REGION \ --filter=displayName:ENDPOINT_DISPLAY_NAME \ --format="value(ENDPOINT_ID.scope())")如要查看所有端點的端點 ID 和顯示名稱,請執行下列指令:
gcloud ai endpoints list --region=REGION最後,如要取得推論 URI,請執行下列指令:
gcloud beta ai endpoints describe ENDPOINT_ID \ --region=REGION \ --format="value(deployedModels.privateEndpoints.predictHttpUri)"
私有推論 URI 格式
與 Vertex AI 公開端點相比,私人端點的推論 URI 看起來有所不同:
http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict
如果您選擇取消部署目前的模型,然後重新部署新模型,系統會重複使用網域名稱,但路徑會包含不同的已部署模型 ID。
將推論結果傳送至私人端點
在 VPC 網路中建立 Compute Engine 執行個體。請務必在與 Vertex AI 對等互連的相同虛擬私有雲網路中建立執行個體。
透過 SSH 連線至 Compute Engine 執行個體,並視需要安裝推論用戶端。否則,您可以使用 curl。
預測時,請使用從模型部署作業取得的推論網址。在本範例中,您是從相同虛擬私有雲網路中 Compute Engine 執行個體的推論用戶端傳送要求:
curl -X POST -d@PATH_TO_JSON_FILE http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict在本範例要求中,PATH_TO_JSON_FILE 是推論要求的路徑,並儲存為 JSON 檔案。例如:
example-request.json。
清除所用資源
您可以與公開模型和端點相同的方式,取消部署模型並刪除私人端點。
範例:測試共用虛擬私有雲中的私人端點
本範例使用兩個專案和共用虛擬私有雲網路: Google Cloud
- 主專案會代管共用虛擬私有雲網路。
- 用戶端專案會代管 Compute Engine 執行個體,您可以在該執行個體中執行推論用戶端 (例如 curl) 或自己的 REST 用戶端,藉此傳送推論要求。
在用戶端專案中建立 Compute Engine 執行個體時,該執行個體必須位於主專案共用虛擬私有雲網路的自訂子網路中,且與模型部署的地區相同。
在主機專案中,為私人服務存取權建立對等互連連線。執行
gcloud services vpc-peerings connect:gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --network=HOST_SHARED_VPC_NAME \ --ranges=PREDICTION_RESERVED_RANGE_NAME \ --project=HOST_PROJECT_ID在用戶端專案中建立端點,並使用主專案的網路名稱。執行
gcloud beta ai endpoints create:gcloud beta ai endpoints create \ --display-name=ENDPOINT_DISPLAY_NAME \ --network=HOST_SHARED_VPC_NAME \ --region=REGION \ --project=CLIENT_PROJECT_ID使用用戶端專案中的推論用戶端傳送推論要求。