大模型-模型预训练-训练时间预估训练显存预估

news2024/10/21 16:38:28

一、训练时间预估

1、耗时计算内容
  • 浮点数计算
2、训练时间
  • 训练时间 = 运算量 / (GPU卡数 X GPU每秒运算数)
3、每秒运算数

实际GPU每秒运算数约等于GPU理论极限能力的30%到70%

二、训练显存预估

1、字母映射
  • P:模型参数量
  • G:GPU数量
  • N𝑡:张量并行数
  • Np:流水线并行数
  • N𝑑:训练的数据并行数
2、占用显存的部分
  • 模型参数与优化器
  • 训练中需要保存的激活值
  • 其他显存占用
3、模型参数与优化器的显存占用
3.1、简介
  • 组成部分
    • 模型参数
    • 模型梯度
    • 优化器等
  • 数据存储格式
    • 16位、2字节浮点数
      • 模型参数
      • 模型梯度
    • 32位、4字节浮点数
      • 模型参数
      • 动量参数
      • 动量二阶矩阵参数
3.2、不同方案对比
  • 不使用ZeRO优化技术:每张卡需要16P显存
    • 模型参数:2P
    • 模型梯度:2P
    • Adam优化器
      • 模型参数:4P
      • 动量参数:4P
      • 动量二阶矩参数:4P
  • 使用ZeRO的优化器参数分区方案(ZeRO-1):
    • 特点:将优化器的参数平摊到每张GPU上,模型参数和模型梯度各自保留
    • 显存占用:( 2 + 2 )* P + ( 4 + 4 + 4 )* P / N𝑑 = 4P + 12P / N𝑑
    • 优点:相比不使用ZeRO的方案,在GPU数量足够多的情况下,模型参数和优化器所占用显存会减少到原来的1/4
  • 使用ZeRO的模型梯度分区方案(ZeRO-2):
    • 简介:在ZeRO-1的基础上,进一步将模型梯度平分到每张GPU上
    • 显存占用:2P + ( 2 + 4 + 4 + 4 )* P / N𝑑 = 2P + 14P / N𝑑
    • 优点:GPU数量足够多的情况下,用于存储模型参数和优化器的显存会减少到1/8
  • 使用ZeRO的模型参数分区方案(ZeRO-3):
    • 简介:基于ZeRO-2方案,进一步将模型参数均分到每张GPU上
    • 显存占用:16P / N𝑑
    • 优点:用于存储模型参数和优化器的显存会减少至原来的1 / N𝑑
  • 使用张量并行和流水线并行的方案
    • 简介:与上述四种方式兼容
    • 显存占用:上述几种方案的情况下 / N𝑡 * Np
4、训练激活值的显存占用
4.1、简介
  • 显存存储内容:前向传播需要保留每层的激活值(中间状态),来用于后续反向传播中计算梯度并更新模型参数
4.2、不同层显存占用
  • 多头自注意力层(不考虑张量并行、流水线并行、激活重计算等优化方法):
    • 显存占用
      • 查询、键、只的线性变换需要保存其输入,占用2BTH字节
      • 多头注意力计算保存输入的查询、键、值,共占用6BTH字节
      • 合并多头结果需要保存其输入,占用2BTH字节
      • 若未使用FlashAttention优化,需要占用2BT²N字节,若未使用,此部分无开销
  • 前馈网络层
    • 显存占用:2BTH + 6BTH’
      • 保存SwiGLU激活函数的输入,占用2BTH字节
      • 同时要保存WᴳX和WᵁX的值,占用4BTH’字节
      • 保留SwiGLU的输出值,作为后续线性变换的输入,共计2BTH’字节
  • 归一化层
    • 显存占用:每层解码器包含两个归一化层,每个归一化层需要保存其输入,占用4BTH字节
  • 输出层
    • 显存占用:
      • 经过L层解码器解析后,需要经过归一化层处理,需要保存其输入,占用2BTH字节
      • 保存词表映射的输入,占用2BTH字节
      • 保存softmax输入,占用,在实践中,为了提升softmax的精度,回见输入转化为32位浮点数来进行后续计算,占用4BTV字节
4.3、不同优化方案显存占用(默认不使用FlashAttention,使用的话,去掉2BT²N即可)
  • 未使用FlashAttention的情况下:(16BTH + 6BTH’ + 2BT²N)* L + 4BTH + 4BTV
  • 使用FlashAttention的情况下(去掉2BT²N):(16BTH + 6BTH’ )* L + 4BTH + 4BTV
  • 流水线并行:每个GPU仅需要保存分配到的层对应的激活值即可,激活值占用显存 = (16BTH + 6BTH’ + 2BT²N)* L / Np + 4BTH + 4BTV
  • 张量并行:多头注意力层和前馈网络层中的线性变换操作可以通过拆分参数矩阵,分配到不同GPU上并行计算结果,对应的激活值也分配到响应GPU上去,激活值占用显存 = (( 8 + 8 / N𝑡)BTH + 6BTH’ / N𝑡 + 2BT²N / N𝑡 )* L + 4BTH + 4BTV
  • 激活重计算:激活重计算在前向传播时仅保存Transformer每一层的输入和最后层softmax层的输入,在反向传播时按需重新计算激活值来减少显存占用,激活值占用 = ( 4 + 2L )BTH + 4BTV
5、其他显存占用
  • 代码库内核:0.8-1GB
  • ZeRO优化技术实现:1-4GB
  • 训练过程中的中间结果和显存碎片:0.5-1GB
6、实际训练所需显存估计

至少需要16别参数数量的显存资源,例如13B的模型,至少需要13 X 16 = 208GB的显存

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

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

相关文章

2024 OSCAR|《开源体系建设路径模式洞察与建议》即将发布

近年来,开源体系建设受到高度重视,国家软件发展战略和“十四五”规划纲要均对开源作出重要部署,为我国开源体系建设和发展指明了方向。9月25日,工业和信息化部党组书记、部长金壮指出要加强开源体系建设,助推产业高质量…

03 springboot-国际化

Spring Boot 提供了很好的国际化支持,可以轻松地实现中英文国际化。 项目创建,及其springboot系列相关知识点详见:springboot系列 springboot系列,最近持续更新中,如需要请关注 如果你觉得我分享的内容或者我的努力对…

构建高效房屋租赁平台:SpringBoot应用案例

第1章 绪论 1.1 课题背景 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。所以各行业,尤其是规模较大的企业和学校等…

爱维艾夫净利润下滑权益回报率骤降,退款数量增加市占率仅1%

《港湾商业观察》施子夫 9月13日,爱维艾夫医院管理集团有限公司(以下简称,爱维艾夫)第二次递表港交所,保荐机构为中信证券。 爱维艾夫的第一次递表发生在2023年12月,后因递表资料失效而告终。一年不到的时…

基于SSM机场网上订票系统的设计

管理员账户功能包括:系统首页,个人中心,用户管理,机票信息管理,订单信息管理,机场广告管理,系统管理 前台账号功能包括:系统首页,个人中心,机票信息&#xf…

餐饮行业有什么好的供应链管理系统

在餐饮企业的供应链管理中,合适的供应链管理系统是至关重要的,它能够帮助企业提高食材采购效率、降低成本、确保食材供应的及时性和质量。然而,许多餐饮企业在供应链管理系统方面存在诸多问题,常常会面临以下困境: ●…

【路径跟踪控制:Bang-Bang 控制与车辆运动学模型】

【路径跟踪控制:Bang-Bang 控制与车辆运动学模型】 1. 引言2. 环境准备3. 车辆运动学模型3.1 理论基础3.2 Python 实现车辆运动学模型建模 4. Bang-Bang 控制策略4.1 理论基础4.1.1 误差角度计算与转向角调整4.1.2 Bang-Bang控制实现 4.2 完整代码4.3 控制策略解释 …

springboot051医院管理系统(论文+源码)_kaic

医院管理系统 摘要 随着信息互联网信息的飞速发展,医院也在创建着属于自己的管理系统。本文介绍了医院管理系统的开发全过程。通过分析企业对于医院管理系统的需求,创建了一个计算机管理医院管理系统的方案。文章介绍了医院管理系统的系统分析部分&#…

万家数科:零售业务信息化融合的探索|OceanBase案例

本文作者:马琳,万家数科数据库专家。 万家数科商业数据有限公司,作为华润万家旗下的信息技术企业,专注于零售行业,在为华润万家提供服务的同时,也积极面向市场,为零售商及其生态系统提供全面的核…

基于DSP+ARM+FPGA的电能质量分析仪的软件设计

软件设计是电能质量设备的核心内容,上述章节详细介绍了电能质量参数的 算法,并且通过仿真实验进行了验证,本章将结合现代电能质量监测设备需求实 现算法在实际电网中应用。根据设计的电能质量分析仪的需求分析,进行总体的 软件…

【Android】Jetpack入门知识总结(LifeCycle,ViewModel,LiveData,DataBinding等)

文章目录 LifeCycle使用Lifecycle解耦页面与组件自定义控件实现LifecycleObserver接口注册生命周期监听器 使用LifecycleService解耦Service与组件使用ProcessLifecycleOwner监听应用程序生命周期 ViewModel用法在 Fragment 中使用 ViewModel LiveDataDataBinding导入依赖基本用…

Redis 性能优化选择:Pika 的配置与使用详解

引言 在我们日常开发中 redis是我们开发业务场景中不可缺少的部分。Redis 凭借其内存存储和快速响应的特点,广泛应用于缓存、消息队列等各种业务场景。然而,随着数据量的不断增长,单节点的 Redis 因为内存限制和并发能力的局限,逐…

FP7127:降压恒流LED芯片 支持双路调色调光 PWM调光

一、降压恒流LED芯片FP7127 FP7127 是平均电流模式控制的 LED 驱动 IC,具有稳定输出恒流的能力,优秀的负载调整率与高精度的电流控制。不用额外增加外部补偿元件,简化 PCB 板设计。输出的LED电流精度为 2%。 如果你想进行PWM数位调光&#…

R语言机器学习教程大纲

文章目录 介绍机器学习算法监督学习Supervised Learning分类Classification回归Regression 无监督学习 Unsupervised Learning聚类 Clustering降纬 Dimensionality Reduction相关Association 强化学习Reinforcement Learning模型自由 Model-Free Methods模型驱动 Model-Based M…

Rancher—多集群Kubernetes管理平台

目录 一、Rancher 简介1.1 Rancher 和 k8s 的区别 二、Rancher 安装及配置2.1 安装 rancher2.2 登录 Rancher 平台2.3 Rancher 管理已存在的 k8s 集群2.4 创建名称空间 namespace2.5 创建 Deployment 资源2.6 创建 service2.7 Rancher 部署监控系统 一、Rancher 简介 Rancher …

curl支持ssl错误:curl: (60) SSL certificate problem: certificate is not yet valid

在测试curl命令的时候发现curl: (60) SSL certificate problem: certificate is not yet valid出现这个错误,已经设置了ssl证书路径,最终发现是板子上时间不对,设置时间后可以正常使用。

论文研读 | End-to-End Object Detection with Transformers

DETR:端到端目标检测的创新 —— 作者 Nicolas Carion 等人 一、背景与挑战 目标检测是计算机视觉领域的一个核心任务,要求模型精确识别图像中的物体类别和位置。传统方法如 Faster R-CNN,因其区域建议网络等复杂结构,使得模型调…

网络安全基础知识点_网络安全知识基础知识篇

文章目录 一、网络安全概述1.1 定义1.2 信息安全特性1.3 网络安全的威胁1.4 网络安全的特征 二、入侵方式2.1 黑客2.1.1 入侵方法2.1.2 系统的威胁2.2 IP欺骗与防范2.2.1 TCP等IP欺骗基础知识2.2.2 IP欺骗可行的原因2.2.3 IP欺骗过程2.2.4 IP欺骗原理2.2.5 IP欺骗防范2.3 Sniff…

数据结构编程实践20讲(Python版)—16有向图

本文目录 16 有向图(Directed Graph)S1 说明特征应用领域S2 示例S3 问题:利用有向图构建贝叶斯网络Python代码代码说明结果S4 问题:有依赖的任务调度Python代码代码说明结果S5 问题:基于有向图的搜索引擎排序算法Python代码代码说明结果往期链接 01 数组02 链表03 栈04 队…

成都睿明智科技有限公司电商服务可靠不?

在这个短视频风起云涌的时代,抖音不仅成为了人们娱乐消遣的首选平台,更是众多商家竞相追逐的电商新蓝海。成都睿明智科技有限公司,作为抖音电商服务领域的佼佼者,正以其独到的洞察力和专业的服务,助力无数品牌在这片沃…