Il 4 gennaio 2024 il gruppo StatNLP della Singapore University of Technology and Design pubblica TinyLlama, un modello da 1,1 miliardi di parametri (1,1B), insieme al codice di addestramento, ai dataset e ai checkpoint intermedi, il tutto sotto licenza Apache 2.0 (arXiv:2401.02385). Per chi lavora sulla governance l’aspetto interessante non è il numero di parametri: è che la catena dai dati grezzi ai pesi finali si può ispezionare passo per passo.

Contesto

Gran parte dei modelli etichettati come “open” nel 2023 rilascia solo i pesi. Llama 2 di Meta distribuisce i checkpoint sotto una licenza che limita l’uso commerciale e non documenta in forma riproducibile come è composto il corpus di pre-training. Mistral 7B rilascia i pesi sotto Apache 2.0, ma non il dataset né il codice di addestramento. In entrambi i casi un terzo può eseguire e fare fine-tuning del modello, ma non sa rispondere alla domanda decisiva per un audit: con quali dati e con quale procedura si ottengono questi numeri?

TinyLlama si colloca su un altro livello di apertura. Il repository pubblica le ricette di elaborazione dei dati, gli script di addestramento e i checkpoint salvati a intervalli regolari durante il training, che l’abstract descrive come «circa 1.000 miliardi di token per un massimo di 3 epoche» — quindi dell’ordine dei 3.000 miliardi di token complessivi. A quel punto la distanza tra “pesi scaricabili” e “pipeline ricostruibile” si può verificare invece di prenderla per buona.

Architettura

Il modello riprende architettura e tokenizer di Llama 2: RoPE per il positional encoding, RMSNorm in configurazione pre-norm, attivazione SwiGLU e grouped-query attention con 32 query head e 4 gruppi key-value condivisi. La compatibilità con Llama 2 ha una conseguenza pratica precisa: ogni strumento dell’ecosistema Llama — quantizzazione, inferenza, librerie di fine-tuning — gira senza adattamenti.

L’addestramento mette insieme due corpora pubblici. SlimPajama, versione deduplicata e ripulita di RedPajama, fornisce il testo in linguaggio naturale; StarCoderData fornisce il codice. Il mix segue un rapporto linguaggio naturale/codice di 7:3, per un totale dichiarato di circa 1.000 miliardi di token unici ripetuti su un massimo di 3 epoche, quindi dell’ordine dei 3.000 miliardi complessivi. Il training gira su 16 GPU A100-40G in circa 90 giorni, con un throughput riportato di 24.000 token al secondo per GPU e una model FLOPs utilization del 56% senza activation checkpointing (arXiv:2401.02385, sezione 2). Per stare dentro i 40 GB di memoria GPU con batch da 16k token per device, gli autori usano Flash Attention 2, Fully Sharded Data Parallel di PyTorch e gli operatori SwiGLU fusi di xFormers.

Punto critico

La domanda di ricerca dichiarata riguarda le scaling law di Chinchilla (Hoffmann et al., 2022), che per un dato budget di calcolo indicano un rapporto ottimale di circa 20 token di addestramento per parametro. Con 1,1 miliardi di parametri, l’ottimo di calcolo si collocherebbe intorno ai 22 miliardi di token. TinyLlama ne usa circa 140 volte tanto. I benchmark pubblicati mostrano che le prestazioni continuano a migliorare anche nell’ultima fase del training, ben oltre il punto previsto da Chinchilla.

Sul deployment il conto torna. Le scaling law di Chinchilla minimizzano il costo di addestramento a parità di calcolo, ma un modello si addestra una volta e poi si esegue molte volte. Addestrare più a lungo un modello più piccolo sposta il costo dal training all’inferenza, dove conviene se il modello deve girare su hardware vincolato come edge o mobile. Il dato verificabile, qui, è la curva di benchmark in funzione dei token visti, non un giudizio qualitativo.

Per la governance il punto è un altro. Con i checkpoint intermedi pubblici, l’andamento delle metriche lungo il training resta ispezionabile da chiunque, senza rieseguire 90 giorni di calcolo su 16 A100. Un revisore può controllare se la curva dichiarata corrisponde ai checkpoint rilasciati: un claim documentato diventa così un claim riproducibile.

Implicazioni

Le definizioni di “AI aperta” in circolazione nel 2023 restano ambigue. La Open Source Initiative ha avviato a fine 2022 un processo pubblico per arrivare a una definizione di Open Source AI, ancora in corso a questa data, proprio perché applicare la Open Source Definition ai modelli obbliga a stabilire cosa debba essere disponibile oltre ai pesi: il codice di addestramento, i dati, o entrambi. Tre componenti che possono avere licenze e disponibilità del tutto indipendenti.

Un rilascio che comprende dataset, codice e checkpoint intermedi sotto Apache 2.0 soddisfa il caso più stringente tra quelli in discussione. È una proprietà che non dipende dalla scala: vale per un modello da 1B come per uno da 70B, e su scala ridotta la barriera economica alla riproduzione effettiva — non alla sola ispezione — è molto più bassa. Riaddestrare un modello da 1,1B su corpora pubblici è alla portata di un laboratorio accademico; rieseguire un training da centinaia di miliardi di parametri no. Sui modelli piccoli la verificabilità dichiarata e quella praticabile coincidono più facilmente.

Limiti

Aprire la pipeline non risolve la provenienza dei dati a monte. SlimPajama deriva da RedPajama, a sua volta replica di corpora web; risalire alla liceità d’uso di ogni documento sorgente resta fuori dalla portata del rilascio. La licenza Apache 2.0 copre codice e pesi, non dice nulla sui diritti dei contenuti di addestramento.

I benchmark riportati misurano le capacità su task standard di comprensione e generazione del linguaggio; non dicono nulla su robustezza adversariale, comportamento su input fuori distribuzione o bias sistematici, che richiedono valutazioni a parte. E un modello da 1,1B resta vincolato dai limiti di capacità della sua scala: la riproducibilità della pipeline è ortogonale alla qualità dell’output. Il rilascio rende verificabile come il modello è stato costruito, non quanto sia adatto a un dato compito a valle.


Immagine di copertina: Scheda grafica per data center NVIDIA Tesla A100 vista frontalmente, con corpo nero allungato e dissipatore in alluminio — foto di Nvidia, CC BY-SA 4.0 — https://commons.wikimedia.org/wiki/File:Nvidia_Tesla_A100.png