Un software predittivo accelera l'addestramento delle reti neurali
Le reti neurali svolgono molti compiti meglio degli algoritmi convenzionali, e in alcuni casi solo loro. Tuttavia, il loro addestramento costa un'enorme quantità di tempo e denaro. Grazie ai ricercatori dell'ETH, questo addestramento può essere accelerato: una buona notizia per i futuri utenti del supercomputer "Alps" del CSCS.
Il Centro nazionale svizzero di supercalcolo CSCS, affiliato all'ETH di Zurigo, sta costruendo un nuovo supercomputer. La macchina, chiamata "Alps", sostituirà l'attuale computer svizzero di punta ad alte prestazioni, "Piz Daint", entro la primavera del 2023. Grazie all'architettura dei suoi processori grafici e al suo file system, "Alps" sarà uno dei computer più potenti al mondo ottimizzato per l'intelligenza artificiale.
"Il sistema è particolarmente adatto alle applicazioni di apprendimento automatico e consentirà di effettuare operazioni di calcolo altamente parallele con enormi quantità di dati", afferma il Torsten Hoefler,Professore presso l'ETH di Zurigo e responsabile dell'unità di Laboratorio di calcolo parallelo scalabiledell'ETH. Supporta anche funzioni sviluppate appositamente per il deep learning, come la sparsità, una funzione che impedisce la memorizzazione e l'elaborazione di dati superflui, accelerando così le reti neurali.
Tuttavia, per utilizzare un sistema così potente nel modo più efficiente possibile, anche le applicazioni devono diventare più intelligenti. Con questo obiettivo, due scienziati del team di Torsten Hoefler, Roman Boehringer e Nikoli Dryden, sviluppato un software,hanno sviluppato un nuovo metodo di addestramento che accelera la formazione delle applicazioni di deep learning. Quando si lavora con reti neurali e applicazioni di deep learning, l'addestramento è la fase di lavoro più lunga e costosa di tutte. Ad esempio, una singola sessione di addestramento di un sofisticato modello di riconoscimento vocale può Circa dieci milioni di dollaricosti. Il nuovo software chiamato NoPFS(Near-optimal Pre-Fetching System) potenzia questo processo grazie a un fenomeno chiamato "chiaroveggenza": sfrutta un processo prevedibile durante l'addestramento e lo fa in modo più coerente di quanto abbiano fatto finora altri programmi.
Formazione costosa
Durante l'addestramento delle reti neurali, queste vengono alimentate con campioni di dati e con le etichette desiderate per questi campioni. In un'applicazione di riconoscimento di immagini, ad esempio, questi campioni di dati sono immagini di oggetti, come un gatto. Se l'applicazione inizialmente sbaglia a classificare l'immagine come un cane, ad esempio, si corregge e si aggiorna in base al valore reale di "gatto". In questo modo, è più probabile che la volta successiva identifichi correttamente l'animale. Se questo ciclo viene ripetuto con un numero sufficiente di campioni del set di dati, l'applicazione finirà per azzeccare quasi sempre il risultato.
Tuttavia, questo processo di apprendimento è estremamente lento. Per imparare, le reti neurali hanno bisogno di centinaia di migliaia, a volte di milioni di campioni di dati, e questo a sua volta richiede innumerevoli passaggi per caricare i dati e aggiornare i valori. Questi passaggi di caricamento e salvataggio, che trasferiscono le informazioni tra i file system e i processori, sono chiamati in gergo tecnico "I/O" e sono la parte più lunga e costosa dell'addestramento. In pratica, l'"I/O" consuma fino all'85% del tempo totale di formazione.
Guardare nella sfera di cristallo
? qui che entra in gioco il nuovo software NoPFS. Utilizza il concetto di "chiaroveggenza" per accelerare il caricamento dei dati di addestramento. Gli esempi di dati che vengono mostrati al modello di deep learning sono selezionati a caso. Vengono compilati casualmente in mini-batch di, ad esempio, 32 elementi di dati e presentati gradualmente al modello. Tuttavia, questo campionamento di dati in mini-lotti richiede un valore seme noto all'inizio. Questo rende il processo pseudo-casuale: una volta selezionato il valore seme, la sequenza dei campioni di dati è fissa e può essere prevista.
"Questo è esattamente ciò che fa NoPFS", dice Nikoli Dryden, ricercatore post-dottorando nel gruppo di ricerca di Hoefler e principale sviluppatore del software. Durante l'addestramento, il software prevede in quale ordine e con quale frequenza verranno caricati gli esempi di dati per mostrarli al modello. "Utilizziamo questa conoscenza per caricare in anticipo gli elementi di dati più utilizzati", spiega Dryden. Gli elementi utilizzati più di frequente vengono memorizzati direttamente nella memoria ad accesso casuale (RAM), mentre quelli meno diffusi vengono memorizzati su un disco rigido locale o su un nodo del computer con accesso molto veloce. "Ciò significa che i dati sono disponibili in anticipo, il che accelera l'addestramento", spiega Dryden.
Tempo di formazione dimezzato
I ricercatori hanno testato NoFPS nell'addestramento di vari modelli di deep learning su diversi supercomputer, tra cui il "Piz Daint" del CSCS. Hanno testato il software su CosmoFlow, un'applicazione di deep learning per la previsione dei parametri della materia oscura nell'universo, e sul modello di riconoscimento delle immagini ResNet-50 con due set di dati di formazione di dimensioni diverse, ImageNet-1k e ImageNet-22k. Hanno confrontato le prestazioni di NoFPS con altri due sistemi di caricamento dei dati, quello del framework di deep learning PyTorch e quello della NVIDIA Data Loading Library (DALI).
I risultati hanno dimostrato che NoFPS accelera effettivamente l'addestramento, in misura variabile a seconda del numero di GPU utilizzate, del supercomputer in questione e delle dimensioni del dataset di addestramento. Nel caso migliore, l'addestramento di CosmoFlow è stato 2,1 volte più veloce, per ImageNet-22k 2,4 volte più veloce e per ImageNet-1k addirittura 5,4 volte più veloce.
"In generale, otteniamo miglioramenti delle prestazioni tanto maggiori quanto più GPU utilizziamo", afferma Torsten Hoefler. Tuttavia, questi risultati sono stati ottenuti con file system non ottimizzati per i calcoli di deep learning. Con sistemi ottimizzati per l'intelligenza artificiale, come "Alps", l'efficienza dell'addestramento potrebbe aumentare in misura leggermente inferiore. "Tuttavia, NoPFS accelererà notevolmente l'addestramento anche su tali sistemi", afferma Hoefler.
Particolarmente rilevante per le applicazioni scientifiche
Tuttavia, il concetto di NoPFS non è del tutto nuovo. Altri framework di deep learning utilizzano una versione semplificata dello stesso principio: guardano uno o più passi avanti e iniziano a caricare gli elementi di dati successivi in anticipo, rendendoli leggermente più efficienti. Tuttavia, nessuno strumento finora ha utilizzato questa capacità di previsione in modo così coerente come NoPFS, per l'intera durata dell'addestramento.
"Il tempo di addestramento più breve con NoPFS sarà particolarmente importante per le applicazioni e i modelli nella ricerca e quindi per il CSCS e i suoi utenti", afferma Hoefler. Nella ricerca, l'apprendimento automatico viene solitamente utilizzato in due modi: Da un lato, le reti neurali possono essere utilizzate per perfezionare e analizzare i risultati delle simulazioni al computer. In secondo luogo, singole parti di un codice di simulazione possono essere sostituite con applicazioni di deep learning per rendere le simulazioni più veloci e precise. Hoefler, Dryden e i loro colleghi hanno recentemente sviluppato la loro ha pubblicato uno di questi documenti: Avete completato la post-elaborazione statistica nel modello di previsione meteorologica del Centro europeo per le previsioni meteorologiche a medio raggio ECMWFmigliorato sostituendo il codice classico con un'applicazione di deep learning. Questo ha aumentato la probabilità di predizione del modello di oltre il 14%.
Tuttavia: "Per ottenere un tale risultato, di solito è necessario testare e addestrare diversi modelli e varianti per trovare quello che funziona meglio", spiega Hoefler. "Questo significa settimane di tempo di calcolo. In futuro, il team intende perfezionare il modo in cui NoPFS carica e memorizza i dati in anticipo per accelerare ulteriormente l'addestramento".
Questo testo di Santina Russo è apparso per la prima volta in inglese sul sito del CSCS.
Letteratura di riferimento
Dryden N., B?hringer R., Ben-Nun T. e Hoefler T.: Clairvoyant Prefetching for Distributed Machine Learning I/O. SC'21: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (2021). DOI: pagina esterna10.1145/3458817.3476181
Gr?nquist P., Yao C., Ben-Nun T., Dryden N., Dueben P., Li S.e Hoefler T.: Deep learning for post-processing ensemble weather forecasts. Phil. Trans. R. Soc. (2021). DOI: pagina esterna10.1098/rsta.2020.0092