下文主要记录一下megatron和deepspeed流水线切分方式,流水线切分主要围绕两个方面,分别是流水线如何调度,模型如何划分不同部分。 megatron-lmforward_backward_no_pipelining只有一个stage,会先异步执行num_mi…
这个笔记简单的学习下混合精度,deepspeed的ZeRO优化器,最后带出megatron-lm中适配的ZeRO 1 分布式优化器。 显存占用分布 若为了省下训练过程中的显存,需要先了解使什么占用了显存。 模型训练过程中的显存占用主要分为三个部分,1.模型参数&梯度, 2.优化器状态,3.激活值, 以1b参数模型为例,使用单精进行训练情况的...
通过这些替换,可以使用 deepspeed.checkpointing.configure 或deepspeed_config 文件指定各种 DeepSpeed Activation checkpoint优化,例如activation partitioning, contiguous checkpointing 和 CPU checkpointing。 关于DeepSpeed Activation CheckPoint的更多信息我们可以参考 https://deepspeed.readthedocs.io/en/latest/activation-chec...
其中,DeepSpeed、Megatron-LM和FasterTransformer是三个备受瞩目的库。它们在处理大规模模型训练、推理加速等方面具有显著优势,为深度学习领域的发展做出了重要贡献。DeepSpeed是由Microsoft推出的深度学习库,旨在加速大规模模型的训练和推理。DeepSpeed的创新之处在于其张量并行(TP)和流水线并行(PP)技术。TP允许多个进程同时...
本文基于DeepSpeedExamples仓库中给出的Megatron相关例子探索一下训练GPT2模型的流程。主要包含3个部分,第一个部分是基于原始的Megatron如何训练GPT2模型,第二个部分是如何结合DeepSpeed的特性进行训练Megatron GPT2,由于篇幅原因这篇文章只写了第一部分,主要是非常细致的记录了跑起来Megatron GPT2训练流程碰到的一些问题和...
按照Megatron 的说明(https://github.com/NVIDIA/Megatron-LM#collecting-gpt-webtext-data)下载 webtext 数据,并在DeepSpeedExamples/Megatron-LM/data( 在最新版本的 DeepSpeedExamples 中可以放置在/home/zhangxiaoyu/DeepSpeedExamples/training/megatron) 下放置一个符号链接。
比如英伟达的Megatron-LM使用了3种方法:数据并行、流水并行和张量并行。因此这种模式也被称为三维并行。微软的DeepSpeed调用Megatron-LM作为并行基础。 而Colossal-AI能将系统的并行维度,一下子拉升到6维—— 在兼容数据并行、流水并行的基础上,基于该项目团队自研的2维/2.5维/3维张量并行方法,以及序列并行实现。 其...
[pytorch distributed] deepspeed 基本概念、原理(os+g+p) 2568 0 06:13 App [BERT 番外] Sin Position Encoding 的简洁实现(RoPE 基础) 4789 1 14:01 App [蒙特卡洛方法] 04 重要性采样补充,数学性质及 On-policy vs. Off-policy 2515 1 21:37 App [bert、t5、gpt] 08 GPT2 sampling (top-k,to...
我们将分解在此框架中训练 GPT2 模型的不同步骤,包括:环境设置数据预处理训练将模型转化为 🤗 Transformers 为什么选择 Megatron-LM?在进入训练细节的讲解之前,让我们首先了解是什么让这个框架比其他框架更高效。本节的灵感来自这篇关于使用 Megatron-DeepSpeed 进行 BLOOM 训练的精彩 博客,请参阅该博客以获取更多...
1 Introduction Github: https://github.com/microsoft/DeepSpeed ZeRO: Memory Optimizations Toward Training Trillion Parameter Models ZeRO-Offload: Democ