Private IP-Adresse für benutzerdefiniertes Training verwenden

Die Verwendung einer privaten IP-Adresse für die Verbindung zu Ihren Trainingsjobs bietet mehr Netzwerksicherheit und geringere Netzwerklatenz als öffentliche IP-Adressen. Wenn Sie eine private IP-Adresse verwenden möchten, nutzen Sie Virtual Private Cloud (VPC), um Ihr Netzwerk mit einem beliebigen benutzerdefinierten Vertex AI-Trainingsjob zu verbinden. Dadurch kann Ihre Trainingsjob auf private IP-Adressen innerhalb Ihrer Google Cloud- oder lokalen Netzwerke zugreifen.

In dieser Anleitung wird gezeigt, wie Sie benutzerdefinierte Trainingsjobs in Ihrem Netzwerk ausführen, nachdem Sie VPC-Netzwerk-Peering eingerichtet haben, um Ihr Netzwerk mit dem Vertex AI-CustomJob, HyperparameterTuningJob oder einer benutzerdefinierten TrainingPipeline-Ressource zu verbinden.

Beachten Sie, dass Sie private IP-Adressen nicht für benutzerdefiniertes Training verwenden können, wenn Sie auch eine TPU-VM verwenden.

Überblick

Bevor Sie einen benutzerdefinierten Trainingsjob mit privater IP-Adresse senden, müssen Sie den Zugriff auf private Dienste konfigurieren, um Peering-Verbindungen zwischen Ihrem Netzwerk und Vertex AI zu erstellen. Wenn Sie diesen Zugriff bereits eingerichtet haben, können Sie Ihre vorhandenen Peering-Verbindungen verwenden.

In diesem Leitfaden werden folgende Aufgaben behandelt:

  • Verstehen, welche IP-Bereiche für benutzerdefiniertes Training reserviert werden sollen.
  • Status vorhandener Peering-Verbindungen prüfen.
  • Benutzerdefiniertes Training mit Vertex AI in Ihrem Netzwerk ausführen
  • Prüfen, ob aktives Training in einem Netzwerk erfolgt, bevor Sie Trainings in einem anderen Netzwerk ausführen.
  • Testen, ob Ihr Trainingscode auf private IP-Adressen in Ihrem Netzwerk zugreifen kann.

IP-Bereiche für benutzerdefiniertes Training reservieren

Wenn Sie einen IP-Bereich für Dienstersteller reservieren, kann der Bereich von AI Platform und anderen Diensten verwendet werden. Diese Tabelle zeigt die maximale Anzahl paralleler Trainingsjobs, die Sie mit reservierten Bereichen von /16 bis /19 ausführen können, vorausgesetzt, der Bereich wird fast ausschließlich von Vertex AI verwendet. Wenn Sie eine Verbindung zu anderen Diensterstellern herstellen, die denselben Bereich verwenden, weisen Sie diesen einen größeren Bereich zu, um die IP-Auslastung zu vermeiden.

Maschinenkonfiguration für Trainingsjob Reservierter Bereich Maximale Anzahl paralleler Jobs
Bis zu 8 Knoten.
Beispiel: 1 Primärreplikat im ersten Worker-Pool, 6 Replikate im zweiten Worker-Pool und 1 Worker im dritten Worker-Pool (als Parameterserver)
/16 63
/17 31
/18 15
/19 7
Bis zu 16 Knoten.
Beispiel: 1 Primärreplikat im ersten Worker-Pool, 14 Replikate im zweiten Worker-Pool und 1 Worker im dritten Worker-Pool (als Parameterserver)
/16 31
/17 15
/18 7
/19 3
Bis zu 32 Knoten.
Beispiel: 1 Primärreplikat im ersten Worker-Pool, 30 Replikate im zweiten Worker-Pool und 1 Worker im dritten Worker-Pool (als Parameterserver)
/16 15
/17 7
/18 3
/19 1

Worker-Pools für verteiltes Training konfigurieren

Status vorhandener Peering-Verbindungen prüfen

Wenn Sie bereits Peering-Verbindungen haben, die Sie mit Vertex AI verwenden, können Sie diese auflisten, um den Status zu prüfen:

gcloud compute networks peerings list --network NETWORK_NAME

Der Status Ihrer Peering-Verbindungen sollte nun ACTIVE lauten. Weitere Informationen zu aktiven Peering-Verbindungen

Individuelles Training durchführen

Wenn Sie benutzerdefiniertes Training ausführen, müssen Sie den Namen des Netzwerks angeben, auf das Vertex AI Zugriff haben soll.

Je nachdem, wie Sie das benutzerdefinierte Training ausführen, geben Sie das Netzwerk in einem der folgenden API-Felder an:

Wenn Sie keinen Netzwerknamen angeben, führt Vertex AI Ihr benutzerdefiniertes Training ohne Peering-Verbindung und ohne Zugriff auf private IP-Adressen in Ihrem Projekt aus.

Beispiel: CustomJob mit der gcloud CLI erstellen

Das folgende Beispiel zeigt, wie Sie ein Netzwerk angeben, wenn Sie mit der gcloud CLI einen CustomJob ausführen, der einen vordefinierten Container verwendet. Wenn Sie das benutzerdefinierte Training auf andere Weise durchführen, fügen Sie das Feld network wie für den verwendeten benutzerdefinierten Trainingsjob beschrieben hinzu.

  1. Erstellen Sie eine config.yaml-Datei, um das Netzwerk anzugeben. Wenn Sie eine freigegebene VPC verwenden, geben Sie die Nummer Ihres VPC-Hostprojekts an.

    Prüfen Sie, ob der Netzwerkname richtig formatiert ist:

    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    
    cat <<EOF > config.yaml
    network: projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
    EOF
    
  2. Erstellen Sie eine Trainingsanwendung, die zur Vertex AI ausgeführt wird.

  3. Erstellen Sie den CustomJob und übergeben Sie die Datei 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
    

Informationen zum Ersetzen der Platzhalter in diesem Befehl finden Sie unter Benutzerdefinierte Trainingsjobs erstellen.

Jobs in verschiedenen Netzwerken ausführen

Sie können Trainingsjobs nicht an ein neues Netzwerk senden, während noch benutzerdefinierte Trainings in einem anderen Netzwerk ausgeführt werden. Bevor Sie zu einem anderen Netzwerk wechseln, müssen Sie warten, bis alle gesendeten Ressourcen CustomJob, HyperparameterTuningJob und TrainingPipeline abgeschlossen sind. Andernfalls müssen Sie sie abbrechen.

Zugriff auf Trainingsjobs testen

In diesem Abschnitt wird erläutert, wie Sie testen, ob eine benutzerdefinierte Trainingsressource auf private IP-Adressen in Ihrem Netzwerk zugreifen kann.

  1. Erstellen Sie eine Compute Engine-Instanz in Ihrem VPC-Netzwerk.
  2. Prüfen Sie Ihre Firewallregeln, um sicherzustellen, dass sie nicht den eingehenden Traffic des Vertex AI-Netzwerks einschränken. Fügen Sie in diesem Fall eine Regel hinzu, damit das Vertex AI-Netzwerk auf den IP-Bereich zugreifen kann, den Sie für Vertex AI (und andere Dienstersteller) reserviert haben.
  3. Richten Sie einen lokalen Server auf der VM-Instanz ein, um einen Endpunkt für den Zugriff auf einen Vertex AI-CustomJob zu erstellen.
  4. Erstellen Sie eine Python-Trainingsanwendung zur Ausführung in Vertex AI. Senden Sie anstelle des Modelltrainingscodes Code, der auf den Endpunkt zugreift, den Sie im vorherigen Schritt eingerichtet haben.
  5. Erstellen Sie einen CustomJob wie im vorherigen Beispiel beschrieben.

Häufige Probleme

In diesem Abschnitt werden einige häufige Probleme bei der Konfiguration von VPC-Netzwerk-Peering mit Vertex AI aufgelistet.

  • Geben Sie den vollständigen Netzwerknamen an, wenn Sie Vertex AI für die Verwendung Ihres Netzwerks konfigurieren:

    "projects/YOUR_PROJECT_NUMBER/global/network/YOUR_NETWORK_NAME"

  • Achten Sie darauf, dass Sie keine benutzerdefinierten Trainings in einem Netzwerk ausführen, bevor Sie benutzerdefinierte Trainings in einem anderen Netzwerk ausführen.

  • Achten Sie darauf, dass Sie allen Diensterstellern, mit denen Ihr Netzwerk verbunden ist, einen ausreichenden IP-Bereich zugewiesen haben, einschließlich Vertex AI.

Weitere Informationen zur Fehlerbehebung finden Sie in der Anleitung zur Fehlerbehebung für VPC-Netzwerk-Peering.

Nächste Schritte