Container su 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 framework e versioni ML, nonché dipendenze, librerie e programmi binari non ML che non sono altrimenti supportati su AI Platform Training.
Come funziona l'addestramento con i container
La tua applicazione di formazione, implementata nel framework ML che preferisci, è il fulcro del processo di addestramento.
- Crea un'applicazione che addestra il tuo modello utilizzando il framework ML che preferisci.
- Decidere se utilizzare un contenitore personalizzato. Potrebbe esistere una versione runtime che già supporta le dipendenze. In caso contrario, dovrai creare un container personalizzato per il job di addestramento. Nel 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 una fonte a cui puoi accedere da AI Platform Training. Ciò di solito significa inserirlo in Cloud Storage, Cloud Bigtable o in un altro servizio di archiviazione di Google Cloud associato allo stesso progetto Google Cloud che stai utilizzando 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 nei flaggcloud
corrispondenti. - Il servizio di addestramento di 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. 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 la tua immagine Docker, passando attraverso qualsiasi argomento della riga di comando che specifichi quando crei il job di addestramento.
- Puoi ottenere informazioni sul job in esecuzione nei seguenti modi:
- Su Cloud Logging. Puoi trovare un link ai tuoi log dei job nella pagina dei dettagli dei job di AI Platform Training in Google Cloud Console.
- Richiedendo i dettagli del job o eseguendo il flusso di log con lo strumento a riga di comando
gcloud
(in particolare,gcloud ai-platform jobs stream-logs
). - Effettuando in modo programmatico richieste di stato al servizio di addestramento, utilizzando il metodo
projects.jobs.get
. Leggi maggiori dettagli su come monitorare i job di formazione.
- Quando il job di addestramento ha esito positivo o incontra un errore irreversibile, AI Platform Training interrompe tutti i processi dei job e ripulisce le risorse.
Vantaggi dei container personalizzati
I container personalizzati consentono di specificare e preinstallare tutte le dipendenze necessarie per l'applicazione.
- Tempi di avvio più rapidi. Se utilizzi un container personalizzato con le dipendenze preinstallate, puoi risparmiare il tempo necessario all'applicazione di addestramento 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 installa il framework scelto e utilizzarlo per eseguire i job su AI Platform Training. Ad esempio, puoi addestramento con PyTorch.
- Supporto esteso per la formazione distribuita. Con i container personalizzati puoi eseguire l'addestramento distribuito utilizzando qualsiasi framework di ML.
- Utilizza la versione più recente. Puoi anche usare la build o la versione secondaria più recente di un framework ML. Ad esempio, puoi creare un container personalizzato per l'addestramento con
tf-nightly
.
Ottimizzare gli iperparametri con container personalizzati
Per ottimizzare gli iperparametri in AI Platform Training, specifica una metrica obiettivo e indica se ridurla a icona o massimizzare. Ad esempio, potresti voler massimizzare la precisione del modello o minimizzarne la perdita. Elenca anche gli iperparametri che vuoi modificare, insieme a un valore target per ogni iperparametro. AI Platform Training esegue più prove della tua applicazione di addestramento, monitorando e regolando gli iperparametri dopo ogni prova. Al termine del job di ottimizzazione degli iperparametri, AI Platform Training segnala i valori per la configurazione più efficace degli iperparametri, oltre a un riepilogo per ogni prova.
Per effettuare l'ottimizzazione degli iperparametri con i container personalizzati, devi apportare le seguenti modifiche:
- Nel Dockerfile, installa
cloudml-hypertune
. - Nel codice di addestramento:
- Usa
cloudml-hypertune
per segnalare i risultati di ogni prova chiamando la relativa funzione di supporto,report_hyperparameter_tuning_metric
. - Aggiungi argomenti della riga di comando per ogni iperparametro e gestisci l'analisi dell'argomento con un analizzatore sintattico di argomenti come
argparse
.
- Usa
- 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ù sul funzionamento dell'ottimizzazione degli iperparametri in AI Platform Training.
Utilizzo di GPU con container personalizzati
Per l'addestramento con le GPU, il tuo 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 il CUDNN nella tua immagine Docker. L'utilizzo dell'immagine
nvidia/cuda
come immagine di base è il modo consigliato per gestire questa situazione. Presenta 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 esempio di Dockerfile per l'addestramento con GPU.
Passaggi successivi
- Scopri come utilizzare container personalizzati per i tuoi job di addestramento.
- Scopri di più sull'addestramento distribuito con container personalizzati.