Descripción general de los contenedores personalizados
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Un contenedor personalizado es una imagen de Docker que creas para ejecutar tu aplicación de entrenamiento. Cuando ejecutas tu trabajo de entrenamiento de aprendizaje automático (AA) en un contenedor personalizado, puedes usar frameworks de AA, dependencias, bibliotecas y objetos binarios que no sean de AA, que de otra manera no sean compatibles con Vertex AI.
Cómo funciona el entrenamiento con contenedores
Tu aplicación de entrenamiento, implementada en el marco de trabajo de AA que hayas elegido, es el núcleo del proceso de entrenamiento.
Crea una aplicación que entrene a tu modelo, con el marco de trabajo de AA que elijas.
Decide si usarás un contenedor personalizado. Es posible que haya un contenedor compilado previamente que ya sea compatible con tus dependencias. De lo contrario, debes compilar un contenedor personalizado para tu trabajo de entrenamiento. En el contenedor personalizado, instala previamente la aplicación de entrenamiento y todas sus dependencias en una imagen que se use para ejecutar el trabajo de entrenamiento.
Almacena los datos de entrenamiento y verificación en una fuente a la que pueda acceder Vertex AI. Para simplificar la autenticación y reducir la latencia, almacena tus datos en Cloud Storage, Bigtable o algún otroGoogle Cloud servicio de almacenamiento en el mismo Google Cloud proyecto y región que usas para Vertex AI. Obtén más información sobre las formas en que Vertex AI puede cargar tus datos.
Cuando tu aplicación esté lista para ejecutarse, debes compilar tu imagen de Docker y enviarla a Artifact Registry o Docker Hub. Asegúrate de que Vertex AI pueda acceder a tu registro.
Vertex AI configura recursos para tu trabajo. Asigna una o más máquinas virtuales (llamadas instancias de entrenamiento) en función de la configuración del trabajo. Para configurar una instancia de entrenamiento, usa el contenedor personalizado que especificas como parte del objeto WorkerPoolSpec cuando envías tu trabajo de entrenamiento.
Vertex AI ejecuta la imagen de Docker y pasa cualquier argumento de la línea de comandos que especifiques cuando crees el trabajo de entrenamiento.
Cuando tu trabajo de entrenamiento es correcto o encuentra un error irrecuperable, Vertex AI detiene todos los procesos de trabajo y limpia los recursos.
Ventajas de los contenedores personalizados
Los contenedores personalizados te permiten especificar y también instalar previamente todas las dependencias que necesitas para tu aplicación.
Menor tiempo de inicio. Si usas un contenedor personalizado con tus dependencias instaladas previamente, puedes ahorrar el tiempo que tu aplicación de entrenamiento tardaría en instalar las dependencias al momento del inicio.
Usa el framework de AA que prefieras. Si no puedes encontrar un contenedor compilado previamente de Vertex AI con el marco de trabajo de AA que deseas usar, puedes compilar un contenedor personalizado con el marco de trabajo que elijas y usarlo para ejecutar trabajos en Vertex AI. Por ejemplo, puedes usar un contenedor del cliente para entrenar con PyTorch.
Compatibilidad extendida con el entrenamiento distribuido. Con los contenedores personalizados, puedes realizar un entrenamiento distribuido con cualquier marco de trabajo de AA.
Utiliza la versión más reciente. También puedes usar la última versión de compilación o menor de un marco de trabajo de AA. Por ejemplo, puedes compilar un contenedor personalizado para entrenar con tf-nightly.
Ajuste de hiperparámetros con contenedores personalizados
Para realizar el ajuste de hiperparámetros en Vertex AI, especifica las métricas del objetivo, junto con la posibilidad de minimizar o maximizar cada métrica.
Por ejemplo, es posible que desees maximizar la exactitud del modelo o minimizar la pérdida del modelo. También puedes enumerar los hiperparámetros que deseas ajustar, junto con el rango de valores aceptables para cada hiperparámetro. Vertex AI realiza varias pruebas de tu aplicación de entrenamiento y realiza un seguimiento y un ajuste de los hiperparámetros después de cada prueba. Cuando se completa el trabajo de ajuste de hiperparámetros, Vertex AI informa los valores de la configuración más efectiva de los hiperparámetros y un resumen de cada prueba.
Para realizar ajustes de hiperparámetros con contenedores personalizados, debes hacer lo siguiente:
Para el entrenamiento con GPU, tu contenedor personalizado debe cumplir con algunos requisitos especiales. Debes compilar una imagen de Docker diferente de la que usarías para entrenar con CPU.
Instala previamente el kit de herramientas CUDA y cuDNN en tu imagen de Docker. La forma recomendada de compilar un contenedor personalizado compatible con GPU es usar la imagen nvidia/cuda como la imagen base para el contenedor personalizado. La imagen del contenedor nvidia/cuda tiene versiones coincidentes del kit de herramientas CUDA y cuDNN preinstaladas, y te ayuda a configurar las variables de entorno relacionadas de manera correcta.
Instala la aplicación de entrenamiento, junto con el marco de trabajo de AA necesario y otras dependencias, en la imagen de Docker.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-04 (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)."]]