Meta rilascia Llama 3.1 405B, un modello linguistico con 405 miliardi di parametri, aprendo la strada a nuove possibilità di conversazione
Nonostante l’evidente, ampia attenzione intorno ai sistemi cosiddetti di “intelligenza artificiale generativa” (GenAI) con capacità di conversazione – l’esempio più noto è ChatGPT –, l’informazione sulle caratteristiche quantitative di questi sistemi non è così diffusa, e qualche volta è presentata in modo approssimativo, forse anche perché lo scopo della comunicazione è più di generare reazioni, tra tecnofilia e tecnofobia a seconda dei casi, che appunto di informare. E poi, si sa: i numeri attraggono, per la loro supposta oggettività, ma anche, per varie e più o meno buone ragioni, respingono…
C’è inoltre da considerare che dei modelli linguistici più noti, come il già nominato ChatGPT di OpenAI ma anche, per esempio, Gemini di Google e Claude di Anthropic, la Model Card, cioè la descrizione delle caratteristiche tecniche, rimane generalmente riservata, per ragioni addotte di sicurezza o di protezione di assetti competitivi.
È perciò particolarmente interessante che quando, il 23 luglio, Meta ha rilasciato ad accesso libero la nuova versione di Llama, il suo modello linguistico migliore, ne abbia pubblicato anche varie informazioni quantitative.
Per apprezzare la rilevanza della situazione, ricordiamo che il principale indice di complessità di un modello linguistico è il numero del suoi parametri, che, nell’analogia biologica, corrispondono alle sinapsi di un cervello e quindi alle sue “unità elementari di apprendimento”: un po’ sommariamente, tanti parametri, tanta capacità di essere addestrati e quindi di imparare. Ora, ricordando che la prima versione pubblica di ChatGPT, resa disponibile alla fine di novembre 2022, era basata su un modello (GPT 3.5) con 175 miliardi di parametri, il fatto che la versione per ora più sofisticata del suddetto Llama (Llama 3.1 405B) abbia 405 miliardi di parametri non è da sottovalutare: oggi è disponibile gratuitamente un modello che ha più del doppio dei parametri del modello da cui l’attuale vicenda dei chatbot è iniziata, poco meno di due anni fa!
Avventuriamoci allora in un’analisi, con qualche elaborazione, delle caratteristiche quantitative più interessanti di Llama 3.1 405B , che d’ora in poi chiameremo “Llama” per brevità. Per trasparenza, mostreremo anche qualche calcolo, peraltro sempre solo per ordini di grandezza (e dunque con attenzione soprattutto alle potenze di 10: milioni (10 alla 6), miliardi (10 alla 9), e così via), ma chi preferisce può limitarsi a dare un’occhiata alle conclusioni, evidenziate, che via via trarremo.
Di Llama sappiamo innanzitutto che ha dunque 405 miliardi di parametri (N = 405 x 10 alla 9), e che è stato addestrato con un insieme di testi per complessivamente quindicimila miliardi di token (D = 15 x 10 alla 12) (https://ai.meta.com/blog/meta-llama-3-1). Dato che un token è approssimativamente 0,75 parole, perché alcune parole sono divise in due o più token, per esempio per gestire i suffissi (per esempio la parola “certezza” potrebbe essere trattata come composta dei due token “cert” e “ezza”), Llama è stato addestrato approssimativamente con diecimila miliardi, 10 alla 13, di parole. Assumendo una media di cinquantamila parole per libro, è l’equivalente di 10 alla 13 / (5 x 10 alla 4) = 2 x 10 alla 8 libri. Il modello è stato addestrato facendogli leggere l’equivalente di duecento milioni di libri.
Già nel 2020, OpenAI stimò che il numero di operazioni elementari di calcolo richieste per il buon addestramento di un modello linguistico dipenda primariamente da quanti parametri ci sono da addestrare (N) e da quanti token (D) vengono usati per l’addestramento, secondo la formula empirica 6 x N x D FLOP (FLOP è l’acronimo di Floating-Point OPeration, cioè, in pratica, operazione elementare su numeri decimali svolta da un calcolatore). Dunque nel caso di Llama 6 x 405 x 10 alla 9 x 15 x 10 alla 12, pari a circa 3 x 10 alla 25 FLOP. Il modello è stato addestrato eseguendo trenta milioni di miliardi di miliardi di operazioni elementari di calcolo.
Ha l’aria di essere un numero davvero grande, ma quanto grande? Proviamo a intuirlo mettendolo alla prova in una situazione che ci è familiare: l’impiego di un personal computer. Il microprocessore che si trova al suo interno potrebbe avere una potenza di calcolo di mille miliardi di operazioni elementari al secondo, cioè 1 TFLOPS = 10 alla 12 FLOPS (FLOPS è l’acronimo di Floating-Point OPeration per Second)
(https://www.intel.com/content/dam/support/us/en/documents/processors/APP-for-Intel-Core-Processors.pdf). Per addestrare Llama su un personal computer (che peraltro, si noti, dovrebbe avere non meno di 1 TB di RAM…) sarebbero dunque necessari 3 x 10 alla 25 FLOP / 10 alla 12 FLOPS = 3 x 10 alla 13 secondi. Poiché in un anno ci sono 60 x 60 x 24 x 365 secondi, cioè circa 3 x 10 alla 7 secondi, per questo addestramento sarebbero necessari 3 x 10 alla 13 / 3 x 10 alla 7 anni. Per addestrare il modello con un personal computer occorrerebbe farlo funzionare ininterrottamente per un milione di anni.
È dunque ben ovvio che per realizzare questo addestramento sia necessario un sistema hardware enormemente più potente di un personal computer: si spiega così l’importanza che hanno assunto recentemente quei microprocessori capaci di calcolo parallelo chiamati GPU, il cui principale produttore, Nvidia , ha visto la sua capitalizzazione passare da cento miliardi di dollari nel 2020 agli attuali tremila miliardi di dollari.
Per l’addestramento di Llama, Meta ha usato sedicimila GPU Nvidia H100, con prestazioni di picco, per le operazioni richieste, di 2000 TFLOPS = 2 PFLOPS = 2 x 10 alla 15 FLOPS (dunque una di queste GPU è duemila volte più potente del microprocessore di un personal computer). Il tempo minimo per l’addestramento di Llama è perciò di 3 x 10 alla 25 FLOP / (1.6 x 104 x 2 x 10 alla 15 FLOPS) = 10 alla 6 s. Dato che in un giorno ci sono circa 10 alla 5 secondi, l’addestramento del modello ha richiesto qualche decina di giorni (e infatti il tempo dichiarato è di 54 giorni: raramente si opera in condizioni di picco).
Una GPU H100 oggi costa circa trentamila dollari, 3 x 10 alla 4 $. Dunque il costo nominale di acquisto della GPU farm che Meta ha impiegato per l’addestramento di Llama è 3 x 10 alla 4 x 1.6 x 10 alla 4, circa 5 x 10 alla 8 $. Ipotizzando un fattore 2 per tener conto di tutti i costi collegati (edifici, impianti, …), diventano 10 alla 9 $. L’infrastruttura per l’addestramento del modello è costata un miliardo di dollari.
Non è però questo l’unico costo che deve essere sostenuto. Come ci viene ricordato frequentemente, il processo di addestramento di un modello linguistico complesso richiede infatti anche una notevole quantità di energia, e questo appunto perché le GPU sono sistemi energivori. Una GPU H100 consuma 700 W di picco, che supponiamo diventi 1 kW con il sistema di raffreddamento. Complessivamente 10 alla 3 W x 1.6 x 10 alla 4, cioè circa 10 alla 7 W = 10 MW. Per addestrare il modello è necessaria una potenza di dieci megawatt.
Supponendo che l’energia abbia un costo di 100 € per MWh, e considerando che 50 giorni per 24 ore al giorno sono circa 1000 ore, una potenza di 10 MW per 50 giorni ha un costo di 100 x 10 x 1000 ore = 10 alla 6 €. Il costo in energia per addestrare il modello è stato di un milione di dollari, che è evidentemente una cifra ragguardevole, benché mille volte inferiore del costo dell’infrastruttura, che per altro è largamente riutilizzabile.
Per concludere, diamo ancora due indicazioni di contesto. Primo, le stime che abbiamo proposto si riferiscono a un modello con 405 miliardi di parametri; si ipotizza che GPT 4 potrebbe avere 1800 miliardi di parametri, cioè oltre 4 volte di più (https://en.wikipedia.org/wiki/GPT-4). Secondo, in settembre 2024 xAI ha attivato una GPU farm con centomila GPU H100 (https://www.nasdaq.com/articles/xais-colossus-goes-live-most-powerful-ai-training-system-world-says-musk-what-does-mean) (https://x.com/elonmusk/status/1830650370336473253), così che in questo caso i numeri precedenti andrebbero scalati quasi di un fattore 10 (un’infrastruttura del costo di 10 miliardi di dollari, che richiede 100 megawatt di potenza, e così via).
Ricordando nuovamente che quanto abbiamo scritto va inteso solo per ordini di grandezza, lasciamo a ognuno di commentare questi numeri.


Leave a Reply