Containers on AI Platform Training è una funzionalità che consente di eseguire l'applicazione all'interno di un'immagine Docker. Puoi creare il tuo container personalizzato per eseguire job su AI Platform Training, utilizzando i framework e le versioni ML, nonché dipendenze, librerie e programmi binari non ML, altrimenti non supportati su AI Platform Training.
Come funziona l'addestramento con container
L'applicazione di addestramento, implementata nel framework ML di tua scelta, è il fulcro del processo di addestramento.
- Crea un'applicazione che addestra il tuo modello utilizzando il framework ML che preferisci.
- Decidi se utilizzare un container personalizzato. Potrebbe esistere una versione di runtime che supporta già le tue dipendenze. Altrimenti, dovrai creare un container personalizzato per il job di addestramento. Nel tuo container personalizzato, preinstalli 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. Ciò di solito significa inserirla in Cloud Storage, Bigtable o in un altro servizio di archiviazione di 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 eseguirne il push a Container Registry, assicurandoti che il servizio AI Platform Training possa accedere al tuo registro.
- Invia il job utilizzando
gcloud ai-platform jobs submit training
, specificando gli argomenti in un fileconfig.yaml
o i flaggcloud
corrispondenti. - Il servizio di formazione di AI Platform Training configura le risorse
per il tuo lavoro. Alloca una o più macchine virtuali (chiamate istanze di addestramento) in base alla configurazione del job. Puoi configurare un'istanza
di addestramento utilizzando il container personalizzato specificato come parte dell'oggetto
TrainingInput
quando invii il job di addestramento. - Il servizio di addestramento esegue l'immagine Docker, passando attraverso qualsiasi argomento della riga di comando specificato quando crei il job di addestramento.
- Puoi ottenere informazioni sul job in esecuzione nei seguenti modi:
- Su Cloud Logging. Puoi trovare un link ai log dei job nella pagina dei dettagli dei job di addestramento di AI Platform nella console Google Cloud.
- Richiedendo i dettagli del job o eseguendo il flusso di log dei log con lo strumento a riga di comando
gcloud
(in particolare,gcloud ai-platform jobs stream-logs
). - Inviando in modo programmatico richieste di stato al servizio di addestramento,
utilizzando il metodo
projects.jobs.get
. Ulteriori dettagli su come monitorare i job di addestramento.
- Quando il job di addestramento ha esito positivo o riscontra un errore irreversibile, AI Platform Training interrompe tutti i processi dei job ed elimina le risorse.
Vantaggi dei container personalizzati
I container personalizzati consentono di specificare e preinstallare tutte le dipendenze necessarie per l'applicazione.
- Avvio più rapido. Se utilizzi un container personalizzato con le dipendenze preinstallate, puoi risparmiare il tempo che altrimenti l'applicazione di addestramento richiederebbe per installare le dipendenze all'avvio.
- Utilizza il framework ML che preferisci. Se non riesci a trovare una versione del 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 con qualsiasi framework ML.
- Usa la versione più recente. Puoi anche usare l'ultima build o la
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 AI Platform Training, devi specificare una metrica dell'obiettivo e decidere se ridurla al minimo o massimizzarla. Ad esempio, potresti voler massimizzare l'accuratezza del modello o ridurre al minimo la perdita del modello. Elenca anche gli iperparametri che vuoi regolare, insieme a un valore target per ogni iperparametro. AI Platform Training esegue più prove dell'applicazione di addestramento, monitorando e regolando gli iperparametri dopo ogni prova. Quando il job di ottimizzazione degli iperparametri è completo, AI Platform Training genera report per la configurazione più efficace degli iperparametri, oltre a un riepilogo per ogni prova.
Per eseguire l'ottimizzazione degli iperparametri con container personalizzati, devi apportare le seguenti modifiche:
- Nel tuo Dockerfile: installa
cloudml-hypertune
. - Nel tuo codice di addestramento:
- Utilizza
cloudml-hypertune
per segnalare i risultati di ogni prova chiamando la relativa funzione helper,report_hyperparameter_tuning_metric
. - Aggiungi argomenti della riga di comando per ogni iperparametro e gestisci l'analisi degli argomenti con un parser di argomenti come
argparse
.
- Utilizza
- Nella richiesta del job: aggiungi un elemento
HyperparameterSpec
all'oggettoTrainingInput
.
Consulta un esempio di addestramento con container personalizzati utilizzando l'ottimizzazione degli iperparametri o scopri di più su come funziona l'ottimizzazione degli iperparametri su AI Platform Training.
Utilizzo di GPU con container personalizzati
Per l'addestramento con GPU, il container personalizzato deve soddisfare alcuni requisiti speciali. Devi creare un'immagine Docker diversa da quella che useresti per l'addestramento con le CPU.
- Preinstalla il toolkit CUDA e cuDNN nell'immagine Docker. Per risolvere questo problema, ti consigliamo di utilizzare l'immagine
nvidia/cuda
come immagine di base. Ha le 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.
Consulta un Dockerfile di esempio per l'addestramento con GPU.
Passaggi successivi
- Scopri come utilizzare container personalizzati per i job di addestramento.
- Scopri di più sull'addestramento distribuito con container personalizzati.