È di questi giorni la presentazione di PowerInfer, un nuovo progetto che consegna nelle mani di sviluppatori e utenti normali un “motore di inferenza” ad alte prestazioni, progettato per supportare LLM (Large Language Models) su PC dotati di GPU di fascia consumer.
Il nuovo tool usa una rete neurale suddivisa tra GPU e CPU: i neuroni “caldi” sono attivati in risposta a diversi input, mentre i neuroni “freddi” vengono abilitati in base a input specifici. Il modello ibrido proposto da PowerInfer, fa sì che i primi siano precaricati sulla GPU mentre quelli attivati “a freddo” appoggiandosi alla CPU.
Come funziona PowerInfer e come porta i LLM su GPU di fascia consumer
Questo schema riduce significativamente le richieste di memoria a livello di GPU e i trasferimenti di dati CPU-GPU. Tant’è vero che rispetto a una GPU di fascia server come NVidia A100, la configurazione basata su PowerInfer e su di una singola GPU NVidia RTX 4090 fa segnare appena il 18% di prestazioni in meno. Riuscendo ad generare token al ritmo medio di 13,20 al secondo, con un valore di picco che sfiora i 30 token al secondo.
PowerInfer supporta modelli come Falcon-40B e la famiglia Llama2, ed è stato testato su diverse piattaforme, tra cui CPU x86-64 e GPU NVIDIA su Linux e chip Apple M su macOS. Per iniziare, è possibile seguire le istruzioni di installazione pubblicate su GitHub, ottenere i pesi del modello ed eseguire attività di inferenza. Il progetto è rilasciato con licenza MIT e le sue potenzialità sono verificabili accedendo alla demo online basata su Falcon(ReLU)-40B-FP16.
L’idea alla base di PowerInfer si ispira, ancora una volta, al funzionamento del cervello umano, come spesso fanno altre applicazioni di intelligenza artificiale. Riflette la tendenza di alcune sinapsi neurali (o neuroni) ad essere attivate più frequentemente rispetto ad altre in qualsiasi modello di linguaggio. In termini semplici, come accennato in precedenza, ci sono neuroni “caldi” che sono attivati spesso e neuroni “freddi” che variano di più in base agli input specifici. Questo approccio bilanciato contribuisce a una più rapida elaborazione dei dati.
Predittori adattivi e quantizzazione
Per ottimizzare ulteriormente le sue prestazioni, PowerInfer fa leva sui cosiddetti predittori adattivi, componenti che cercano di anticipare o prevedere quali neuroni saranno attivati successivamente. Gli sparse operators si riferiscono a tecniche che gestiscono solo i dati “importanti” o attivati, riducendo la complessità computazionale.
Infine, con PowerInfer l’utente può fare leva anche sulla quantizzazione, una tecnica che riduce la precisione dei dati per contenere i requisiti di memoria e aumentare l’efficienza del sistema. INT4, ad esempio, è una specifica di quantizzazione che rappresenta i dati con 4 bit. Usando questo approccio, si possono gestire i pesi del modello in maniera più efficace.
Pesi del modello e download
I pesi del modello si riferiscono ai parametri del LLM che PowerInfer sfrutta durante le attività di inferenza. Essi includono i pesi delle connessioni tra i neuroni, i bias e altri parametri che definiscono completamente la struttura e il comportamento del modello. Nel complesso, rappresentano le informazioni apprese durante la fase di addestramento del modello e sono lo specchio delle relazioni semantiche tra i vari elementi.
Per ottenere i pesi del modello PowerInfer, è possibile scaricarli dal repository Hugging Face. I pesi disponibili in file con estensione .powerinfer.gguf
: il modello che non contiene q4
come prefisso è quello non quantizzato.
Credit immagine in apertura: iStock.com – Just_Super