deepspeed笔记

news2024/11/25 7:17:55

文章目录

  • 一、deepspeed是什么?
  • 二、能训多大的模型,耗时如何?
  • 三、RLHF训练流程
  • 四、通信策略

一、deepspeed是什么?

传统的深度学习,模型训练并行,是将模型参数复制多份到多张GPU上,只将数据拆分(如,torch的Dataparallel),这样就会有大量的显存冗余浪费。而ZeRO就是为了消除这种冗余,提高对memory的利用率。注意,这里的“memory”不仅指多张GPU memory,还包括CPU。

而ZeRO的实现方法,就是把参数占用,逻辑上分成三种类型。将这些类型的参数划分:

optimizer states:即优化器的参数状态。例如,Adam的动量参数。
gradients:梯度缓存,对应于optimizer。
parameters:模型参数。
对应的,DeepSpeed的ZeRO config文件就可以分为如下几类:

ZeRO Stage 1: 划分optimizer states。优化器参数被划分到多个memory上,每个memory上的进程只负责更新它自己那部分参数。
ZeRO Stage 2: 划分gradient。每个memory,只保留它分配到的optimizer state所对应的梯度。这很合理,因为梯度和optimizer是紧密联系在一起的。只知道梯度,不知道optimizer state,是没有办法优化模型参数的。
ZeRO Stage 3: 划分模型参数,或者说,不同的layer. ZeRO-3会在forward和backward的时候,自动将模型参数分配到多个memory。
由于ZeRO-1只分配optimizer states(参数量很小),实际使用的时候,我们一般只会考虑ZeRO-2和ZeRO-3。

二、能训多大的模型,耗时如何?

针对不同规模的模型和硬件配置,DeepSpeed-RLHF系统所需的时间和成本如下:
在这里插入图片描述

三、RLHF训练流程

在这里插入图片描述
流程包括三个主要步骤:
第 1 步:监督微调 (SFT),使用精选的人类回答来微调预训练的语言模型,以应对各种查询。
第 2 步:奖励模型微调,用一个包含人类对同一查询的多个答案打分的数据集,来训练一个独立的(通常比SFT小)奖励模型(RW)。
第 3 步:RLHF训练,在这一步,SFT模型通过使用近似策略优化(PPO)算法,从RW模型的奖励反馈进一步微调。
在步骤3中,研究者还提供了两个附加功能,来帮助提高模型质量:

  • 指数移动平均线(EMA)的收集,可以选择一个基于EMA的检查点,进行最终评估。
  • 混合训练,将预训练目标(即下一个词预测)与 PPO 目标混合,以防止在公共基准(如SQuAD2.0)上的性能回归。

四、通信策略

DeepSpeed提供了mpi、gioo、nccl等通信策略

通信策略通信作用
mpi它是一种跨界点的通信库,经常用于CPU集群的分布式训练
gloo它是一种高性能的分布式训练框架,可以支持CPU或者GPU的分布式训练
nccl它是nvidia提供的GPU专用通信库,广泛用于GPU上的分布式训练

我们在使用DeepSpeed进行分布式训练的时候,可以根据自身的情况选择合适的通信库,通常情况下,如果是GPU进行分布式训练,可以选择nccl

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言结课实战项目_贪吃蛇小游戏

目录 最终实现效果: 实现基本的功能: 根据游戏进程解释代码: 游戏初始化: 首先进入游戏,我们应该将窗口名称改为 “贪吃蛇” 并将光标隐藏掉。再在中间打印游戏信息。 之后我们要把地图打印出来: 然后…

数据可视化插件echarts【前端】

数据可视化插件echarts【前端】 前言版权开源推荐数据可视化插件echarts一、如何使用1.1 下载1.2 找到js文件1.3 入门使用1.4 我的使用 二、前后端交互:入门demo2.1 前端htmljs 2.2 后端entitycontrollerservicemapper 三、前后端交互:动态数据3.1 前端j…

书生·浦语大模型全链路开源体系-第6课

书生浦语大模型全链路开源体系-第6课 书生浦语大模型全链路开源体系-第6课相关资源Lagent & AgentLego 智能体应用搭建环境准备创建虚拟环境安装LMDeploy安装 Lagent安装 AgentLego Lagent 轻量级智能体框架使用 LMDeploy 部署启动并使用 Lagent Web Demo使用自定义工具获取…

mysql的mgr集群的网络不可达之后脑裂的问题

此时主节点上的dml和ddl操作都会挂死,由于脑裂问题,无法判断谁是主谁是备,所以节点无法写操作。 此时需要手动介入处理: mysql> show variables like %group_replication_member_expel_timeout%; ---------------------------…

Java上机实验报告(7)

实验 (7) 项目名称:组件及事件处理-注册页面 一、 实验报告内容一般包括以下几个内容: 实验项目名称 实验7 组件及事件处理-注册页面 实验目的和要求 本实验的目的: 本实验的目的是让学生掌握常用的组件类JButton&am…

空气源热泵电控系统部分控制功能的逻辑

空气源热泵的电控系统,是一台空气源热泵设备的大脑,电控系统逻辑的合理性、执行的精准性,直接决定设备运行的稳定、能效高低、运行寿命。 控制功能 (1)压缩机防频繁起停 压缩机再次启动间隔时间为3分钟,即压…

果园系统养殖游戏喂养偷菜种植浇水养成小程序功能介绍

以下是上述功能介绍的重写版本: 装扮 使用丰富的材料,为您的房屋增添独特魅力,展现个性化装饰风格。 土地升级 投入不同数量的材料,提升房屋与土地的品质,打造独一无二的庄园。 日志 通过日志记录,清…

Flask实战

from flask import Flask appFlask(__name__)点击Flask同时点击键盘ctrl即可查看Flask的默认初始化函数 def __init__(self,import_name: str,static_url_path: str | None None,static_folder: str | os.PathLike[str] | None "static",static_host: str | None …

LeetCode-31-下一个排列问题

题目说明 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。…

考研日常记录

由于实在太无聊了 , 所以记录以下考研备考日常 , 增加一点成就感 , 获得一点前进动力。 2024.4.18 周四 课程情况: 无课 时间规划: 上午:休息 下午: 事项耗时进度备注写作业1h复习英语单词…

SayNav: 利用大语言模型在未知环境中导航

论文标题:SayNav: Grounding Large Language Models for Dynamic Planning to Navigation in New Environments 论文地址:https://arxiv.org/pdf/2309.04077.pdf 项目地址:https://www.sri.com/ics/computer-vision/saynav SayNav介绍 SayNa…

ExpandableListView可扩展列表视图,可折叠列表视图

目录 1. XML代码 2. ExpandableListView的使用 3. ExpandableListAdapter的使用 4. 数据观察者的使用 5. 案例代码一览 ExpandableListView(可扩展/可折叠列表视图)是一种多功能的高级控件,每个子项都可以展开一个孙子列表。点击一个分组…

科研基础与工具(笔记)

​ 免责申明: 本文内容只是学习笔记,不代表个人观点,希望各位看官自行甄别 参考文献 科研基础与工具(YouTube) 专业名词 影响因子(Impact Factor),一般是特指SCI的影响因子&#…

Qt实现Mysql数据库的连接,查询,修改,删除,增加功能

Qt实现Mysql数据库的连接,查询,修改,删除,增加功能 安装Mysql数据库,QtCreator Mysql选择Mysql Server 8.1版本安装。 Mysql Server 8.1安装过程 1.首先添加网络服务权限: WinR键输入compmgmt.msc进入…

论文阅读:BEVBert: Multimodal Map Pre-training for Language-guided Navigation

BEVBert:语言引导导航的多模态地图预训练 摘要 现存的问题:目前大多数现有的预训练方法都采用离散的全景图来学习视觉-文本关联。这要求模型隐式关联全景图中不完整、重复的观察结果,这可能会损害智能体的空间理解。 本文解决方案&#xf…

PCBA镀金工艺介绍

PCBA(印制电路板组装)的镀金工艺是一种常见的表面处理方法,用于提高印制电路板(PCB)的性能和耐用性。本文将详细介绍PCBA的镀金工艺,包括其类型、工艺流程、优点及应用。 1. 镀金工艺的类型 PCBA的镀金主要…

Mac电脑版鼠标连点工具 RapidClick for Mac

RapidClick for Mac是一款方便实用的自动点击工具,可以帮助Mac用户在使用电脑时轻松、快速地进行鼠标操作。它可以模拟人类手指点击的动作,让您的鼠标点击变得更加快捷高效,大大提升了工作和游戏的效率。 RapidClick for Macv1.5.1激活版下载…

【windows-搭建Ubuntu22LTS】

一、环境要求 1. windows版本要求 至少Windows 10 2020年5月(2004) 版, Windows 10 2019年5月(1903) 版,或者 Windows 10 2019年11月(1909) 版 2. 控制面板开启相关的程序(需要重启) 二、Microsoft store安装unbuntu 下载后直接运行(稍微等会&#…

mac: docker安装及其Command not found: docker

已经安装了docker desktop,没安装的 点击安装 傻瓜式安装即可 接着打开终端:好一个 Comand not found:docker 看我不把你整顿,解决如下: 如果你在 macOS 上安装了 Docker Desktop,但是终端无法识别 docker 命令&…

【ARM 裸机】汇编 led 驱动之烧写 bin 文件

1、烧写概念 bin 文件烧写到哪里呢?使用 STM32 的时候烧写到内部 FLASH,6ULL 没有内部 FLASH,是不是就不能烧写呢?不,6ULL 支持 SD卡、EMMC、NAND FLASH、NOR FLASH 等方式启动,在裸机学习的工程中&#x…