La recente decisione di Google di rilasciare i modelli open Gemma segna un nuovo capitolo nello sviluppo e nell’implementazione dell’AI, in particolare nel contesto degli smartphone.
Ma come funzionano questi nuovi modelli e quali sono le implicazioni per gli utenti e per l’intero settore tecnologico? E quali sono le prestazioni effettive di questi modelli rispetto ai tradizionali strumenti AI? Esploriamo i dettagli essenziali dei modelli Gemma, mettendo in evidenza sia le potenzialità che i limiti di questa innovativa proposta da Google.
Google rilascia i modelli open Gemma: cosa cambia?
I due modelli AI basati su Gemini nel mondo open, entrambi chiamati Gemma, sono caratterizzati dalla dimensione: il più complesso è di 7B (7 miliardi) di parametri, e il secondo ha 2B di parametri. Questi modelli vanno ad arricchire la nutrita schiera di modelli open “micro” come ad esempio Mistral 7B, e Llama2 7B.
Cosa aggiungono al panorama questi nuovi modelli? Di particolare interesse è sicuramente il modello più piccolo (2B) poiché Google aveva annunciato la disponibilità di un micro-modello capace di eseguire su Android, ed è quindi naturale cercare di capire sia il carico computazionale necessario all’esecuzione del modello che la sua capacità.
Come funzionano i nuovi modelli Gemma
Useremo il software open ollama per eseguire i modelli su un laptop con una scheda nVidia GeForce RTX 4050 con 6GB di memoria dedicata (e16GB di memoria condivisa). Tra i vari software per eseguire modelli AI ollama si caratterizza per la facilità di installazione su Linux, MacOS e Windows.
Eseguire un modello con ollama
Una volta installato sulla propria piattaforma, ollama può essere facilmente invocato dalla linea di comando:
L’importanza dei parametri nel modello Gemma
Siamo ormai abituati a leggere di miliardi di parametri come misura della complessità di un modello. I parametri sono una stima dei pesi che una particolare rete neurale modificherà durante la fase di apprendimento. Si tratta quindi di una stima della capacità di memorizzare informazioni da parte della rete, ed è naturale che più piccolo è il modello meno informazioni sia capace di trattenere, ma l’efficienza con cui la rete trattiene le informazioni non è legata solo al numero di parametri. La sua geometria ne influenzerà il comportamento, e i dati di addestramento privilegeranno un comportamento piuttosto che un altro.
Il numero di parametri non è poi l’unico parametro: anche il numero di valori che ciascun parametro può assumere ne influenza il comportamento.
In ogni caso come si può osservare nella figura precedente le dimensioni del modello sono correlate: in particolare il modello mixtral ha 56B di parametri anche se ne attiva 7 alla volta.
È quindi naturale assumere che la memoria e anche la capacità di esprimersi in più lingue sia maggiore nei modelli con più parametri. Il confronto, quindi, dovrà spostarsi sulla capacità di ragionamento piuttosto che sulla conoscenza al calare del numero di parametri, questo ci guiderà nel test del modello Gemma da 2B di parametri. La conoscenza è facile da verificare osservando il seguente output:
Le prestazioni di gemma: 2B
Utilizzando l’opzione –verbose del comando run di ollama è possibile ottenere le statistiche relative alla generazione di testo. Possiamo anche usare il performance monitor di Windows per vedere quanta GPU viene utilizzata e quanta memoria il modello richiede per il suo funzionamento.
Per fare i test useremo un famoso indovinello e porremo la domanda in inglese poiché è la lingua prevalente di addestramento. La domanda è la seguente: “A brick weights 1kg plus half brick, what is the weight of the brick?”
L’esecuzione sul modello 2B produce il seguente output:
La risposta è errata (quella corretta è 2kg) ma ha tuttavia una sua logica e sbaglia come sbagliano molte persone che non riflettono con attenzione sul gioco di parole. Il modello occupa 2,5GB di memoria video e la generazione del testo è rapidissima (meno di un secondo per la generazione dell’intero output).
Nel caso del modello gemma:7b la GPU viene usata ripetutamente ed anche la memoria video è maggiormente utilizzata:
L’esecuzione è considerevolmente più lenta:
Anche se la velocità di esecuzione è molto variabile, l’uso della GPU è più intensivo ma come si può facilmente osservare il risultato è lo stesso. Anche i modelli mistral e mixtral traggono la stessa conclusione, mentre llama2:7b argomenta che è impossibile trovare una soluzione. I modelli online (incluso il nuovo modello large di Mistral) rispondono tutti correttamente spiegando la soluzione:
In un altro test di ordinamento di numeri si vede comunque come il modello 2B sia meno preciso nel ragionamento del suo fratello maggiore:
Il futuro dell’AI sugli smartphone con Gemma
Una cosa che mi ha colpito dell’esecuzione di gemma:2b è come la capacità di ragionare del modello non sia nettamente inferiore rispetto alla controparte più grande gemma:7b, ma le performance e l’uso delle risorse sono decisamente inferiori.
È lecito quindi attendersi che almeno qualche servizio possa effettivamente essere eseguito interamente sul nostro telefono cellulare, nel rispetto della privacy dei nostri dati, ma se si pensa di avere GPT in piccolo occorrerà rivedere significativamente le nostre aspettative.
Questa considerazione è vera per molti dei modelli con sette miliardi di parametri o meno, e troppo spesso i semplici numeri dei benchmark non riescono a raccontare la distanza tra questi modelli e modelli come GPT 3.5 o Gemini Pro.
I modelli gemma sono sicuramente una piacevole aggiunta ai modelli aperti, ma soprattutto la versione 7B non stupisce per il suo comportamento rispetto ai suoi competitors diretti come Llama2 7B e Mistral.