Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Ein benutzerdefinierter Container ist ein Docker-Image, das Sie zum Ausführen Ihrer Trainingsanwendung erstellen. Durch Ausführen des Jobs für maschinelles Lernen (ML) in einem benutzerdefinierten Container können Sie ML-Frameworks, Nicht-ML-Abhängigkeiten, Bibliotheken und Binärdateien verwenden, die ansonsten von Vertex AI nicht unterstützt werden.
Vorgehensweise zum Trainieren mit Containern
Ihre Trainingsanwendung, die in das ML-Framework Ihrer Wahl implementiert ist, bildet den Kern des Trainingsprozesses.
Erstellen Sie mithilfe des ML-Frameworks Ihrer Wahl eine Anwendung, die Ihr Modell trainiert.
Entscheiden Sie sich, ob Sie einen benutzerdefinierten Container verwenden möchten. Möglicherweise gibt es einen vordefinierten Container, der Ihre Abhängigkeiten bereits unterstützt. Andernfalls müssen Sie einen benutzerdefinierten Container für Ihren Trainingsjob erstellen. In Ihrem benutzerdefinierten Container installieren Sie Ihre Trainingsanwendung und alle zugehörigen Abhängigkeiten vorab in einem Image, das zum Ausführen Ihres Trainingsjobs verwendet wird.
Speichern Sie Ihre Trainings- und Verifizierungsdaten in einer Quelle, auf die Vertex AI zugreifen kann. Speichern Sie Ihre Daten in Cloud Storage, Bigtable oder einem anderenGoogle Cloud Speicherdienst Google Cloud im selben Projekt und in derselben Region, die Sie für Vertex AI verwenden, um die Authentifizierung zu vereinfachen und die Latenz zu verringern. Weitere Informationen dazu, wie Vertex AI Ihre Daten laden kann.
Wenn Ihre Anwendung für die Ausführung bereit ist, erstellen Sie das Docker-Image und verschieben Sie es in Artifact Registry oder Docker Hub. Achten Sie dabei darauf, dass Vertex AI auf Ihre Registry zugreifen kann.
Vertex AI richtet Ressourcen für Ihren Job ein. Er weist gemäß Jobkonfiguration mindestens eine virtuelle Maschine (auch als Trainingsinstanz bezeichnet) zu. Richten Sie eine Trainingsinstanz ein, indem Sie den benutzerdefinierten Container verwenden, den Sie als Teil des WorkerPoolSpec-Objekts angegeben haben als Sie Ihren benutzerdefinierten Trainingsjob sendeten.
Vertex AI führt Ihr Docker-Image aus und gibt dabei alle Befehlszeilenargumente weiter, die Sie beim Erstellen des Trainingsjobs angegeben haben.
Wenn der Trainingsjob erfolgreich abgeschlossen ist oder ein nicht behebbarer Fehler auftritt, stoppt Vertex AI alle Jobvorgänge und bereinigt die Ressourcen.
Vorteile von benutzerdefinierten Containern
Mit benutzerdefinierten Containern können Sie alle für die Anwendung erforderlichen Abhängigkeiten angeben und vorinstallieren.
Schnellerer Programmstart: Wenn Sie einen benutzerdefinierten Container mit vorinstallierten Abhängigkeiten verwenden, sparen Sie die Zeit, die Ihre Trainingsanwendung andernfalls für die Installation von Abhängigkeiten beim Start benötigt.
Verwendung eines ML-Frameworks Ihrer Wahl: Wenn Sie keinen vorgefertigten Vertex AI-Container mit dem ML-Framework finden, das Sie verwenden möchten, können Sie einen benutzerdefinierten Container mit dem gewünschten Framework erstellen und damit Jobs auf Vertex AI ausführen. Sie können z. B. einen Kundencontainer zum Trainieren mit PyTorch verwenden.
Erweiterte Unterstützung für verteiltes Training: Mit benutzerdefinierten Containern können Sie verteiltes Training mit einem beliebigen ML-Framework durchführen.
Verwendung der neuesten Version: Sie können auch den neuesten Build oder die neueste Nebenversion eines ML-Frameworks verwenden. So können Sie beispielsweise einen benutzerdefinierten Container erstellen, um ihn mit tf-nightly zu trainieren.
Hyperparameter-Abstimmung mit benutzerdefinierten Containern
Geben Sie zum Durchführen der Hyperparameter-Abstimmung in Vertex AI Zielmesswerte an und legen Sie fest, ob jeder Messwert minimiert oder maximiert werden soll.
Sie möchten beispielsweise die Genauigkeit Ihres Modells maximieren oder den Modellverlust minimieren. Außerdem listen Sie die Hyperparameter auf, die Sie optimieren möchten, sowie den Bereich der zulässigen Werte für jeden Hyperparameter. Vertex AI führt mehrere Versuche mit Ihrer Trainingsanwendung durch, verfolgt die Hyperparameter und passt sie nach jedem Versuch an. Wenn der Job für die Hyperparameter-Abstimmung abgeschlossen ist, gibt Vertex AI die Werte für die effektivste Konfiguration der Hyperparameter und eine Zusammenfassung für jeden Versuch zurück.
Für die Hyperparameter-Abstimmung mit benutzerdefinierten Containern müssen Sie die folgenden Anpassungen vornehmen:
Verwenden Sie cloudml-hypertune und rufen Sie die zugehörige Hilfsfunktion report_hyperparameter_tuning_metric auf, um die Ergebnisse der einzelnen Tests zu melden.
Fügen Sie für jeden Hyperparameter Befehlszeilenargumente hinzu und verwenden Sie zum Parsen von Argumenten einen Argumentparser wie z. B. argparse.
Für das Training mit GPUs muss Ihr benutzerdefinierter Container einige spezielle Anforderungen erfüllen. Sie müssen ein anderes Docker-Image erstellen als für das Training mit CPUs.
Installieren Sie das CUDA-Toolkit und cuDNN in Ihrem Docker-Image. Zum Erstellen eines benutzerdefinierten Containers mit Unterstützung für GPUs wird die Verwendung des nvidia/cuda-Images als Basis-Image für den benutzerdefinierten Container empfohlen. Im Container-Image nvidia/cuda sind übereinstimmende Versionen des CUDA-Toolkits und von cuDNN bereits vorinstalliert. Außerdem können Sie die zugehörigen Umgebungsvariablen korrekt einrichten.
Installieren Sie Ihre Trainingsanwendung zusammen mit dem erforderlichen ML-Framework und anderen Abhängigkeiten im Docker-Image.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-19 (UTC)."],[],[],null,["# Custom containers overview\n\nA custom container is a Docker image that you create to run\nyour training application. By running your machine learning (ML) training job\nin a *custom container*, you can use ML frameworks, non-ML dependencies,\nlibraries, and binaries that are not otherwise supported\non Vertex AI.\n\nHow training with containers works\n----------------------------------\n\nYour training application, implemented in the ML framework of your choice,\nis the core of the training process.\n\n1. Create an application that trains your model, using the ML framework\n of your choice.\n\n2. Decide whether to use a custom container. There could be a\n [prebuilt container](/vertex-ai/docs/training/pre-built-containers) that already supports\n your dependencies. Otherwise, you need to [build a custom container for\n your training job](/vertex-ai/docs/training/create-custom-container). In your custom container, you\n pre-install your training application and all its dependencies onto an\n image that is used to run your training job.\n\n3. Store your training and verification data in a source that\n Vertex AI can access. To simplify authentication and reduce\n latency, store your data in Cloud Storage, Bigtable, or another\n Google Cloud storage service in the same Google Cloud project\n and region that you are using for Vertex AI. Learn more about\n [the ways Vertex AI can load your data](/vertex-ai/docs/training/code-requirements#loading-data).\n\n4. When your application is ready to run, you must build your Docker image and\n push it to Artifact Registry or Docker Hub, making sure that\n [Vertex AI can access your registry](/vertex-ai/docs/training/create-custom-container#manage-container-registry-permissions).\n\n5. Submit your custom training job by [creating a custom\n job](/vertex-ai/docs/training/create-custom-job) or [creating a custom training\n pipeline](/vertex-ai/docs/training/create-training-pipeline).\n\n6. Vertex AI sets up resources for your job. It allocates one or\n more virtual machines (called *training instances* ) based on your job\n configuration. You set up a training instance by using the custom container\n you specify as part of the [`WorkerPoolSpec`](/vertex-ai/docs/reference/rest/v1/CustomJobSpec#workerpoolspec) object when\n you [submit your custom training\n job](/vertex-ai/docs/training/create-custom-job).\n\n7. Vertex AI runs your Docker image, passing through any\n command-line arguments you specify when you create the training job.\n\n8. When your training job succeeds or encounters an unrecoverable error,\n Vertex AI halts all job processes and cleans up the\n resources.\n\nAdvantages of custom containers\n-------------------------------\n\nCustom containers let you specify and pre-install all the dependencies\nneeded for your application.\n\n- **Faster start-up time.** If you use a custom container with your dependencies pre-installed, you can save the time that your training application would otherwise take to install dependencies when starting up.\n- **Use the ML framework of your choice.** If you can't find an Vertex AI prebuilt container with the ML framework you want to use, you can build a custom container with your chosen framework and use it to run jobs on Vertex AI. For example, you can use a customer container to train with PyTorch.\n- **Extended support for distributed training.** With custom containers, you can do distributed training using any ML framework.\n- **Use the newest version.** You can also use the latest build or minor version of an ML framework. For example, you can build a custom container to train with `tf-nightly`.\n\nHyperparameter tuning with custom containers\n--------------------------------------------\n\nTo do [hyperparameter tuning](/vertex-ai/docs/training/hyperparameter-tuning-overview) on Vertex AI, you\nspecify goal metrics, along with whether to minimize or maximize each metric.\nFor example, you might want to maximize your model accuracy, or minimize your\nmodel loss. You also list the hyperparameters you'd like to tune, along with\nthe range of acceptable values for each hyperparameter. Vertex AI\ndoes multiple *trials* of your training application, tracking and adjusting the\nhyperparameters after each trial. When the hyperparameter tuning job is\ncomplete, Vertex AI reports values for the most effective\nconfiguration of your hyperparameters, and a summary for each trial.\n\nTo do hyperparameter tuning with custom containers, you need to make\nthe following adjustments:\n\n- In your Dockerfile: install [`cloudml-hypertune`](https://github.com/GoogleCloudPlatform/cloudml-hypertune).\n- In your training code:\n - Use `cloudml-hypertune` to report the results of each trial by calling its helper function, [`report_hyperparameter_tuning_metric`](https://github.com/GoogleCloudPlatform/cloudml-hypertune/blob/master/hypertune/hypertune.py#L49).\n - Add command-line arguments for each hyperparameter, and handle the argument parsing with an argument parser such as [`argparse`](https://docs.python.org/3/library/argparse.html).\n\nSee how to [configure a hyperparameter tuning job that uses custom\ncontainers](/vertex-ai/docs/training/using-hyperparameter-tuning) or learn more about\n[how hyperparameter tuning works on Vertex AI](/vertex-ai/docs/training/hyperparameter-tuning-overview).\n\nGPUs in custom containers\n-------------------------\n\nFor training with GPUs, your custom container needs to meet a few special\nrequirements. You must build a different Docker image than what you'd use for\ntraining with CPUs.\n\n- Pre-install the CUDA toolkit and cuDNN in your Docker image. The recommended way to build a custom container with support for GPUs is to use the [`nvidia/cuda`](https://hub.docker.com/r/nvidia/cuda/) image as your base image for your custom container. The `nvidia/cuda` container image has matching versions of CUDA toolkit and cuDNN pre-installed, and it helps you set up the related environment variables correctly.\n- Install your training application, along with your required ML framework and other dependencies in your Docker image.\n\nSee an [example Dockerfile for training with GPUs](https://github.com/GoogleCloudPlatform/cloudml-samples/blob/master/pytorch/containers/quickstart/mnist/Dockerfile-gpu).\n\nWhat's next\n-----------\n\n- Learn more about how to [create a custom container for your training\n job](/vertex-ai/docs/training/create-custom-container)."]]