Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Un conteneur personnalisé est une image Docker que vous créez pour exécuter votre application d'entraînement. En exécutant votre tâche d'entraînement de machine learning (ML) dans un conteneur personnalisé, vous pouvez utiliser des frameworks de ML, des dépendances hors ML, des bibliothèques et des binaires qui ne sont autrement pas disponibles sur Vertex AI.
Fonctionnement de l'entraînement avec des conteneurs
Votre application d'entraînement, mise en œuvre dans le framework de ML de votre choix, se trouve au cœur du processus d'entraînement.
Créez une application qui entraîne votre modèle à l'aide du framework de ML de votre choix.
Déterminez si vous souhaitez utiliser un conteneur personnalisé. Un conteneur prédéfini peut déjà être compatible avec vos dépendances. Sinon, vous devez créer un conteneur personnalisé pour votre job d'entraînement. Dans le conteneur personnalisé, pré-installez votre application d'entraînement et toutes ses dépendances sur une image avec laquelle vous avez exécuté la tâche d'entraînement.
Stockez vos données d'entraînement et de validation dans une source à laquelle Vertex AI peut accéder. Pour simplifier l'authentification et réduire la latence, stockez vos données dans Cloud Storage, Bigtable ou un autre service de stockageGoogle Cloud dans le même projet Google Cloud et la même région que ceux que vous utilisez pour Vertex AI. Découvrez comment Vertex AI peut charger vos données.
Lorsque votre application est prête à être exécutée, vous devez créer votre image Docker et la transférer vers Artifact Registry ou Docker Hub, en vous assurant que Vertex AI peut accéder à votre registre.
Vertex AI configure des ressources pour votre tâche. Il alloue une ou plusieurs machines virtuelles (appelées instances d'entraînement) en fonction de la configuration de la tâche. Configurez une instance d'entraînement à l'aide du conteneur personnalisé que vous spécifiez dans l'objetWorkerPoolSpec lorsque vous envoyez votre tâche d'entraînement personnalisée.
Vertex AI exécute l'image Docker en transmettant tous les arguments de ligne de commande que vous spécifiez lors de la création de la tâche d'entraînement.
Lorsque votre tâche d'entraînement réussit ou rencontre une erreur irrécupérable, Vertex AI interrompt tous les processus de la tâche, puis effectue un nettoyage des ressources.
Avantages des conteneurs personnalisés
Les conteneurs personnalisés vous permettent de spécifier et de pré-installer toutes les dépendances nécessaires à votre application.
Démarrage plus rapide. Si vous utilisez un conteneur personnalisé sur lequel vos dépendances sont pré-installées, vous pouvez gagner le temps dont votre application d'entraînement aurait besoin pour installer les dépendances lors du démarrage.
Utilisation du framework de ML de votre choix. Si vous ne parvenez pas à trouver un conteneur préconfiguré Vertex AI avec le framework de ML que vous souhaitez utiliser, vous pouvez créer un conteneur personnalisé avec le framework de votre choix et l'utiliser pour exécuter des tâches dans Vertex AI. Par exemple, vous pouvez utiliser un conteneur client pour effectuer un entraînement avec PyTorch.
Compatibilité étendue pour l'entraînement distribué. Avec des conteneurs personnalisés, vous pouvez procéder à un entraînement distribué à l'aide de n'importe quel framework de ML.
Utilisation de la version la plus récente. Vous pouvez également exploiter le dernier build ou la dernière version mineure d'un framework de ML. Vous pouvez par exemplecréer un conteneur personnalisé pour effectuer un entraînement avec tf-nightly.
Régler les hyperparamètres avec des conteneurs personnalisés
Pour régler les hyperparamètres dans Vertex AI, vous devez spécifier des métriques d'objectif et indiquer si elles doivent être minimisées ou maximisées.
Par exemple, vous souhaiterez peut-être maximiser la justesse de votre modèle ou minimiser sa perte. Vous répertoriez également les hyperparamètres que vous souhaitez régler, ainsi que la plage de valeurs acceptables pour chaque hyperparamètre. Vertex AI effectue plusieurs essais de votre application d'entraînement, en suivant et en ajustant les hyperparamètres après chaque essai. Une fois la tâche de réglage d'hyperparamètres terminée, Vertex AI rapporte les valeurs correspondant à la configuration la plus efficace de vos hyperparamètres, et fournit un résumé de chaque essai.
Pour régler les hyperparamètres avec des conteneurs personnalisés, vous devez procéder aux ajustements suivants :
En cas d'entraînement avec des GPU, votre conteneur personnalisé doit répondre à quelques exigences particulières. Vous devez créer une image Docker différente de celle que vous utiliseriez pour l'entraînement avec des processeurs.
Préinstallez CUDA Toolkit et cuDNN dans votre image Docker. La méthode recommandée pour créer un conteneur personnalisé compatible avec les GPU consiste à utiliser l'image nvidia/cuda comme image de base pour votre conteneur personnalisé. L'image de conteneur nvidia/cuda possède des versions correspondantes de CUDA Toolkit et cuDNN pré-installées, ce qui vous aide à configurer correctement les variables d'environnement associées.
Installez votre application d'entraînement, ainsi que le framework de ML requis et d'autres dépendances, dans votre image Docker.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/02 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/02 (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)."]]