Tensor Seeks Layout: Formalizing Layout Selection for ML Compilers
Questo articolo presenta il primo studio formale della selezione del layout nei compilatori di machine learning formulandolo come un problema di ottimizzazione combinatoria, dimostrandone la complessità computazionale e proponendo sia algoritmi ottimali per grafi a treewidth limitato sia una codifica MaxSAT pesata per istanze generali per dimostrare che le semplici euristiche possono degradare le prestazioni fino a 5 volte rispetto alle soluzioni ottimali.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
L'intelligenza artificiale moderna si basa su modelli matematici massicci che elaborano enormi quantità di dati per riconoscere il parlato, tradurre lingue o generare immagini. Per eseguire questi modelli rapidamente, gli ingegneri utilizzano chip specializzati progettati appositamente per questo lavoro pesante. Tuttavia, questi chip non si limitano a eseguire istruzioni; devono anche spostare i dati in modo efficiente. La velocità con cui un modello viene eseguito dipende spesso meno dalla potenza bruta del chip e più da come i dati sono disposti nella sua memoria. Immaginate una biblioteca dove i libri sono conservati sugli scaffali. Se un lettore deve trovare un set specifico di libri, il tempo necessario dipende interamente dal fatto che quei libri siano sparsi in diversi corridoi o ordinatamente raggruppati su un unico scaffale. Nel mondo dei chip per computer, questa disposizione è chiamata "layout". Quando un programma per computer esegue un calcolo, si aspetta che i dati siano in una specifica disposizione, ma il passaggio precedente del programma potrebbe aver lasciato i dati in una disposizione diversa. Se le due non corrispondono, il computer deve fermarsi e riorganizzare i dati prima di poter procedere, un processo che spreca tempo ed energia.
Per anni, il software che prepara questi modelli per i chip si è affidato a una collezione di approssimazioni e regole empiriche per decidere come disporre questi dati. Queste regole funzionano abbastanza bene per compiti semplici, ma man mano che i modelli sono diventati più complessi, le supposizioni hanno iniziato a fallire, portando a significativi rallentamenti. Un team di ricercatori dell'Università Tecnica di Vienna e di Amazon si è posto l'obiettivo di cambiare questo approccio. Invece di affidarsi all'intuizione, hanno trattato il problema della disposizione dei dati come un puzzle matematico formale. Hanno costruito un modello preciso che calcola il costo esatto di ogni possibile disposizione, incluso il tempo necessario per spostare i dati tra diversi formati. Facendo ciò, potevano determinare il modo migliore in assoluto per organizzare i dati per qualsiasi dato modello, piuttosto che sperare che un insieme di regole si avvicinasse abbastanza all'ideale.
I ricercatori hanno scoperto che trovare questa disposizione perfetta è un compito incredibilmente difficile. Nel linguaggio dell'informatica, il problema è così complesso che nessun computer può risolverlo rapidamente per ogni possibile situazione, specialmente man mano che i modelli crescono di dimensioni. Hanno dimostrato che anche per una versione semplificata del problema che coinvolge solo calcoli matriciali di base, il numero di possibilità è così vasto che un computer standard farebbe fatica a trovare la risposta in un tempo ragionevole. Questa scoperta ha escluso l'idea che un singolo algoritmo universale e veloce potesse risolvere il problema per tutti i futuri modelli. Tuttavia, il team ha trovato anche una via d'uscita. Hanno dimostrato che, sebbene il problema sia difficile in generale, diventa gestibile quando la struttura del modello assomiglia a un albero con ramificazione limitata. Per queste strutture specifiche, che sono comuni in molte applicazioni reali, hanno progettato un metodo che trova la soluzione perfetta rapidamente. Per strutture più complesse che non rientrano in questo schema, hanno sviluppato un modo per tradurre il problema in un formato che gli esistenti risolutori potenti possano gestire, permettendo loro di trovare la migliore disposizione possibile anche quando non esiste una scorciatoia matematica perfetta.
Per testare le loro idee, i ricercatori hanno implementato il loro nuovo metodo all'interno di un compilatore reale utilizzato per i chip Trainium di Amazon, che sono progettati per eseguire modelli di intelligenza artificiale. Hanno confrontato il loro nuovo approccio con i metodi standard attualmente utilizzati nel settore, che si basano sulle vecchie regole empiriche. I risultati sono stati sorprendenti. Su alcuni modelli complessi, in particolare quelli utilizzati per il riconoscimento delle immagini, le vecchie regole empiriche hanno causato una velocità di esecuzione fino a cinque volte inferiore rispetto al necessario. Ciò accadeva perché le regole semplici non riuscivano a vedere il quadro generale; disponevano i dati perfettamente per un passaggio, ma creavano un caos per quello successivo, costringendo il computer a perdere tempo a riorganizzare continuamente i dati. Il nuovo metodo, guardando l'intera sequenza di passaggi contemporaneamente, evitava queste costose riorganizzazioni e manteneva il flusso di dati fluido.
Tuttavia, lo studio ha rivelato un limite cruciale. Sebbene il nuovo metodo potesse sempre trovare la disposizione matematicamente migliore secondo i propri calcoli, ciò non si traduceva sempre nella velocità effettiva sull'hardware reale. In alcuni casi, il nuovo metodo produceva un risultato che era teoricamente perfetto ma che performava peggio delle vecchie regole più semplici. I ricercatori hanno rintracciato questa discrepanza nel modello di costo stesso. Il software utilizzato per prevedere quanto tempo avrebbe richiesto un compito non era perfettamente accurato; sottostimava il tempo richiesto per certi tipi di movimento dei dati. Poiché il nuovo metodo era così bravo a trovare il costo più basso secondo le proprie previsioni imperfette, a volte sceglieva una disposizione che appariva economica sulla carta ma che era in realtà costosa. Questo ritrovamento suggerisce che l'ostacolo principale per i miglioramenti futuri non è un migliore algoritmo di ricerca, ma modi migliori per prevedere quanto tempo impiegheranno effettivamente i compiti.
Il lavoro fornisce una chiara strada da seguire per il settore. Dimostra che trattare la selezione del layout come un problema di ottimizzazione formale è una strategia valida e potente, capace di fornire enormi accelerazioni dove le semplici regole falliscono. Chiarisce anche che il limite ultimo delle prestazioni non è la capacità di trovare la soluzione migliore, ma l'accuratezza delle previsioni utilizzate per guidare tale ricerca. Per i modelli con strutture regolari e prevedibili, il nuovo approccio basato sui solver è già una scelta superiore. Per i modelli più caotici e complessi, l'attenzione deve spostarsi sul perfezionamento dei modelli di costo, affinché l'ottimo matematico si allinei con la realtà fisica del chip. Separando il problema del trovare la soluzione migliore dal problema del prevedere il costo, i ricercatori hanno fornito ai programmatori di compilatori un nuovo strumento per misurare i propri progressi e un obiettivo chiaro su dove concentrare i propri sforzi successivi.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.