Il panorama dell'intelligenza artificiale (IA) è in continua evoluzione, con Google che si posiziona all'avanguardia nell'innovazione grazie alla sua famiglia di modelli linguistici. Tra questi, emerge Gemma, una serie di modelli linguistici di piccole dimensioni (SLM) che si distinguono per essere gratuiti e aperti. Questi modelli sono stati sviluppati utilizzando la stessa tecnologia che alimenta la famiglia Gemini di modelli linguistici di grandi dimensioni (LLM) di Google, e sono spesso considerati le loro versioni "leggere" o "snelle".

La natura più agile dei modelli Gemma li rende particolarmente adatti per essere implementati su dispositivi con risorse limitate, come computer portatili e telefoni cellulari. Tuttavia, non sono limitati a questi ambienti; sono anche ottimizzati per funzionare efficientemente su unità di elaborazione grafica (GPU) NVIDIA e sulle unità di elaborazione tensoriale (TPU) di Google Cloud, dimostrando la loro versatilità. A differenza dei più grandi e complessi modelli Gemini, Gemma si concentra primariamente su applicazioni text-to-text e non è, nella sua forma base, né multilingue né multimodale.

Il nome "Gemma" deriva dalla stessa parola latina che significa "pietra preziosa", un'allusione alla preziosità e al valore che questi modelli aperti intendono offrire. Google ha reso disponibile l'accesso gratuito ai pesi del modello, garantendo che i modelli Gemma possano essere utilizzati liberamente sia per scopi individuali che commerciali, inclusa la ridistribuzione. La prima generazione di modelli Gemma è stata presentata a febbraio 2024, mentre la seconda generazione è stata annunciata pochi mesi dopo, a giugno 2024, evidenziando il rapido ritmo di sviluppo e miglioramento.

La collezione di modelli IA Gemma

La collezione di modelli Gemma comprende al suo nucleo Gemma e Gemma 2, affiancati da diversi modelli più specializzati. Questi modelli specializzati sono stati ottimizzati per compiti specifici e presentano un'architettura sottostante differente per massimizzare l'efficienza in tali ambiti. All'interno della linea Gemma, si distinguono varianti di base o pre-addestrate e varianti "istruite" o "tuned" per seguire istruzioni specifiche, offrendo flessibilità agli sviluppatori e agli utenti finali.

Gemma: la prima generazione

Gemma rappresenta la prima generazione di questi modelli. Ne esistono due versioni principali: Gemma 2B, il più piccolo con due miliardi di parametri, e Gemma 7B, con sette miliardi di parametri. Questi modelli sono stati addestrati su vasti set di dati che includono codice e matematica, e la maggior parte del loro contenuto proviene da documenti web in lingua inglese, il che ne determina una forte enfasi sull'elaborazione testuale in inglese.

Gemma 2: la seconda generazione

Gemma 2 è la seconda generazione della famiglia Gemma. Secondo Google, questa nuova iterazione offre prestazioni migliori ed è più efficiente nell'inferenza IA, ovvero nel processo in cui il modello genera una risposta a una query dell'utente, rispetto al suo predecessore. Gemma 2 è disponibile in tre dimensioni diverse per quanto riguarda i parametri: due, nove e 27 miliardi. I suoi set di dati di addestramento sono più ampi e comprendono documenti web, codice e articoli scientifici, anch'essi principalmente in inglese.

Modelli Gemma specializzati per compiti specifici

Oltre ai modelli base, Google ha sviluppato varianti di Gemma ottimizzate per applicazioni particolari:

  • CodeGemma: Questo modello text-to-code è specificamente ottimizzato per compiti di codifica. Supporta una vasta gamma di linguaggi di programmazione, tra cui C++, C#, Go, Java, JavaScript, Kotlin, Python e Rust. CodeGemma include una variante pre-addestrata 7B per il completamento e la generazione di codice, una variante 7B istruita per la chat di codice in linguaggio naturale e il seguire istruzioni, e una variante pre-addestrata 2B per il completamento rapido del codice.
  • DataGemma: Composto da modelli Gemma e Gemma 2 "tuned", DataGemma integra le sue risposte con dati provenienti da Google Data Commons, un vasto repository di dati statistici pubblici. I modelli RIG (Retrieval-Interleaved Generation) di DataGemma applicano la generazione intercalata di recupero per creare query in linguaggio naturale per ottenere dati da Data Commons. Al contempo, i modelli RAG (Retrieval-Augmented Generation) di DataGemma utilizzano la generazione aumentata dal recupero per ottenere dati da Data Commons che possono arricchire le istruzioni dei modelli.
  • PaliGemma: Questo modello vision-language accetta sia immagini che testo come input e produce testo come output. È quindi ideale per una serie di applicazioni, tra cui rispondere a domande su immagini, rilevare oggetti all'interno delle immagini, generare didascalie e leggere testo incorporato nelle immagini. La sua architettura sottostante consiste in un codificatore di immagini basato su trasformatore di visione e un decodificatore di testo basato su trasformatore inizializzato da Gemma 2B. PaliGemma include un set di modelli pre-addestrati di uso generale e un set di modelli orientati alla ricerca, ottimizzati su specifici set di dati di ricerca. Google sottolinea che la maggior parte dei modelli PaliGemma richiede un fine-tuning e che i risultati devono essere testati accuratamente prima dell'implementazione per gli utenti.
  • RecurrentGemma: Utilizza un'architettura di rete neurale ricorrente sviluppata dai ricercatori di Google. Questa caratteristica lo rende più veloce nell'inferenza, specialmente nella generazione di sequenze lunghe, e richiede meno memoria rispetto a Gemma. È disponibile in modelli 2B e 9B, sia pre-addestrati che istruiti.

Casi d'uso generali di Gemma

Mentre CodeGemma e PaliGemma hanno i loro casi d'uso specifici, in generale, i modelli Gemma possono essere impiegati per una vasta gamma di attività di elaborazione del linguaggio naturale (PNL) e comprensione del linguaggio naturale, tra cui:

  • Riassumere testo
  • Redigere e-mail
  • Scrivere codice
  • Generare formati di testo creativi
  • Estrarre informazioni
  • Rispondere a domande
  • Tradurre lingue (pur non essendo multilingue nella sua base, può essere adattato per compiti di traduzione tramite fine-tuning)
  • Sviluppare chatbot
  • Classificare testo

Come funziona Gemma: l'architettura del trasformatore

Gemma si basa su un modello trasformatore, un'architettura di reti neurali all'avanguardia che ha avuto origine in Google nel 2017. Questa architettura ha rivoluzionato il campo della PNL grazie alla sua capacità di elaborare sequenze di dati in parallelo.

Ecco un breve riassunto di come funzionano i modelli trasformatore:

  • I codificatori trasformano le sequenze di input in rappresentazioni numeriche chiamate embedding, che catturano la semantica e la posizione dei token nella sequenza di input.
  • Un meccanismo di auto-attenzione permette ai trasformatori di "focalizzare la propria attenzione" sui token più importanti della sequenza di input, indipendentemente dalla loro posizione.
  • I decodificatori utilizzano questo meccanismo di auto-attenzione e gli embedding dei codificatori per generare la sequenza di output statisticamente più probabile.

Tuttavia, Gemma utilizza una variante dell'architettura del trasformatore nota come trasformatore solo decodificatore. In questo modello, le sequenze di input vengono introdotte direttamente nel decodificatore, che continua a utilizzare embedding e meccanismi di attenzione per generare la sequenza di output.

Miglioramenti architettonici nella prima generazione di Gemma

I modelli Gemma di prima generazione migliorano l'architettura dei trasformatori attraverso alcuni elementi distintivi:

  • Ogni strato della rete neurale applica embedding posizionali rotativi anziché embedding posizionali assoluti. Gli embedding sono anche condivisi tra input e output per comprimere il modello, riducendone la dimensione e migliorando l'efficienza.
  • Gemma 7B impiega l'attenzione multi-testa, con multiple "teste di attenzione" che hanno le proprie chiavi e valori per catturare diversi tipi di relazioni tra i token. Al contrario, Gemma 2B impiega l'attenzione multi-query, in cui tutte le teste di attenzione condividono un unico set di chiavi e valori, migliorando la velocità e diminuendo il carico di memoria.

Innovazioni architettoniche di Gemma 2

Gemma 2 si distingue da Gemma per l'uso di reti neurali più profonde. Queste sono alcune altre notevoli differenze architettoniche:

  • In tutti gli altri strati della sua rete neurale, Gemma 2 alterna tra un'attenzione a finestra scorrevole locale e un'attenzione globale. L'attenzione a finestra scorrevole locale è un meccanismo dinamico per concentrarsi su determinate "finestre" di dimensione fissa delle sequenze di input, consentendo ai modelli di concentrarsi solo su poche parole alla volta. Nel frattempo, l'attenzione globale si occupa di ogni token nella sequenza.
  • Gemma 2 impiega anche l'attenzione a query raggruppate, un metodo "dividi et impera" che divide le query in gruppi più piccoli e calcola l'attenzione all'interno di ogni gruppo separatamente, ottimizzando l'elaborazione.
  • Inoltre, i modelli Gemma 2 2B e 9B applicano la distillazione della conoscenza, un processo che implica "distillare" la conoscenza da un modello più grande in uno più piccolo, addestrando il modello più piccolo a emulare il processo di ragionamento del primo e a far corrispondere le sue predizioni.

L'affinamento delle istruzioni: SFT e RLHF

Per quanto riguarda l'affinamento delle istruzioni, che prepara il modello a seguire meglio le indicazioni, sia Gemma che Gemma 2 applicano l'apprendimento supervisionato di affinamenti (SFT) e il rinforzo dall'apprendimento basato sul feedback umano (RLHF). L'affinamento supervisionato utilizza esempi etichettati di compiti orientati all'istruzione per insegnare al modello come strutturare le sue risposte. Nel frattempo, l'RLHF utilizza un modello di ricompensa per tradurre le valutazioni di qualità degli esperti umani in segnali di ricompensa numerici, aiutando i modelli a comprendere quali risposte ottengono un feedback positivo e a migliorare di conseguenza.

Questi meccanismi di addestramento e raffinamento sono fondamentali per garantire che i modelli Gemma non solo generino testo coerente, ma che siano anche in grado di comprendere e seguire le intenzioni degli utenti, rendendoli strumenti potenti e flessibili per una vasta gamma di applicazioni nel campo dell'intelligenza artificiale.