L’intelligenza artificiale on-device e l’esecuzione di modelli linguistici di grandi dimensioni su dispositivi più piccoli sono stati uno dei punti chiave su cui si sono concentrati i leader del settore dell’intelligenza artificiale negli ultimi anni. Quest’area di ricerca è tra le più critiche nel campo dell’intelligenza artificiale, con il potenziale di influenzare e rimodellare profondamente il ruolo dell’intelligenza artificiale, dei computer e dei dispositivi mobili nella vita di tutti i giorni. Questa ricerca opera dietro le quinte, in gran parte invisibile agli utenti, ma rispecchia l’evoluzione dei computer: dalle macchine che un tempo occupavano intere stanze ed erano accessibili solo a governi e grandi aziende agli smartphone ora comodamente nascosti nelle nostre tasche.
Oggi, la maggior parte dei modelli linguistici di grandi dimensioni viene implementata in ambienti cloud dove possono sfruttare le immense risorse computazionali dei data center. Questi data center sono dotati di hardware specializzato, come GPU e TPU, o anche chip AI specializzati, progettati per gestire i carichi di lavoro intensivi richiesti dai LLM. Ma questa dipendenza dal cloud porta con sé sfide significative:
Costo elevato: I servizi cloud sono costosi. L’esecuzione di LLM su larga scala richiede l’accesso continuo a server ad alta potenza, che può aumentare i costi operativi. Per le startup o i singoli ingegneri, questi costi possono essere proibitivi, limitando chi può realisticamente trarre vantaggio da questa potente tecnologia.
Preoccupazioni sulla privacy dei dati: quando gli utenti interagiscono con LLM basati su cloud, i loro dati devono essere inviati a server remoti per l’elaborazione. Ciò crea una potenziale vulnerabilità poiché informazioni sensibili come conversazioni personali, cronologie di ricerca o dettagli finanziari potrebbero essere intercettati o gestiti in modo improprio.
Impatto ambientale: Il cloud computing su questa scala consuma enormi quantità di energia. I data center richiedono energia continua non solo per il calcolo ma anche per il raffreddamento e la manutenzione delle infrastrutture, il che comporta una significativa impronta di carbonio. Con la spinta globale verso la sostenibilità, questo problema deve essere affrontato. Ad esempio, un recente rapporto di Google ha mostrato un aumento del 48% delle emissioni di gas serra negli ultimi cinque anni, attribuendo gran parte di questo aumento alle crescenti richieste della tecnologia AI.
Ecco perché questo problema continua ad attirare l’attenzione dei leader del settore, che stanno investendo ingenti risorse per affrontare il problema, così come dei centri di ricerca più piccoli e delle comunità open source. La soluzione ideale sarebbe consentire agli utenti di eseguire questi potenti modelli direttamente sui propri dispositivi, evitando la necessità di una costante connettività cloud. Ciò potrebbe ridurre i costi, migliorare la privacy e diminuire l’impatto ambientale associato all’intelligenza artificiale. Ma questo è più facile a dirsi che a farsi.
La maggior parte dei dispositivi personali, in particolare gli smartphone, non hanno la potenza di calcolo necessaria per eseguire LLM su vasta scala. Ad esempio, un iPhone con 6 GB di RAM o un dispositivo Android con un massimo di 12 GB di RAM non possono competere con le capacità dei server cloud. Anche il più piccolo LLM di Meta, LLaMA-3.1 8B, richiede almeno 16 GB di RAM e, realisticamente, ne serve di più per prestazioni decenti senza sovraccaricare il telefono. Nonostante i progressi nei processori mobili, il divario energetico è ancora significativo.
Questo è il motivo per cui l’industria si concentra sull’ottimizzazione di questi modelli, rendendoli più piccoli, più veloci e più efficienti senza sacrificare troppo le prestazioni.
Questo articolo esplora i principali documenti di ricerca recenti e i metodi volti a raggiungere questo obiettivo, evidenziando la situazione attuale del campo:
- Quello di Meta MobileLLM: ottimizzazione di modelli linguistici con parametri inferiori a miliardi per casi d’uso su dispositivo
- Quello di Huawei Metodo di decomposizione Kronecker per la compressione GPT
- “TQCompressor: miglioramento dei metodi di decomposizione tensore nelle reti neurali tramite permutazioni”, un recente progetto open source e documento di ricerca che ha migliorato il metodo di scomposizione Kronecker, consentendo di comprimere i modelli GPT di 1,5 volte senza aumentare significativamente i requisiti di tempo, uno studio a cui ho partecipato come coautore.
L’approccio di Meta alla progettazione di LLM per casi d’uso su dispositivo
Quest’estate, i ricercatori di Meta AI hanno introdotto un nuovo modo per creare modelli linguistici efficienti specifici per smartphone e altri dispositivi con risorse limitate e hanno rilasciato un modello chiamato MobileLLM, costruito utilizzando questo approccio.
Invece di fare affidamento su modelli con miliardi o addirittura trilioni di parametri – come GPT-4 – il team di Meta si è concentrato sull’ottimizzazione di modelli con meno di 1 miliardo di parametri.
Gli autori hanno scoperto che il ridimensionamento del modello “in profondità” funziona meglio che “in larghezza” per i modelli più piccoli con un massimo di 1 miliardo o circa 1 miliardo di parametri, rendendoli più adatti agli smartphone. In altre parole, è più efficace avere un numero maggiore di strati più piccoli piuttosto che pochi strati grandi. Ad esempio, il loro modello da 125 milioni di parametri, MobileLLM, ha 30 livelli, mentre modelli come GPT-2, BERT e la maggior parte dei modelli con 100-200 milioni di parametri hanno in genere circa 12 livelli. I modelli con lo stesso numero di parametri ma un numero di strati più elevato (rispetto a parametri più grandi per strato) hanno dimostrato una migliore precisione in diverse attività di benchmarking, come Winogrande e Hellaswag.
I grafici della ricerca di Meta mostrano che con dimensioni di modello comparabili, i modelli più profondi e più sottili generalmente superano le loro controparti più ampie e meno profonde in vari compiti, come il ragionamento basato sul buon senso, la risposta alle domande e la comprensione della lettura.
Credito immagine: MobileLLM: ottimizzazione di modelli linguistici con parametri inferiori a miliardi per casi d’uso su dispositivo
La condivisione dei livelli è un’altra tecnica utilizzata nella ricerca per ridurre i parametri e migliorare l’efficienza. Invece di duplicare i livelli all’interno della rete neurale, i pesi di un singolo livello vengono riutilizzati più volte. Ad esempio, dopo aver calcolato l’output di uno strato, è possibile reimmetterlo nell’input dello stesso strato. Questo approccio riduce efficacemente il numero di parametri, poiché il metodo tradizionale richiederebbe la duplicazione del livello più volte. Riutilizzando gli strati, hanno ottenuto notevoli miglioramenti in termini di efficienza senza compromettere le prestazioni.
Come mostrato nella tabella della ricerca, altri modelli con parametri 125M hanno in genere 10-12 livelli, mentre MobileLLM ne ha 30. MobileLLM supera gli altri nella maggior parte dei benchmark (con il leader del benchmark evidenziato in grassetto).
Credito immagine: MobileLLM: ottimizzazione di modelli linguistici con parametri inferiori a miliardi per casi d’uso su dispositivo
Nel loro articolo, Meta ha introdotto il modello MobileLLM in due versioni: 125 milioni e 350 milioni di parametri. Hanno reso pubblicamente disponibile il codice di formazione per MobileLLM su GitHub. Successivamente, Meta ha pubblicato anche 600 milioni, 1 miliardo e 1,5 miliardi di versioni del modello.
Questi modelli hanno mostrato miglioramenti impressionanti in compiti come il ragionamento basato sul buon senso, la risposta alle domande e la comprensione della lettura, superando i precedenti metodi all’avanguardia. Inoltre, le versioni perfezionate di MobileLLM hanno dimostrato la loro efficacia nelle comuni applicazioni sui dispositivi come chat e chiamate API, rendendole particolarmente adatte alle esigenze degli ambienti mobili.
Il messaggio di Meta è chiaro: Se vogliamo che i modelli funzionino sui dispositivi mobili, dobbiamo crearli in modo diverso.
Ma questo non è spesso il caso. Prendi i modelli più popolari nel mondo dell’intelligenza artificiale, ad esempio LLaMA3Qwen2 o Gemma-2: non solo hanno molti più parametri; hanno anche meno strati ma molto più grandi, il che rende praticamente molto difficile eseguire questi modelli sui dispositivi mobili.
Compressione dei LLM esistenti
La recente ricerca di Meta si allontana dalla compressione delle reti neurali esistenti e presenta un nuovo approccio alla progettazione di modelli specifici per gli smartphone. Tuttavia, milioni di ingegneri in tutto il mondo che non costruiscono modelli da zero (e ammettiamolo, sono la maggior parte di loro) devono ancora lavorare con modelli ampi e ricchi di parametri. La compressione non è solo un’opzione; è una necessità per loro.
Il punto è questo: sebbene le scoperte di Meta siano rivoluzionarie, la realtà è che i modelli open source non vengono necessariamente costruiti tenendo presenti questi principi. La maggior parte dei modelli all’avanguardia, incluso LLaMA di Meta, sono ancora progettati per server di grandi dimensioni con GPU potenti. Questi modelli hanno spesso meno strati ma molto più ampi. Ad esempio, LLaMA3 8B ha quasi 65 volte più parametri di MobileLLM-125M, anche se entrambi i modelli hanno circa 30 livelli.
Allora, qual è l’alternativa? Potresti continuare a creare nuovi modelli da zero, personalizzandoli per l’uso mobile. Oppure potresti comprimere quelli esistenti.
Quando si rendono più efficienti questi modelli grandi e ampi per i dispositivi mobili, gli ingegneri spesso si rivolgono a una serie di tecniche di compressione collaudate. Questi metodi sono quantizzazione, potatura, decomposizione della matrice e distillazione della conoscenza.
Quantizzazione
Uno dei metodi più comunemente utilizzati per la compressione della rete neurale è la quantizzazione, nota per essere semplice e preservare efficacemente le prestazioni.
Credito immagine: Jan Marcel Kezmann SU Medio
Il concetto di base è che una rete neurale è costituita da numeri memorizzati in matrici. Questi numeri possono essere memorizzati in diversi formati, come numeri a virgola mobile o numeri interi. Puoi ridurre drasticamente le dimensioni del modello convertendo questi numeri da un formato più complesso, come float32, a uno più semplice, come int8. Ad esempio, un modello che inizialmente occupava 100 MB potrebbe essere compresso a soli 25 MB utilizzando la quantizzazione.
Potatura
Come accennato, una rete neurale è costituita da un insieme di matrici piene di numeri. La potatura è il processo di rimozione dei numeri “non importanti”, noti come “pesi”, da queste matrici.
Rimuovendo questi pesi non importanti, il comportamento del modello viene influenzato minimamente, ma i requisiti di memoria e di calcolo vengono ridotti in modo significativo.
Decomposizione della matrice
La decomposizione della matrice è un’altra tecnica efficace per comprimere le reti neurali. L’idea è quella di scomporre (o “scomporre”) le grandi matrici della rete in matrici più piccole e più semplici. Invece di memorizzare un’intera matrice, può essere scomposta in due o più matrici più piccole. Quando moltiplicate insieme, queste matrici più piccole producono un risultato uguale o molto vicino all’originale. Questo ci permette di sostituire una matrice grande con matrici più piccole senza alterare il comportamento del modello. Tuttavia, questo metodo non è impeccabile: a volte le matrici scomposte non riescono a replicare perfettamente l’originale, determinando un piccolo errore di approssimazione. Tuttavia, spesso vale la pena scendere a compromessi in termini di efficienza.
Distillazione della conoscenza
Distillazione della conoscenza, introdotta da Hinton et al. nel 2015, è un metodo semplice ma efficace per creare un modello più piccolo ed efficiente (il “modello studente”) trasferendo conoscenze da un modello più grande e pre-addestrato (il “modello insegnante”).
Utilizzando la distillazione della conoscenza, un modello linguistico più piccolo progettato arbitrariamente può essere addestrato a imitare il comportamento di un modello più grande. Il processo funziona fornendo a entrambi i modelli gli stessi dati e quello più piccolo impara a produrre risultati simili a quelli del modello più grande. In sostanza, il modello dello studente viene distillato con la conoscenza del modello dell’insegnante, consentendogli di funzionare in modo simile ma con molti meno parametri.
Un esempio notevole è DistilBERT (Sanh et al. 2019), che ha ridotto con successo i parametri di BERT del 40% mantenendo il 97% delle sue prestazioni e funzionando il 71% più velocemente.
La distillazione può essere facilmente combinata con quantizzazione, potatura e decomposizione della matrice, dove il modello dell’insegnante è la versione originale e lo studente è quella compressa. Queste combinazioni aiutano a perfezionare la precisione del modello compresso. Ad esempio, potresti comprimere GPT-2 utilizzando la scomposizione della matrice e quindi applicare la distillazione della conoscenza per addestrare il modello compresso a imitare il GPT-2 originale.
Come comprimere i modelli esistenti per i casi d’uso dell’intelligenza artificiale sul dispositivo
Alcuni anni fa, Huawei si è concentrata anche sull’abilitazione di modelli di intelligenza artificiale sul dispositivo e ha pubblicato ricerche sulla compressione GPT-2. I ricercatori hanno utilizzato un metodo di decomposizione della matrice per ridurre le dimensioni del popolare modello GPT-2 open source per un utilizzo più efficiente sul dispositivo.
Nello specifico, hanno utilizzato una tecnica chiamata decomposizione di Kronecker, che è la base per il loro articolo intitolato “Decomposizione di Kronecker per la compressione GPT”. Di conseguenza, i parametri di GPT-2 sono stati ridotti da 125 milioni a 81 milioni.
Per recuperare le prestazioni del modello dopo la compressione, gli autori hanno utilizzato la distillazione della conoscenza. La versione compressa, denominata KnGPT-2, ha imparato a imitare il comportamento del GPT-2 originale. Hanno addestrato questo modello distillato utilizzando solo il 10% del set di dati originale utilizzato per addestrare GPT-2. Alla fine, le dimensioni del modello sono diminuite del 35%, con una perdita di prestazioni relativamente piccola.
Quest’anno, io e i miei colleghi abbiamo pubblicato una ricerca sui metodi di decomposizione della matrice, in cui abbiamo compresso con successo il modello GPT-2 (con 125 milioni di parametri) fino a 81 milioni di parametri. Abbiamo chiamato il modello risultante TQCompressedGPT-2. Questo studio ha ulteriormente migliorato il metodo di scomposizione di Kronecker e, con questo progresso, siamo riusciti a utilizzare solo il 3,1% del set di dati originale durante la fase di distillazione della conoscenza. Ciò significa che abbiamo ridotto i tempi di formazione di circa 33 volte rispetto all’utilizzo del set di dati completo e che gli sviluppatori che desiderano implementare modelli come LLaMA3 sugli smartphone richiederanno 33 volte meno tempo per ottenere una versione compressa di LLaMA3 utilizzando il nostro metodo.
La novità del nostro lavoro risiede in alcune aree chiave:
- Prima di applicare la compressione, abbiamo introdotto un nuovo metodo: la permutazione delle matrici dei pesi. Riorganizzando le righe e le colonne delle matrici dei livelli prima della scomposizione, abbiamo ottenuto una maggiore precisione nel modello compresso.
- Abbiamo applicato la compressione in modo iterativo, riducendo gli strati del modello uno per uno.
Abbiamo reso il codice del nostro modello e algoritmo open source, consentendo ulteriori ricerche e sviluppi.
Entrambi gli studi ci avvicinano al concetto introdotto da Meta con il loro approccio ai Mobile LLM. Dimostrano metodi per trasformare i modelli ampi esistenti in versioni più compatte e profonde utilizzando tecniche di decomposizione della matrice e ripristinando le prestazioni del modello compresso con la distillazione della conoscenza.
I modelli di alto livello come LLaMA, Mistral e Qwen, che sono significativamente più grandi di 1 miliardo di parametri, sono progettati per potenti server cloud, non per smartphone. La ricerca condotta da Huawei e dal nostro team offre tecniche preziose per adattare questi modelli di grandi dimensioni per l’uso mobile, in linea con la visione di Meta per il futuro dell’intelligenza artificiale sui dispositivi.
La compressione dei modelli di intelligenza artificiale è più di una sfida tecnica: è un passo cruciale per rendere la tecnologia avanzata accessibile a miliardi di persone. Man mano che i modelli diventano più complessi, la capacità di eseguirli in modo efficiente su dispositivi di uso quotidiano come gli smartphone diventa essenziale. Non si tratta solo di risparmiare risorse; si tratta di integrare l’intelligenza artificiale nella nostra vita quotidiana in modo sostenibile.
I progressi compiuti dal settore nell’affrontare questa sfida sono significativi. I progressi di Huawei e TQ nella compressione dei modelli di intelligenza artificiale stanno spingendo l’intelligenza artificiale verso un futuro in cui potrà funzionare perfettamente su dispositivi più piccoli senza sacrificare le prestazioni. Si tratta di passi fondamentali verso un adattamento sostenibile dell’intelligenza artificiale ai vincoli del mondo reale e una sua maggiore accessibilità a tutti, gettando solide basi per ulteriori ricerche in quest’area vitale dell’impatto dell’intelligenza artificiale sull’umanità.