← Ultimi articoli
🤖 machine learning

Pipeline-Native Transformers: Co-Designing Model Architecture and CPU Inference for Bandwidth-Efficient Autoregressive Decode

Questo articolo introduce cflow, un motore di streaming orientato alle CPU co-progettato con architetture transformer native per pipeline per superare i colli di bottiglia della larghezza di banda della memoria nella decodifica autoregressiva a singolo token, ottenendo una riduzione fino a 2,00x della larghezza di banda dei pesi nel percorso critico e 5,94 token/s su un server con 32 vCPU attraverso l'utilizzo di tiling dei pesi di dimensioni L2, selezione degli esperti top-k e sovrapposizione dell'I/O asincrono.

Autori originali: Tom Poperszky

Pubblicato 2026-08-26
📖 6 min di lettura🧠 Approfondimento

Autori originali: Tom Poperszky

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

Nel mondo dell'intelligenza artificiale, i programmi per computer più potenti sono spesso descritti come dotati di un "cervello" composto da miliardi di minuscoli interruttori. Questi interruttori, o pesi, sono conservati nella memoria principale del computer, come libri su uno vasto scaffale di una biblioteca. Per fare una previsione o generare una singola parola di testo, il computer deve prelevare i libri giusti dallo scaffale, leggerli ed eseguire un calcolo. Per anni, gli ingegneri hanno ipotizzato che la velocità di questi calcoli fosse il fattore limitante, credendo che se avessero solo potuto far pensare il processore più velocemente, il programma sarebbe stato più veloce. Tuttavia, una nuova linea di ricerca suggerisce che questa ipotesi sia errata per il modo più comune in cui questi programmi vengono utilizzati: generare una parola alla volta. In questa modalità specifica, il processore non sta aspettando che il suo cervello pensi; sta aspettando che la memoria consegni i dati. Il processore è così veloce che passa la maggior parte del tempo inattivo, fissando uno scaffale vuoto, in attesa che arrivi il prossimo libro. Questo crea un collo di bottiglia in cui la velocità dell'intero sistema è dettata non da quanto velocemente il computer può calcolare, ma da quanto velocemente può spostare i dati dallo scaffale della memoria al processore.

Un ricercatore di nome Tom Poperszky ha affrontato questo problema rendendosi conto che il modo standard di organizzare questi "libri" sullo scaffale era stato progettato per un tipo di computer completamente diverso. La maggior parte dei moderni modelli di IA è stata costruita per girare su chip grafici specializzati, che sono eccellenti nel leggere molti libri contemporaneamente. Quando questi modelli vengono eseguiti su processori per computer standard, la vecchia organizzazione causa uno spreco di tempo del processore che salta da una parte all'altra dello scaffale, recuperando dati in un ordine caotico che l'hardware non può prevedere. Il lavoro di Poperszky propone una soluzione radicale: invece di cercare di far funzionare meglio i vecchi modelli sull'hardware nuovo, egli ha riprogettato sia il modello che il software che lo esegue affinché lavorino insieme sin dalle fondamenta. Ha creato un nuovo modo per memorizzare i dati del modello in piccoli blocchi ordinati che si adattano perfettamente allo spazio di lavoro immediato del processore, e ha riscritto le istruzioni interne del modello in modo che possa leggere questi blocchi in una linea fluida e continua senza mai fermarsi ad aspettare.

Il cuore di questo nuovo approccio è un sistema chiamato cflow, che funge da bibliotecario altamente efficiente per il computer. In una configurazione standard, quando il computer ha bisogno di generare una parola, spesso deve caricare l'intero set di istruzioni per una specifica parte del modello, anche se ne ha bisogno solo di una minima frazione. Questo è come aprire un'intera enciclopedia per trovare un singolo fatto. Il sistema di Poperszky cambia questo aspetto organizzando i dati in piccole piastrelle, grandi circa quanto una singola pagina, e memorizzandoli nell'esatto ordine in cui il computer ne avrà bisogno. Quando il computer richiede il pezzo successivo di informazione, il sistema fa scorrere la piastrella successiva in posizione istantaneamente, mantenendo il processore occupato. Inoltre, per i modelli che utilizzano un "mixture of experts" — una tecnica in cui il modello sceglie alcune sottoprogrammazioni specializzate per ogni compito — il nuovo sistema carica solo le sottoprogrammazioni specifiche necessarie per quel momento, lasciando il resto sullo scaffale. Ciò elimina lo spreco di caricare migliaia di istruzioni inutilizzate per ogni singola parola generata.

Per far funzionare questo sistema, il ricercatore ha dovuto cambiare l'architettura del modello stesso. I modelli standard sono costruiti come una rigida catena di montaggio dove un passaggio deve terminare completamente prima che il successivo possa iniziare. Questa struttura costringe il computer ad aspettare che l'intera linea finisca prima di poter iniziare a leggere il set successivo di istruzioni. Poperszky ha riprogettato il modello per consentire una "pipeline verticale", dove il computer può iniziare a leggere le istruzioni per il passaggio successivo mentre sta ancora finendo quello corrente. Questo è possibile solo perché il modello è stato addestrato per accettare una versione leggermente ritardata delle informazioni dal passaggio precedente, una modifica che causerebbe errori in un modello standard ma che funziona perfettamente in questo nuovo design. Addestrando cinque versioni diverse di questi modelli riprogettati, il ricercatore ha scoperto che una configurazione specifica poteva tagliare del 50% la quantità di dati che il computer doveva spostare. Questa riduzione del movimento dei dati si traduce direttamente in velocità, poiché il computer passa meno tempo ad aspettare e più tempo a lavorare.

I risultati di questa co-progettazione sono stati misurati su hardware reale, rivelando un chiaro vantaggio rispetto alle soluzioni software esistenti. Su un normale server per computer, il nuovo sistema generava testo a un ritmo di quasi sei parole al secondo, superando le migliori alternative disponibili che gestivano solo circa quattro parole e mezza al secondo sulla stessa macchina. Questo miglioramento non era solo un calcolo teorico; era un aumento di velocità reale ottenuto riducendo il numero di volte in cui la memoria del computer doveva essere accessata. Lo studio ha testato anche altre idee, come l'uso di istruzioni esplicite per dire al computer dove cercare i dati successivamente. Sorprendentemente, i test hanno mostato che queste istruzioni non aiutavano e talvolta rallentavano persino il sistema, perché l'hardware del computer stava già facendo un ottimo lavoro nel prevedere cosa servisse dopo. Questa scoperta è cruciale, poiché esclude una tecnica di ottimizzazione comune e conferma che il vero guadagno deriva dalla riorganizzazione fondamentale dei dati e del modello.

La ricerca ha anche esplorato come questi cambiamenti si comporterebbero all'aumentare delle dimensioni dei modelli. L'analisi suggerisce che, sebbene il miglioramento sia significativo per i modelli testati, i benefici specifici dipendono dalle dimensioni del modello e dal tipo di computer utilizzato. Per modelli molto grandi, il collo di bottiglia potrebbe spostarsi di nuovo, ma il principio rimane: allineando la struttura del modello con il modo in cui il computer legge la memoria, è possibile sbloccare velocità precedentemente ritenute impossibili sui processori standard. Il lavoro dimostra che i limiti dell'attuale intelligenza artificiale sui computer comuni non sono leggi fisiche fisse, ma scelte di progettazione che possono essere cambiate. Trattando il modello e l'ambiente di esecuzione come un unico sistema unificato piuttosto che come due pezzi separati, è possibile creare un sistema che sposti i dati con l'efficienza di una biblioteca ben organizzata, permettendo al computer di pensare alla velocità del proprio hardware. Questo approccio offre una via chiara per far girare una potente IA su dispositivi privi di chip specializzati, rendendo l'intelligenza avanzata più accessibile e reattiva nel mondo reale.

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.

Prova Digest →