Le ricercatrici di Microsoft svelano il quadro di formazione FP8 a precisione mista potenziamento dell’efficienza di addestramento dei modelli di linguaggio di grandi dimensioni.

I ricercatori di Microsoft svelano il nuovo framework FP8 per la formazione mista a precisione migliorata per l'efficienza nell'addestramento dei modelli di linguaggio di grandi dimensioni.

I modelli di linguaggio di grandi dimensioni hanno dimostrato una capacità senza precedenti nella creazione e comprensione del linguaggio, aprendo la strada a progressi nella logica, nella matematica, nella fisica e in altri campi. Tuttavia, la formazione di tali modelli presenta costi elevati. Ad esempio, per addestrare un modello da 540B, PaLM richiede 6.144 chip TPUv4, mentre GPT-3 175B richiede diverse migliaia di petaflop/giorni di calcolo per il preaddestramento. Questo mette in evidenza la necessità di ridurre i costi di formazione dei modelli di linguaggio di grandi dimensioni, in particolare per sviluppare la prossima generazione di modelli estremamente intelligenti. Uno degli approcci più promettenti per risparmiare costi è la formazione a bassa precisione, che offre un’elaborazione veloce, un consumo di memoria ridotto e un overhead di comunicazione minimo. La maggior parte dei sistemi di formazione attuali, come Megatron-LM, MetaSeq e Colossal-AI, addestra i modelli di linguaggio di grandi dimensioni utilizzando per impostazione predefinita la precisione mista FP16/BF16 o la precisione completa FP32.

Per modelli di grandi dimensioni, questo è opzionale per ottenere una precisione completa. FP8 sta emergendo come il datatipo di prossima generazione per la rappresentazione a bassa precisione con l’avvento della GPU Nvidia H100. Rispetto alla formazione di precisione mista a punto mobile esistente a 16 e 32 bit, FP8 ha il potenziale per ottenere teoricamente un aumento di velocità del 2x, una riduzione dei costi di memoria del 50% – 75% e risparmi del 50% – 75% nella comunicazione. Questi risultati sono molto incoraggianti per l’espansione dei modelli di base di prossima generazione. Purtroppo, è necessario avere un supporto maggiore e meno frequente per la formazione con FP8. Il motore di trasformazione Nvidia è l’unico framework utilizzabile; tuttavia, utilizza solo FP8 per il calcolo GEMM e mantiene pesi e gradienti principali con estrema precisione, come FP16 o FP32. A causa di ciò, l’aumento delle prestazioni end-to-end, il risparmio di memoria e il risparmio dei costi di comunicazione sono relativamente ridotti, mantenendo nascosto il pieno potenziale di FP8.

Ricercatori di Microsoft Azure e Microsoft Research forniscono un framework altamente efficiente a bassa precisione FP8 per la formazione di modelli di linguaggio di grandi dimensioni per risolvere questo problema. Il concetto principale è quello di sfruttare la bassa precisione FP8 per il calcolo, l’archiviazione e la comunicazione durante il processo di formazione dei modelli di grandi dimensioni. Ciò ridurrà significativamente le richieste di sistema rispetto ai framework precedenti. Più precisamente, creano tre fasi di ottimizzazione che utilizzano FP8 per semplificare la formazione di precisione distribuita e mista. Le tre fasi introducono incrementalmente l’ottimizzatore, la formazione parallela distribuita e la comunicazione collettiva a 8 bit. Un livello di ottimizzazione maggiore suggerisce che nel processo di formazione dei modelli di linguaggio di grandi dimensioni è stata utilizzata una maggiore quantità di FP8. Inoltre, il loro sistema offre il parallelismo a basso bit FP8, inclusi il parallelismo del tensore, del pipeline e della sequenza. Ciò consente la formazione su larga scala, ad esempio GPT-175B addestrato su migliaia di GPU, aprendo la strada alla formazione parallela a bassa precisione di prossima generazione.

Formare modelli di linguaggio di grandi dimensioni con FP8 richiede impegno. Le difficoltà derivano da problemi come l’overflow o l’underflow dei dati, nonché errori di quantizzazione causati dall’accuratezza ridotta e dalla gamma dinamica più piccola dei formati di dati FP8. Nel processo di formazione, queste difficoltà portano a divergenze permanenti e instabilità numeriche. Per affrontare questi problemi, suggeriscono due metodi: ridimensionamento automatico per evitare la perdita di informazioni e decoupling di precisione per isolare l’impatto della precisione dei dati su parametri come pesi, gradienti e stati dell’ottimizzatore. Il primo metodo comporta la riduzione della precisione per i componenti non sensibili alla precisione e il mantenimento dei valori dei gradienti all’interno della gamma di rappresentazione del formato dei dati FP8 regolando dinamicamente i fattori di scala del tensore. Ciò impedisce incidenti di overflow e underflow durante la comunicazione di all-reduce.

Utilizzano il framework di bassa precisione FP8 suggerito per la formazione di modelli di tipo GPT, che include un miglioramento supervisionato e un preaddestramento, per verificarlo. Confrontando la loro metodologia FP8 con l’approccio di formazione a precisione mista BF16 ampiamente utilizzato, i risultati sperimentali mostrano miglioramenti significativi, come una riduzione del 27% al 42% nell’utilizzo effettivo della memoria e una notevole riduzione del 63% al 65% degli overhead di comunicazione dei gradienti di peso. Sia nel preaddestramento che nelle attività downstream, i modelli addestrati con FP8 mostrano una parità di prestazioni rispetto a quelli che utilizzano la precisione elevata BF16, senza alcun aggiustamento degli iperparametri come learning rate e weight decay. Durante la formazione del modello GPT-175B, vale la pena notare che il loro framework a bassa precisione FP8 utilizza il 21% in meno di memoria sulla piattaforma GPU H100 e risparmia il 17% di tempo di addestramento rispetto a TE.

Figura 1: Un confronto delle dimensioni dei modelli più grandi che possono essere raggiunti su un cluster di GPU Nvidia H100 con 80 GB di RAM utilizzando il nostro metodo di addestramento in precisione mista FP8 con il più popolare metodo BF16.

In modo significativo, quando la scala dei modelli aumenta, come si può vedere nella Fig. 1, i risparmi di costo ottenuti utilizzando la bassa precisione FP8 possono essere ulteriormente migliorati. Per adattare meglio i modelli pre-addestrati LLM (Linguaggio GPT di grandi dimensioni) alle attività finali e alle preferenze degli utenti, utilizzano la precisione mista FP8 per l’ottimizzazione delle istruzioni e l’apprendimento per rinforzo con input umano. In particolare, utilizzano dati condivisi dagli utenti disponibili pubblicamente per ottimizzare i modelli pre-addestrati. Ottenendo un aumento del 27% della velocità di addestramento, i modelli adattati con la precisione mista FP8 si comportano in modo simile a quelli che utilizzano la precisione di mezzo BF16 nei benchmark AlpacaEval e MT-Bench. Inoltre, la precisione mista FP8 mostra un significativo potenziale nell’RLHF (reinforcement learning from human feedback), una procedura che richiede il caricamento di molti modelli durante l’addestramento.

Il framework AlpacaFarm, popolare per l’RLHF, può ottenere una riduzione del 46% nel peso dei modelli e una diminuzione del 62% nell’utilizzo della memoria dello stato dell’ottimizzatore utilizzando FP8 durante l’addestramento. Ciò dimostra ancora di più quanto sia flessibile ed adattabile l’architettura di addestramento a bassa precisione FP8. Di seguito sono riportati i contributi che stanno apportando per il progresso dell’addestramento a bassa precisione FP8 per i modelli LLM (Linguaggio GPT di grandi dimensioni) nella futura generazione:

  • Un nuovo framework per l’addestramento in precisione mista FP8. È facile da usare e sblocca gradualmente i pesi, i gradienti, l’ottimizzatore e l’addestramento distribuito a 8 bit in modo additivo. Gli equivalenti attuali di precisione mista a 16/32 bit di questo framework a 8 bit possono essere facilmente sostituiti con questo semplicemente modificando gli iperparametri e le istruzioni di addestramento. Forniscono anche un’implementazione per Pytorch che consente l’addestramento a bassa precisione a 8 bit con poche righe di codice.
  • Una nuova linea di modelli GPT addestrati con FP8. Illustrano le capacità dello schema FP8 proposto su una gamma di dimensioni del modello, da 7 miliardi a 175 miliardi di parametri, applicandolo al preaddestramento e al raffinamento di GPT. Forniscono supporto FP8 (tensori, pipeline e parallelismo di sequenza) a paradigmi di calcolo parallelo diffusi, consentendo l’utilizzo di FP8 per l’addestramento di modelli fondamentali massivi. Il primo codice di addestramento FP8 GPT, basato sull’implementazione di Megatron-LM, è reso pubblicamente disponibile. Prevedono che l’introduzione del loro framework FP8 porterà a uno standard nuovo per i sistemi di addestramento a bassa precisione rivolti a modelli fondamentali di grandi dimensioni nella futura generazione.