MegaScale: Scalare l'Addestramento di Modelli Linguistici di Grandi Dimensioni a Più di 10.000 GPU
MegaScale: Scaling Large Language Model Training to More Than 10,000 GPUs
February 23, 2024
Autori: Ziheng Jiang, Haibin Lin, Yinmin Zhong, Qi Huang, Yangrui Chen, Zhi Zhang, Yanghua Peng, Xiang Li, Cong Xie, Shibiao Nong, Yulu Jia, Sun He, Hongmin Chen, Zhihao Bai, Qi Hou, Shipeng Yan, Ding Zhou, Yiyao Sheng, Zhuo Jiang, Haohan Xu, Haoran Wei, Zhang Zhang, Pengfei Nie, Leqi Zou, Sida Zhao, Liang Xiang, Zherui Liu, Zhe Li, Xiaoying Jia, Jianxi Ye, Xin Jin, Xin Liu
cs.AI
Abstract
Presentiamo la progettazione, l'implementazione e l'esperienza ingegneristica nella costruzione e nel deployment di MegaScale, un sistema di produzione per l'addestramento di modelli linguistici di grandi dimensioni (LLM) su una scala superiore a 10.000 GPU. L'addestramento di LLM a questa scala comporta sfide senza precedenti in termini di efficienza e stabilità del training. Adottiamo un approccio full-stack che co-progetta i componenti algoritmici e di sistema attraverso la progettazione dei blocchi del modello e dell'ottimizzatore, la sovrapposizione di calcolo e comunicazione, l'ottimizzazione degli operatori, la pipeline dei dati e la regolazione delle prestazioni di rete. Mantenere un'elevata efficienza durante l'intero processo di addestramento (cioè, la stabilità) è una considerazione importante in produzione, data la lunga durata dei job di addestramento degli LLM. Molti problemi di stabilità complessi emergono solo su larga scala, e un'osservabilità approfondita è la chiave per affrontarli. Abbiamo sviluppato una serie di strumenti di diagnosi per monitorare i componenti del sistema e gli eventi in profondità nello stack, identificare le cause principali e derivare tecniche efficaci per ottenere tolleranza ai guasti e mitigare i ritardi. MegaScale raggiunge un'utilizzazione dei FLOP del modello (MFU) del 55,2% durante l'addestramento di un modello LLM da 175B su 12.288 GPU, migliorando l'MFU di 1,34x rispetto a Megatron-LM. Condividiamo la nostra esperienza operativa nell'identificazione e risoluzione di guasti e ritardi. Speriamo che, articolando i problemi e condividendo la nostra esperienza da una prospettiva sistemica, questo lavoro possa ispirare future ricerche sui sistemi LLM.
English
We present the design, implementation and engineering experience in building
and deploying MegaScale, a production system for training large language models
(LLMs) at the scale of more than 10,000 GPUs. Training LLMs at this scale
brings unprecedented challenges to training efficiency and stability. We take a
full-stack approach that co-designs the algorithmic and system components
across model block and optimizer design, computation and communication
overlapping, operator optimization, data pipeline, and network performance
tuning. Maintaining high efficiency throughout the training process (i.e.,
stability) is an important consideration in production given the long extent of
LLM training jobs. Many hard stability issues only emerge at large scale, and
in-depth observability is the key to address them. We develop a set of
diagnosis tools to monitor system components and events deep in the stack,
identify root causes, and derive effective techniques to achieve fault
tolerance and mitigate stragglers. MegaScale achieves 55.2% Model FLOPs
Utilization (MFU) when training a 175B LLM model on 12,288 GPUs, improving the
MFU by 1.34x compared to Megatron-LM. We share our operational experience in
identifying and fixing failures and stragglers. We hope by articulating the
problems and sharing our experience from a systems perspective, this work can
inspire future LLM systems research.