Migliorare l'Efficienza dell'Addestramento Parallelo su Larga Scala con C4: Un Approccio Guidato dalla Comunicazione
Boosting Large-scale Parallel Training Efficiency with C4: A Communication-Driven Approach
June 7, 2024
Autori: Jianbo Dong, Bin Luo, Jun Zhang, Pengcheng Zhang, Fei Feng, Yikai Zhu, Ang Liu, Zian Chen, Yi Shi, Hairong Jiao, Gang Lu, Yu Guan, Ennan Zhai, Wencong Xiao, Hanyu Zhao, Man Yuan, Siran Yang, Xiang Li, Jiamang Wang, Rui Men, Jianwei Zhang, Huang Zhong, Dennis Cai, Yuan Xie, Binzhang Fu
cs.AI
Abstract
L'emergenza dei Large Language Models (LLM) ha reso necessaria l'adozione di tecniche di addestramento parallelo, che prevedono l'utilizzo di migliaia di GPU per addestrare un singolo modello. Purtroppo, abbiamo riscontrato che l'efficienza dell'addestramento parallelo attuale è spesso subottimale, principalmente a causa di due problemi principali. In primo luogo, i guasti hardware sono inevitabili e portano a interruzioni nelle attività di addestramento. L'incapacità di identificare rapidamente i componenti difettosi comporta uno spreco significativo di risorse GPU. In secondo luogo, poiché le GPU devono attendere il completamento della sincronizzazione dei parametri prima di procedere al prossimo ciclo di calcolo, la congestione della rete può aumentare notevolmente il tempo di attesa delle GPU. Per affrontare queste sfide, questo articolo introduce una soluzione basata sulla comunicazione, denominata C4. Le intuizioni chiave di C4 sono due. Innanzitutto, nell'addestramento parallelo, la comunicazione collettiva presenta caratteristiche periodiche e omogenee, quindi qualsiasi anomalia è certamente dovuta a qualche forma di malfunzionamento hardware. Sfruttando questa caratteristica, C4 può identificare rapidamente i componenti difettosi, isolare prontamente l'anomalia e riavviare il compito, evitando così lo spreco di risorse causato dai ritardi nel rilevamento delle anomalie. In secondo luogo, il modello di comunicazione prevedibile della comunicazione collettiva, che coinvolge pochi flussi di grandi dimensioni, consente a C4 di eseguire in modo efficiente la pianificazione del traffico, riducendo sostanzialmente la congestione della rete. C4 è stato ampiamente implementato nei nostri sistemi di produzione, riducendo i costi indotti dagli errori di circa il 30% e migliorando le prestazioni di runtime di circa il 15% per alcune applicazioni con costi di comunicazione moderati.
English
The emergence of Large Language Models (LLMs) has necessitated the adoption
of parallel training techniques, involving the deployment of thousands of GPUs
to train a single model. Unfortunately, we have found that the efficiency of
current parallel training is often suboptimal, largely due to the following two
main issues. Firstly, hardware failures are inevitable, leading to
interruptions in the training tasks. The inability to quickly identify the
faulty components results in a substantial waste of GPU resources. Secondly,
since GPUs must wait for parameter synchronization to complete before
proceeding to the next round of computation, network congestions can greatly
increase the waiting time for GPUs. To address these challenges, this paper
introduces a communication-driven solution, namely the C4. The key insights of
C4 are two folds. First, in parallel training, collective communication
exhibits periodic and homogeneous characteristics, so any anomalies are
certainly due to some form of hardware malfunction. By leveraging this feature,
C4 can rapidly identify the faulty components, swiftly isolate the anomaly, and
restart the task, thereby avoiding resource wastage caused by delays in anomaly
detection. Second, the predictable communication model of collective
communication, involving few large flows, allows C4 to efficiently execute
traffic planning, substantially reducing network congestion. C4 has been
extensively implemented across our production systems, cutting error-induced
overhead by roughly 30% and enhancing runtime performance by about 15% for
certain applications with moderate communication costs.