将大型语言模型训练扩展至超过10,000块GPU

作者:网络转载更新时间:2024-03-30阅读:0

近日,字节跳动公司联合北京大学的研究团队共同发表了一篇论文,题为《将大型语言模型训练扩展至超过10,000块GPU》。该论文提出了一种用于训练大型语言模型的生产系统,旨在解决在万卡级别的集群上训练大型模型时遇到的效率和稳定性挑战。论文详细介绍了系统的设计、实现和部署,并对万卡以上集群规模所面临的问题及其解决方案进行了讨论。

万卡集群的两大挑战

1. 高效率训练的实现

在大模型时代,算力是生产力的象征。模型大小和训练数据规模是决定模型能力的关键。市场主要参与者通过使用数万个GPU服务器构建大型人工智能集群来训练大型语言模型(LLM)。然而,当GPU集群规模达到万卡级别时,如何实现高效率、高稳定的训练成为了一个挑战。

  • 模型浮点运算利用率(MFU):作为评估模型训练效率的通用指标,MFU直接反映了端到端的训练速度。为了训练LLM,需要在多个GPU上分布模型,并且GPU之间需要进行大量通信以推动训练进展。通信效率、操作符优化、数据预处理和GPU内存消耗等因素对MFU有显著影响。

image

2. 训练的高稳定性实现

在大模型训练中,稳定性至关重要。尽管失败和延迟是常态,但故障成本极高。因此,缩短故障恢复时间非常关键,因为一个掉队者不仅会影响自己的工作,还可能拖慢整个作业的进度。

如何实现大模型的高效训练?

为了处理急剧增加的计算需求而不损害模型准确性,需要采用最先进的算法优化、通信策略、数据流水线管理以及网络性能调优技术。以下是一些优化大型模型训练的方法:

  • 算法优化:包括并行transformer块、滑动窗口注意力(SWA)和LAMB优化器等,以提高训练效率而不牺牲准确性。

  • 3D并行中的通信重叠:通过张量并行、流水线并行和数据并行,实现通信的重叠,以提高带宽利用和减少通信时间。

  • 高效操作符:对GEMM操作符以外的其他操作符进行优化,以提高性能。

  • 数据流水线优化:通过异步数据预处理和消除冗余数据加载器,提高数据传输效率。

  • 集体通信群初始化:优化分布式训练中的初始化阶段,减少时间开销。

  • 网络性能调优:分析3D并行中的流量,设计技术方案提高网络性能。

image

容错性

随着训练集群扩展到数万个GPU,软件和硬件故障难以避免。研究团队为LLM训练设计了一个健壮的训练框架,实现了自动故障识别和快速恢复,最小化人为干预和对训练任务的影响。

image

结论

通过算法和系统的协同设计,MegaScale系统优化了训练效率,并在12288个GPU上训练175B LLM模型时,实现了55.2%的MFU,比Megatron-LM提高了1.34倍。研究团队强调了整个训练过程中容错的重要性,并提供了全面的监控工具,便于复杂异常的根本原因识别。这项工作不仅为从事LLM训练的人士提供了实用见解,也为未来研究铺平了道路。

标签:大语言模型

上一篇:算力行业发展报告
下一篇:数据中心算力成本正在迅速下降

相关文章