百模大战中的网络系列:
阿里:面向大模型时代的网络基础设施研究的挑战、阶段成果与展望
百度:彻底解决网络哈希冲突,百舸的高性能网络 HPN 落地实践
幻方 AI DeepSeek 模型背后的网络集群建设!
零一万物:面向万卡集群的 AI 基础设施建设
360智算中心:万卡GPU集群落地实践
科大讯飞:万卡级智算集群
基础设施
在当今大语言模型的训练与开发中,高效利用现有 GPU 资源起着至关重要的作用。为此,我们为弹性训练框架和智能集群调度策略开发了一种协同设计方法。
由于我们的 GPU 由多个用户和任务共享,每个任务的具体行为不可预测,这常常导致集群内的 GPU 节点闲置。考虑到一台配备 8 个 A800 GPU 的单机足以满足我们百川 7B 和百川 13B 模型的内存需求,我们训练框架的主要设计标准是机器级弹性,它支持根据集群状态动态调整任务资源,进而为我们的智能调度算法奠定基础。
为满足机器级弹性的要求,我们的训练框架集成了张量并行和基于零冗余优化器(ZeRO)的数据并行,我们在每台机器内部设置张量并行,并采用零冗余共享数据并行来实现跨机器的弹性扩展。
此外,我们运用了张量拆分技术,通过拆分某些计算来降低峰值内存消耗,例如针对大词汇量的交叉熵计算。这种方法使我们能够在无需额外计算和通信的情况下满足内存需求,让系统更高效。
为了在不影响模型精度的前提下进一步加快训练速度,我们实施了混合精度训练,在前向和反向计算中使用 BFloat16 格式,而在优化器更新时使用 Float32 格式。
此外,为了将我们的训练集群高效扩展到数千个 GPU,我们整合了以下技术来避免通信效率的降低:
拓扑感知分布式训练。在大规模集群中,网络连接常常跨越多层交换机。我们策略性地安排分布式训练的进程顺序,尽量减少跨不同交换机的频繁访问,以此降低延迟,进而提高整体训练效率。
零冗余优化器的混合分层分区。通过在 GPU 之间对参数进行分区,ZeRO3以增加额外的all-gather通信为代价降低了内存消耗。当扩展到数千个 GPU 时,这种方法会导致严重的通信瓶颈。为解决这一问题,我们提出了一种混合分层分区方案。具体而言,我们的框架首先在所有 GPU 之间对优化器状态进行分区,然后自适应地决定哪些层需要激活ZeRO3,以及是否对参数进行分层分区。
通过整合这些策略,我们的系统能够在 1024 个英伟达 A800 GPU 上高效训练百川 2 - 7B 和百川 2 - 13B 模型,实现了超过 180 TFLOPS的计算效率。
中国区虽低于管制前水平但环比增长
不过主要问题是即便逃离虎口又会入狼窝
相关阅读:

