Il team sta utilizzando un'analisi approfondita dei calcoli paralleli per accelerare l'apprendimento automatico su larga scala. Credito:Onur Oymak / Alamy
Decostruendo e analizzando i metodi collaudati utilizzati nei calcoli massicciamente paralleli, una collaborazione guidata da KAUST ha sviluppato una struttura rivoluzionaria per calcoli paralleli efficienti su larga scala. Il framework ha particolare rilevanza per i tipi di elaborazione necessari per l'ottimizzazione nell'apprendimento automatico.
La "parallelizzazione" di un'attività di ottimizzazione o elaborazione dei dati consente di distribuire l'attività tra molti nodi computazionali. Idealmente, questo dividerebbe il tempo necessario per il calcolo per il numero di nodi reclutati per l'attività. Però, con la parallelizzazione nasce la necessità di far passare quantità crescenti di informazioni tra i nodi, il che significa che il grado di accelerazione ideale non viene mai raggiunto nella pratica.
"Nell'ottimizzazione distribuita, un problema comune è il collo di bottiglia della comunicazione, " spiega Konstantin Mishchenko del Visual Computing Center. "Immagina di avere un computer con quattro core, e vuoi eseguire il tuo programma in parallelo su un nuovo computer con 16 core. Naturalmente, ti aspetteresti che il nuovo computer sia circa quattro volte più veloce. Ma, anche se il nuovo computer ha quattro volte la potenza di calcolo totale, gran parte di esso è occupato dalla sincronizzazione dei core ad ogni aggiornamento del modello. Questo collo di bottiglia della comunicazione riduce l'effetto positivo dell'aumento del numero di core e diventa grave quando ridimensioniamo il numero di core a centinaia o migliaia".
Una recente ricerca del gruppo di Peter Richtárik ha affrontato questo problema in due modi:migliorando la compressione delle informazioni passate ad ogni sincronizzazione e generalizzando l'algoritmo di apprendimento in modo che possa essere utilizzato con qualsiasi schema di compressione.
"La cosa più difficile da capire era perché le idee esistenti funzionano sempre, " dice Mishchenko. "Comunemente, i ricercatori prima indovinano quale trucco deve essere usato, e solo dopo iniziamo a capire perché funziona. Questo è esattamente quello che abbiamo fatto:usando semplici controesempi, abbiamo rianalizzato due trucchi ben noti e siamo giunti alla conclusione che esiste un modo migliore per usarli."
Quelle tecniche, chiamata quantizzazione e sparsificazione casuale, sono metodi di compressione generalmente utilizzati isolatamente. Combinando entrambi, e, soprattutto, comprimendo solo la differenza tra le nuove informazioni e l'aggiornamento precedente, il team ha dimostrato matematicamente che è possibile uno schema di compressione più efficiente con una minore perdita di informazioni.
"Il punto più importante è che questa nuova tecnica, dove comprimiamo la differenza tra le informazioni attuali e precedenti, e non solo la nuova informazione stessa, assicura che meno informazioni vengano perse quando eseguiamo una compressione, " dice Mishchenko. "E abbiamo dimostrato e osservato in esperimenti che il ridimensionamento con il nostro metodo è più vicino all'ideale".
L'altro risultato generalizza l'algoritmo di apprendimento per una serie di diverse attività di ottimizzazione in modo da consentirne l'utilizzo con qualsiasi schema di compressione.
"La nostra motivazione era quella di creare una teoria generale che non si basasse su alcuno schema di compressione specifico per comprendere gli effetti della compressione sull'allenamento distribuito, ", afferma Samuel Horvath del team di ricerca.
L'utilizzo di questa teoria consente di costruire algoritmi per il calcolo distribuito senza i problemi di ottimizzazione incompleta e dipendenza da schemi di compressione specifici affrontati dai metodi esistenti.
"Questo lavoro ci aiuta a comprendere meglio gli effetti dei diversi metodi di compressione e ci aiuta a scegliere il giusto schema di compressione per il problema dato, "dice Horvath.