GUIDA TECNICA

Parallelo dei dati completamente condivisi

Fully Sharded Data Parallel (FSDP) è una tecnica di training distribuito che suddivide i parametri, i gradienti e gli stati dell'ottimizzatore di un modello su più GPU in modo che ogni dispositivo contenga solo una sezione.

2 minuti di letturaUltimo aggiornamento

Panoramica

It makes training huge models possible on hardware that could never fit the whole model in one GPU's memory.

Immersione profonda

Il parallelismo dei dati tradizionale mantiene una copia completa del modello su ogni GPU, il che spreca memoria e limita le dimensioni del modello. FSDP, reso popolare da PyTorch di Meta e ispirato da ZeRO di Microsoft, suddivide invece tre cose tra i dispositivi: parametri, gradienti e stati dell'ottimizzatore. Durante il passaggio in avanti, ciascuna GPU raccoglie temporaneamente tutti i pesi per il layer che sta elaborando tramite un all-gather, esegue il calcolo, quindi libera immediatamente la copia raccolta. Il passaggio all'indietro funziona in modo simile, seguito da una riduzione della dispersione che distribuisce le sezioni del gradiente alle rispettive GPU. Poiché ogni dispositivo memorizza in modo permanente solo una frazione del modello, l’utilizzo della memoria diminuisce in modo più o meno lineare con il numero di GPU, consentendo ai team di addestrare modelli con decine o centinaia di miliardi di parametri.

Approfondimento tecnico

FSDP scambia comunicazioni aggiuntive con risparmi di memoria. I pesi di ogni strato vengono ricostruiti su richiesta con una raccolta completa subito prima dell'uso e scartati subito dopo, mentre i gradienti vengono combinati e divisi con la riduzione della dispersione. La comunicazione può essere sovrapposta al calcolo precaricando i parametri del livello successivo mentre viene eseguito il livello corrente, nascondendo gran parte della latenza della rete. L'ottimizzazione della granularità dello sharding (criterio di wrapping) bilancia l'ingombro della memoria con il sovraccarico della comunicazione.

Impatto strategico

Costo e budget

Le decisioni relative all'architettura determinano prestazioni e costi operativi per anni.

Decisioni più chiare

La formazione tecnica aiuta i team a scegliere lo stack giusto, non solo quello più nuovo.

Controllo di qualità

Migliori scelte ingegneristiche riducono gli incidenti legati all’affidabilità nella produzione.

Il futuro del parallelo dei dati completamente condivisi

FSDP sta diventando l'impostazione predefinita per l'addestramento di modelli aperti di grandi dimensioni, con FSDP2 in PyTorch che migliora l'usabilità e lo sharding per parametro. Aspettatevi un'integrazione più stretta con il parallelismo di tensore e pipeline per modelli da trilioni di parametri, un migliore supporto per precisione mista e fp8 e un rivestimento automatico più intelligente che seleziona i limiti di sharding per te. Man mano che le interconnessioni tra GPU come NVLink e InfiniBand diventano sempre più veloci, il costo di comunicazione dello sharding continua a ridursi, rendendolo pratico su scala sempre più ampia.

Implementazione nel mondo reale

Messa a punto di un modello Llama da 70 miliardi di parametri su 8 GPU che singolarmente non possono sostenere tutti i pesi.

Pre-addestramento di modelli linguistici di grandi dimensioni nei laboratori di intelligenza artificiale suddividendo gli stati di ottimizzazione (che dominano la memoria con Adam) su centinaia di acceleratori.

Ricercatori che utilizzano il wrapper FSDP di PyTorch per addestrare i trasformatori di visione su un cluster universitario senza acquistare GPU di punta da 80 GB.

Combinazione di FSDP con bfloat16 a precisione mista per dimezzare all'incirca la memoria e accelerare il throughput dell'addestramento su modelli multimodali.

Rischi e guardrail

L'ottimizzazione di un benchmark può nascondere debolezze di sistema più ampie.

I costi delle infrastrutture e della manutenzione sono spesso sottostimati.

Le lacune in termini di sicurezza e osservabilità possono aumentare man mano che i sistemi diventano più complessi.

Tabella di marcia per l'implementazione

1

Definire obiettivi di latenza, qualità e costi prima dell'implementazione.

2

Benchmark in condizioni di carico e dati realistiche.

3

Monitoraggio dello strumento per errori, deriva e impatto sull'utente.

4

Preparare percorsi di rollback e risposta agli incidenti prima della scalabilità.

Continua a esplorare

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Fully Sharded Data Parallel quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Inizia il quiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Prossima guida

Parallelismo dei dati

Domande frequenti

What is Fully Sharded Data Parallel?

Fully Sharded Data Parallel (FSDP) è una tecnica di training distribuito che suddivide i parametri, i gradienti e gli stati dell'ottimizzatore di un modello su più GPU in modo che ogni dispositivo contenga solo una sezione. Rende possibile l'addestramento di modelli enormi su hardware che non potrebbe mai contenere l'intero modello nella memoria di una GPU.

Che cosa fa il frazionamento FSDP tra GPU rispetto al parallelismo dei dati standard?

FSDP suddivide i parametri, i gradienti e gli stati dell'ottimizzatore del modello tra i dispositivi, mentre il parallelismo dei dati standard replica il modello completo su ogni GPU.

Quale operazione collettiva utilizza FSDP per ricostruire i pesi completi di un livello subito prima di calcolarlo?

Prima dell'esecuzione di un livello, FSDP esegue una raccolta completa per assemblare temporaneamente i parametri completi da tutti gli shard, quindi li libera in seguito.

Perché FSDP libera i pesi completi raccolti immediatamente dopo il calcolo di un livello?

Mantenere solo un frammento in modo permanente e raccogliere i pesi completi in modo temporaneo è ciò che mantiene l'utilizzo della memoria basso e approssimativamente proporzionale a una frazione del modello.

FSDP è stato in gran parte ispirato da quale precedente approccio di ottimizzazione della memoria?

Lo sharding di parametri, gradienti e stati di ottimizzazione di FSDP segue da vicino le idee introdotte in ZeRO di Microsoft dalla libreria DeepSpeed.

In che modo FSDP nasconde gran parte della latenza della rete dalla raccolta di pesi?

FSDP precarica i parametri del livello successivo mentre il livello corrente sta ancora elaborando, sovrapponendo la comunicazione generale con il lavoro utile.