Sparse by Command: Task-Conditional Compute Skipping for Multi-Task Inference Accelerators
Questo articolo presenta "Sparse by Command", un approccio di co-design hardware-software che sfrutta i comandi dei task per saltare dinamicamente il calcolo non necessario tramite reti di gating leggere e un acceleratore a tasselli specializzato, ottenendo una riduzione dei FLOP fino al 76% e un'accelerazione della latenza di 2,4x per l'inferenza multi-task senza alterare l'architettura del modello.
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
Immagina di essere il direttore d'orchestra di una massiccia, tecnologicamente avanzata orchestra. Nel mondo dell'intelligenza artificiale, questa orchestra è una "rete neurale", un programma per computer simile a un cervello, progettato per prendere decisioni. Di solito, quando questa orchestra suona un brano musicale, ogni singolo musicista prende il proprio strumento e suona, indipendentemente dal tipo di canzone che viene eseguita. Se la canzone è una dolce ninna nanna, i tamburi pesanti e le trombe fragorose suonano comunque a tutto volume, anche se la canzone non ne ha bisogno. Questo è incredibilmente dispendioso. Consuma molta energia e richiede molto tempo, proprio come guidare un enorme camion fino all'angolo della strada per comprare un singolo melo.
Nel campo specifico della "inferenza multi-task", questo problema è ancora più grande. Qui, un singolo cervello informatico è chiamato a svolgere molti lavori diversi contemporaneamente, come sterzare, frenare o girare a sinistra. Il problema è che il computer non sa quale lavoro stia svolgendo finché non inizia a lavorare, quindi si prepara per tutti i lavori contemporaneamente, sprecando energia per cose di cui non ha bisogno. Gli scienziati hanno cercato di risolvere questo problema rendendo il computer "sparso", un termine elegante per dire "vuoto". Hanno cercato di dire al computer di saltare alcune note, ma di solito il computer deve comunque controllare ogni singola nota per vedere se deve saltarla, il che richiede tempo ed energia. Questo articolo pone una domanda semplice: e se il computer sapesse esattamente quale lavoro sta per svolgere prima di iniziare a suonare, così da poter dire ai musicisti di posare gli strumenti prima ancora di averli presi in mano?
Gli autori di questo articolo, un team proveniente da Hong Kong e Huawei, hanno costruito un nuovo e intelligente sistema chiamato "Sparse by Command" che risolve questo problema. Si sono resi conto che in compiti come la guida autonoma, il "comando" (come "gira a sinistra" o "frena") è noto molto prima che il computer inizi a guardare la strada. Hanno usato questa informazione gratuita per creare un intelligente centralino. Invece di lasciare che il computer indovini quali parti del suo cervello usare, una minuscola rete di supporto, super veloce, osserva il comando e aziona istantaneamente un interruttore per spegnere le parti specifiche del cervello principale che non sono necessarie in quel momento.
Pensa a una casa intelligente. Se dici alla tua casa "Vado a dormire", il sistema non si limita ad abbassare le luci in soggiorno; sa che non sei in cucina, quindi interrompe l'alimentazione delle luci della cucina prima ancora che tu entri. Gli autori hanno costruito un chip speciale (su un FPGA, che è come una tavola Lego programmabile per l'elettronica) che comprende questi interruttori. Quando il comando dice "frena", il chip salta il 76% del lavoro. Quando dice "gira a sinistra", salta circa il 71%. Poiché il chip ferma fisicamente il lavoro prima che accada invece di limitarsi a fingere di farlo, risparmia una quantità enorme di tempo e di batteria.
I risultati sono piuttosto impressionanti. Quando hanno testato il sistema su un gioco di guida simulata chiamato CARLA, il sistema è diventato molto più veloce. Il tempo necessario per prendere una decisione è sceso da 9,12 millisecondi a un intervallo compreso tra 3,74 e 4,44 millisecondi. Questo è un incremento di velocità di circa 2,1 o 2,4 volte! Ha anche utilizzato meno della metà dell'energia, scendendo da 263 millijoule a circa 108–128 millijoule per decisione. Fondamentalmente, l'auto non si è schiantata né si è persa; ha completato il 100% dei percorsi di guida perfettamente.
L'articolo mostra anche perché questo approccio è migliore rispetto ai metodi precedenti. Hanno provato a "potare" (tagliare via) parti del cervello permanentemente, come rimuovere i tamburi dall'orchestra per sempre. Ma questo non ha funzionato bene perché a volte servono i tamburi, e a volte no. Se li rimuovi permanentemente, l'orchestra non può suonare le canzoni che ne hanno bisogno. Il sistema "Sparse by Command" è più intelligente perché tiene tutti i musicisti pronti, ma li chiama solo quando la canzone specifica ne ha bisogno. Hanno testato il sistema anche su un altro tipo di cervello informatico (un Transformer) e hanno scoperto che funziona anche lì, suggerendo che questa idea potrebbe essere utilizzata per molti tipi diversi di macchine intelligenti, non solo per le auto.
In breve, questo articolo dimostra che se dai a un computer un'istruzione chiara su ciò che deve fare, puoi dirgli di saltare tutto il lavoro inutile di cui non ha bisogno. Costruendo un chip personalizzato che ascolta queste istruzioni e salta fisicamente il lavoro non necessario, hanno creato un sistema intelligente che è più veloce, più economico da gestire e altrettanto bravo nel suo compito. È un promemoria del fatto che, a volte, il modo migliore per essere efficienti non è lavorare di più, ma sapere esattamente cosa non fare.
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.