總覽
您必須先設定私人服務存取權,才能在網路和 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
,請考慮放慢流量來緩解這個問題,而非重試。 - 不支援 Vertex AI Python 用戶端程式庫 中
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 格式
私人端點的推論 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
使用用戶端專案中的推論用戶端,傳送推論要求。