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.
Übersicht
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 einen
CustomJob
erstellen, geben Sie das FeldCustomJob.jobSpec.network
an.Wenn Sie die Google Cloud CLI verwenden, können Sie das Flag
--config
im Befehlgcloud ai custom-jobs create
verwenden, um das Feldnetwork
anzugeben.Weitere Informationen zum Erstellen eines
CustomJob
.Wenn Sie einen
HyperparameterTuningJob
erstellen, geben Sie das FeldHyperparameterTuningJob.trialJobSpec.network
an.Wenn Sie die gcloud CLI verwenden, können Sie das
--config
-Flag imgcloud ai hpt-tuning-jobs create
-Befehl verwenden, um das Feldnetwork
anzugeben.Weitere Informationen zum Erstellen von
HyperparameterTuningJob
.Wenn Sie eine
TrainingPipeline
ohne Hyperparameter-Abstimmung erstellen, geben Sie das FeldTrainingPipeline.trainingTaskInputs.network
an.Weitere Informationen zum Erstellen einer benutzerdefinierten
TrainingPipeline
Wenn Sie eine
TrainingPipeline
mit Hyperparameter-Abstimmung erstellen, geben Sie das FeldTrainingPipeline.trainingTaskInputs.trialJobSpec.network
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.
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
Erstellen Sie eine Trainingsanwendung, die zur Vertex AI ausgeführt wird.
Erstellen Sie den
CustomJob
und übergeben Sie die Dateiconfig.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.
- Erstellen Sie eine Compute Engine-Instanz in Ihrem VPC-Netzwerk.
- 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.
- Richten Sie einen lokalen Server auf der VM-Instanz ein, um einen Endpunkt für den Zugriff auf einen Vertex AI-
CustomJob
zu erstellen. - 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.
- 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/networks/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
- Weitere Informationen zum VPC-Netzwerk-Peering
- Informationen zum VPC-Design finden Sie unter Referenzarchitekturen und Best Practices.