威震天-DeepSpeed
NVIDIA Megatron-LM 的 DeepSpeed 版本增加了对 MoE 模型训练、课程学习、3D 并行等多项功能的额外支持。该examples_deepspeed/
文件夹包含有关 DeepSpeed 支持的功能的示例脚本。
最近与 NVIDIA/Megatron-LM 同步
2023 年 7 月,我们通过 git 合并 1100 多个提交与 NVIDIA/Megatron-LM 仓库(此仓库的分叉来源)进行了同步。详细信息可在文件examples_deepspeed/rebase
夹中找到。考虑到合并提交的数量,在我们尚未测试的情况下可能会出现错误,我们非常欢迎您的贡献(错误报告、错误修复拉取请求)。我们还创建了一个备份分支,即此同步之前的版本。此备份分支仅用于比较测试和在您需要调试主分支时临时使用。我们不打算继续支持同步之前的版本。
在 Azure 和 AzureML 上运行
若要在 Azure 上试用 DeepSpeed,Megatron 的这个分支提供了易于使用的配方和 bash 脚本。我们强烈建议从文件examples_deepspeed/azureml
夹中的 AzureML 配方开始。如果您有自定义基础架构(例如 HPC 集群)或基于 Azure VM 的环境,请参考examples_deepspeed/azure
文件夹中的 bash 脚本。
以下是 Megatron-LM 的原始 README。请注意,下面提到的示例来自原始 NVIDIA/Megatron-LM 存储库。它们都没有集成 DeepSpeed 技术,其中一些可能由于此 Megatron-DeepSpeed 存储库中的更改而无法工作。因此,我们建议您转到../examples_deepspeed/
包含集成 DeepSpeed 技术并由 DeepSpeed 团队测试的示例的文件夹。
Megatron(1、2和3 )是一款大型、功能强大的 Transformer ,由 NVIDIA 的应用深度学习研究团队开发。此存储库用于正在进行的大规模训练大型 Transformer 语言模型的研究。我们使用混合精度开发了高效、模型并行(张量、序列和管道)和多节点预训练基于 Transformer 的模型,例如GPT、BERT和T5。
以下是我们直接使用Megatron的一些项目:
- 使用 Megatron 进行 BERT 和 GPT 研究
- BioMegatron:更大的生物医学领域语言模型
- 用于开放域问答的神经检索器的端到端训练
- 大规模多参与者生成对话模型
- 本地知识驱动的对话代理
- MEGATRON-CNTRL:使用大规模语言模型通过外部知识生成可控故事
- RACE 阅读理解数据集排行榜
- 利用合成数据训练问答模型
- 使用少样本教学提示预训练语言模型检测社会偏见
- 探索领域自适应训练的极限以解决大规模语言模型的问题
- 使用 DeepSpeed 和 Megatron 训练大规模生成语言模型 Megatron-Turing NLG 530B
- 用于知识性对话生成的多阶段提示
Megatron 还用于NeMo Megatron,这是一个帮助企业克服构建和训练具有数十亿和数万亿参数的复杂自然语言处理模型的挑战的框架。
我们的代码库能够有效地训练非常大(数千亿个参数)的语言模型,并且具有模型和数据并行性。为了演示代码如何随着多个 GPU 和模型大小而扩展,我们考虑从 10 亿个参数一直到 1 万亿个参数的 GPT 模型。所有模型都使用 51,200 个词汇表和 2048 个序列长度。我们改变隐藏大小、注意力头数量和层数以达到特定的模型大小。随着模型大小的增加,我们也会适度增加批量大小。我们利用NVIDIA 的 Selene 超级计算机进行扩展研究,并为最大的模型使用多达 3072 个A100 GPU。每个集群节点都有 8 个 NVIDIA 80GB A100 GPU。下图显示,我们几乎线性扩展到在 3072 个 GPU 上运行的 1 万亿个参数模型。请注意,这些结果来自基准运行,这些模型未经训练以达到收敛;然而,FLOP 是针对端到端训练进行测量的,即包括数据加载、优化甚至日志记录等所有操作。
下表显示了模型 (MFU) 和硬件 (HFU) FLOP 利用率,适用于最多 1T 参数的选定配置(请参阅我们的论文以了解这些计算方法)。随着模型大小的增加,我们实现了更好的 GPU 利用率,对于一万亿参数模型,我们分别达到了 56.3% 和 57.0% 的 MFU 和 HFU。请注意,这些数字也是在基准测试运行中测量的,在这种情况下,使用数据并行大小 1 进行测量。由于数据并行组之间需要梯度全归约,数据并行性会带来一些开销。但是,对于大型 Transformer 模型,这种开销并不大,并且几乎可以通过将梯度全归约与反向传播重叠而完全消除。
模型尺寸 | 模型 FLOP 利用率 | 硬件 FLOP 利用率 |
---|---|---|
22B | 41.5% | 43.7% |
175B | 51.4% | 52.8% |
530B | 56.0% | 57.0% |
1吨 | 56.3% | 57.0% |