Pre-Compiled Pipeline Shards for Distributed LLM Inference on Intel AI PC Fleets
Questo articolo presenta un sistema di inferenza distribuita che sfrutta frammenti di pipeline OpenVINO pre-compilati attraverso molteplici PC Intel AI inattivi per consentire l'esecuzione a velocità interattiva di grandi LLM (fino a 70 miliardi di parametri) che superano i limiti di memoria del singolo dispositivo, raggiungendo un elevato throughput attraverso la fusione ottimizzata dei grafi, il decoding speculativo e l'interleaving delle richieste.
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'informatica moderna, è emerso un nuovo tipo di computer personale, dotato di potenti processori progettati specificamente per l'intelligenza artificiale. Queste macchine, spesso presenti in laptop eleganti, contengono chip specializzati in grado di eseguire grandi modelli linguistici — programmi capaci di scrivere, ragionare e conversare. Tuttavia, una singola macchina ha un limite netto: la sua memoria è troppo piccola per contenere il "cervello" massiccio dei modelli più avanzati, che richiedono molta più memoria di quanta qualsiasi singolo dispositivo possa fornire. Tradizionalmente, per eseguire questi modelli giganti, gli utenti hanno dovuto fare affidamento su server cloud distanti ed costosi, inviando le proprie domande tramite internet e attendendo una risposta. Ciò crea una dipendenza dalle infrastrutture esterne e solleva preoccupazioni sulla privacy dei dati, poiché le informazioni sensibili devono lasciare la macchina locale. La domanda che i ricercatori si sono posti era se un gruppo di questi ordinari computer personali, inattivi, potesse lavorare insieme, collegati da una normale rete per ufficio, per eseguire un modello troppo grande per ognuno di essi, il tutto mantenendo i dati locali e la risposta abbastanza veloce per una conversazione reale.
Un team di ricercatori si è posto l'obiettivo di rispondere a questo quesito costruendo un sistema che divide un grande modello di intelligenza artificiale in pezzi più piccoli, assegnando un pezzo a ciascun computer di una piccola flotta. Immaginate un libro enorme troppo pesante da trasportare per una sola persona; invece di cercare di sollevarlo da soli, un gruppo di persone si dispone in fila, ognuna con in mano un capitolo. Mentre la storia si svolge, la prima persona legge il proprio capitolo e passa il contesto alla successiva, che legge il proprio, e così via, finché l'ultima persona non finisce la frase. In questo sistema, i "capitoli" sono gli strati del modello AI e il "passaggio" avviene tramite una normale connessione di rete. I ricercatori hanno scoperto che semplicemente dividere il modello in questo modo non era sufficiente; lo scambio tra i computer era troppo lento e il processo di controllo del lavoro era troppo goffo, rendendo il sistema pigro. Per risolvere il problema, hanno sviluppato tre tecniche specifiche che hanno trasformato una configurazione sperimentale e lenta in uno strumento veloce e utilizzabile.
La prima svolta ha riguardato un cambiamento sottile nel modo in cui i pezzi del modello venivano preparati prima ancora di essere accesi. Quando i ricercatori esportavano inizialmente gli strati del modello per eseguirli sulla scheda grafica del computer, il software ometteva un'ottimizzazione cruciale che di solito accelera le operazioni. Iniettando un'istruzione specifica e semplice nel codice di ogni pezzo, hanno sbloccato un'efficienza nascosta nel processore grafico. Questo piccolo aggiustamento ha permesso ai pezzi divisi di girare quasi velocemente come l'originale modello non diviso su una singola macchina. Senza questa correzione, il sistema era significativamente più lento, ma con essa, il divario di prestazioni è quasi scomparso, dimostrando che il modello poteva essere diviso senza sacrificare la velocità.
La seconda sfida riguardava la gestione del processo di "bozza" utilizzato per accelerare il pensiero dell'IA. Normalmente, un modello più piccolo e veloce ipotizza le prossime parole, e il modello principale le controlla. Se l'ipotesi è errata, il modello principale deve scartare l'ipotesi errata e ricominciare da capo. Sui chip specializzati utilizzati in questi computer, il modo standard per scartare un'ipotesi errata era incredibilmente lento, richiedendo quasi mezzo secondo per ogni correzione — tempo sufficiente a rovinare il flusso della conversazione. I ricercatori hanno trovato un espediente astuto: invece di eliminare fisicamente le ipotesi errate dalla memoria del computer, hanno semplicemente detto all'IA di ignorarle. Segnalando le ipotesi errate come invisibili nei dati di sottofondo, il sistema otteneva esattamente lo stesso risultato di un'eliminazione, ma in una frazione di secondo. Ciò ha permesso al sistema di utilizzare la tecnica di bozza più veloce senza la penalità, rendendo l'IA molto più reattiva.
La terza innovazione ha permesso al sistema di servire più persone contemporaneamente. In una configurazione standard, mentre un computer nella fila sta lavorando, gli altri spesso rimangono inattivi, aspettando il proprio turno. I ricercatori hanno progettato un metodo in cui i computer potevano gestire richieste di utenti diversi simultaneamente. Mentre un computer stava finendo una frase per l'Utente A, il computer successivo nella fila poteva già iniziare una frase per l'Utente B. Questo intreccio di compiti manteneva ogni macchina della flotta occupata, moltiplicando efficacementmente la velocità totale del gruppo. Combinato con le altre due correzioni, questo approccio ha permesso a una flotta di due computer di servire due utenti a una velocità quasi due volte superiore rispetto a quella con cui un singolo computer poteva servire un solo utente.
I risultati sono stati misurati su una flotta di tre laptop di fascia alta collegati tramite una normale rete Wi-Fi. Nei test, una configurazione a due computer che eseguiva un popolare modello da 8 miliardi di parametri serviva due utenti a un ritmo di quasi 44 parole al secondo, velocità sufficiente per una conversazione naturale e interattiva. Questo era 1,79 volte più veloce di un singolo computer che eseguiva lo stesso modello per un solo utente. Ancora più impressionante, quando i ricercatori hanno simulato una connessione internet lenta e a lunga distanza, il sistema è rimasto utilizzabile, mentre una versione non ottimizzata della stessa configurazione è diventata troppo lenta per essere pratica. Il sistema è riuscito anche a scalare per eseguire un enorme modello da 70 miliardi di parametri, una dimensione che nessun singolo computer della flotta poteva contenere da solo. Dividendo questo modello gigante tra quattro computer, il team ha raggiunto velocità interattive, dimostrando che un gruppo di dispositivi consumer può gestire compiti precedentemente riservati a enormi data center.
Lo studio ha esplorato anche come il sistema si comporta in diverse condizioni. Hanno scoperto che la velocità della rete contava meno dell'efficienza degli scambi tra i computer. Quando la connessione era lenta, il sistema compensava elaborando più parole in un unico passaggio, il che smorzava i ritardi. Hanno anche testato il sistema su una reale connessione di rete area-wide attraverso internet, dove i risultati hanno confermato che, con le giuste ottimizzazioni, la flotta poteva mantenere una velocità di conversazione costante anche quando i computer erano lontani tra loro. I ricercatori hanno osservato che, sebbene il sistema funzioni bene, esso si basa sul fatto che i computer siano in un ambiente affidabile, poiché non include funzionalità di sicurezza integrate come la crittografia o l'autenticazione. Inoltre, hanno notato che il calore fisico generato dai computer durante l'uso prolungato potrebbe eventualmente rallentarli, un fattore che dovrebbe essere gestito in un impiego nel mondo reale.
In definitiva, questo lavoro dimostra che la barriera per eseguire un'intelligenza artificiale potente non è solo l'hardware, ma il modo in cui quell'hardware viene utilizzato. Ripensando al modo in cui i modelli vengono divisi, come gli errori vengono corretti e come vengono serviti più utenti, un piccolo gruppo di comuni computer può agire come una singola e potente macchina. I ricercatori hanno reso il loro codice e i loro dati disponibili al pubblico, permettendo ad altri di verificare i risultati e costruire sul sistema. Le scoperte suggeriscono che, in un futuro prossimo, le organizzazioni potrebbero gestire i propri cluster privati di IA ad alta velocità utilizzando i computer che già possiedono, mantenendo i dati locali e riducendo la dipendenza dai servizi cloud esterni. Il sistema ha dimostrato che, con il software giusto, il potere collettivo di una flotta di macchine inattive può essere sfruttato per risolvere problemi che un tempo si pensava richiedessero un supercomputer.
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.