Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Un container personalizzato è un'immagine Docker che crei per eseguire
l'applicazione di addestramento. Se esegui il job di addestramento di machine learning (ML)
in un container personalizzato, puoi utilizzare framework ML, dipendenze non ML,
librerie e file binari altrimenti non supportati
su Vertex AI.
Come funziona l'addestramento con i container
L'applicazione di addestramento, implementata nel framework ML che preferisci,
è il fulcro del processo di addestramento.
Crea un'applicazione che addestra il modello utilizzando il framework ML che preferisci.
Decidi se utilizzare un container personalizzato. Potrebbe esistere un container predefinito che supporta già le tue dipendenze. In caso contrario, devi creare un container personalizzato per
il tuo job di addestramento. Nel tuo container personalizzato, preinstalla l'applicazione di addestramento e tutte le sue dipendenze su un'immagine che viene utilizzata per eseguire il job di addestramento.
Archivia i dati di addestramento e verifica in un'origine a cui
Vertex AI può accedere. Per semplificare l'autenticazione e ridurre
la latenza, archivia i dati in Cloud Storage, Bigtable o un altro
servizio di archiviazioneGoogle Cloud nello stesso Google Cloud progetto
e nella stessa regione che utilizzi per Vertex AI. Scopri di più su
i modi in cui Vertex AI può caricare i tuoi dati.
Quando l'applicazione è pronta per l'esecuzione, devi creare l'immagine Docker ed eseguirne il push su Artifact Registry o Docker Hub, assicurandoti che Vertex AI possa accedere al registro.
Vertex AI configura le risorse per il tuo job. Alloca una o più macchine virtuali (chiamate istanze di addestramento) in base alla configurazione del job. Configuri un'istanza di addestramento utilizzando il container personalizzato
che specifichi come parte dell'oggetto WorkerPoolSpec quando
invii il job di addestramento
personalizzato.
Vertex AI esegue l'immagine Docker, passando tutti gli
argomenti della riga di comando specificati durante la creazione del job di addestramento.
Quando il job di addestramento ha esito positivo o si verifica un errore non recuperabile, Vertex AI interrompe tutti i processi del job e pulisce le risorse.
Vantaggi dei container personalizzati
I container personalizzati ti consentono di specificare e preinstallare tutte le dipendenze
necessarie per la tua applicazione.
Tempo di avvio più rapido. Se utilizzi un container personalizzato con le dipendenze
preinstallate, puoi risparmiare il tempo che la tua applicazione di addestramento
impiegherebbe altrimenti per installare le dipendenze all'avvio.
Utilizza il framework ML che preferisci. Se non riesci a trovare un
container predefinito di Vertex AI con il framework ML che
vuoi utilizzare, puoi creare un container personalizzato con il framework scelto e
utilizzarlo per eseguire job su Vertex AI. Ad esempio, puoi utilizzare un container cliente per l'addestramento con PyTorch.
Supporto esteso per l'addestramento distribuito. Con i container personalizzati, puoi
eseguire l'addestramento distribuito utilizzando qualsiasi framework ML.
Utilizza la versione più recente. Puoi anche utilizzare l'ultima build o versione secondaria
di un framework ML. Ad esempio, puoi
creare un container personalizzato per l'addestramento con tf-nightly.
Ottimizzazione degli iperparametri con container personalizzati
Per eseguire l'ottimizzazione degli iperparametri su Vertex AI, devi specificare le metriche obiettivo, nonché se minimizzare o massimizzare ciascuna metrica.
Ad esempio, potresti voler massimizzare l'accuratezza del modello o ridurre al minimo la perdita del modello. Elenca anche gli iperparametri che vuoi ottimizzare, insieme
all'intervallo di valori accettabili per ciascun iperparametro. Vertex AI
esegue più prove dell'applicazione di addestramento, monitorando e modificando gli
iperparametri dopo ogni prova. Al termine del job di ottimizzazione degli iperparametri, Vertex AI riporta i valori per la configurazione più efficace degli iperparametri e un riepilogo per ogni prova.
Per eseguire l'ottimizzazione degli iperparametri con i container personalizzati, devi apportare
le seguenti modifiche:
Per l'addestramento con le GPU, il container personalizzato deve soddisfare alcuni requisiti speciali. Devi creare un'immagine Docker diversa da quella che utilizzeresti per
l'addestramento con le CPU.
Preinstalla il toolkit CUDA e cuDNN nell'immagine Docker. Il modo consigliato
per creare un container personalizzato con supporto per le GPU è utilizzare l'immagine
nvidia/cuda come
immagine di base per il container personalizzato. L'immagine container nvidia/cuda ha
versioni corrispondenti del toolkit CUDA e di cuDNN preinstallate e ti aiuta
a configurare correttamente le variabili di ambiente correlate.
Installa l'applicazione di addestramento, insieme al framework ML richiesto e
ad altre dipendenze nell'immagine Docker.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-10 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)."]]