站在巨人的肩膀上才能走的更远~本文主要是针对《千亿参数开源大模型 BLOOM 背后的技术》进行学习和提取关键经验。
1、BLOOM与Megatron-DeepSpeed
1.1 BLOOM训练细节
BLOOM 的模型架构与 GPT3 非常相似,只是增加了一些改进,176B BLOOM 模型的训练于 2022 年 3 月至 7 月期间,耗时约 3.5 个月完成 (约 100 万计算时),以下是其训练的一些细节信息。
硬件: 384 张 80GB A100 GPU
软件: Megatron-DeepSpeed
模型架构: 基于 GPT3
数据集: 含 59 种语言,共 3500 亿词元
训练时长: 3.5 个月
1.1.1 训练硬件
- GPU: 384 张 NVIDIA A100 80GB GPU (48 个节点) + 32 张备用 GPU
- 每个节点 8 张 GPU,4 条 NVLink 卡间互联,4 条 OmniPath 链路
- CPU: AMD EPYC 7543 32 核处理器
- CPU 内存: 每个节点 512GB
- GPU 显存: 每个节点 640GB
- 节点间连接: 使用 Omni-Path Architecture (OPA) 网卡,网络拓扑为无阻塞胖树
- NCCL - 通信网络: 一个完全专用的子网
- 磁盘 IO 网络: GPFS 与其他节点和用户共享
1.1.2 checkpoints
- 主 checkpoints(https://huggingface.co/bigscience/bloom)
- 每个 checkpoint 含精度为 fp32 的优化器状态和精度为 bf16+fp32 的权重,占用存储空间为 2.3TB。如只保存
bf16 的权重,则仅占用 329GB 的存储空间。
1.1.3 数据集
1.2 Megatron-DeepSpeed
176B BLOOM 模型使用 Megatron-DeepSpeed进行训练,它结合了两种主要技术:
- DeepSpeed 是一个深度学习优化库,让分布式训练变得简单、高效且有效。
- Megatron-LM 是由 NVIDIA 的应用深度学习研究团队开发的大型、强大的 transformer 模型框架。
DeepSpeed 团队通过将 DeepSpeed 库中的 ZeRO 分片和流水线并行 (Pipeline Parallelism) 与 Megatron-LM 中的张量并行 (Tensor Parallelism) 相结合,开发了一种基于 3D 并行的方案。有关每个组件的更多详细信息,请参见下表。
请注意,BigScience 的 Megatron-DeepSpeed 是基于原始 Me