Meta continua, come Microsoft e Google, il rilascio di modelli linguistici di grandi e piccole dimensioni – Large Language Models, LLM e Small Language Models, SLM – nello spazio open, alimentando il dibattito se sia meglio usare i mega modelli nel cloud o eseguire modelli più piccoli localmente.
Una particolare attenzione la meritano i modelli SLM, considerati indicativamente come quelli con meno di quattro miliardi di parametri. Si tratta di modelli capaci di eseguire su un personal computer e, nel caso di Llama 3.2 anche su un telefono cellulare nella sua versione ridotta da un miliardo di parametri.
Llama 3.2 e gli altri SLM: quanta energia assorbe l’AI sui dispositivi personali?
Llama 3.2, così come Google gemma2 2B e Microsoft Phi3.5 inseguono l’obiettivo di fornire modelli di AI generativa capaci di funzionare su dispositivi personali assicurando la capacità di funzionare offline e di assicurare la privacy dei dati forniti mediante il prompt.
Cerchiamo di capire come si posiziona Llama3.2 rispetto ai competitor di Microsoft e di Google e davvero possiamo immaginare applicazioni di AI basate su questi modelli sui nostri dispositivi personali? I processori si stanno evolvendo per supportare l’esecuzione di reti neurali, come testimoniato dall’annuncio ormai un anno fa dell’AI PC di Intel, e più recentemente delle funzioni di Apple Intelligence che riceveranno supporto dal chip A18.
La prima domanda da porsi è: ma questi modelli, ammesso anche che funzionino bene senza troppe allucinazioni, quanta energia assorbono? Il loro uso di quanto può ridurre la batteria?
Misurare l’energia di un modello SLM
Per misurare l’assorbimento di un modello ho scritto una semplice applicazione che è ora parte della distribuzione di Oraculum e che usa i sensori di potenza del sistema, in questo caso del mio computer portatile, per misurare l’energia integrando la potenza nel tempo e dividendo per il numero totale di token elaborati dal modello. Poiché i modelli SLM rispondono piuttosto rapidamente ho ripetuto tre volte la stessa interrogazione al modello in esecuzione su ollama ed interrogato mediante la API di OpenAI.
La seguente tabella mostra i dati energetici ottenuti con vari modelli sul mio PC usando come prompt “Descrivi l’organizzazione dello stato Italiano”:
Modello | Numero di token (in migliaia) | Durata (s) | Energia per 1k token della GPU (J) | Energia per 1k token della batteria (J) |
phi3.5 | 1,535 | 29,97 | 747,05 | 750,3 |
llama3.2 | 1,363 | 23,13 | 548,9 | 690,78 |
gemma2:2b | 3,064 | 38,16 | 433,01 | 566,54 |
llama3.2:1b | 2,165 | 26,65 | 405,64 | 500,44 |
Se osserviamo la durata di esecuzione notiamo che è correlata al numero di token generati cumulativamente nelle tre ripetizioni. Il mio sistema è un Surface Laptop Studio 2 ed ha una GPU nVidia GeForce RTX 4050 che consente la lettura della potenza, e anche la batteria viene letta durante il ciclo di scarica. Per poter confrontare i dati, poiché i modelli generano quantità variabili di testo, ho normalizzato le cifre per migliaio di token elaborati e in questo modo possiamo osservare il seguente grafico:
Non sorprende che il consumo sia correlato alla dimensione del modello, salta però all’occhio come il consumo energetico non sia proporzionale alla sua dimensione: llama2.3 con 1B è circa un quarto rispetto a phi3.5 ma assorbe solo un quarto in meno da un punto di vista energetico.
Sul mio PC, che è una macchina di fascia alta, l’output è decisamente veloce, ma l’assorbimento energetico è altrettanto significativo: al termine del test (tre prompt eseguiti per ciascun modello) avevo consumato circa il 25% della batteria (la cui capacità è molto superiore a quella di un dispositivo mobile, anche se va detto che le archietture ARM sono decisamente più rispettose degli assorbimenti energetici).
Possiamo quindi concludere che, con le dovute cautele non avendo fatto test intensivi, l’uso dei modelli SLM sui dispositivi a batteria incide sul consumo in modo significativo; infatti, anche se uno smartphone assorbe molto meno utilizzando hardware ottimizzato, l’incremento energetico sarà sufficiente a ridurre la durata della batteria in modo apprezzabile.
Il comportamento dei modelli: una prova pratica
Uno degli annunci di Meta relativi a llama 3.2 è stato l’addestramento orientato a seguire istruzioni. Non va confuso con l’abilità di ragionare, se infatti proviamo a fornire un problema logico a tutti gli SLM provati i risultati sono quasi sempre sbagliati e a volte anche un po’ astrusi.
Se ci fermiamo a prompt più semplici come, ad esempio, “Un mattone pesa 2kg più mezzo mattone, quanto pesa un mattone?” allora llama 3.2 non sbaglia mai. Si tratta di un risultato interessante poiché è un prompt che uso spesso con varie varianti per i miei test, e molti modelli 8B di qualche mese fa faticavano a rispondere correttamente. La versione 1B però sbaglia praticamente sempre.
Anche Google gemma2 2B è molto migliorato rispetto al predecessore, risponde sempre correttamente contrariamente alla versione precedente che sbagliava quasi sempre. È da sottolineare però come questo modello comprenda l’italiano ma tenda a rispondere in inglese. Microsoft phi3.5 risponde sempre correttamente ed in italiano.
Un altro test che faccio spesso è quello di passare al modello un prompt di quelli generati da Oraculum. Si tratta di un prompt con indicazioni da seguire (ad esempio: rispondi solo a domande sulle missioni), con dati codificati in XML, e una domanda che richiede l’uso dei dati recuperati dal RAG e inseriti nel prompt.
Il comportamento di llama 3.2 comincia ad essere quello desiderato, anche se Microsoft phi3.5 risulta più accurato e soprattutto consistente nelle risposte. La versione 1B di llama 3.2 è invece completamente inaffidabile.
Anche Google gemma2 2B risponde usando le informazioni nel prompt ma spesso in modo confuso e incompleto.
Conclusioni
Gli SLM sono modelli che possono essere eseguiti su dispositivi di uso personale, ma il costo in termini di assorbimento energetico può essere rilevante. Dal punto di vista del comportamento, e vista la differenza in termini di assorbimento energetico, sembra che per ora non convenga investire sui modelli più piccoli come llama 3.2 1B perché il loro comportamento è spesso scorretto, anche su compiti decisamente facili, e soprattutto imprevedibile.
Microsoft phi3.5 sembra rimanere il migliore, sia in termini di consistenza nel comportamento, sia per la completezza delle risposte. Si tratta anche del modello più grosso di quelli provati e di conseguenza il più energivoro.
Ad ogni prova questi modelli più piccoli migliorano le proprie prestazioni, rendendo possibile l’esecuzione di modelli di AI generativa offline anche su dispositivi relativamente piccoli. Risulta però evidente che scendendo sotto certe soglie, ad esempio i 2B parametri, il modello diviene altamente instabile e difficilmente può essere usato in modo affidabile. La capacità di rispondere in linguaggio naturale è comunque utile e troverà applicazioni nei dispositivi personali.
È importante ricordare che i modelli più piccoli riescono ad eseguire su piattaforme come Raspberry Pi 5, consentendo un uso molto interessante nel mondo dell’IoT.