Containers in AI Platform Training è una funzionalità che ti consente di eseguire la tua applicazione all'interno di un'immagine Docker. Puoi creare il tuo container personalizzato per eseguire job su AI Platform Training, utilizzando framework ML e versioni, nonché dipendenze, librerie e file binari non ML che non sono altrimenti supportati su AI Platform Training.
Come funziona l'addestramento con i container
L'applicazione di addestramento, implementata nel framework ML che preferisci, è il nucleo del processo di addestramento.
- Crea un'applicazione che addestra il modello utilizzando il framework ML scelto.
- Decidere se utilizzare un contenitore personalizzato. Potrebbe esserci una versione del runtime che supporta già le tue dipendenze. In caso contrario, dovrai 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 utilizzerai per eseguire il job di addestramento.
- Archivia i dati di addestramento e verifica in un'origine a cui può accedere AI Platform Training. In genere, significa inserirli in Cloud Storage, Bigtable o in un altro servizio di archiviazione Google Cloud associato allo stesso progetto Google Cloud che utilizzi per AI Platform Training.
- Quando l'applicazione è pronta per essere eseguita, devi creare l'immagine Docker ed eseguire il push in Container Registry, assicurandoti che il servizio AI Platform Training possa accedere al tuo registry.
- Invia il job utilizzando
gcloud ai-platform jobs submit training
, specificando gli argomenti in un fileconfig.yaml
o i flaggcloud
corrispondenti. - Il servizio di addestramento AI Platform Training configura le risorse per il tuo job. Alloca una o più macchine virtuali (chiamate
istanze di addestramento) in base alla configurazione del job. Configura un'istanza di addestramento utilizzando il contenitore personalizzato specificato nell'ambito dell'oggetto
TrainingInput
quando invii il job di addestramento. - Il servizio di addestramento esegue l'immagine Docker, passando tutti gli argomenti della riga di comando specificati quando crei il job di addestramento.
- Puoi ottenere informazioni sul job in esecuzione nei seguenti modi:
- In Cloud Logging. Puoi trovare un link ai log dei job nella pagina dei dettagli dei job di AI Platform Training nella console Google Cloud.
- Richiedendo i dettagli del job o eseguendo lo streaming dei log con lo strumento a riga di comando
gcloud
(in particolaregcloud ai-platform jobs stream-logs
). - Inviando richieste di stato al servizio di addestramento in modo programmatico, utilizzando il metodo
projects.jobs.get
. Scopri di più su come monitorare i job di addestramento.
- Quando il job di addestramento va a buon fine o rileva un errore non recuperabile, AI Platform Training interrompe tutte le relative procedure e ripulisce 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 contenitore personalizzato con le dipendenze preinstallate, puoi risparmiare il tempo che altrimenti la tua applicazione di addestramento impiegherebbe per installare le dipendenze all'avvio.
- Utilizza il framework ML che preferisci. Se non riesci a trovare una versione di runtime di AI Platform Training che supporti il framework ML che vuoi utilizzare, puoi creare un container personalizzato che installi il framework scelto e utilizzarlo per eseguire job su AI Platform Training. Ad esempio, puoi addestrare 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 la build o la versione minore più recente
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 in AI Platform Training, devi specificare una metrica obiettivo, oltre a indicare se minimizzarla o massimizzarla. Ad esempio, potresti voler massimizzare l'accuratezza del modello o ridurre al minimo la perdita del modello. Elencare anche gli iperparametri che vuoi modificare, insieme a un valore target per ogni iperparametro. AI Platform Training esegue più prove dell'applicazione di addestramento, monitorando e modificando gli iperparametri dopo ogni prova. Al termine del job di ottimizzazione degli iperparametri, AI Platform Training riporta i valori per la configurazione più efficace degli iperparametri, nonché un riepilogo per ogni prova.
Per eseguire l'ottimizzazione degli iperparametri con i contenitori personalizzati, devi apportare le seguenti modifiche:
- Nel Dockerfile: installa
cloudml-hypertune
. - Nel codice di addestramento:
- Utilizza
cloudml-hypertune
per registrare i risultati di ogni prova chiamando la relativa funzione di supportoreport_hyperparameter_tuning_metric
. - Aggiungi gli argomenti della riga di comando per ogni iperparametro e gestisci l'analisi sintattica degli argomenti con un analizzatore degli argomenti come
argparse
.
- Utilizza
- Nella richiesta di lavoro: aggiungi un
HyperparameterSpec
all'oggettoTrainingInput
.
Guarda un esempio di addestramento con container personalizzati che utilizzano l'ottimizzazione degli iperparametri o scopri di più su come funziona l'ottimizzazione degli iperparametri in AI Platform Training.
Utilizzo delle GPU con container personalizzati
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 CUDA Toolkit e cuDNN nell'immagine Docker. Il modo consigliato per gestire questo problema è utilizzare l'immagine
nvidia/cuda
come immagine di base. Sono preinstallate le versioni corrispondenti di CUDA Toolkit e cuDNN 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.
Consulta un esempio di Dockerfile per l'addestramento con GPU.
Passaggi successivi
- Scopri come utilizzare i container personalizzati per i job di addestramento.
- Scopri di più sull'addestramento distribuito con container personalizzati.