Panoramica dei container

I container su AI Platform Training sono 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 e versioni ML, nonché dipendenze, librerie e programmi binari non ML non supportati in AI Platform Training.

Come funziona l'addestramento con i container

L'applicazione di addestramento, implementata nel framework ML di tua scelta, è il fulcro del processo di addestramento.

  1. Crea un'applicazione che addestra il modello, utilizzando il framework ML che preferisci.
  2. Decidi se utilizzare un contenitore personalizzato. Potrebbe esistere una versione runtime che supporta già le dipendenze. In caso contrario, dovrai creare un container personalizzato per il 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.
  3. Archivia i tuoi dati di addestramento e verifica in una fonte a cui AI Platform Training può accedere. In genere, ciò significa inserirlo in Cloud Storage, Cloud Bigtable o un altro servizio di archiviazione di Google Cloud associato allo stesso progetto Google Cloud che utilizzi per AI Platform Training.
  4. Quando l'applicazione è pronta per l'esecuzione, devi creare l'immagine Docker ed eseguirne il push a Container Registry, assicurandoti che il servizio AI Platform Training possa accedere al registro.
  5. Invia il tuo job utilizzando gcloud ai-platform jobs submit training, specificando gli argomenti in un file config.yaml o nei flag gcloud corrispondenti.
  6. 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.
  7. Il servizio di addestramento esegue l'immagine Docker, passando attraverso gli argomenti della riga di comando specificati quando crei il job di addestramento.
  8. Puoi ottenere informazioni sul tuo job in esecuzione nei seguenti modi:
  9. Quando il job di addestramento ha esito positivo o riscontra un errore irreversibile, AI Platform Training interrompe tutti i processi dei job e pulisce 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 per l'installazione delle dipendenze all'avvio dell'applicazione di addestramento.
  • Usa 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 l'addestramento distribuito. Con i container personalizzati, puoi eseguire l'addestramento distribuito utilizzando qualsiasi framework ML.
  • Utilizza la versione più recente. Puoi anche usare la build più recente 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 in AI Platform Training, devi specificare una metrica obiettivo e decidere se ridurla al minimo o ottimizzarla. Ad esempio, potresti voler massimizzare la precisione 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 della tua applicazione di addestramento, monitorando e regolando gli iperparametri dopo ogni prova. Una volta completato il job di ottimizzazione degli iperparametri, AI Platform Training segnala i valori per la configurazione più efficace degli iperparametri, nonché un riepilogo per ogni prova.

Per eseguire l'ottimizzazione degli iperparametri con i container personalizzati, devi apportare le seguenti modifiche:

  • Nel tuo Dockerfile, installa cloudml-hypertune.
  • Nel codice di addestramento:
    • Utilizza cloudml-hypertune per segnalare i risultati di ogni prova chiamando la funzione helper, report_hyperparameter_tuning_metric.
    • Aggiungi argomenti della riga di comando per ogni iperparametro e gestisci l'argomento che si analizza con un analizzatore sintattico di argomenti come argparse.
  • Nella richiesta di job: aggiungi un elemento HyperparameterSpec all'oggetto TrainingInput.

Visualizza 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 le 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 nella tua immagine Docker. L'utilizzo dell'immagine nvidia/cuda come immagine di base è il modo consigliato per gestire questa situazione. Dispone delle 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.

Guarda un Esempio di Dockerfile per l'addestramento con GPU.

Passaggi successivi