Addestramento con Amazon SageMaker

Amazon SageMaker semplifica l'addestramento dei modelli di machine learning (ML) fornendo tutto il necessario per ottimizzare ed eseguire il debug dei modelli ed effettuare esperimenti di addestramento.

Funzionalità

Gestione e monitoraggio degli esperimenti

Il machine learning è un processo iterativo basato sulla sperimentazione continua, per esempio provare nuovi algoritmi di apprendimento o aggiustare gli iperparametri dell'algoritmo, osservando nel contempo l'impatto di tali cambiamenti incrementali sulle prestazioni e l'accuratezza del modello. Con il passare del tempo questa esplosione di dati rende più difficile tenere traccia dei modelli con prestazioni migliori, delle osservazioni e delle lezioni appresi nel corso della sperimentazione e anche degli ingredienti e delle ricette esatti che hanno portato alla creazione di quei modelli in primo luogo.

Amazon SageMaker Experiments ti aiuta a tracciare, valutare e organizzare gli esperimenti di addestramento in modo semplice e scalabile. SageMaker Experiments è incluso in Amazon SageMaker Studio e in un SDK Python con una forte integrazione con Jupyter.

Con Amazon SageMaker Experiments puoi organizzare migliaia di esperimenti di addestramento, registrare artefatti di esperimenti come dataset, iperparametri e metriche e riprodurre esperimenti. Dal momento che SageMaker Experiments si integra con SageMaker Studio, è possibile visualizzare i modelli e valutare rapidamente e facilmente quelli migliori. Puoi anche registrare e mantenere un log aggiornato di note e commenti mentre gli esperimenti avanzano e condividere facilmente con un clic gli esperimenti tra i membri del team. SageMaker Experiments preserva anche l'intera cronologia degli esperimenti, quindi se un modello inizia a deviare dal risultato previsto, puoi tornare indietro nel tempo e ispezionare i suoi artefatti.

Esperimenti

Analizza ed esegui il debug con approfondimenti completi

È difficile ottenere informazioni e visibilità complete sul processo di addestramento di ML. Non esiste un modo semplice per garantire che il modello apprenda progressivamente i valori corretti per i suoi parametri. Per esempio, durante l'addestramento di un modello di visione artificiale utilizzando una rete neurale convoluzionale, potrebbe essere necessario eseguire il lavoro di addestramento per ore. Durante questo periodo, non vi è alcuna visibilità sul modo in cui i diversi parametri del modello di ML influenzano l’addestramento del modello stesso e se il processo di addestramento sta producendo i risultati desiderati.

Amazon SageMaker Debugger offre piena visibilità sul processo di addestramento. SageMaker Debugger semplifica l'ispezione fornendo agli sviluppatori un'interfaccia visiva per analizzare i dati di debug e fornendo anche indicatori visivi su potenziali anomalie nel processo di addestramento.

SageMaker Debugger rileva e avvisa automaticamente l'utente di errori che si verificano comunemente, come valori di gradiente che diventano troppo grandi o troppo piccoli. È inoltre possibile utilizzare Debugger SDK per rilevare automaticamente nuove classi di errori specifici del modello o analizzare interattivamente le sessioni di addestramento in un notebook SageMaker. Di conseguenza, lo sforzo di debug per i modelli di machine learning può essere ridotto da giorni a minuti. I dati raccolti da SageMaker Debugger rimangono nel tuo account, consentendone l'utilizzo per le applicazioni più sensibili alla privacy.

SageMaker Debugger produce in tempo reale metriche delle prestazioni dei tuoi modelli. Queste includono l'errore di addestramento e validazione (che rappresenta l'errore del modello, dovrebbe essere il più basso possibile), le matrici di confusione (per i modelli di classificazione, ciò rappresenta le false previsioni positive e negative e il modo in cui cambiano durante l'addestramento) e i gradienti di apprendimento (l'analisi delle curve di apprendimento dei modelli durante l'addestramento viene utilizzata per diagnosticare problemi con l'addestramento, come underfitting o overfitting, nonché se i dataset di addestramento e validazione siano adeguatamente rappresentativi.) Queste metriche possono essere lette e visualizzate sul notebook all'interno di Amazon SageMaker Studio.

SageMaker Debugger può anche generare avvisi di allarme e correzione quando vengono rilevati comuni problemi di addestramento. Per esempio, se il tuo modello ha imparato tutto dai dati e non sta migliorando, ma è ancora in fase di addestramento (cosa che richiede tempo e denaro), SageMaker Debugger ti aiuterà a identificare questa situazione in anticipo in modo da poter terminare l'addestramento. Può anche identificare problemi comuni di validazione dei dati, per esempio se i pesi della rete vengono costantemente impostati su zero, oltre a identificare se il modello sta iniziando ad andare in overfitting.

Debugger

Addestramento con un clic

L'addestramento dei modelli è facile con Amazon SageMaker. Per iniziare l'addestramento su Amazon SageMaker, è sufficiente specificare il percorso in cui si trovano i dati in Amazon S3 e indicare il tipo e la quantità di istanze SageMaker ML necessarie. Per iniziare sarà sufficiente un semplice clic. Amazon SageMaker configura un cluster di elaborazione distribuito, effettua l'addestramento, esporta i risultati in Amazon S3 e interrompe il cluster una volta completate le operazioni. 

Quando viene specificato il percorso dei dati su Amazon S3, SageMaker eseguirà l'algoritmo selezionato in un cluster di addestramento isolato in una rete definita tramite software configurata in base alle esigenze specifiche. Quando scegli il tipo di istanza, inclusa Amazon EC2 P3dn, l'istanza basata su GPU più potente nel cloud, SageMaker creerà il tuo cluster in un gruppo di dimensionamento automatico. SageMaker collegherà inoltre i volumi EBS a ciascun nodo, configurerà le pipeline di dati e inizierà l'addestramento con uno script in TensorFlow, MXNet, Pytorch, Chainer o nel tuo framework, con algoritmi integrati o personalizzati. Al termine, i risultati vengono archiviati in S3 e il cluster viene automaticamente eliminato.

Per semplificare l'addestramento su vasta scala, le modalità di streaming dei flussi di addestramento da Amazon S3 sono state ottimizzate. Tramite l'API, è possibile specificare se si desidera che vengano inviati tutti i dati a ogni nodo del cluster oppure se sia Amazon SageMaker a gestirne la distribuzione sui nodi in base alle esigenze dell'algoritmo. I livelli di scalabilità di Amazon SageMaker, insieme agli algoritmi integrati, permettono di ridurre in modo significativo il costo e la durata delle sessioni di addestramento.

Ottimizzazione automatica dei modelli

Amazon SageMaker è in grado di ottimizzare automaticamente i modelli, provando migliaia di combinazioni di parametri dell'algoritmo per ottenere dal modello le previsioni più accurate possibili.

Quando un modello viene calibrato per migliorarne la precisione, le opzioni su cui intervenire sono due: modificare i dati forniti al modello (per esempio prendendo il logaritmo di un numero) e regolare i parametri dell'algoritmo. Questi ultimi vengono detti iperparametri e trovare quelli ottimali può essere molto difficile. In genere, si inizia adottando valori casuali e se ne sperimentano diversi per vedere in che modo i risultati cambiano. Può essere una procedura lunga, a seconda di quanti iperparametri contiene il modello.

Amazon SageMaker semplifica questo processo offrendo un'opzione di ottimizzazione automatica dei modelli durante l'addestramento. L'ottimizzazione automatica dei modelli usa il machine learning per ottimizzare velocemente il tuo modello perché sia il più accurato possibile. Questa funzione consente di evitare il fastidioso processo basato su tentativi ed errori della regolazione manuale dei parametri dei modelli. Al contrario, con una serie di addestramenti, l'ottimizzazione automatica dei modelli esegue l'ottimizzazione degli iperparametri individuando caratteristiche interessanti nei dati e imparando come queste interagiscono per influire sull'accuratezza. Puoi risparmiare giorni, se non intere settimane, che avresti speso a ottimizzare la qualità del tuo modello addestrato.

È sufficiente specificare il numero di sessioni di addestramento tramite l'API o la console e SageMaker gestisce il resto utilizzando il machine learning per ottimizzare il modello. Il servizio apprenderà gli effetti dei diversi tipi di dati contenuti nel modello e applicherà le conoscenze acquisite su diverse copie del modello per trovare in modo rapido il miglior risultato possibile. Per uno sviluppatore o un data scientist, significa ridurre in modo significativo le preoccupazioni, poiché sarà necessario esclusivamente decidere le eventuali modifiche ai dati da fornire al modello.

Managed Spot Training

Con Managed Spot Training puoi ridurre il costo dell'addestramento dei modelli di machine learning fino al 90%. Managed spot training utilizza istanze Spot Amazon EC2, ovvero capacità inutilizzata EC2, quindi le sessioni di addestramento vengono eseguite a costi molto più bassi rispetto alle istanze on demand di Amazon EC2. Amazon SageMaker gestisce le sessioni di addestramento in modo che vengano eseguite come e quando diventa disponibile la capacità di calcolo. Di conseguenza, non è necessario eseguire il polling continuo per la capacità e il servizio managed spot training elimina la necessità di creare strumenti aggiuntivi per gestire le interruzioni. Managed Spot Training è compatibile con l'Ottimizzazione automatica dei modelli, gli algoritmi e i framework forniti con Amazon SageMaker e gli algoritmi personalizzati.

Ottimizza i modelli in modo automatico con Amazon SageMaker

Fai pratica con questi esercizi di ottimizzazione automatica dei modelli su GitHub.

Addestra i modelli di machine learning utilizzando TensorFlow su Amazon SageMaker

Impara come addestrare i modelli di machine learning basati su TensorFlow.