Introduzione ai modelli Granite 4.2
Granite 4.2 rappresenta una pietra miliare significativa nello sviluppo dei modelli linguistici della famiglia Granite, segnando il passaggio dalla generazione precedente, orientata principalmente al seguire istruzioni, verso una nuova era focalizzata sul ragionamento esplicito e sulle capacità agentive avanzate. Questa famiglia di modelli è stata progettata per affrontare sfide complesse che richiedono non solo la comprensione del linguaggio naturale, ma anche il ragionamento deliberato, la risoluzione di problemi matematici, la generazione di codice e l'interazione con ambienti reali attraverso strumenti e terminali.
I modelli Granite 4.2 sono disponibili in tre varianti di dimensioni: 3B, 8B e 30B parametri. Questa scala diversificata consente ai ricercatori e agli sviluppatori di scegliere il modello più appropriato per le loro esigenze specifiche, bilanciando le capacità di ragionamento con i vincoli computazionali e i requisiti di latenza. Tutti e tre i modelli condividono la stessa architettura fondamentale e seguono lo stesso pipeline di addestramento, anche se con differenze importanti nel post-training, soprattutto per quanto riguarda le capacità agentive.
L'architettura fondamentale di Granite 4.2
Granite 4.2 è costruito su un'architettura transformer densa decoder-only, un design consolidato nel panorama dei modelli linguistici moderni. Questa architettura rappresenta la scelta standard per la maggior parte dei modelli linguistici di punta attuali, fornendo un equilibrio ottimale tra capacità di modellazione, efficienza computazionale e scalabilità.
I modelli Granite 4.2 sono effettivamente post-training basati sui modelli base Granite 4.1, non costruiti da zero. I modelli base Granite 4.1 sono stati pre-addestrati da scratch su approssimativamente 15 trilioni di token utilizzando una strategia di addestramento in cinque fasi. Questa quantità massiccia di dati è fondamentale per sviluppare una comprensione robusta e versatile del linguaggio naturale, della matematica, della codifica e di numerosi altri domini del sapere umano.
La strategia di pre-training in cinque fasi
Il pre-training dei modelli Granite 4.1 base segue un approccio sofisticato e graduale, diviso in cinque fasi ben definite, ognuna con obiettivi specifici e caratteristiche distintive.
Le fasi 1 e 2 si concentrano sul pre-training fondamentale. In questa fase iniziale, il modello viene esposto a vasti corpus di dati su scala web, permettendogli di acquisire conoscenze generali di base e di sviluppare una rappresentazione interna solida del linguaggio. Durante queste fasi, il modello apprende i pattern linguistici fondamentali, la conoscenza del mondo, e sviluppa una comprensione intuitiva della struttura del linguaggio naturale.
Le fasi 3 e 4 rappresentano il mid-training con dati progressivamente di qualità superiore e annealing dei dati. In queste fasi, l'attenzione si sposta verso dati più curati e di alta qualità, spesso provenienti da fonti accademiche, tecnico-scientifiche e altre risorse specializzate. L'annealing dei dati, un processo che riduce gradualmente la diversità e aumenta la concentrazione su dati ad alta qualità, aiuta il modello a raffinare la sua comprensione e a specializzarsi in domini particolarmente importanti.
La fase 5 introduce l'addestramento con contesto lungo, estendendo la finestra di contesto fino a 512.000 token. Questa è una capacità rivoluzionaria che consente al modello di processare e mantenere coerenza su documenti lunghi, conversazioni estese e sequenze complesse. Una finestra di contesto così ampia è cruciale per applicazioni che richiedono la comprensione e la sintesi di grandi volumi di informazioni correlate.
Ogni fase utilizza una miscela di dati distinta e un programma di learning rate specifico, con un graduale spostamento dai dati su scala web ampia verso fonti più curate e di alta qualità. Questa progettazione del curriculum di addestramento riflette una comprensione sofisticata di come i modelli linguistici imparano meglio: iniziare con una visione ampia e poi affinare con materiale specializzato.
Fine-tuning supervisionato: trasformazione in assistente ragionante
Dopo il pre-training di base, il modello Granite 4.1 viene sottoposto a fine-tuning supervisionato (SFT), un processo cruciale che trasforma il modello generico in un assistente affidabile, capace di seguire istruzioni, ragionare e utilizzare strumenti. Questo passaggio è fondamentale per passare dalle capacità grezzo del pre-training a comportamenti controllati e utili.
La miscela di dati SFT combina dati agentivi (31,6%) e non agentivi (68,4%), per un totale di approssimativamente 7,2 milioni di campioni, equivalenti a circa 100 miliardi di token, di cui approssimativamente 65 miliardi sono addestrabili. Questa composizione equilibrata consente al modello di acquisire sia le capacità di ragionamento fondamentali che le abilità specializzate nel controllo di agenti.
Il corpus agentivo: apprendere a operare negli ambienti reali
Il corpus agentivo copre un'ampia gamma di domini specializzati, con una distribuzione ben definita:
- Ingegneria del software (SWE): 69% - la porzione dominante, incentrata su compiti di codifica, debugging, e sviluppo di software complessi
- Chiamate a strumenti (tool calling): 12,1% - apprendere a identificare quando e quale strumento utilizzare
- Utilizzo del terminale: 8,0% - interagire con sistemi operativi e ambienti command-line
- Matematica: 3,5% - risolvere problemi matematici complessi
- Ricerca web: 0,8% - cercare informazioni da fonti online
- Azione: 0,2% - azioni generiche in ambienti agentivi
Questi campioni e traiettorie sono generati utilizzando un insieme diversificato di scaffold e harness agentivi, tra cui OpenHands, OpenCode, Terminus-2, SWE-agent, OpenResearcher, MiniSWE, OpenSeeker, EnvScaler, Gemini CLI, Hermes, Codex e Goose. Questo ecosistema di strumenti riflette uno sforzo coordonato per creare dati di addestramento realistici e variati.
Il corpus agentivo combina campioni da dataset open-source e dati sinteticamente generati dagli ambienti RL propri dell'organizzazione, abbracciando una varietà di combinazioni agente-harness. Questo approccio ibrido garantisce che il modello sia esposto sia a scenari realistici documentati che a casi generati sinteticamente per coprire lacune specifiche.
Il corpus non agentivo: fondamenti del ragionamento generale
Il corpus non agentivo, che rappresenta la maggioranza della miscela SFT, consiste di diverse categorie principali:
- Instruction following: 18,8% - capacità di comprendere e eseguire istruzioni complesse
- Coding: 18,8% - generazione di codice di alta qualità in vari linguaggi di programmazione
- Matematica: 14,6% - ragionamento matematico e risoluzione di problemi
- Multilingual: 7,0% - capacità in molteplici lingue
- Scienza: 5,4% - ragionamento e conoscenza scientifica
- Ragionamento: 3,0% - processamento logico e catena di pensiero
- Sicurezza: 0,8% - comportamento sicuro e consapevolezza dei rischi
Questa distribuzione ben calibrata assicura che il modello sviluppi un insieme equilibrato di capacità generali, con enfasi particolare sulla codifica e sul seguire istruzioni, che sono tra le competenze più ricercate nei modelli linguistici moderni.
Controllo della qualità e pulizia dei dati
Prima che un campione entri nella miscela SFT finale, vengono applicati molteplici stadi di controllo della qualità, un processo rigoroso che distingue la qualità dei modelli Granite 4.2.
Primo stadio: normalizzazione e riformattazione. I dati provenienti da diverse fonti vengono normalizzati e riformattati in un formato consistente OpenAI Chat, garantendo che la struttura delle conversazioni e le interazioni con gli strumenti siano uniformi su tutti i dataset e gli scaffold. Questo passaggio è fondamentale per garantire coerenza nell'addestramento e per prevenire che il modello impari pattern specifici di una singola fonte dati.
Secondo stadio: valutazione della qualità basata su LLM. Vengono utilizzati GPT-OSS-120B e Gemma 4 come giudici basati su LLM per valutare la qualità dei campioni. I campioni con punteggio basso vengono rimossi, così come i campioni contenenti informazioni allucinatorie o fabbricate, interazioni non valide con i strumenti, o chiamate a funzioni non definite nella lista di strumenti corrispondente. Questo approccio sfrutta la capacità dei modelli linguistici avanzati di identificare sottili problemi di qualità che gli euristica semplici potrebbero perdere.
Terzo stadio: regole euristiche specifiche per dataset. Vengono applicate diverse regole euristiche mirate e specifiche per il dataset dove appropriato, per migliorare ulteriormente la qualità e rimuovere fonti note di rumore. Queste regole sono sviluppate attraverso l'analisi empirica degli errori più comuni in ciascun dataset.
Quarto stadio: deduplicazione. Viene eseguita sia deduplicazione locale che globale basata su hash SHA-256 calcolati sulla combinazione dei campi tools e messages. Questo rimuove campioni duplicati sia all'interno delle singole fonti di dati che su tutta la miscela SFT. La deduplicazione è essenziale per garantire che il modello non dedichi budget di addestramento all'apprendimento dello stesso campione più volte.
Dopo la pulizia, l'intero corpus viene globalmente mescolato per ridurre gli effetti di ordinamento e garantire che i campioni provenienti da diversi domini siano ben miscelati durante l'addestramento. Il corpus mescolato viene quindi suddiviso in frammenti di dimensioni uguali in formato .parquet, che vengono tokenizzati utilizzando il tokenizer e il chat template del modello e preparati per l'addestramento distribuito su larga scala.
Configurazione e ottimizzazione dell'addestramento SFT
Prima di lanciare i test di addestramento finale su larga scala, viene effettuata un'ottimizzazione degli iperparametri su configurazioni rappresentative, scandagliando programmi di learning rate, learning rate iniziali e rapporti di warm-up per trovare impostazioni che si addestrano stabilmente su diverse dimensioni di modello. Questa fase è fondamentale per garantire che il processo di addestramento sia robusto e efficiente.
Per il modello 30B, viene inoltre eseguita una seconda fase di SFT focalizzata specificamente sulla codifica agentiva. In questa fase, i dati agentivi, SWE e di codifica vengono sovracampionati per aumentare il loro contributo effettivo alla distribuzione di addestramento, mentre approssimativamente il 16% della miscela viene mantenuto come dati di replay dal corpus SFT originale. Il modello 30B viene quindi sottoposto a fine-tuning per approssimativamente un'epoca aggiuntiva con un learning rate inferiore di 3,0e-6. Questa fase mirata aumenta l'esposizione del modello alle traiettorie di codifica agentiva senza scartare le capacità acquisite durante la fase SFT iniziale.
La pipeline di reinforcement learning multi-stage
Dopo il SFT, viene applicata una sofisticata pipeline di reinforcement learning multi-stage e multi-ambiente. Piuttosto che un singolo passaggio RL, viene eseguita una catena di stage focalizzati che abbracciano numerosi ambienti: matematica, codice, scienza, instruction following, tool use e structured output, seguiti da ingegneria del software, utilizzo del terminale e ricerca web. Ogni stage è una corsa RL indipendente che mira a una capacità specifica e avvia da caldo dal checkpoint dello stage precedente.
Questo approccio curriculum di RL è sofisticato e ben ponderato. Gli stage fondamentali (RLVR, code booster, science RL, instruction RL, tool use e structured output) vengono eseguiti su tutti e tre i modelli (3B, 8B e 30B). Gli stage agentivi (SWE → Terminal → Search) vengono eseguiti solo sui modelli 8B e 30B, riconoscendo che i modelli più piccoli potrebbero avere difficoltà a controllare ambienti complessi. Infine, tutti i modelli terminano con RLHF (Reinforcement Learning from Human Feedback).
L'algoritmo GRPO (Group Relative Policy Optimization)
Ogni stage viene addestrato utilizzando GRPO asincrono (Group Relative Policy Optimization), un algoritmo di RL all'avanguardia che consente al generatore e al trainer di non bloccarsi a vicenda. In questo schema, un pool di worker di generazione mantiene il campionamento di risposte e deposita le traiettorie completate in un buffer condiviso. Una volta che il buffer contiene abbastanza dati per un passaggio completo, il trainer estrae quel batch, esegue un passaggio dell'ottimizz