建議使用 Private Service Connect 介面進行私人連線,因為這樣可降低 IP 位址耗盡的機率,並允許傳輸對等互連。
Vertex AI 自訂工作和持續性資源支援 Private Service Connect 介面。
總覽
Vertex AI Training 自訂工作和持續性資源支援 Private Service Connect 介面。如要使用 Private Service Connect 介面,您需要在使用者專案中設定虛擬私有雲網路、子網路和網路連結。請參閱「設定 Private Service Connect 介面」。如要啟用 Private Service Connect 介面,建立自訂作業或持續性資源的要求中必須包含網路連結名稱。
Vertex AI Private Service Connect 輸出連線至其他網路
Vertex AI 已整合 Private Service Connect 支援的傳出網路連線 (請參閱「連線至其他網路中的工作負載」),但有下列例外狀況:
系統不支援連出至客戶的私人 Google 存取權。而是會為 Private Google Access 在本機解析 Private Service Connect 輸出。
只有在啟用 VPC Service Control 時,才支援 Cloud NAT 的輸出流量。
限制
- Private Service Connect 介面不支援外部 IP 位址。
定價
如要瞭解 Private Service Connect 介面的定價,請參閱「所有網路定價」頁面中的「使用 Private Service Connect 介面存取供應商或用戶虛擬私有雲網路」一節。
事前準備
在使用者專案中設定 Private Service Connect 介面的資源。
使用 Private Service Connect 介面建立自訂訓練工作
您可以使用 Vertex AI SDK for Python 或 REST API,透過 Private Service Connect 介面建立自訂訓練工作。
Python
如要使用 Python 適用的 Vertex AI SDK,透過 PSC-I 建立自訂訓練工作,請使用 aiplatform_v1/services/job_service
定義設定工作。
Python
project
:您的專案 ID。您可以在 Google Cloud 控制台 歡迎頁面中找到這些 ID。location
:請參閱可用地點清單。bucket
:將bucket
替換為您有權存取的值區名稱。display_name
:永久資源的顯示名稱。machine_type
:指定運算資源。replica_count
:要用於每次試驗的工作站備用資源數量。service_attachment
:服務連結資源的名稱。如果已啟用 Private Service Connect,則會填入這個欄位。image_uri
:Docker 容器映像檔的 URI,內含訓練程式碼。瞭解如何建立自訂容器映像檔。network_attachment
:設定 Private Service Connect 資源時建立的網路連結名稱或完整路徑。domain
:設定私人 DNS 對等互連時建立的私人 Cloud DNS 區域 DNS 名稱。target_project
:代管虛擬私有雲網路的專案。target_network
:虛擬私有雲網路名稱。
REST
如要建立自訂訓練工作,請使用 customJobs.create 方法傳送 POST 要求。
使用任何要求資料之前,請先替換以下項目:
- LOCATION:容器或 Python 套件的執行區域。
- PROJECT_ID:您的專案 ID。
- JOB_NAME:
CustomJob
的顯示名稱。 - REPLICA_COUNT:要使用的工作站備用資源數量。在大多數情況下,請將此值設為
1
,以用於第一個工作站集區。 - 如果訓練應用程式在自訂容器中執行,請指定下列項目:
- IMAGE_URI:Docker 容器映像檔的 URI,內含訓練程式碼。瞭解如何建立自訂容器映像檔。
- NETWORK_ATTACHMENT:您在設定 Private Service Connect 介面時建立的網路連結名稱或完整路徑。
- 如需私人 DNS 對等互連,則必須填寫
dns_peering_configs
欄位。這個清單中的每個項目都包含:- DOMAIN_SUFFIX:設定私人 DNS 對等互連時建立的私人 Cloud DNS 區域 DNS 名稱。
- TARGET_PROJECT:代管虛擬私有雲網路的專案。
- TARGET_NETWORK:虛擬私有雲網路名稱。
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs
JSON 要求主體:
"display_name": JOB_NAME, "job_spec": { "worker_pool_specs": [ { "machine_spec": { "machine_type": "n2-standard-4", }, "replica_count": REPLICA_COUNT, "container_spec": { "image_uri": IMAGE_URI, }, }, ], "psc_interface_config": { "network_attachment": NETWORK_ATTACHMENT, "dns_peering_configs": [ { "domain": DOMAIN_SUFFIX, "target_project": TARGET_PROJECT, "target_network": TARGET_NETWORK } ], }, "enable_web_access": 1 }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content
您應該會收到類似如下的 JSON 回應: