使用私人 IP 進行自訂訓練

與使用公開 IP 相比,使用私人 IP 連線至訓練工作可提供更高的網路安全性,並減少網路延遲時間。如要使用私人 IP,請使用虛擬私有雲 (VPC),將網路與任何類型的 Vertex AI 自訂訓練工作對等互連。這樣一來,訓練程式碼就能存取Google Cloud 或內部部署網路中的私人 IP 位址。

本指南說明如何設定虛擬私有雲網路對等互連,讓網路與 Vertex AI CustomJobHyperparameterTuningJob 或自訂 TrainingPipeline 資源對等互連,並在網路中執行自訂訓練工作。

總覽

使用私人 IP 提交自訂訓練工作前,請務必設定私人服務存取權,在網路和 Vertex AI 之間建立對等互連連線。如果已完成設定,可以使用現有的對等互連連線。

本指南涵蓋下列工作:

  • 瞭解要為自訂訓練預留哪些 IP 範圍。
  • 確認現有對等互連連線的狀態。
  • 在您的網路上執行 Vertex AI 自訂訓練。
  • 先檢查一個網路上是否正在進行訓練,再訓練另一個網路。
  • 測試訓練程式碼是否可存取網路中的私人 IP。

為自訂訓練預留 IP 範圍

為服務生產端預留 IP 範圍後,Vertex AI 和其他服務就能使用該範圍。下表顯示使用 /16 至 /18 保留範圍時,可執行的平行訓練工作數量上限 (假設範圍幾乎完全由 Vertex AI 使用)。如果您使用相同範圍連線至其他服務生產端,請分配較大的範圍來容納這些服務生產端,以免 IP 位址用盡。

訓練工作的機器設定 保留範圍 平行工作數量上限
最多 8 個節點。
舉例來說:第一個工作站集區有 1 個主要副本,第二個工作站集區有 6 個副本,第三個工作站集區有 1 個工作站 (做為參數伺服器)
/16 63
/17 31
/18 15
最多 16 個節點。
例如:第一個工作站集區中有 1 個主要副本,第二個工作站集區中有 14 個副本,第三個工作站集區中有 1 個工作站 (做為參數伺服器)
/16 31
/17 15
/18 7
最多 32 個節點。
例如:第一個工作站集區中有 1 個主要副本,第二個工作站集區中有 30 個副本,第三個工作站集區中有 1 個工作站 (做為參數伺服器)
/16 15
/17 7
/18 3

進一步瞭解如何設定工作站集區,以進行分散式訓練

檢查現有對等互連連線的狀態

如果您有與 Vertex AI 搭配使用的現有對等互連連線,可以列出這些連線來檢查狀態:

gcloud compute networks peerings list --network NETWORK_NAME

您應該會看到對等互連連線的狀態為 ACTIVE。 進一步瞭解有效對等互連連線

執行自訂訓練

執行自訂訓練時,您必須指定要讓 Vertex AI 存取的網路名稱。

視您執行自訂訓練的方式而定,請在下列其中一個 API 欄位中指定網路:

如果您未指定網路名稱,Vertex AI 會執行自訂訓練,但不會建立對等互連連線,也無法存取專案中的私人 IP。

範例:使用 gcloud CLI 建立 CustomJob

以下範例說明如何使用 gcloud CLI 執行使用預先建構容器的 CustomJob 時指定網路。如果您以其他方式執行自訂訓練,請network新增 欄位,如您使用的自訂訓練工作類型所述。

  1. 建立 config.yaml 檔案來指定網路。如果您使用共用虛擬私有雲,請使用虛擬私有雲主專案編號。

    確認網路名稱格式正確無誤:

    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    
    cat <<EOF > config.yaml
    network: projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
    EOF
    
  2. 建立訓練應用程式,以便在 Vertex AI 上執行。

  3. 建立 CustomJob,並傳遞 config.yaml 檔案:

    gcloud ai custom-jobs create \
      --region=LOCATION \
      --display-name=JOB_NAME \
      --python-package-uris=PYTHON_PACKAGE_URIS \
      --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=PYTHON_PACKAGE_EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE \
      --config=config.yaml
    

如要瞭解如何替換這項指令中的預留位置,請參閱「建立自訂訓練工作」。

在不同網路上執行工作

如果您仍在對其他網路執行自訂訓練,就無法對新網路執行自訂訓練。切換網路前,您必須等待所有已提交的 CustomJobHyperparameterTuningJob 和自訂 TrainingPipeline 資源完成,或取消這些資源。

測試訓練工作存取權

本節說明如何測試自訂訓練資源是否能存取網路中的私人 IP。

  1. 在 VPC 網路中建立 Compute Engine 執行個體。
  2. 檢查防火牆規則,確認規則不會限制從 Vertex AI 網路輸入的流量。如果是,請新增規則,確保 Vertex AI 網路可以存取您為 Vertex AI (和其他服務生產者) 保留的 IP 範圍。
  3. 在 VM 執行個體上設定本機伺服器,為 Vertex AI CustomJob 建立存取端點。
  4. 建立要在 Vertex AI 上執行的 Python 訓練應用程式。 請建立可存取您在上一步驟中設定端點的程式碼,而非模型訓練程式碼。
  5. 按照先前的範例建立 CustomJob

常見問題

本節列出設定虛擬私有雲網路對等互連與 Vertex AI 時的一些常見問題。

  • 設定 Vertex AI 使用您的網路時,請指定完整網路名稱:

    "projects/YOUR_PROJECT_NUMBER/global/networks/YOUR_NETWORK_NAME"

  • 請務必先停止在某個網路執行自訂訓練,再於其他網路執行自訂訓練。

  • 請確認您已為網路連線的所有服務生產者 (包括 Vertex AI) 分配足夠的 IP 範圍。

如需其他疑難排解資訊,請參閱 VPC 網路對等互連疑難排解指南

後續步驟