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

【深度学习】DeepSpeed,ZeRO 数据并行的三个阶段是什么?

文章目录

  • ZeRO
  • 实验
      • 实验设置
      • DeepSpeed ZeRO Stage-2 实验
      • 性能比较
      • 进一步优化
      • DeepSpeed ZeRO Stage-3 和 CPU 卸载
      • 结论

在这里插入图片描述

ZeRO

ZeRO(Zero Redundancy Optimizer)是一种用于分布式训练的大规模深度学习模型的优化技术。它通过分片模型状态(参数、梯度和优化器状态)来消除数据并行训练中的内存冗余,从而显著提高内存效率。ZeRO 分为三个阶段,每个阶段逐步增加内存优化程度。分别对应优化器状态、梯度和参数的划分。

  1. 优化器状态分区(P os)——内存减少 4 倍,通信量与数据并行相同
    阶段 1:跨数据并行工作器/GPU 的分片优化器状态

    • 描述:在 ZeRO 的第一个阶段,优化器状态被分片到不同的数据并行工作器或 GPU 上,而不是在每个 GPU 上重复。比如,Adam 优化器的状态包括权重、动量和方差等,这些状态信息会被均匀分布到各个 GPU 上。
    • 内存节省:这种方法可以实现大约 4 倍的内存节省,同时保持与传统数据并行相同的通信量。
    • 应用场景:适用于训练参数在亿级别的模型,比如 GPT-2,能有效降低单个 GPU 的内存使用.
  2. 添加梯度分区(P os+g)——内存减少 8 倍,通信量与数据并行相同
    阶段 2:分片优化器状态和梯度

    • 描述
http://www.lryc.cn/news/415608.html

相关文章:

  • 代码随想录算法训练营第三十六天 | 1049. 最后一块石头的重量 II、494. 目标和、474.一和零
  • Pandas行列变换指南:数据重塑的艺术
  • 1.MySQL面试题之innodb如何解决幻读
  • Nginx中$http_host、$host、$proxy_host的区别
  • C# Unity 面向对象补全计划 七大原则 之 里氏替换(LSP) 难度:☆☆☆ 总结:子类可以当父类用,牛马是马,骡马也是马
  • PXE批量安装操作系统
  • float32转float16、snorm/sunorm8/16 学习及实现
  • 小型养猫空气净化器怎么选?小型养猫空气净化器产品评测
  • 数学建模--二分法
  • 如何使用 Puppeteer 绕过 Akamai
  • 【硬件知识】车规级开发等级——AEQ-100和ISO26262标准
  • Qt | QStackedBarSeries(堆叠条形图)+QPercentBarSeries(堆叠百分比条形图)
  • C++——多态经典案例(一)组装电脑
  • 从传统监控到智能化升级:EasyCVR视频汇聚平台的一站式解决方案
  • Windows下,已知程序PID,取得其窗口句柄HWND
  • Java获取exe文件详细信息:产品名称,产品版本等
  • ORB-SLAM2运行环境搭建
  • Nginx高频核心面试题2
  • 全面提升PDF编辑效率,2024年五大顶级PDF编辑器推荐!
  • 代码随想录算法训练营第二十天|235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点
  • 视频美颜SDK与直播美颜插件在实时视频中的应用
  • 【Linux】yum(工具篇)
  • 3GPP入门
  • FFmpeg内存对齐简述
  • 手机号码归属地查询接口如何对接?(一)
  • DDei在线设计器-加载数据
  • NetLLM: Adapting Large Language Models for Networking.
  • 基于Yolov8面部七种表情检测与识别C++模型部署
  • 未确认融资费用含义及会计处理流程
  • Linux配置go程序为service后台开机自启动