I carichi di lavoro dell'intelligenza artificiale richiedono una quantità folle di elaborazione per essere praticabili. Il motivo è che sono enormi file digitali che vantano miliardi di parametri che occupano cifre doppie o triple in GigaByte e, in alcuni casi, come i modelli di frontiera, TeraByte di dimensioni.
A peggiorare le cose, a causa della loro struttura, questi modelli vengono interrogati ogni volta che devono prevedere qualcosa, il che, in termini di testo, significa che vengono interrogati per ogni nuova parola che prevedono.
Pertanto, per evitare che la latenza diventi insopportabile, dobbiamo archiviarli nella RAM, che è scarsa anche per le GPU avanzate. Di conseguenza, per distribuire questi modelli con sicurezza, richiedono potenziali centinaia o addirittura migliaia di GPU che lavorano all'unisono.
E sebbene tutto ruoti attorno all'algebra lineare, il che significa che ciascuno di questi calcoli non è particolarmente complesso, il loro numero elevato assicura inevitabilmente che la complessità globale sia enorme.
Ma le parole semplici hanno poco peso rispetto alla visione di numeri reali. Quindi, se vogliamo immaginare quanto sarà grande la prossima frontiera del modello, quanto è costoso addestrare un LLM?
Per determinare una stima, dobbiamo calcolare il numero di FLOP richiesti. I FLOP sono operazioni in virgola mobile al secondo, o il numero totale di calcoli al secondo necessari per addestrare (o eseguire) il modello.
Seguendo il documento sulle leggi di scala di OpenAI, possiamo stimare la quantità totale di FLOP con l'equazione Costo = 6 x N x D, dove:"N" si riferisce al numero di parametri non incorporati del modello (per modelli molto grandi, i parametri incorporati sono trascurabili, quindi possiamo semplicemente prendere il valore globale);"D" si riferisce alla quantità di token di addestramento utilizzati per addestrare il modello
Ma questa formula molto semplicistica è accurata? Prendiamo come esempio Llama 3.1 405B, l'LLM all'avanguardia di Meta: 'N' = 405 miliardi (come detto, solo 2 miliardi su 405, ovvero lo 0,49%, sono parametri di incorporamento, quindi possiamo prendere il valore totale);'D' = 15 trilioni di token come riportato da Meta stessa
Applicando questa formula otteniamo una quantità totale di FLOP di cui Meta ha avuto bisogno per addestrare questo modello come: FLOP totali = 6 x 405 x 10⁹ x 15 x 10¹² = 36.450 x 10²¹, ovvero 3,6 x 10²⁵, estremamente vicino al valore effettivamente riportato da Meta di 3,8 x 10²⁵.
Un'altra cosa interessante che possiamo fare è stimare quanto tempo hanno impiegato per addestrare il modello.
Utilizzando l'effettivo documento di ricerca, sappiamo che hanno utilizzato un cluster di 16k Nvidia H100. Sappiamo anche che il modello è stato addestrato su precisione mista, precisione di peso FP16 (o 2 byte per peso), con gli Adam Optimizer con precisione FP32 (o 4 byte per peso). Ciò significa che le prestazioni di picco di un singolo NVIDIA H100 sono 1.979 TeraFlops.
Sebbene queste siano le prestazioni di picco (non la produttività effettiva di ogni GPU), ciò significa che 16k H100 hanno una potenza di calcolo totale di 1.979 x 10¹² x 16 x 10³ = 31.664 x 10¹⁵, o 3,2 x 10¹⁹ FLOP.
Di conseguenza, per raggiungere i costi di addestramento totali di Llama 3.1 405B calcolati in precedenza, il cluster ha dovuto funzionare per 3,8 x 10²⁵ / 3,2 x 10¹⁹ = 1,48 x 10⁶ secondi, ovvero 14 giorni.
Ma ecco il punto: questa stima non è nemmeno lontanamente vicina. Il modello è stato effettivamente addestrato per 54 giorni, dopo aver tenuto conto di un Model Flop Utilization medio che andava dal 38 al 43% lungo tre fasi di pre-addestramento.
Per farla breve, non vale la pena stimare la durata ideale dell'addestramento, poiché la realtà è molto, molto più scoraggiante. Tuttavia, il modello ha impiegato tre volte i giorni per addestrarsi rispetto al valore teorico.
E quali sono stati i costi economici totali?
Un cluster NVIDIA H100 da 16k costa, più o meno, 960 milioni di dollari in costi di capitale.
A 30.000 $ per GPU, il costo di capitale delle sole GPU è di 480 milioni di dollari
Nei numeri dei data center AI, terreni, appaltatori e altre attrezzature necessarie rappresentano un altro 50% del costo totale, aggiungendo altri 480 milioni di dollari.
Per quanto riguarda i costi di gestione dell'esecuzione dell'addestramento, le cose sono un po' più complicate. Se prendiamo la tariffa media dell'elettricità industriale statunitense di 0,083 €/KWh
e supponiamo che i Watt effettivi richiesti per far funzionare ogni GPU siano circa il doppio del Thermal Design Power (TDP) della GPU (secondo SemiAnalysis per tenere conto di costi di rete, raffreddamento e altri costi), che secondo NVIDIA è di 700 W, ciò significa che il carico di potenza effettivo richiesto è 1400 x 16.000 = 22,4 MW.
Pertanto, in funzione per 42,5 giorni, i costi di gestione di un tale data center alla massima potenza costerebbero circa 22,4 x 10³ KW x 24 x 54 = 29,03 x 10⁶ KW x 0,083 €/KWh = 2,41 milioni di $, ovvero solo lo 0,25% del costo totale di proprietà (TCO).
Alla luce di tutto ciò, ci restano i pensieri e le preghiere per le aziende che hanno investito quasi tutti i loro soldi nell’espansione dell’intelligenza artificiale.
Nessun commento:
Posta un commento