Wenn Sie ein benutzerdefiniertes Training durchführen, müssen Sie angeben, welcher Code für maschinelles Lernen (ML) von Vertex AI ausgeführt werden soll. Konfigurieren Sie dazu die Einstellungen für den Trainingscontainer für einen benutzerdefinierten Container oder eine Python-Trainingsanwendung, die in einem vordefinierten Container ausgeführt wird.
Um zu bestimmen, ob Sie einen benutzerdefinierten Container oder einen vordefinierten Container verwenden möchten, finden Sie unter Anforderungen für den Trainingscode.
In diesem Dokument werden die Felder der Vertex AI API beschrieben, die Sie in beiden der oben genannten Fälle angeben müssen.
Wo Containereinstellungen angeben
Geben Sie die Konfigurationsdetails in einem WorkerPoolSpec
an. Je nachdem, wie Sie das benutzerdefinierte Training durchführen, platzieren Sie diese WorkerPoolSpec
in einem der folgenden API-Felder:
Wenn Sie eine
CustomJob
-Ressource erstellen, geben SieWorkerPoolSpec
inCustomJob.jobSpec.workerPoolSpecs
an.Wenn Sie die Google Cloud CLI verwenden, können Sie das Flag
--worker-pool-spec
oder--config
des Befehlsgcloud ai custom-jobs create
verwenden, um Optionen für Worker-Pools festzulegenWeitere Informationen zum Erstellen eines
CustomJob
.Wenn Sie eine
HyperparameterTuningJob
-Ressource erstellen, geben SieWorkerPoolSpec
inHyperparameterTuningJob.trialJobSpec.workerPoolSpecs
an.Wenn Sie die gcloud CLI verwenden, können Sie mit dem Flag
--config
im Befehlgcloud ai hpt-tuning-jobs create
die Optionen für Worker-Pools angeben.Weitere Informationen zum Erstellen von
HyperparameterTuningJob
.Wenn Sie eine
TrainingPipeline
-Ressource ohne Hyperparameter-Abstimmung erstellen, geben SieWorkerPoolSpec
inTrainingPipeline.trainingTaskInputs.workerPoolSpecs
an.Weitere Informationen zum Erstellen einer benutzerdefinierten
TrainingPipeline
Wenn Sie eine
TrainingPipeline
mit Hyperparameter-Abstimmung erstellen, geben SieWorkerPoolSpec
inTrainingPipeline.trainingTaskInputs.trialJobSpec.workerPoolSpecs
an.
Wenn Sie ein verteiltes Training machen, können Sie für jeden Worker-Pool unterschiedliche Einstellungen verwenden.
Konfigurieren Sie die Werte für Containereinstellungen.
Je nachdem, ob Sie einen vordefinierten Container oder einen benutzerdefinierten Container verwenden, müssen Sie im WorkerPoolSpec
verschiedene Felder angeben. Wählen Sie den Tab für Ihr Szenario aus:
Vordefinierter Container
Wählen Sie einen vordefinierten Container aus, der das ML-Framework unterstützt, das Sie für das Training verwenden möchten. Geben Sie einen der URIs des Container-Images im Feld
pythonPackageSpec.executorImageUri
an.Geben Sie die Cloud Storage-URIs Ihrer Python-Trainingsanwendung im Feld
pythonPackageSpec.packageUris
an.Geben Sie das Einstiegspunktmodul der Trainingsanwendung im Feld
pythonPackageSpec.pythonModule
an.Optional können Sie im Feld
pythonPackageSpec.args
eine Liste von Befehlszeilenargumenten angeben, die an das Einstiegspunktmodul der Trainingsanwendung übergeben werden.
In den folgenden Beispielen wird hervorgehoben, wo Sie diese Containereinstellungen beim Erstellen eines CustomJob
angeben:
Console
In der Google Cloud Console können Sie einen CustomJob
nicht direkt erstellen. Sie können jedoch eine TrainingPipeline
erstellen, die einen CustomJob
erstellt. Wenn Sie eine TrainingPipeline
in der Google Cloud Console erstellen, können Sie in bestimmten Feldern im Schritt Trainingscontainer vordefinierte Containereinstellungen festlegen:
pythonPackageSpec.executorImageUri
: Verwenden Sie die Drop-down-Listen Modell-Framework und Modell-Framework-Version.pythonPackageSpec.packageUris
: Verwenden Sie das Feld Paketstandort.pythonPackageSpec.pythonModule
: Verwenden Sie das Feld Python-Modul.pythonPackageSpec.args
: Verwenden Sie das Feld Argumente.
gcloud
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
Weitere Informationen finden Sie im Leitfaden zum Erstellen von CustomJob
.
Benutzerdefinierter Container
Geben Sie den Artifact Registry- oder den Docker Hub-URI Ihres benutzerdefinierten Containers im Feld
containerSpec.imageUri
an.Wenn Sie die Anleitung
ENTRYPOINT
oderCMD
in Ihrem Container überschreiben möchten, geben Sie die FeldercontainerSpec.command
odercontainerSpec.args
an. Diese Felder wirken sich nach den folgenden Regeln auf die Ausführung Ihres Containers aus:Wenn Sie kein Feld angeben: Der Container wird gemäß der Anweisung
ENTRYPOINT
und der AnweisungCMD
(falls vorhanden) ausgeführt. Weitere Informationen finden Sie unterDocker-Dokumentation zur Interaktion vonCMD
undENTRYPOINT
.Wenn Sie nur
containerSpec.command
angeben: Der Container wird ausgeführt, wobei der Wert voncontainerSpec.command
dieENTRYPOINT
-Anweisung ersetzt. Wenn der Container eineCMD
-Anweisung hat, wird sie ignoriert.Wenn Sie nur
containerSpec.args
angeben: Der Container wird gemäß seinerENTRYPOINT
-Anweisung ausgeführt, wobei der Wert fürcontainerSpec.args
dieCMD
-Anweisung ersetzt.Wenn Sie beide Felder angeben: Der Container wird mit
containerSpec.command
ausgeführt, wobei dieENTRYPOINT
-Anweisung ersetzt undcontainerSpec.args
durch die AnweisungCMD
ersetzt wird.
Im folgenden Beispiel wird gezeigt, wo Sie einige dieser Containereinstellungen bei der Erstellung eines CustomJob
angeben können:
Console
In der Google Cloud Console können Sie einen CustomJob
nicht direkt erstellen. Sie können jedoch eine TrainingPipeline
erstellen, die einen CustomJob
erstellt. Wenn Sie eine TrainingPipeline
in der Google Cloud Console erstellen, können Sie im Schritt Trainingscontainer in bestimmten Feldern benutzerdefinierte Containereinstellungen festlegen:
containerSpec.imageUri
: Verwenden Sie das Feld Container-Image.containerSpec.command
: Dieses API-Feld kann in der Google Cloud Console nicht konfiguriert werden.containerSpec.args
: Verwenden Sie das Feld Argumente.
gcloud
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,container-image-uri=CUSTOM_CONTAINER_IMAGE_URI
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java Schritten zur Einrichtung in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Weitere Informationen finden Sie im Leitfaden zum Erstellen von CustomJob
.
Nächste Schritte
- Weitere Informationen zum Ausführen eines benutzerdefinierten Trainings erhalten Sie unter
CustomJob
erstellen.