技术指南

DeepSpeed 和 Megatron 训练堆栈

DeepSpeed (Microsoft) 和 Megatron-LM (NVIDIA) 是软件堆栈,使跨数千个 GPU 的数十亿参数的训练模型变得切实可行。

概述

DeepSpeed (Microsoft) 和 Megatron-LM (NVIDIA) 是软件堆栈,使跨数千个 GPU 的数十亿参数的训练模型变得切实可行。如果没有它们,今天的前沿模型根本无法适应内存或在合理的时间内完成训练。

DeepSpeed 和 Megatron 训练堆栈是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。

深入探讨

在一个 GPU 上训练大型模型是不可能的,因为权重、梯度和优化器状态不适合。这些堆栈将工作分配给许多 GPU。 Megatron-LM 开创了张量并行性,在 GPU 上的每一层内切片单独的矩阵乘法,以及管道并行性,将不同的层放在不同的 GPU 上。 DeepSpeed 的标志性贡献是 ZeRO(零冗余优化器),它将优化器状态、梯度和参数跨 GPU 分片而不是复制它们,从而大幅削减每个 GPU 的内存。两者经常结合起来(Megatron-DeepSpeed)来训练 BLOOM-176B 和 Megatron-Turing NLG 等模型。他们还添加了混合精度、激活检查点和卸载到 CPU 或 NVMe,因此大型模型可以在有限的硬件上进行训练。

技术洞察

ZeRO 具有三个增加内存节省的阶段:第 1 阶段对优化器状态进行分片,第 2 阶段还对梯度进行分片,第 3 阶段对参数本身进行分片,在前向和后向传递过程中按需收集它们。与张量并行性(层内)和管道并行性(层间)相结合,形成“3D并行性”。关键的压力是通信开销:每个分片分割都会增加 GPU 到 GPU 的流量,因此工程师调整分割以保持快速 NVLink 和 InfiniBand 链路饱和。

掌握 DeepSpeed 和 Megatron 训练堆栈

DeepSpeed (Microsoft) 和 Megatron-LM (NVIDIA) 是软件堆栈,使跨数千个 GPU 的数十亿参数的训练模型变得切实可行。如果没有它们,今天的前沿模型根本无法适应内存或在合理的时间内完成训练。 DeepSpeed 和 Megatron 训练堆栈是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将 DeepSpeed 和威震天训练堆栈视为一种操作模型,而不是单一功能:定义所需的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

在实践中,使用 DeepSpeed 和 Megatron 训练堆栈的强大团队根据可靠性和成本优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

多年来,架构决策决定着性能和运营成本。

多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

更好的工程选择可以减少生产中的可靠性事故。

更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

DeepSpeed 和 Megatron 训练堆栈的未来

预计与 PyTorch 的原生 FSDP(完全分片数据并行)进行更紧密的集成,它吸收了许多 ZeRO 思想,模糊了研究堆栈和核心框架之间的界限。编译器驱动的方法和自动并行规划器旨在消除手动调整。随着训练集群增长到数十万个加速器,容错、弹性扩展和与计算的重叠通信成为主要的工程前沿,同时支持 NVIDIA Blackwell 和定制训练芯片等新硬件。

现实世界的实施

使用跨数百个 GPU 的组合 Megatron-DeepSpeed 堆栈来训练开放式多语言 BLOOM-176B 模型。

Microsoft 和 NVIDIA 使用 3D 并行性训练 5300 亿参数的 Megatron-Turing NLG 模型。

ZeRO-Offload 允许研究人员通过将优化器状态溢出到 CPU RAM 来微调单个工作站 GPU 上的数十亿参数模型。

在这些堆栈中使用激活检查点,通过重新计算激活而不是存储全部激​​活来适应更长的上下文窗口。

实施模式

DeepSpeed 和 Megatron 训练堆栈的实践

使用跨数百个 GPU 的组合 Megatron-DeepSpeed 堆栈来训练开放式多语言 BLOOM-176B 模型。

使用跨数百个 GPU 的威震天-DeepSpeed 组合堆栈来训练开放式多语言 BLOOM-176B 模型 当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

DeepSpeed 和 Megatron 训练堆栈的实践

Microsoft 和 NVIDIA 使用 3D 并行性训练 5300 亿参数的 Megatron-Turing NLG 模型。

Microsoft 和 NVIDIA 使用 3D 并行性训练 5300 亿个参数的 Megatron-Turing NLG 模型 当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

DeepSpeed 和 Megatron 训练堆栈的实践

ZeRO-Offload 允许研究人员通过将优化器状态溢出到 CPU RAM 来微调单个工作站 GPU 上的数十亿参数模型。

ZeRO-Offload 允许研究人员通过将优化器状态溢出到 CPU RAM 来微调单个工作站 GPU 上的数十亿参数模型。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

DeepSpeed 和 Megatron 训练堆栈的实践

在这些堆栈中使用激活检查点,通过重新计算激活而不是存储全部激​​活来适应更长的上下文窗口。

在这些堆栈中使用激活检查点,通过重新计算激活而不是存储所有激活来适应更长的上下文窗口。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

风险与防护栏

!

优化一项基准测试可以隐藏更广泛的系统弱点。

!

基础设施和维护成本常常被低估。

!

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

在实际负载和数据条件下进行基准测试。

在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

仪器监控错误、漂移和用户影响。

仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

在扩展之前准备回滚和事件响应路径。

在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索