Migliora le prestazioni di apprendimento automatico eliminando gli zeri

Aggiornamento: 6 agosto 2023
Migliora le prestazioni di apprendimento automatico eliminando gli zeri

I ricercatori KAUST hanno trovato un modo per aumentare significativamente la velocità dell'allenamento. I modelli di apprendimento automatico di grandi dimensioni possono essere addestrati in modo significativamente più rapido osservando la frequenza con cui vengono prodotti zero risultati nell'apprendimento automatico distribuito che utilizza set di dati di addestramento di grandi dimensioni.

I modelli di intelligenza artificiale sviluppano la loro "intelligenza" essendo addestrati su set di dati che sono stati etichettati per dire al modello come distinguere tra diversi input e quindi rispondere di conseguenza. Più dati etichettati entrano, migliore diventa il modello nell'eseguire qualsiasi compito gli sia stato assegnato. Per applicazioni complesse di deep learning, come i veicoli a guida autonoma, ciò richiede enormi set di dati di input e tempi di addestramento molto lunghi, anche quando si utilizzano piattaforme di supercalcolo altamente parallele potenti e costose.

Durante l'addestramento, piccole attività di apprendimento vengono assegnate a decine o centinaia di nodi di elaborazione, che quindi condividono i loro risultati su una rete di comunicazione prima di eseguire l'attività successiva. Una delle maggiori fonti di sovraccarico di calcolo in tali attività di calcolo parallelo è in realtà questa comunicazione tra i nodi di calcolo in ogni fase del modello.

"La comunicazione è un importante collo di bottiglia delle prestazioni nel deep learning distribuito", spiega il team KAUST. “Insieme al rapido aumento delle dimensioni del modello, vediamo anche un aumento della proporzione di valori zero che vengono prodotti durante il processo di apprendimento, che chiamiamo scarsità. La nostra idea era sfruttare questa scarsità per massimizzare l'utilizzo effettivo della larghezza di banda inviando solo blocchi di dati diversi da zero".

Basandosi su uno sviluppo precedente di KAUST chiamato SwitchML, che ottimizzava le comunicazioni internodi eseguendo un codice di aggregazione efficiente sugli switch di rete che elaborano il trasferimento dei dati, Fei, Marco Canini e i loro colleghi hanno fatto un passo avanti identificando zero risultati e sviluppando un modo per interrompere la trasmissione senza interrompendo la sincronizzazione del processo di calcolo parallelo.

“Esattamente come sfruttare la scarsità per accelerare la formazione distribuita è un problema impegnativo, afferma il team. “Tutti i nodi devono elaborare blocchi di dati nella stessa posizione in una fascia oraria, quindi dobbiamo coordinare i nodi per garantire che solo i blocchi di dati nella stessa posizione vengano aggregati. Per ovviare a questo, abbiamo creato un processo di aggregazione per coordinare i lavoratori, istruendo loro su quale blocco inviare successivamente”.

Il team ha dimostrato il proprio schema OmniReduce su un banco di prova costituito da una serie di unità di elaborazione grafica (GPU) e ha ottenuto un'accelerazione di otto volte per i tipici apprendimento profondo attività.

ELE Times
+ post
  • BD Soft si unisce a Data Resolve, rafforza la sua offerta in materia di sicurezza informatica e intelligence aziendale
  • L'approccio combinato trova la migliore traiettoria diretta per la generazione del percorso del robot
  • Un materiale con due funzioni potrebbe portare a una memoria più veloce
  • New Tecnologia Potrebbe portare la versione più veloce del 5G a casa e sul posto di lavoro