ANALISI

Training dei modelli di AI: Google DeepMind sviluppa DiLoCo, soluzione decentralizzata



Indirizzo copiato

Distributed Low-Communication Training of Language Models è un metodo che consiste nel distribuire il compito di addestramento tra molti data center più piccoli, facendo a meno di enormi cluster di calcolo su misura, con i relativi costi iniziali. Ecco come funziona in dettaglio

Pubblicato il 10 gen 2025



DiLoCo

Appena 18 mesi fa, OpenAI ha addestrato GPT-4, il suo modello linguistico di grandi dimensioni (LLM) allora all’avanguardia, su una rete di circa 25mila unità di elaborazione grafica (GPU) di Nvidia, allora all’avanguardia. Ora Elon Musk e Mark Zuckerberg, capi rispettivamente di X e Meta, gareggiano a colpi di chip: Musk ha dichiarato di avere 100mila GPU in un centro dati e di volerne acquistare 200mila. Zuckerberg dice che ne acquisterà 350mila.

Appare ovvio che questa gara a costruire cluster di calcolo sempre più grandi per modelli di intelligenza artificiale sempre più potenti non può continuare all’infinito. Ogni chip in più aggiunge non solo potenza di elaborazione, ma anche l’onere organizzativo di mantenere sincronizzato l’intero cluster. Più chip ci sono, più tempo i chip del data center passeranno a trasportare i dati anziché svolgere un lavoro utile. Aumentando semplicemente il numero di GPU si otterranno rendimenti decrescenti.

Alla ricerca di modi meno dipendiosi per il training dei futuri modelli di AI

Gli informatici sono quindi alla ricerca di modi più intelligenti e meno dispendiosi in termini di risorse per addestrare i futuri modelli di intelligenza artificiale. La soluzione potrebbe consistere nell’abbandonare del tutto gli enormi cluster di calcolo su misura (e i relativi costi iniziali) per distribuire invece il compito di addestramento tra molti centri dati più piccoli. Secondo alcuni esperti, questo potrebbe essere il primo passo verso un obiettivo ancora più ambizioso: addestrare i modelli di AI senza bisogno di hardware dedicato.

L’addestramento di un moderno sistema di intelligenza artificiale comporta l’acquisizione di dati – ad esempio frasi o la struttura di una proteina – di cui sono state nascoste alcune sezioni. Il modello tira a indovinare cosa potrebbero contenere le sezioni nascoste. Se sbaglia, il modello viene modificato da un processo matematico chiamato backpropagation in modo che, la volta successiva che proverà a fare la stessa previsione, si avvicinerà infinitamente di più alla risposta corretta.

Il problema del checkpointing e la soluzione DiLoCo

I problemi sorgono quando si vuole essere in grado di lavorare “in parallelo”, ovvero avere 2 o 200mila GPU che lavorano contemporaneamente alla backpropagation. Dopo ogni fase, i chip condividono i dati relativi alle modifiche apportate. Se non lo facessero, non si avrebbe una singola sessione di addestramento, ma 200mila chip che addestrano 200mila modelli da soli. Questa fase, chiamata “checkpointing”, può diventare rapidamente complicata. C’è un solo collegamento tra due chip, ma 190 tra 20 chip e quasi 20 miliardi per 200mila chip. Il tempo necessario per il checkpoint cresce in modo proporzionale. Nel caso di grandi esercitazioni, spesso circa la metà del tempo può essere impiegata per il checkpoint.

Tutto questo tempo sprecato ha fatto venire un’idea ad Arthur Douillard, ingegnere di Google DeepMind. Fare meno checkpoint. Alla fine del 2023, lui e i suoi colleghi hanno pubblicato un metodo: “Distributed Low-Communication Training of Language Models”, o DiLoCo. Invece di eseguire l’addestramento su 100mila GPU, che parlano tutte tra loro a ogni passo, DiLoCo descrive come distribuire l’addestramento su diverse “isole”, ognuna delle quali è ancora un centro dati di grandi dimensioni. All’interno delle isole, il checkpointing continua normalmente, ma tra di esse il carico di comunicazione si riduce di 500 volte.

Questo metodo comporta dei compromessi. I modelli addestrati in questo modo sembrano faticare a raggiungere le stesse prestazioni di picco di quelli addestrati nei data center monolitici. Ma è interessante notare che questo impatto sembra esistere solo quando i modelli vengono valutati per gli stessi compiti per cui sono stati addestrati: prevedere i dati mancanti.

Quando vengono sottoposti a previsioni che non sono mai state richieste loro prima, sembrano generalizzare meglio. Se si chiede loro di rispondere a una domanda di ragionamento in una forma non presente nei dati di addestramento, potrebbero surclassare i modelli addestrati tradizionalmente. Questo potrebbe essere un artefatto del fatto che ogni isola di calcolo è un po’ più libera di andare nella propria direzione tra un checkpoint e l’altro, quando vengono riportati al loro compito. Come una coorte di studenti universitari che formano i propri gruppi di ricerca invece di ricevere lezioni in massa, il risultato finale è un po’ meno concentrato sul compito da svolgere, ma con un’esperienza molto più ampia.

Scheda tecnica: DiLoCo

I modelli linguistici di grandi dimensioni (LLM) sono diventati una componente critica in molte applicazioni di apprendimento automatico. Tuttavia, gli approcci standard all’addestramento degli LLM richiedono un gran numero di acceleratori strettamente interconnessi, con dispositivi che si scambiano gradienti e altri stati intermedi a ogni passo di ottimizzazione. Mentre è difficile costruire e mantenere un singolo cluster di calcolo che ospiti molti acceleratori, potrebbe essere più facile trovare diversi cluster di calcolo che ospitino ciascuno un numero minore di dispositivi. Distributed Low-Communication (DiLoCo), algoritmo di ottimizzazione distribuita, consente l’addestramento di modelli linguistici su isole di dispositivi scarsamente connessi.

DiLoCo
DiLoCo: In primo luogo, un modello preaddestrato 𝜃 (0) viene replicato 𝑘 volte (in questa illustrazione 𝑘 = 4) e ogni worker 𝜃 (1) 𝑖 addestra una replica del modello sul proprio shard di dati per 𝐻 passi indipendentemente e in parallelo. In seguito, i lavoratori fanno la media dei loro gradienti esterni e un ottimizzatore esterno aggiorna la copia globale dei parametri 𝜃 (1) . Questa verrà poi rispedita ai lavoratori. Il processo si ripete 𝑇 volte (in questa illustrazione sono mostrate solo le prime due iterazioni). Ogni replica può essere addestrata in diverse località del mondo, con diversi acceleratori.

L’approccio è una variante della media federata, in cui il numero di passi interni è elevato, l’ottimizzatore interno è AdamW e quello esterno è Nesterov momentum. Sul dataset C4, ampiamente utilizzato, DiLoCo su 8 lavoratori ottiene le stesse prestazioni dell’ottimizzazione completamente sincrona, comunicando 500 volte in meno.

DiLoCo mostra una grande robustezza rispetto alla distribuzione dei dati di ciascun lavoratore. È anche robusto alle risorse che diventano indisponibili nel tempo e, viceversa, può sfruttare senza problemi le risorse che si rendono disponibili durante l’addestramento.

DiLoCo
DiLoCo
Risultato principale: il preaddestramento del modello Llama a 150 milioni di parametri con 8 lavoratori DiLoCo produce una perplessità significativamente inferiore rispetto alla linea di base senza DiLoCo, e anche rispetto alla linea di base che utilizza una dimensione del batch 8 volte maggiore con lo stesso budget di calcolo, comunicando al contempo 500 volte in meno.

La validazione empirica dimostra la robustezza di DiLoCo su diversi fronti, dal tipo di distribuzione dei dati che ogni lavoratore consuma, al numero di passi di ottimizzazione interna, al numero di lavoratori che possono anche cambiare nel tempo. In conclusione, DiLoCo è un modo robusto ed efficace per distribuire l’addestramento di modelli linguistici trasformatori quando ci sono diverse macchine disponibili ma scarsamente connesse. Naturalmente, resta da vedere se questi risultati sono generalizzabili a modelli di scala maggiore o ad altri domini e tipi di architettura.

L’evoluzione: OpenDiLoCo

Vincent Weisser, fondatore di Prime Intellect, un laboratorio di intelligenza artificiale open-source, ha preso DiLoCo e lo ha portato avanti. Nel novembre 2024, il suo team ha completato l’addestramento di Intellect-1, un LLM da 10 miliardi di parametri paragonabile a Llama 2 di Meta, addestrato centralmente (rilasciato nel 2023).

Il team di Weisser ha costruito OpenDiLoCo, una versione leggermente modificata dell’originale di Douillard, e l’ha messa al lavoro per addestrare un nuovo modello utilizzando 30 cluster di GPU in otto città di tre continenti. Nelle sue prove, le GPU hanno lavorato attivamente per l’83% del tempo, rispetto al 100% dello scenario di base, in cui tutte le GPU si trovavano nello stesso edificio. Quando l’addestramento è stato limitato ai data center in America, le GPU hanno lavorato attivamente per il 96% del tempo. Invece di eseguire il checkpoint a ogni passo di addestramento, l’approccio di Weisser esegue il checkpoint solo ogni 500 passi. E invece di condividere tutte le informazioni su ogni modifica, “quantizza” le modifiche, eliminando i tre quarti meno significativi dei dati.

Scheda tecnica: OpenDiLoCo

OpenDiLoCo è un’implementazione e una replica open-source del metodo di addestramento Distributed LowCommunication (DiLoCo) per modelli linguistici di grandi dimensioni. Nel lavoro di presentazione, gli autori forniscono un’implementazione riproducibile degli esperimenti DiLoCo, offrendoli all’interno di un quadro di addestramento scalabile e decentralizzato che utilizza la libreria Hivemind. Dimostrano la sua efficacia addestrando un modello in due continenti e tre Paesi, mantenendo un utilizzo dei calcoli del 90-95%. Inoltre, conducono studi sulle ablazioni, concentrandosi sull’efficienza di calcolo dell’algoritmo, sulla scalabilità del numero di lavoratori e dimostrando che i suoi gradienti possono essere tutti ridotti utilizzando FP16 senza alcun degrado delle prestazioni.

Inoltre, scalano OpenDiLoCo a dimensioni tre volte superiori a quelle del lavoro originale, dimostrando la sua efficacia per modelli con miliardi di parametri.

Decentralized training with OpenDiLoCo

I vantaggi dell’approccio distribuito

Per i laboratori più avanzati, con centri dati monolitici già costruiti, non c’è ancora un motivo urgente per passare alla formazione distribuita. Ma, con il tempo, Douillard pensa che il suo approccio diventerà la norma. I vantaggi sono evidenti e gli svantaggi, almeno quelli illustrati dai piccoli addestramenti completati finora, sembrano essere piuttosto limitati.

Per un laboratorio open-source come Prime Intellect, l’approccio distribuito presenta altri vantaggi. I centri dati sufficientemente grandi per addestrare un modello da 10 miliardi di parametri sono pochi e lontani tra loro. Questa scarsità fa lievitare i prezzi per accedere ai loro calcoli, sempre che siano disponibili sul mercato aperto, invece di essere accaparrati dalle aziende che li hanno costruiti. Tuttavia, i cluster più piccoli sono facilmente disponibili. Ognuno dei 30 cluster utilizzati da Prime Intellect era costituito da un rack di sole otto GPU, con un massimo di 14 cluster online in qualsiasi momento. Questa risorsa è mille volte più piccola dei centri dati utilizzati dai laboratori di frontiera, ma né Weisser né Douillard vedono alcun motivo per cui il loro approccio non possa essere scalato.

Per Weisser, la motivazione della distribuzione della formazione è anche la distribuzione dell’energia, e non solo in senso elettrico. “È estremamente importante che non sia nelle mani di una sola nazione o di una sola società”, afferma. Tuttavia, l’approccio non è certo libero: uno degli otto cluster di GPU utilizzati per la formazione costa 600mila dollari; la rete totale distribuita da Prime Intellect costerebbe 18 milioni di dollari. Ma il suo lavoro è almeno un segno che l’addestramento di modelli di intelligenza artificiale capaci non deve necessariamente costare miliardi di dollari.

Come far scendere i costi del training

E se i costi potessero scendere ulteriormente? Il sogno degli sviluppatori che perseguono un’AI veramente decentralizzata è quello di eliminare del tutto la necessità di chip di addestramento appositamente costruiti. Misurato in teraflops, un conteggio del numero di operazioni che un chip è in grado di eseguire in un secondo, uno dei chip più potenti di Nvidia ha una potenza pari a quella di circa 300 iPhone di fascia alta. Ma nel mondo ci sono molti più iPhone che GPU. Cosa succederebbe se questi (e altri computer di consumo) potessero essere messi tutti al lavoro, sfornando prove di allenamento mentre i loro proprietari dormono?

I compromessi sarebbero enormi. La facilità di lavorare con chip ad alte prestazioni consiste nel fatto che, anche se distribuiti in tutto il mondo, sono almeno lo stesso modello che opera alla stessa velocità. Questo andrebbe perso. Peggio ancora, non solo i progressi dell’addestramento dovrebbero essere aggregati e ridistribuiti a ogni passaggio di checkpoint, ma anche i dati dell’addestramento stesso, poiché il tipico hardware consumer non è in grado di immagazzinare i terabyte di dati che entrano in un LLM all’avanguardia. Secondo Nic Lane di Flower, uno dei laboratori che stanno cercando di realizzare questo approccio, sarebbero necessarie nuove innovazioni informatiche.

I guadagni, però, potrebbero essere notevoli e l’approccio potrebbe portare a modelli migliori, secondo Lane. Nello stesso modo in cui l’addestramento distribuito migliora la generalizzazione dei modelli, i modelli addestrati su insiemi di dati “sharded”, in cui solo porzioni dei dati di addestramento vengono fornite a ciascuna GPU, potrebbero avere prestazioni migliori quando si trovano di fronte a input inaspettati nel mondo reale.■

Articoli correlati

Articolo 1 di 4