码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ZeRO论文阅读


    一.前情提要

    1.本文理论为主,并且仅为个人理解,能力一般,不喜勿喷

    2.本文理论知识较为成体系

    3.如有需要,以下是原文,更为完备

    Zero 论文精读【论文精读】_哔哩哔哩_bilibili

    二.正文

    1.前言

    ①为什么用该技术:当模型很大,计算单元存储不下的时候,将其分散开来,需要的时候调用即可,该技术则是应用于此

    ②简介:ZeRO是一种用于大规模深度学习模型训练的优化技术,旨在解决在训练大型模型时遇到的内存限制和通信开销等问题(简单理解:加速transformer)

    2.补充说明

    ①模型并行:

    模型并行是一种用于训练大型神经网络的分布式计算策略,旨在将模型参数分割并分配到不同的设备上进行计算。这种方法有助于克服单个设备内存的限制,并提高训练大型模型的效率。

    ②通讯

    GPU通信指的是在多个GPU之间进行数据传输和通信的过程。在深度学习中,通常会使用多个GPU来加速训练过程,这就需要在GPU之间有效地传输模型参数、梯度和其他相关数据。

    ③混合精度和半精度是深度学习中用于提高训练效率和性能的技术,通过减少模型参数和计算过程中的精度要求来降低计算成本。以下是对混合精度和半精度的解释:

    1. 半精度

    半精度是一种表示数值的方法,使用16位浮点数来存储数据。

    2. 混合精度

    混合精度是一种结合了不同精度的计算和存储方案。

    3.ZeRO-dp优化的细节

    (内存用在什么地方:①保存模型②保存梯度③保存优化器里的状态④中间值)

    ①核心算法是切开放在不同地方---->和参数服务器一样

    ②使用半精度来训练(fp16)但权重是fp32(避免一堆极小数字累加,可能仍然为0)再转化为fp16

    ③对于每个w状态只拷贝一份,避免重复-------->参与服务器的思想-------->内存使用下降

    4.ZeRO-R优化的细节

    ①不同于计算来换空间,这里是带宽来换空间

    ②对于额外的临时缓存:设置固定大小

    ③对于内存碎片:不断的整理

    5.具体实施(假定为两块卡,一个层)

    ①Pos(zero1)

    ②Pg(zero2)

    ③Pp(zero3)

    使用后呈现的结果:

    6.如何降低中间变量

    ①切分层(主要作用于模型并行)

    PA:

    ②buffer

    类比:在发送数据上,等待足够多的再发送,就像把包裹塞满卡车

    ③内存整理

    (上述都是使用在上层)

    7.在megantron上

    ①实验主图

    ②超线性性能增长

  • 相关阅读:
    UDP的MTU发现
    原生对象、内置对象、宿主对象的区别
    vmware: 磁盘加载问题导致,emergency mode: login incorrect 滚动打印
    【Java】面向对象:继承、组合和多态
    [生物信息]临床研究统计分析成长营14天班
    【clickhouse】ubuntu20安装clickhouse并用DBeaver远程管理
    SV-6002T-P 网络对讲求助终端,立柱式智慧城市网络对讲求助终端,停车场出入口一键求助终端
    【纯虚函数】设计一个形状类——矩形、圆形、三角形,分别计算三种当前图形的周长和面积
    单元测试效率优化:为什么要对程序进行测试?测试有什么好处?
    Firefox扩展目录
  • 原文地址:https://blog.csdn.net/omit250/article/details/138028700
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号