当前位置: 首页 > news >正文

【NLP高频面题 - 分布式训练篇】ZeRO主要为了解决什么问题?

【NLP高频面题 - 分布式训练篇】ZeRO主要为了解决什么问题?

重要性:★★

零冗余优化器技术由 DeepSpeed 代码库提出,主要用于解决数据并行中的模型冗余问题,即每张 GPU 均需要复制一份模型参数。

ZeRO的全称是Zero Redundancy Optimizer,意为去除冗余的优化器。在之前的分布式训练中,我们了解到训练模型时,主要占用的参数主要分为了三个部分:模型参数(Parameters),优化器状态(Optimizer States),梯度(Gradients),他们三个简称为OPG。其中优化器状态会占据大约2倍参数量的显存空间,这取决于选择的优化器,也是整个训练中占据最大空间的部分。

ZeRO被分为了三个级别:

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

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


NLP 大模型高频面题汇总

NLP基础篇
BERT 模型面
LLMs 微调面
http://www.lryc.cn/news/516270.html

相关文章:

  • kubernetes-循序渐进了解coredns
  • mysql8 从C++源码角度看 客户端发送的sql信息 mysql服务端从网络读取到buff缓存中
  • pygame飞机大战
  • 【Vim Masterclass 笔记08】第 6 章:Vim 中的文本变换及替换操作 + S06L20:文本的插入、变更、替换,以及合并操作
  • Tailwind CSS 实战:动画效果设计与实现
  • 【动手学电机驱动】STM32-MBD(3)Simulink 状态机模型的部署
  • Linux 服务器启用 DNS 加密
  • PyTorch不同优化器比较
  • stm32的掉电检测机制——PVD
  • Nginx 文件名逻辑漏洞(CVE-2013-4547)
  • Java 21 优雅和安全地处理 null
  • AWS Glue基础知识
  • Kubernetes——part4-1 Kubernetes集群 服务暴露 Nginx Ingress Controller
  • Flutter入门,Flutter基础知识总结。
  • weight decay 和L2是一个东西吗
  • JavaScript系列(8)-- Array高级操作
  • Harmony开发【笔记1】报错解决(字段名写错了。。)
  • MAC环境安装(卸载)软件
  • 【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习(L14+L15+L16)
  • Multisim更新:振幅调制器+解调器(含仿真程序+文档+原理图+PCB)
  • CentOS — 群组管理
  • 【pytorch】注意力机制-1
  • html 元素中的data-v-xxxxxx 是什么?为什么有的元素有?有的没有?
  • 第27周:文献阅读及机器学习
  • 回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测
  • Swift Protocols(协议)、Extensions(扩展)、Error Handling(错误处理)、Generics(泛型)
  • .NET中的强名称和签名机制
  • 使用 NestJS 构建高效且模块化的 Node.js 应用程序,从安装到第一个 API 端点:一步一步指南
  • 2025年大模型技术发展趋势展望:高速旋转的飞轮
  • java中类的加载过程及各个阶段与运行时数据区中堆和方法区存储内容