deepspeed

deepspeed目标:解决一张卡的显存不足以加载完整的模型或者完成一个训练过程。

ZeRO可以减少内存占用,优化大模型训练,将模型参数分成了三个部分:Optimizer States、Gradient 和 Model Parameter。在使用 ZeRO 进行分布式训练时,可以选择 ZeRO-Offload 和 ZeRO-Stage3 等不同的优化技术。

deepspeed组件:

APIs:各种api接口。最主要的是initialize接口用来初始化,配置参数保存在config.json中

Runtime:运行时的组件。如部署模型到分布式设备的数据分区、模型分区、系统优化、微调、故障检测等

Ops:用c++和cuda实现的底层内核,优化了计算和通信。

一.deepspeed核心技术:

1.混合精度

梯度下溢

BF16:宽范围低精度

FP16:窄范围高精度

2.分布式并行

数据并行就是将完整模型部署到每张卡中,每张卡只计算部分batch样本

3.ZeRo