首页 > 其他分享 >【NLP高频面题 - 分布式训练】ZeRO1、ZeRO2、ZeRO3分别做了哪些优化?

【NLP高频面题 - 分布式训练】ZeRO1、ZeRO2、ZeRO3分别做了哪些优化?

时间:2024-11-26 13:22:26浏览次数:9  
标签:NLP 高频 宝典 面试 ZeRO3 ZeRO2 要会 面题

【NLP高频面题 - 分布式训练】ZeRO1、ZeRO2、ZeRO3分别做了哪些优化?

重要性:★★


NLP Github 项目:


ZeRO被分为了三个级别:

  1. ZeRO1:对优化器状态进行拆分。显存消耗减少 4 倍,通信量与数据并行相同。
  2. ZeRO2:在ZeRO1的基础上,对梯度进行拆分。显存消耗减少 8 倍,通信量与数据并行相同。
  3. ZeRO3:在ZeRO2的基础上,对模型参数进行拆分。模型占用的显存被平均分配到每个 GPU 中,显存消耗量与数据并行的并行度成线性反比关系,但通信量会有些许增加。

论文中给出了三个阶段的显存消耗分布情况:

ZeRO1

模型训练中,正向传播和反向传播并不会用到优化器状态,只有在梯度更新的时候才会使用梯度和优化器状态计算新参数。因此每个进程单独使用一段优化器状态,对各自进程的参数更新完之后,再把各个进程的模型参数合并形成完整的模型。

假设我们有

标签:NLP,高频,宝典,面试,ZeRO3,ZeRO2,要会,面题
From: https://www.cnblogs.com/fasterai/p/18569921

相关文章