sbloccare le reti di addestramento AI su larga scala con MRC
Il modello di addestramento AI dipende da reti di calcolatori affidabili che possono spostare rapidamente i dati tra le GPU. Per rendere questo processo più veloce e efficiente, OpenAI ha collaborato con AMD, Broadcom, Intel, Microsoft e NVIDIA per sviluppare MRC (Multipath Reliable Connection): un protocollo innovativo che migliora le prestazioni e la resilienza delle reti di addestramento AI su larga scala.
Con oltre 900 milioni di persone che utilizzano ChatGPT ogni settimana, i nostri sistemi stanno diventando una infrastruttura fondamentale per l'AI, aiutando le persone e le aziende di tutto il mondo a costruire modelli sempre più avanzati. Prima della creazione di Stargate, abbiamo co-sviluppato, attivato e mantenuto le nostre prime tre generazioni di supercalcolatori con grande cura e stretta collaborazione con i nostri partner nel corso di alcuni anni. Questa esperienza preziosa ha informato la nostra forte convinzione che, per utilizzare efficientemente il calcolo su larga scala di Stargate e riuscire nella nostra missione, dobbiamo ripensare e ridurre drasticamente la complessità in ogni livello dello stack, compresa la progettazione della rete.
La pubblicazione della specifica MRC fa parte della strategia di calcolo di OpenAI: gli standard condivisi nei livelli di infrastruttura chiave possono aiutare a scalare i sistemi AI in modo più efficiente, affidabile e su un ecosistema di partner più ampio. In questo articolo, copriremo il design di MRC, compreso: i) come consente di creare reti multi-piano ad alta velocità con ridondanza per superare le eventuali failure della rete, utilizzando meno componenti e meno potenza; ii) come lo spraying dei pacchetti di MRC riduce virtualmente la congestione del nucleo; iii) come i nostri diployments utilizzano il routing delle sorgenti statiche per bypassare le failure e eliminare intere classi di failure di routing.
Quando si addestrano modelli AI su larga scala, un singolo passo può richiedere molte migliaia di trasferimenti di dati. Un trasferimento in ritardo può propagarsi attraverso l'intero lavoro, causando potenzialmente il fermo delle GPU. La congestione della rete, i collegamenti e le failure dei dispositivi sono le cause più comuni di ritardo e jitter nei trasferimenti.
Questi problemi diventano più frequenti e difficili da risolvere man mano che aumenta la dimensione del cluster. Ciò rende la tecnologia di rete una parte fondamentale della progettazione di Stargate.
Le sfide della rete
Per abilitare la scala attuale dei supercalcolatori Stargate, abbiamo affrontato due sfide di rete fondamentali. In primo luogo, dovremmo minimizzare la possibilità di congestione della rete. Ci sono colli di bottiglia inevitabili, come due GPU che inviano allo stesso destino contemporaneamente. Ma al di fuori di questi casi, dovremmo evitare la congestione attraverso la progettazione.
In secondo luogo, dobbiamo minimizzare l'impatto delle failure della rete sul lavoro di addestramento stesso. A scala sufficientemente grande, anche la migliore rete avrà un livello costante di failure dei collegamenti e degli switch. In precedenza, una singola failure avrebbe spesso causato la caduta di un lavoro di addestramento, costringendo a un riavvio da un punto di salvataggio o a bloccare il progresso per molti secondi mentre la rete ricomputava le rotte. Tali interruzioni sono costose in termini di cicli di GPU e tempo. Con l'addestramento sincrono - dove molte GPU su molti computer cooperano in modo sincrono per addestrare un modello AI - ciò è particolarmente vero. Maggiore è il lavoro che eseguiamo, maggiore è l'impatto di una singola failure del collegamento o dello switch. Questi carichi di lavoro agiscono come una sorta di "amplificatore di failure", quindi prevenirli è diventato cruciale.
Il design di MRC
MRC estende RDMA su Ethernet convergente (RoCE) - uno standard dell'InfiniBand Trade Association (IBTA) che consente l'accesso diretto alla memoria remota accelerato dall'hardware tra GPU e CPU. Si basa su tecniche sviluppate dal Consortium Ultra Ethernet (UEC) e le estende con il routing delle sorgenti SRv6 per supportare le stoffe di rete AI su larga scala.
MRC è già stato distribuito su tutti i supercalcolatori NVIDIA GB200 più grandi di OpenAI, che utilizziamo per addestrare modelli frontiera, compreso il nostro sito con Oracle Cloud Infrastructure (OCI) ad Abilene, Texas, e nei supercalcolatori Fairwater di Microsoft. MRC è stato utilizzato per addestrare più modelli OpenAI, sfruttando hardware di NVIDIA e Broadcom. Oggi, la specifica MRC è disponibile come contributo Open Compute Project (OCP) per la comunità da utilizzare e costruire.
La costruzione di reti altamente resilienti richiede che partiamo da una topologia di rete che abbia sufficiente ridondanza naturale in modo che tutti i flussi possano ottenere buone prestazioni, anche se i collegamenti o gli switch della rete hanno fallito.
Invece di trattare ogni interfaccia di rete come un collegamento singolo da 800Gb/s, la dividiamo in più collegamenti più piccoli. Ad esempio, un'interfaccia può collegarsi a otto switch diversi. È quindi possibile costruire otto reti parallele separate, o piani, ciascuno operante a 100Gb/s, invece di una rete singola da 800Gb/s.
Questo cambiamento ha un grande effetto sulla forma del cluster. Uno switch che può collegare 64 porte a 800Gb/s può invece collegare 512 porte a 100Gb/s. Ciò consente di costruire una rete che collega completamente circa 131.000 GPU con solo due livelli di switch. Una rete convenzionale da 800Gb/s richiederebbe tre o quattro livelli.
Il risultato è una rete che è a minor costo, ha minor consumo di energia e ci dà più diversità di percorso rispetto a una progettazione di rete convenzionale. Ciò consente inoltre a più traffico di rimanere locale degli switch di livello 0, il che può migliorare le prestazioni.
Tuttavia, tutta questa diversità di percorso può essere difficile da sfruttare appieno. I protocolli di rete tradizionali utilizzati per l'addestramento AI normalmente richiedono che ogni trasferimento segua un percorso singolo in modo che i pacchetti arrivino in ordine. In una rete multi-piano di grandi dimensioni, ciò crea due problemi: diversi flussi possono collidere sullo stesso collegamento e creare congestione, e ogni flusso può utilizzare solo uno dei piani disponibili. Se non cambiamo nulla, una rete multi-piano porterebbe a una congestione significativa e a prestazioni generali scarse.
MRC e lo spraying dei pacchetti
MRC cambia fondamentalmente questo modello. Invece di assegnare un trasferimento a un percorso, MRC prende i pacchetti da un singolo trasferimento e li spruzza su centinaia di percorsi attraverso la nostra rete, su tutti i piani distinti. I pacchetti possono arrivare fuori ordine, ma tutti i pacchetti MRC includono il