Le prestazioni di un modello dipendono fortemente dall’ottimizzazione degli iperparametri
L’aumento del numero di parametri, latenza, risorse necessarie per l’addestramento, ecc. ha reso difficile il lavoro con il deep learning. I ricercatori di Google, in un ampio sondaggio, hanno individuato aree problematiche comuni per i professionisti del deep learning e suggerito punti di controllo chiave per mitigare queste sfide.
Ad esempio, un professionista del deep learning potrebbe affrontare le seguenti sfide durante l’implementazione di un modello:
La formazione potrebbe essere un costo una tantum, l’implementazione e l’esecuzione dell’inferenza per un lungo periodo di tempo potrebbe comunque rivelarsi costosa in termini di consumo di RAM lato server, CPU, ecc.
L’utilizzo del minor numero possibile di dati per l’addestramento è fondamentale quando i dati utente potrebbero essere sensibili.
Le nuove applicazioni sono dotate di nuovi vincoli (intorno alla qualità del modello o al footprint) che i modelli standard esistenti potrebbero non essere in grado di affrontare.
La distribuzione di più modelli sulla stessa infrastruttura per applicazioni diverse potrebbe esaurire le risorse disponibili.
La maggior parte di queste sfide si riduce alla mancanza di efficienza. Secondo Gaurav Menghani di Google Research, se si dovesse implementare un modello su smartphone in cui l’inferenza è vincolata o costosa a causa dei server cloud, si dovrebbe prestare attenzione all’efficienza dell’inferenza. E se un modello di grandi dimensioni deve essere addestrato da zero con risorse di addestramento limitate, i modelli progettati per l’efficienza dell’addestramento starebbero meglio. Secondo Menghani, i professionisti dovrebbero mirare a raggiungere l’ottimale pareto, cioè qualsiasi modello che scegliamo dovrebbe avere il migliore dei compromessi. E si può sviluppare un modello pareto-ottimale usando il seguente modello mentale.
Compressione del modello
Per i modelli molto grandi, è possibile massimizzare l’efficienza dell’addestramento utilizzando modelli con piccole dimensioni nascoste o pochi livelli poiché i modelli vengono eseguiti più velocemente e utilizzano meno memoria. Come illustrato sopra, una pratica comune sarebbe quella di addestrare piccoli modelli fino a quando non convergono e quindi eseguire una tecnica di compressione leggermente. Un altro esempio è la quantizzazione: le matrici di peso di un livello vengono compresse riducendo la sua precisione da valori in virgola mobile a 32 bit a interi senza segno a 8 bit senza sacrificare la qualità. La strategia di addestramento più efficiente dal punto di vista del calcolo consiste nell’addestrare in modo controintuitivo modelli estremamente grandi ma interrompersi dopo un numero limitato di iterazioni. Ecco alcune tecniche di compressione popolari:
Potatura e condivisione dei parametri
Fattorizzazione di basso rango
Filtri convoluzionali trasferiti/compatti
Distillazione della conoscenza
Tecniche di apprendimento
Gli algoritmi di apprendimento si concentrano sull’addestramento della modalità (per fare meno errori di previsione), richiedono meno dati e convergono più velocemente. Secondo Menghani, la qualità migliorata può quindi essere sostituita con un modello più efficiente tagliando il numero di parametri, se necessario. Un esempio di tale tecnica di apprendimento è la distillazione, in cui l’accuratezza di un modello più piccolo viene migliorata imparando a imitare un modello più grande. All’inizio di quest’anno, Facebook ha annunciatoImage Transformer (DeiT) a elevata efficienza dei dati, che sfrutta la distillazione. È un trasformatore di visione costruito su una procedura di distillazione della conoscenza specifica del trasformatore per ridurre i requisiti dei dati di formazione. La distillazione consente alle reti neurali di apprendere tra di loro. Considerando che un token di distillazione è un vettore appreso che scorre attraverso la rete insieme ai dati dell’immagine trasformati per migliorare significativamente le prestazioni di classificazione dell’immagine con meno dati di addestramento.
Automazione
Un buon esempio di miglioramento dell’efficienza è attraverso l’ottimizzazione degli iperparametri (HPO), un modo automatizzato di ottimizzare gli iperparametri per aumentare la precisione, che potrebbe quindi essere scambiata con un modello con parametri minori. Dato l’ampio spazio di ricerca delle funzionalità, la valutazione di ciascuna configurazione può essere costosa. Le prestazioni di un modello dipendono in larga misura dall’ottimizzazione degli iperparametri. Strumenti HPOcome Sagemaker di Amazon offre un modulo di ottimizzazione automatica del modello e tutto ciò che serve è solo un modello e i relativi dati di addestramento per un’attività HPO. I moduli di ottimizzazione automatica supportano l’ottimizzazione per modelli e set di dati complessi con parallelismo su larga scala. Neural Network Intelligence (NNI) di Microsoft, un toolkit open source per l’apprendimento automatico (AutoML) e HPO, fornisce un framework per addestrare un modello e ottimizzare gli iperparametri insieme alla libertà di personalizzazione.
ENAS
Anche la ricerca sull’architettura neurale (NAS) rientra in questa categoria. Nel suo caso, l’architettura stessa è ottimizzata e i componenti di ricerca sfogliano i risultati per aiutare a trovare un modello che ottimizzi sia la perdita che l’accuratezza e alcune altre metriche come la latenza del modello, le dimensioni del modello, ecc. I metodi NAS hanno già superato molti manualmente architetture progettate su compiti di classificazione delle immagini. Ad esempio, Efficient Neural Architecture Search (ENAS), un approccio rapido ed economico per la progettazione automatica del modello. In questo approccio, un controller (RNN), addestrato con gradienti di policy, impara a scoprire architetture di rete neurale cercando un sottografo ottimale all’interno di un grande grafico computazionale.
Architetture
Le architetture neurali sono blocchi fondamentali progettati da zero. Uno degli esempi classici di livelli efficienti nel dominio della visione sono i livelli convoluzionali. Questi livelli sono migliorati rispetto ai livelli Completamente connessi (FC) nei modelli Vision. Lo stesso filtro viene utilizzato ovunque nell’immagine, indipendentemente da dove viene applicato il filtro. Considerando che, l’architettura Transformer, proposta nel 2017, ha dimostrato che i livelli di attenzione potrebbero essere utilizzati per sostituire i tradizionali modelli Seq2Seq basati su RNN. Di conseguenza, le architetture BERT e GPT superano lo stato dell’arte in diversi benchmark NLU.
Infrastruttura
L’efficienza alla fine si riduce al modo in cui il software è integrato con l’hardware. Un ottimo algoritmo con una configurazione di calcolo scadente può vacillare. È qui che la selezione di framework, GPU e TPU diventa cruciale. Ad esempio, Tensorflow Lite è progettato per l’inferenza in un ambiente con poche risorse. PyTorch ha anche un interprete leggero che consente l’esecuzione di modelli PyTorch su dispositivi mobili, con runtime nativi per Android e iOS. Simile a TFLite, PyTorch offre la quantizzazione post-allenamento e altri passaggi di ottimizzazione del grafico per l’ottimizzazione dei livelli convoluzionali. Quando si tratta di hardware, anche la scelta di una GPU o TPU adatta gioca nell’efficienza complessiva. Nel corso degli anni, Nvidia ha rilasciato diverse iterazioni delle sue microarchitetture GPU con una crescente attenzione alle prestazioni di deep learning.
La suddetta lista di controllo offre un quadro per monitorare l’efficienza delle pipeline ML.
Regole del pollice:
Il grafico del modello può essere compresso?
La formazione può essere migliore?
Utilizzo della ricerca automatizzata per modelli migliori
Utilizzo di livelli e architetture efficienti