大模型学习

大模型的参数量和显存占用估算

现在业界的大语言模型都是基于transformer模型的,模型结构主要有两大类:encoder-decoder(代表模型是T5)和decoder-only,具体的,decoder-only结构又可以分为Causal LM(代表模型是GPT系列)和Prefix LM(代表模型是GLM)。针对decoder-only框架,估算其参数量和显存占用。

参数量约为12lh^{2},其中l指transformer层数,h指隐藏层维度。

训练显存占用约为20*参数量,单位B。20=2+4+2+4+4+4,前两个数字是权重,接着两个是梯度,最后两个是优化器状态大小。每个可训练模型参数都会对应1个梯度,并对应2个优化器状态。在混合精度训练中,会使用float16的模型参数进行前向传递和后向传递,计算得到float16的梯度;在优化器更新模型参数时,会使用float32的优化器状态、float32的梯度、float32的模型参数来更新模型参数。

推理显存占用约为2*参数量,单位B。如果使用KV cache来加速推理过程,KV cache也需要占用显存,约为4blh(s+n),b是batch,l是transformer层数,h指隐藏层维度,s是输入序列长度,n是输出序列长度,4=2*2,k和v的cache,每个cache fp16存储,占用2B。

计算量FLOPs约为

计算量和参数量的关系,近似认为,在一次前向传递中,对于每个token,每个模型参数,需要进行2次浮点数运算,即一次乘法法运算和一次加法运算。一次训练迭代包含了前向传递和后向传递,后向传递的计算量是前向传递的2倍。因此,一次训练迭代中,对于每个token,每个模型参数,需要进行6次浮点数运算。

训练时间估计参考下面的公式,8是因为激活重计算技术来减少中间激活显存需要进行一次额外的前向传递,即4*2次浮点数运算。

中间激活的显存占用大小约为(34bsh+5bs^{2}a)*l,其中b是batch,s是序列长度,a是注意力头数,l是transformer层数,h指隐藏层维度。在训练过程中中,模型参数(或梯度)占用的显存大小只与模型参数量和参数数据类型有关,与输入数据的大小是没有关系的。优化器状态占用的显存大小也是一样,与优化器类型有关,与模型参数量有关,但与输入数据的大小无关。而中间激活值与输入数据的大小(批次大小 和序列长度是成正相关的,随着批次大小和序列长度的增大,中间激活占用的显存会同步增大。

参考文章:分析transformer模型的参数量、计算量、中间激活、KV cache

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

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

相关文章

鸿蒙系统应用开发之开发准备

今天我们来聊一聊鸿蒙系统应用开发之前,要做什么准备工作,如下图所示,我们要做的就是安装DevEco Studio,然后配置开发环境。 老规矩,拍拍手👏,上菜。 安装DevEco Studio 首先我们打开链接HUAWEI…

【每日论文阅读】Do Perceptually Aligned Gradients Imply Robustness?

近似人眼梯度 https://icml.cc/virtual/2023/oral/25482 对抗性鲁棒分类器具有非鲁棒模型所没有的特征——感知对齐梯度(PAG)。它们相对于输入的梯度与人类的感知非常一致。一些研究已将 PAG 确定为稳健训练的副产品,但没有一篇研究将其视为…

YOLOv8改进 | 损失函数篇 | SlideLoss、FocalLoss分类损失函数助力细节涨点(全网最全)

一、本文介绍 本文给大家带来的是分类损失 SlideLoss、VFLoss、FocalLoss损失函数,我们之前看那的那些IoU都是边界框回归损失,和本文的修改内容并不冲突,所以大家可以知道损失函数分为两种一种是分类损失另一种是边界框回归损失,上一篇文章里面我们总结了过去百分之九十的…

利用人工智能和机器人技术实现复杂的自动化任务!

这篇mylangrobot项目由neka-nat创建,本文已获得作者Shirokuma授权进行编辑和转载。 https://twitter.com/neka_nat GitHub-mylangrobot :GitHub - neka-nat/mylangrobot: Language instructions to mycobot using GPT-4V 引言 本项目创建了一个使用GPT-4…

docker/华为云cce 部署nacos 2.3.0 集群模式

镜像地址 https://hub.docker.com/r/nacos/nacos-server 版本 nacos/nacos-server:v2.3.0-slim 关键环境变量 使用mysql数据源 变量值备注MODEcluster启用集群模式MYSQL_SERVICE_DB_NAME数据库名MYSQL_SERVICE_USER数据库用户名MYSQL_SERVICE_PASSWORD数据库密码SPRING_D…

江科大-stm32-B站系统初识笔记P2

文章目录 一:ARM是什么二:关键字介绍 推荐视频:《 STM32入门教程-2023版 细致讲解 中文字幕》 一:ARM是什么 ①: ST – 意法半导体 M – Microelectronics 微电子 32 – 总线宽度 ARM架构: Cortex-A:Application 应用…

【echarts】雷达图参数详细介绍

1. 详细示例 var option {tooltip: {trigger: item},radar: {startAngle: 90,//第一个指示器轴的角度,默认90indicator: [// 指示器{ name: Category A, max: 220 },// name:指示器名称{ name: Category B, max: 200 },// max:指示器的最大值,可选&…

NODE笔记 0

一些简单的node学习笔记记录,是Vue等前端框架的基础 入门学习备忘录 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 node.js 内置网络服务器,是前端框架学习的基础: 概念:…

Linux--好玩的进度条

前言 先来看看我们想要达到的进度条效果,具体代码会在文章最后面放出。 一、创建文件及Makefile 我们需要实现声明的定义的分离,因此创建如下三个文件。 process.h prcess.c main.c。 touch process.h process.c main.c 同时还需要创建Makefi…

数据结构与算法-栈-移掉K位数字

移掉K位数字 给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k **位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。 示例 1 : 输入:num "1432219", k 3 输出:&quo…

kubernetes ingress 详解 (包含灰度发布/金丝雀部署)

写在前面:如有问题,以你为准, 目前24年应届生,各位大佬轻喷,部分资料与图片来自网络 内容较长,页面右上角目录方便跳转 ingress 介绍 架构 原理 官网资料:Ingress 控制器 | Kubernetes 我…

智能商品系统如何协同其他系统共享数据和优化供应链决策?

智能商品系统可以通过与其他系统(如ERP系统)进行数据集成和协同工作,以实现数据共享和优化供应链决策。具体而言,可以采取以下方法: 数据接口和集成:智能商品系统和ERP系统可以通过数据接口进行连接和数据交…

身为程序员,你很有必要了解一下提效工具“JNPF”

如果你有软件开发的需求,推荐你使用以Vue为技术栈的低代码JNPF。 这款低代码和市面上的其他低代码区别很大的,相较于轻流、简道云、轻宜搭、微搭、帆软、活字格等等,这类面向业务人群使用的低代码(不需要研发人员操作的编写的&am…

英飞凌TC3xx之一起认识GTM(九)GTM相关知识简述及应用实例(CMU,CCM,TBU,MON)

英飞凌TC3xx之一起认识GTM(九)GTM相关知识简述及应用实例(CMU,CCM,TBU,MON) 1 时钟管理单元(CMU)2 集群配置模块(CCM)3 时基单元(TBU)4 监控单元(MON)5 总结由前文的各篇内容,开发者已经知道如何使用GTM的大部分功能,在这些功能中,都需要一个信息就是fGTM 的数据…

软件测试|MySQL SHOW DATABASES详解

简介 在MySQL中,SHOW DATABASES是一条SQL语句,用于显示当前MySQL服务器上所有可用的数据库。这条简单而常用的命令可以让你快速查看服务器上的数据库列表。本文将详细介绍SHOW DATABASES的使用方法以及相关注意事项。 语法 在 MySQL 中,可…

vue3 img图片怎么渲染

在 Vue3 中加载图片&#xff08;img&#xff09;src地址时&#xff0c;出现无法加载问题。网上很多都建议使用 require 加载相对路径&#xff0c;如下&#xff1a; <img :src"require(../assets/img/icon.jpg)"/>但是按照这种方式加载又会报错如下&#xff1a;…

商城小程序(7.加入购物车)

目录 一、配置vuex二、创建购物车的store模块三、在商品详情页中使用store模块四、实现购加入购物车功能五、动态统计购物车中商品的总数量六、持久化存储购物车的商品七、优化商品详情页的total侦听器八、动态为tabBar页面设置数据徽标九、将设置tabBar徽标的代码抽离为mixins…

tcp/ip协议2实现的插图,数据结构6 (24 - 章)

(142) 142 二四1 TCP传输控制协议 tcpstat统计量与tcp 函数调用链 (143) 143 二四2 TCP传输控制协议 宏定义与常量值–上 (144) 144 二四3 TCP传输控制协议 宏定义与常量值–下 (145) 145 二四4 TCP传输控制协议 结构tcphdr,tcpiphdr (146) 146 二四5 TCP传输控制协议 结构 tcp…

05、Kafka ------ 各个功能的作用解释(主题和分区 详解,用命令行和图形界面创建主题和查看主题)

目录 CMAK 各个功能的作用解释&#xff08;主题&#xff09;★ 主题★ 分区★ 创建主题&#xff1a;★ 列出和查看主题 CMAK 各个功能的作用解释&#xff08;主题&#xff09; ★ 主题 Kafka 主题虽然也叫 topic&#xff0c;但它和 Pub-Sub 消息模型中 topic 主题及 AMQP 的 t…

供应链安全-镜像 Trivy kubesec

开头语 写在前面&#xff1a;如有问题&#xff0c;以你为准&#xff0c; 目前24年应届生&#xff0c;各位大佬轻喷&#xff0c;部分资料与图片来自网络 内容较长&#xff0c;页面右上角目录方便跳转 Dockerfile 文件优化 减少镜像层&#xff1a;一次RUN指令形成新的一层&a…