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

news/2024/11/28 11:25:45/文章来源:https://www.cnblogs.com/fasterai/p/18569921

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

重要性:★★


NLP Github 项目:

  • NLP 项目实践:fasterai/nlp-project-practice

    介绍:该仓库围绕着 NLP 任务模型的设计、训练、优化、部署和应用,分享大模型算法工程师的日常工作和实战经验

  • AI 藏经阁:https://gitee.com/fasterai/ai-e-book

    介绍:该仓库主要分享了数百本 AI 领域电子书

  • AI 算法面经:fasterai/nlp-interview-handbook#面经

    介绍:该仓库一网打尽互联网大厂NLP算法面经,算法求职必备神器

  • NLP 剑指Offer:https://gitee.com/fasterai/nlp-interview-handbook

    介绍:该仓库汇总了 NLP 算法工程师高频面题


ZeRO被分为了三个级别:

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

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

ZeRO1

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

假设我们有 𝑁𝑑 个并行的进程,ZeRO-1 会将完整优化器的状态等分成 𝑁𝑑 份并储存在各个进程中。当反向传播完成之后,每个进程的优化器会对自己储存的优化器状态(包括Momentum、Variance 与 FP32 Master Parameters)进行计算与更新。更新过后的Partitioned FP32 Master Parameters会通过All-gather传回到各个进程中。完成一次完整的参数更新。

通过 ZeRO-1 对优化器状态的分段化储存,7.5B 参数量的模型内存占用将由原始数据并行下的 120GB 缩减到 31.4GB

ZeRO2

第二阶段中对梯度进行了拆分,在一个Layer的梯度都被计算出来后: 梯度通过All-reduce进行聚合, 聚合后的梯度只会被某一个进程用来更新参数,因此其它进程上的这段梯度不再被需要,可以立马释放掉。

通过 ZeRO-2 对梯度和优化器状态的分段化储存,7.5B 参数量的模型内存占用将由 ZeRO-1 中 31.4GB 进一步下降到 16.6GB

ZeRO3

第三阶段就是对模型参数进行分割。在ZeRO3中,模型的每一层都被切片,每个进程存储权重张量的一部分。在前向和后向传播过程中(每个进程仍然看到不同的微批次数据),不同的进程交换它们所拥有的部分(按需进行参数通信),并计算激活函数和梯度。

初始化的时候。ZeRO3将一个模型中每个子层中的参数分片放到不同进程中,训练过程中,每个进程进行正常的正向/反向传播,然后通过All-gather进行汇总,构建成完整的模型。


NLP 大模型高频面题汇总

NLP基础篇

  • 【NLP 面试宝典 之 模型分类】 必须要会的高频面题
  • 【NLP 面试宝典 之 神经网络】 必须要会的高频面题
  • 【NLP 面试宝典 之 主动学习】 必须要会的高频面题
  • 【NLP 面试宝典 之 超参数优化】 必须要会的高频面题
  • 【NLP 面试宝典 之 正则化】 必须要会的高频面题
  • 【NLP 面试宝典 之 过拟合】 必须要会的高频面题
  • 【NLP 面试宝典 之 Dropout】 必须要会的高频面题
  • 【NLP 面试宝典 之 EarlyStopping】 必须要会的高频面题
  • 【NLP 面试宝典 之 标签平滑】 必须要会的高频面题
  • 【NLP 面试宝典 之 Warm up 】 必须要会的高频面题
  • 【NLP 面试宝典 之 置信学习】 必须要会的高频面题
  • 【NLP 面试宝典 之 伪标签】 必须要会的高频面题
  • 【NLP 面试宝典 之 类别不均衡问题】 必须要会的高频面题
  • 【NLP 面试宝典 之 交叉验证】 必须要会的高频面题
  • 【NLP 面试宝典 之 词嵌入】 必须要会的高频面题
  • 【NLP 面试宝典 之 One-Hot】 必须要会的高频面题
  • ......

BERT 模型面

  • 【NLP 面试宝典 之 BERT模型】 必须要会的高频面题
  • 【NLP 面试宝典 之 BERT变体】 必须要会的高频面题
  • 【NLP 面试宝典 之 BERT应用】 必须要会的高频面题
  • ......

LLMs 微调面

  • 【NLP 面试宝典 之 LoRA微调】 必须要会的高频面题
  • 【NLP 面试宝典 之 Prompt】 必须要会的高频面题
  • 【NLP 面试宝典 之 提示学习微调】 必须要会的高频面题
  • 【NLP 面试宝典 之 PEFT微调】 必须要会的高频面题
  • 【NLP 面试宝典 之 Chain-of-Thought微调】 必须要会的高频面题
  • ......

本文由mdnice多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/841602.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenEuler安装MongoDB并配置访问密码

1. 下载MongoDB、安装 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.18.tgz tar zxvf mongodb-linux-x86_64-rhel80-4.4.18.tgz移动到/home路径下 mv mongodb-linux-x86_64-rhel80-4.4.18 /home cd /home mv mongodb-linux-x86_64-rhel80-4.4.…

2025最新在线客服源码-即时通讯实时消息-企业级源码-可私有部署定制开发

本系统采用Golang Gin框架+GORM+MySQL+Vue+ElementUI开发的独立高性能在线客服系统。 客服系统访客端支持PC端、移动端、小程序、公众号中接入客服,利用超链接、网页内嵌、二维码、定制对接等方式让网上所有通道都可以快速通过本系统联系到商家。 服务端可编译为二进制程序包,…

授权|取消授权MYSQL数据库用户权限

授权 queryusr用户查询test数据库 grant select on test.* to queryusr@%; flush PRIVILEGES收回queryusr用户查询test数据库权限,用revoke REVOKE usage on test.* from queryusr@%; flush PRIVILEGES查queryusr用户目前授权的情况 show grants for queryusr.zstitle { width…

【日记】差点把工装玩儿丢了(863 字)

正文今天好大的妖风。中午外面吹得旗杆猎猎作响。吃饭的时候还能看到漫天的絮。虽然我也不清楚那到底是什么……上个周末差点把工装玩儿没了。昨天晚上临睡觉,到处找我那个西装外套,找不到。想了一下,应该没有落在体检中心,应该也没落在餐馆等等其他地方,反正肯定在行里。…

SQL SERVER日常运维巡检系列——结构设计

前言做好日常巡检是数据库管理和维护的重要步骤,而且需要对每次巡检日期、结果进行登记,同时可能需要出一份巡检报告。本系列旨在解决一些常见的困扰: 不知道巡检哪些东西不知道怎么样便捷体检机器太多体检麻烦生成报告困难,无法直观呈现结果 前面两篇对服务器软硬件配置、…

GitLab的备份与恢复

一、备份 1. docker执行备份 docker exec gitlab gitlab-rake gitlab:backup:create 默认将备份文件保存至docker的/var/opt/gitlab/backups/ 目录 这条命令是在 Docker 容器内部执行 GitLab 的备份操作。让我来解释一下这个命令的各个部分: docker exec:这是 Docker 命令,用…

Contrastive Learning 对比学习 | RL 学 representation 时的对比学习

在 RL 的 representation learning 中,应用对比学习思想和 InfoNCE loss。记录一下读的三篇相关文章。 01. Representation Learning with Contrastive Predictive Codingarxiv:https://arxiv.org/abs/1807.03748 ,2018 年的文章。 参考博客:知乎 | 理解 Contrastive Pred…

datart非Docker镜像如何部署并配置截图

这里展示的是Windows系统非Docker镜像如何部署并配置截图服务 Linux系统可以参考:https://www.bilibili.com/video/BV1LW4y1m7Rs/?spm_id_from=333.999.0.0&vd_source=bfded88efa5870523e32ef275283d984 安装Chrome浏览器并查看版本 下载地址:https://www.google.cn/int…

jupyter 入门

Jupyter介绍 Jupyter可以理解为python笔记本,可以分块运行python代码并展示输出结果,支持markdown格式的文本显示。 简单来说,jupyter中有三部分内容:markdown格式的文本块; python代码块; python的输出结果块。 Jupyter文件的后缀为.ipynb。 Vscode或Pycharm中可以直接新建…

SARscape6.1新特性

SARscape6.1于2024年11月正式发布,匹配ENVI6.1版本,最低支持版本为ENVI5.6.0,主要包含以下新功能和功能改进: 突出变化:洪水监测工具 移动目标速率估算工具:估算SAR影像中移动目标速度的新工具。 自动形变建模工具:能够自主执行非线性和线性反演,以确定地震后的滑动分布…

中电金信:数据管理的“工艺”和“柔”性艺术

数字化转型将数据作为重要的资源和决策依据,通过收集、加工、分析和利用大数据,来优化业务流程和支撑业务决策。中国信通院在“2023数据资产管理大会”上分享了数据管理发展的六大趋势,其中认为“DataOps将打造数据开发治理融合的新范式”“数据编织塑造下一代数据架构”。那…

macOS电脑数据转换:Easy Data Transform直装版安装包资源

Easy Data Transform是一款专为Mac用户设计的数据转换工具,支持CSV、Excel、JSON等多种文件格式。它提供直观的拖放界面,无需编写代码即可完成数据合并、过滤、排序、拆分等操作。此外,该软件拥有丰富的转换模板和自动化功能,支持42种转换和60种文本编码,能够显著提高数据…