Benutzerdefinierte Trainingsjobs (CustomJob
-Ressourcen in der Vertex AI API) sind die grundlegende Möglichkeit, um benutzerdefinierten Trainingscode für maschinelles Lernen (ML) in Vertex AI auszuführen.
Bevor Sie einen Job senden
Bevor Sie einen CustomJob
in Vertex AI erstellen, müssen Sie eine Python-Trainingsanwendung oder ein benutzerdefiniertes Container-Image erstellen, um den Trainingscode und die Abhängigkeiten zu definieren, die Sie auf Vertex AI ausführen möchten.
Wir empfehlen die Verwendung des Autopackaging-Features der Google Cloud CLI, das in einem späteren Abschnitt dieses Leitfadens beschrieben wird, um ein Docker-Container-Image aus Code auf Ihren lokalen Computer zu erstellen, dieses Container-Image per Push an Artifact Registry zu übertragen und eine CustomJob
zu erstellen – alles mit einem einzigen Befehl.
Andernfalls müssen Sie manuell eine Python-Trainingsanwendung oder ein benutzerdefiniertes Container-Image erstellen.
Weitere Informationen zur Auswahl dieser Optionen finden Sie in den Anforderungen für den Trainingscode.
Was ein benutzerdefinierter Job umfasst
Beim Erstellen eines benutzerdefinierten Jobs legen Sie Einstellungen fest, die Vertex AI zum Ausführen des Trainingscodes ausführen muss. Dazu gehören:
- Ein Worker-Pool für das Training mit einem einzelnen Knoten (
WorkerPoolSpec
) oder mehrere Worker-Pools für verteiltes Training - Optionale Einstellungen für die Konfiguration der Jobplanung (
Scheduling
), das Festlegen bestimmter Umgebungsvariablen für Ihren Trainingscode, die Verwendung eines benutzerdefinierten Dienstkontos unddie Verwendung von VPC-Netzwerk-Peering
Innerhalb der Worker-Pools können Sie die folgenden Einstellungen festlegen:
- Maschinentypen und Beschleuniger
- Konfiguration, welcher Trainingscode der Worker-Pool ausführt: entweder eine Python-Trainingsanwendung (
PythonPackageSpec
) oder einen benutzerdefinierten Container (ContainerSpec
.
Sie können auch benutzerdefinierte Jobs so konfigurieren, dass sie auf einer nichtflüchtigen Ressource ausgeführt werden, anstatt neue Rechenressourcen beim Start des Jobs zu erstellen. Weitere Informationen zur nichtflüchtigen Ressource finden Sie in der Übersicht zur nichtflüchtigen Ressource.
Verteiltes Training konfigurieren
Sie können einen CustomJob
für verteiltes Training konfigurieren. Geben Sie dazu mehrere Worker-Pools an.
In den meisten Beispielen auf dieser Seite werden Trainingsjobs mit einem Replikat und einem Worker-Pool aufgeführt. So ändern Sie diese für verteiltes Training:
- Verwenden Sie Ihren ersten Worker-Pool für die Konfiguration des primären Replikats und setzen Sie die Anzahl der Replikate auf 1.
- Fügen Sie weitere Worker-Pools hinzu, um Worker-Replikate, Parameterserver-Replikate oder Evaluator-Replikate zu konfigurieren, wenn Ihr Framework für maschinelles Lernen diese zusätzlichen Clusteraufgaben für verteiltes Training unterstützt.
CustomJob
erstellen
Folgen Sie der Anleitung auf einem der folgenden Tabs, um einen CustomJob
zu erstellen, je nachdem, welches Tool Sie verwenden möchten. Wenn Sie die gcloud CLI verwenden, können Sie mit einem einzigen Befehl den Trainingscode auf Ihrem lokalen Computer in ein Docker-Container-Image verpacken, das Container-Image in die Artifact Registry verschieben und einen CustomJob
erstellen. Andere Optionen setzen voraus, dass Sie bereits eine Python-Trainingsanwendung oder ein benutzerdefiniertes Container-Image erstellt haben.
gcloud
In den folgenden Beispielen wird der Befehl gcloud ai custom-jobs create
verwendet.
Wenn sich Ihr Trainingscode auf Ihrem lokalen Computer befindet, empfehlen wir, den Abschnitt Mit Autopackaging zu befolgen. Wenn Sie bereits eine Python-Trainingsanwendung oder ein benutzerdefiniertes Container-Image erstellt haben, fahren Sie mit dem Abschnitt Ohne Autopackaging fort.
Mit Autopackaging
Wenn Sie Trainingscode auf Ihrem lokalen Computer haben, können Sie mit einem einzigen Befehl folgendes tun:
- Erstellen eines benutzerdefinierten Docker-Image auf Basis Ihres Codes.
- Übertragen Sie das Image in Artifact Registry.
- Starten Sie einen
CustomJob
auf der Basis des Images.
Das Ergebnis ähnelt dem Erstellen eines CustomJob
mit jedem anderen benutzerdefinierten Container. Sie können diese Version des Befehls verwenden, wenn sie für Ihren Workflow geeignet ist.
Hinweis
Da mit dieser Version des Befehls ein Docker-Image erstellt und hochgeladen wird, müssen Sie auf Ihrem lokalen Computer die folgende Konfiguration ausführen:
Wenn Sie Linux verwenden, konfigurieren Sie Docker so, dass es ohne
sudo
ausgeführt werden kann.Enable the Artifact Registry API.
Konfigurieren Sie die Authentifizierung für Docker, damit Sie Docker-Images in Artifact Registry hochladen können:
gcloud auth configure-docker
Docker-Image erstellen und übertragen und CustomJob
erstellen
Der folgende Befehl erstellt ein Docker-Image basierend auf einem vordefinierten Trainings-Container-Image und Ihrem lokalen Python-Code, lädt das Image in Artifact Registry hoch und erstellt einen CustomJob
.
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=EXECUTOR_IMAGE_URI,local-package-path=WORKING_DIRECTORY,script=SCRIPT_PATH
Ersetzen Sie Folgendes:
LOCATION: Die Region, in der der Container oder das Python-Paket ausgeführt wird.
JOB_NAME: erforderlich. Ein Anzeigename für
CustomJob
.MACHINE_TYPE: Der Maschinentyp. Hier finden Sie die verfügbaren Maschinentypen für das Training.
REPLICA_COUNT: Die Anzahl der zu verwendenden Worker-Replikate. In den meisten Fällen ist dies auf
1
für den ersten Worker-Pool festgelegt.EXECUTOR_IMAGE_URI: Der URI des Container-Images, in dem der bereitgestellte Code ausgeführt wird. Siehe Verfügbare vordefinierte Container für das Training.
Dieses Image dient als Basis-Image für das neue Docker-Image, das Sie mit diesem Befehl erstellen.
WORKING_DIRECTORY: Ein Verzeichnis in Ihrem lokalen Dateisystem, das das Einstiegspunktskript enthält, das Ihren Trainingscode ausführt (siehe folgendes Listenelement).
Sie können das übergeordnete Verzeichnis des Skripts oder ein Verzeichnis auf höherer Ebene verwenden. Sie können ein Verzeichnis auf höherer Ebene verwenden, um einen voll qualifizierten Python-Modulnamen anzugeben. Weitere Informationen finden Sie im folgenden Listenelement. Sie können auch ein Verzeichnis auf höherer Ebene verwenden, wenn es die Datei
requirements.txt
odersetup.py
enthält. Weitere Informationen finden Sie unter Abhängigkeiten installieren.Beachten Sie: Auch wenn Sie ein Verzeichnis auf höherer Ebene angeben, kopiert dieser Befehl nur das übergeordnete Verzeichnis Ihres Einstiegspunktskripts in das Docker-Image.
SCRIPT_PATH: Der Pfad, relativ zu WORKING_DIRECTORY in Ihrem lokalen Dateisystem, zu dem Skript, das der Einstiegspunkt für Ihren Trainingscode ist. Dies kann ein Python-Skript (mit der Endung
.py
) oder ein Bash-Skript sein.Wenn Sie beispielsweise
/hello-world/trainer/task.py
ausführen möchten und WORKING_DIRECTORY auf/hello-world
gesetzt ist, verwenden Sietrainer/task.py
für diesen Wert.python-module
anstelle vonscript
verwendenSie können
script=SCRIPT_PATH
optional durchpython-module=PYTHON_MODULE
ersetzen, um den Namen eines Python-Moduls in WORKING_DIRECTORY anzugeben, das als Einstiegspunkt für das Training ausgeführt werden soll. Anstelle vonscript=trainer/task.py
können Sie beispielsweisepython-module=trainer.task
angeben.Der resultierende Docker-Container lädt in diesem Fall Ihren Code als Modul und nicht als Skript. Sie sollten diese Option vermutlich verwenden, wenn über Ihr Einstiegspunktskript andere Python-Module in WORKING_DIRECTORY importiert werden.
Abhängigkeiten installieren
Wenn Sie Autopackaging verwenden, können Sie Python-Abhängigkeiten in Ihrem Container auf die gleiche Weise installieren, wie bei Verwendung des Befehls local-run
der gcloud CLI. Informationen zu den verschiedenen Möglichkeiten zum Installieren von Python-Abhängigkeiten finden Sie im Abschnitt Abhängigkeiten installieren der Anleitung zum Befehl local-run
.
Die Syntax zum Angeben von Abhängigkeiten unterscheidet sich geringfügig, wenn Sie das Autopackaging mit dem Befehl local-run
verwenden. Anstatt Befehlszeilen-Flags zur Angabe von Abhängigkeiten zu verwenden, müssen Sie Optionen im Wert des Flags --worker-pool-spec
verwenden. Außerdem müssen die Werte innerhalb dieser Optionen durch Semikolons getrennt werden, nicht durch Kommas. Besonderheiten der Syntax:
Verwenden Sie anstelle des Flags
--local-package-path
des Befehlslocal-run
die Optionlocal-package-path
im Wert des Flags--worker-pool-spec
. Wenn das mit dieser Option angegebene Arbeitsverzeichnis einerequirements.txt
- odersetup.py
-Datei enthält, installiert das Autopackaging Abhängigkeiten basierend auf dieser Datei.Das obige Beispiel zeigt diese Syntax.
(Optional) Verwenden Sie anstelle des Flags
--requirements
die Optionrequirements
im Wert des Flags--worker-pool-spec
. Verwenden Sie Semikolons, anstatt PyPI-Abhängigkeiten durch Kommas zu trennen.(Optional) Verwenden Sie anstelle des Flags
--extra-packages
die Optionextra-packages
im Wert des Flags--worker-pool-spec
. Verwenden Sie Semikolons, anstatt lokale Abhängigkeiten durch Kommas zu trennen.(Optional) Verwenden Sie anstelle des Flags
--extra-dirs
die Optionextra-dirs
im Wert des Flags--worker-pool-spec
. Verwenden Sie Semikolons nicht, um Verzeichnispfade durch Kommas zu trennen.
Im folgenden Beispiel wird gezeigt, wie Sie Abhängigkeiten mit allen optionalen Techniken installieren. Sie können eine beliebige Teilmenge davon angeben. Zur Veranschaulichung der Semikolon-Syntax gibt das Beispiel zwei Werte für jede Option an. Um die Länge des Beispiels zu reduzieren, werden andere --worker-pool-spec
-Optionen durch [...]
ersetzt.
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--worker-pool-spec=[...],requirements=PYPI_DEP_1;PYPI_DEP_2,extra-packages=LOCAL_DEP_1;LOCAL_DEP_2,extra-dirs=EXTRA_DIR_1;EXTRA_DIR_2
Informationen zu geeigneten Werten für diese Platzhalter finden Sie in der Anleitung zum Befehl local-run
unter "Abhängigkeiten installieren".
Ohne Autopackaging
Wenn Sie das Autopackaging nicht verwenden, können Sie einen CustomJob
mit einem Befehl erstellen, der einem der folgenden ähnlich ist. Wählen Sie je nachdem, ob Sie eine Python-Trainingsanwendung oder ein benutzerdefiniertes Container-Image erstellt haben, einen der folgenden Tabs aus:
Python-Trainingsanwendung
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=EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE
Dabei gilt:
- LOCATION: Die Region, in der der Container oder das Python-Paket ausgeführt wird.
-
JOB_NAME: erforderlich. Ein Anzeigename für
CustomJob
. - PYTHON_PACKAGE_URIS: Durch Kommas getrennte Liste der Cloud Storage-URIs, die die Python-Paketdateien angeben, wobei es sich um das Trainingsprogramm und die abhängigen Pakete handelt. Die maximale Anzahl der Paket-URIs beträgt 100.
- MACHINE_TYPE: Der Maschinentyp. Hier finden Sie die verfügbaren Maschinentypen für das Training.
-
REPLICA_COUNT: Die Anzahl der zu verwendenden Worker-Replikate. In den meisten Fällen ist dies auf
1
für den ersten Worker-Pool festgelegt. - EXECUTOR_IMAGE_URI: Der URI des Container-Images, in dem der bereitgestellte Code ausgeführt wird. Siehe Verfügbare vordefinierte Container für das Training.
- PYTHON_MODULE: Der Name des Python-Moduls, der nach der Installation der Pakete ausgeführt werden soll.
Benutzerdefiniertes Container-Image
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
Dabei gilt:
- LOCATION: Die Region, in der der Container oder das Python-Paket ausgeführt wird.
-
JOB_NAME: erforderlich. Ein Anzeigename für
CustomJob
. - MACHINE_TYPE: Der Maschinentyp. Hier finden Sie die verfügbaren Maschinentypen für das Training.
-
REPLICA_COUNT: Die Anzahl der zu verwendenden Worker-Replikate. In den meisten Fällen ist dies auf
1
für den ersten Worker-Pool festgelegt. - CUSTOM_CONTAINER_IMAGE_URI: Der URI eines Container-Images in Artifact Registry oder Docker Hub, der auf jedem Worker-Replikat ausgeführt werden soll.
Verteiltes Training
Wenn Sie das verteilte Training ausführen möchten, geben Sie das Flag --worker-pool-spec
mehrmals an, einmal für jeden Worker-Pool.
Wenn Sie das Autopackaging verwenden, müssen Sie im ersten Worker-Pool nur local-package-path
, script
und andere Optionen im Zusammenhang mit dem Autopackaging angeben.
Lassen Sie Felder, die sich auf Ihren Trainingscode beziehen, in nachfolgenden Worker-Pools aus. In diesen Worker-Pools wird derselbe Trainingscontainer verwendet, der durch Autopackaging erstellt wurde.
Mit dem folgenden Befehl wird beispielsweise ein früheres Autopackaging-Beispiel für die Verwendung eines zweiten Worker-Pools angepasst:
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=EXECUTOR_IMAGE_URI,local-package-path=WORKING_DIRECTORY,script=SCRIPT_PATH \
--worker-pool-spec=machine-type=SECOND_POOL_MACHINE_TYPE,replica-count=SECOND_POOL_REPLICA_COUNT
Wenn Sie kein Autopackaging verwenden, geben Sie jeden Worker-Pool vollständig und unabhängig an. Lassen Sie keine Felder weg.
Die folgenden Befehle passen frühere Beispiele für die Verwendung eines zweiten Worker-Pools an:
Python-Trainingsanwendung
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=EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE \
--worker-pool-spec=machine-type=SECOND_POOL_MACHINE_TYPE,replica-count=SECOND_POOL_REPLICA_COUNT,executor-image-uri=SECOND_POOL_EXECUTOR_IMAGE_URI,python-module=SECOND_POOL_PYTHON_MODULE
Benutzerdefiniertes Container-Image
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 \
--worker-pool-spec=machine-type=SECOND_POOL_MACHINE_TYPE,replica-count=SECOND_POOL_REPLICA_COUNT,container-image-uri=SECOND_POOL_CUSTOM_CONTAINER_IMAGE_URI
Erweiterte Konfiguration
Wenn Sie Konfigurationsoptionen angeben möchten, die in den vorhergehenden Beispielen nicht verfügbar sind, können Sie mit dem Flag --config
den Pfad zu einer config.yaml
-Datei in Ihrer lokalen Umgebung angeben, die die Felder von CustomJobSpec
enthält. Beispiel:
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--config=config.yaml
Console
In der Google Cloud Console können Sie keine CustomJob
-Ressource direkt erstellen.
Sie können jedoch eine TrainingPipeline
-Ressource erstellen, mit der ein CustomJob
erstellt wird.
In der folgenden Anleitung wird beschrieben, wie Sie eine TrainingPipeline
erstellen, mit der einfach nur ein CustomJob
erstellt wird. Wenn Sie zusätzliche TrainingPipeline
-Features verwenden möchten, z. B. das Training mit einem verwalteten Dataset oder das Erstellen einer Model
-Ressource am Ende des Trainings, lesen Sie Trainingspipelines erstellen.
Rufen Sie in der Google Cloud Console im Abschnitt "Vertex AI" die Seite Trainingspipelines auf.
Klicken Sie auf
Erstellen, um den Bereich Neues Modell trainieren zu öffnen.Legen Sie im Schritt Trainingsmethode die folgenden Einstellungen fest:
Wählen Sie in der Drop-down-Liste Dataset die Option Kein verwaltetes Dataset aus.
Wählen Sie Benutzerdefiniertes Training (erweitert) aus.
Klicken Sie auf Weiter.
Wählen Sie im Schritt Modelldetails die Option Neues Modell trainieren oder Neue Version trainieren aus. Wenn Sie „Neues Modell trainieren” auswählen, geben Sie einen Namen Ihrer Wahl (MODEL_NAME) für Ihr Modell ein. Klicken Sie auf Weiter.
Legen Sie im Schritt Trainingscontainer die folgenden Einstellungen fest:
Wählen Sie, ob ein vordefinierter Container oder ein benutzerdefinierter Container für das Training verwendet werden soll.
Führen Sie je nach Auswahl einen der folgenden Schritte aus:
Wenn Sie einen vordefinierten Container für das Training verwenden möchten, müssen Sie Vertex AI die erforderlichen Informationen zur Verwendung des Trainingspakets bereitstellen, das Sie in Cloud Storage hochgeladen haben:
Verwenden Sie die Drop-down-Listen Modell-Framework und Modell-Framework-Version, um den vordefinierten Container anzugeben, den Sie verwenden möchten.
Geben Sie im Feld Paketstandort den Cloud Storage-URI der Python-Trainingsanwendung an, die Sie erstellt und hochgeladen haben. Diese Datei endet normalerweise mit
.tar.gz
.Geben Sie im Feld Python-Modul den Modulnamen des Einstiegspunkts Ihrer Trainingsanwendung ein.
Wenn Sie einen benutzerdefinierten Container für das Training verwenden möchten, geben Sie im Feld Container-Image die Artifact Registry oder den Docker Hub-URI Ihres Container-Image an.
Im Feld Modellausgabeverzeichnis können Sie den Cloud Storage-URI eines Verzeichnisses in einem Bucket angeben, auf den Sie Zugriff haben. Das Verzeichnis muss noch nicht vorhanden sein.
Dieser Wert wird Vertex AI im API-Feld
baseOutputDirectory
übergeben. Dadurch werden mehrere Umgebungsvariablen festgelegt, auf die Ihre Trainingsanwendung zugreifen kann, wenn sie ausgeführt wird.Optional: Im Feld Argumente können Sie Argumente angeben, die Vertex AI beim Ausführen des Trainingscodes verwenden soll. Die maximale Länge aller Argumente zusammen beträgt 100.000 Zeichen. Das Verhalten dieser Argumente hängt davon ab, welchen Containertyp Sie verwenden:
Wenn Sie einen vordefinierten Container verwenden, übergibt Vertex AI die Argumente als Befehlszeilen-Flags an Ihr Python-Modul.
Wenn Sie einen benutzerdefinierten Container verwenden, überschreibt Vertex AI die
CMD
-Anweisung Ihres Containers mit den Argumenten.
Klicken Sie auf Weiter.
Achten Sie darauf, dass im Schritt Hyperparameter-Abstimmung das Kästchen Hyperparameter-Abstimmung aktivieren nicht angeklickt ist. Klicken Sie auf Weiter.
Legen Sie im Schritt Computing und Preise die folgenden Einstellungen fest:
Wählen Sie in der Drop-down-Liste Region eine Region aus, die benutzerdefiniertes Training unterstützt.
Geben Sie im Abschnitt Worker-Pool 0 die Computing-Ressourcen für das Training an.
Wenn Sie Beschleuniger angeben, muss der von Ihnen ausgewählte Beschleuniger in der ausgewählten Region verfügbar sein.
Wenn Sie ein verteiltes Training durchführen möchten, klicken Sie auf Weitere Worker-Pools hinzufügen und geben Sie für jeden zusätzlichen Worker-Pool, den Sie wollen, weitere Compute-Ressourcen an.
Klicken Sie auf Weiter.
Wählen Sie im Schritt Vorhersagecontainer die Option Kein Vorhersagecontainer aus.
Klicken Sie auf Training starten, um die benutzerdefinierte Trainingspipeline zu starten.
REST
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- LOCATION: Die Region, in der der Container oder das Python-Paket ausgeführt wird.
- PROJECT_ID: Ihre Projekt-ID.
-
JOB_NAME: erforderlich. Ein Anzeigename für
CustomJob
. - Definieren Sie den benutzerdefinierten Trainingsjob:
- MACHINE_TYPE: Der Maschinentyp. Hier finden Sie die verfügbaren Maschinentypen für das Training.
- ACCELERATOR_TYPE: (Optional) Der Typ des Beschleunigers, der dem Job hinzugefügt werden soll.
- ACCELERATOR_COUNT: (Optional) Die Anzahl der Beschleuniger, die an den Job angehängt werden sollen.
- DISK_TYPE: (Optional) Der Typ des Bootlaufwerks, das für den Job verwendet werden soll, entweder
pd-standard
(Standardeinstellung) oderpd-ssd
. Weitere Informationen zu Laufwerkstypen - DISK_SIZE: (Optional) Die Größe des Bootlaufwerks in GB, das für den Job verwendet werden soll. Der Standardwert ist 100.
-
REPLICA_COUNT: Die Anzahl der zu verwendenden Worker-Replikate. In den meisten Fällen ist dies auf
1
für den ersten Worker-Pool festgelegt. - Wenn Ihre Trainingsanwendung in einem benutzerdefinierten Container ausgeführt wird, geben Sie Folgendes an:
- CUSTOM_CONTAINER_IMAGE_URI: Der URI eines Container-Images in Artifact Registry oder Docker Hub, der auf jedem Worker-Replikat ausgeführt werden soll. /li>
- CUSTOM_CONTAINER_COMMAND: (Optional) Der Befehl, der beim Start des Containers aufgerufen werden soll. Mit diesem Befehl wird der Standardeinstiegspunkt des Containers überschrieben.
- CUSTOM_CONTAINER_ARGS: (Optional) Die Argumente, die beim Starten des Containers übergeben werden.
- Wenn Ihre Trainingsanwendung ein Python-Paket ist, das in einem vordefinierten Container ausgeführt wird, geben Sie Folgendes an:
- EXECUTOR_IMAGE_URI: Der URI des Container-Images, in dem der bereitgestellte Code ausgeführt wird. Siehe Verfügbare vordefinierte Container für das Training.
- PYTHON_PACKAGE_URIS: Durch Kommas getrennte Liste der Cloud Storage-URIs, die die Python-Paketdateien angeben, wobei es sich um das Trainingsprogramm und die abhängigen Pakete handelt. Die maximale Anzahl der Paket-URIs beträgt 100.
- PYTHON_MODULE: Der Name des Python-Moduls, der nach der Installation der Pakete ausgeführt werden soll.
- PYTHON_PACKAGE_ARGS: (Optional) Befehlszeilenargumente, die an das Python-Modul übergeben werden sollen.
- Optionen für die Jobplanung
- TIMEOUT: (Optional) Die maximale Ausführungszeit für den Job.
- Geben Sie LABEL_NAME und LABEL_VALUE für alle Labels an, die Sie auf diesen benutzerdefinierten Job anwenden möchten.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs
JSON-Text der Anfrage:
{ "displayName": "JOB_NAME", "jobSpec": { "workerPoolSpecs": [ { "machineSpec": { "machineType": MACHINE_TYPE, "acceleratorType": ACCELERATOR_TYPE, "acceleratorCount": ACCELERATOR_COUNT }, "replicaCount": REPLICA_COUNT, "diskSpec": { "bootDiskType": DISK_TYPE, "bootDiskSizeGb": DISK_SIZE }, // Union field task can be only one of the following: "containerSpec": { "imageUri": CUSTOM_CONTAINER_IMAGE_URI, "command": [ CUSTOM_CONTAINER_COMMAND ], "args": [ CUSTOM_CONTAINER_ARGS ] }, "pythonPackageSpec": { "executorImageUri": EXECUTOR_IMAGE_URI, "packageUris": [ PYTHON_PACKAGE_URIS ], "pythonModule": PYTHON_MODULE, "args": [ PYTHON_PACKAGE_ARGS ] } // End of list of possible types for union field task. } // Specify one workerPoolSpec for single replica training, or multiple workerPoolSpecs // for distributed training. ], "scheduling": { "timeout": TIMEOUT } }, "labels": { LABEL_NAME_1": LABEL_VALUE_1, LABEL_NAME_2": LABEL_VALUE_2 } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Die Antwort enthält Informationen zu Spezifikationen sowie die TRAININGPIPELINE_ID.
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten 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.
Nächste Schritte
- Erfahren Sie, wie Sie Engpässe in der Trainingsleistung ermitteln, um Modelle mit dem Cloud Profiler schneller und kostengünstiger zu trainieren.
- Unter Trainingspipelines erstellen erfahren Sie, wie Sie Trainingspipelines zum Ausführen benutzerdefinierter Trainingsanwendungen in Vertex AI erstellen.
- Weitere Informationen zum Planen benutzerdefinierter Trainingsjobs basierend auf der Ressourcenverfügbarkeit