【小白入门篇6】常识|怎么计算模型需要的资源

01 背景

各个公司相继推出大模型, 有开源和不开源,有些技术爱好者也开始心痒难耐,萌生了私有本地模型,甚至有伙伴构建大模型并进行训练的想法, 大模型不仅比拼技术, 也是比拼爹(资源)的存在, 我个人在实战经历经常问自己,到底需要什么样配置才能跑起来这个模型, 完成这个实验目标, 由此引发对估算大模型需要的GPU显存的进一步了解.

02 模型参数量

如下图(来源于网络), 我们经常会看到模型名称带70B、14B、32B等字眼,这些就是表示模型参数的个数, 反映出模型大小, b代表英文单词“billio****n”的意思, 也就是10亿. 所以70B就是700亿个参数左右, 14B就是140亿个参数左右, 32B就是320亿个参数左右. 在大模型以前的时代, 也有一些比较小模型,单位一般都是M(百万)为计算单位, LLM出现之后, 基本模型参数数量基本是以亿为基本单位.

image.png

03 参数精度

影响模型占用显存大小,除了参数量, 还有参数精度,所谓参数精度,就是参数的数据类型. 我们之前在《Transformer原理》中学到Transformer, 神经网络一般都是用具体数字表示, 所以我们这里所说的参数数据类型都是浮点数, 常见浮点数的精度类型有以下几种:

类型

描述

说明

float64

双精度浮点数 (64位)

双精度浮点数提供更高的精度,适用于需要更高数值精度的应用,但会占用更多的内存。占用8个字节(64位)

float32

单精度浮点数 (32位)

单精度浮点数用于表示实数,具有较高的精度,适用于大多数深度学习应用。4字节(32位)

float16

半精度浮点数 (16位)

半精度浮点数用于表示实数,但相对于单精度浮点数,它的位数较少,因此精度稍低。然而,它可以在某些情况下显著减少内存占用并加速计算。字节数:2字节(16位)

int32, int64

整数 (通常为32位或64位)

整数用于表示离散的数值,可以是有符号或无符号的。在某些情况下,例如分类问题中的标签,可以使用整数数据类型来表示类别。

字节数:通常为4字节(32位)或8字节(64位

int4

量化技术:int4 (4位整数)

int4使用4位二进制来表示整数。在量化过程中,浮点数参数将被映射到一个有限的范围内的整数,然后使用4位来存储这些整数。

int8

量化技术 int8(8位整数)

含义:int8使用8位二进制来表示整数。在量化过程中,浮点数参数将被映射到一个有限的范围内的整数,然后使用8位来存储这些整数。

字节数:1字节(8位)

模型参数精度的选择往往是一种权衡。使用更高精度的数据类型可以提供更高的数值精度,但会占用更多的内存并可能导致计算速度变慢。相反,使用较低精度的数据类型可以节省内存并加速计算,但可能会导致数值精度损失. 关于量化技术,等后面单独给大家仔细讲解.以下一张图可以先大概了解量化的过程:

image.png

上图来源于网络

有了参数个数和每个参数的数据类型, 我们就可以开始估算GPU显存大小, 但是推理和训练又不太一样. 推理一般相对训练需要的资源要少, 接下来我们分为2大块内容介绍一下,在推理和训练分别需要的资源是多少?

03 推理显存组成

3.1 模型权重: 主要由模型的参数个数* 参数的数据类型占用字节数

3.2 输入数据大小: 数据维度和batchsize(批次大小), 所以现在大模型api一般都用输入token和输出token进行收费

3.3 推理中间结果:在模型的推理过程中,可能会产生一些中间计算结果,这些中间结果也会占用一定的显存。

04 训练显存组成

4.1 模型权重: 主要由模型的参数个数* 参数的数据类型占用字节数。

4.2 梯度 : 计算梯度用于更新模型的参数值, 梯度数量与模型参数是相同。

4.3 优化器参数: 一般优化器需要保存一些参数状态,以便更新调整,不同的优化器占用的显存大小是不一样的,比如SGD和参数数量是一样的, 而AdamW是参数的2倍

4.4 输入数据: 数据维度和batchsize(批次大小)

4.5 训练中间结果:在模型的训练前向传播和后向传播过程中,可能会产生一些中间计算结果,这些中间结果也会占用一定的显存。

05估算LLama3-8b

假设参数精度是float32,那就是4个字节:

5.1模型参数

如果显存不够,可以用FP16精度,或者更低,一般都是2倍关系

5.2梯度大小:一般和模型一样的大小29.8GB

5.3 优化器参数: 以Adamw 为例优化器参数是模型参数的2倍, 29.8*2GB

5.4 中间激活:对于每一层,都会有一些中间的激活值。这些激活值的数量通常与模型的宽度和输入数据的大小有关。假设每层的激活需X个浮点数,那么激活的总大小为:X*4字节

5.5 输入数据的激活大小: 假设批次大小为B, B*X*4字节,

所以如果是推理的话基本是29.8GB+中间激活+输入数据激活大小即可, 差不多在30GB左右,但是如果训练的话, 那就4倍以上.

06 总结

上面所说的推理大小也是不考虑用户并发的情况,如果考虑并发的情况永不止这些. 由于训练所需要的资源是巨大,现在为了让普通人也能训练大模型, 行业内已经出现一些相关技术,比如上面所说量化,如果使用量化int8,基本是上面计算的1/4左右, 模型切分、混合精度计算、微调框架等等.

有人说,那每一次我要估算资源,都要充分了解模型结构,然后再计算, 当然不用了,现在HuggingFace的官方库Accelerate直接推出了一个在线大模型显存消耗资源估算工具Model Memory Calculator, 有在线版和官方版本,可以帮大家快速计算出来, 即使有工具,我们也要知道其中原理, 这样我们才能知其然知其所以然也.

注意: 如果有需要工具如何使用,可以关注我的公众号, 回复“大模型显存计算工具Model Memory Calculator”
在这里插入图片描述

感谢您完成阅读

推荐阅读:

【小白入门篇1】GPT到底是怎样练成?

【小白入门篇2】总有一款AI工具适合你

【小白入门篇3】还是GPT4更香

【小白入门篇4】兄弟,你还在网上盗图吗

【小白入门篇5】哪些免费GPU羊毛可以薅?

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mysql数据类型设计思考

一、Mysql数据类型设计规范 1.1 选择更小的数据类型 一般情况下,在满足存储要求的基础上,尽量选择小的存储类型。例如:存储0~200,tinyint和bigint都可以存储,那么选择tinyint。原因:越小的数据类型运算速…

【项目】Boost搜索引擎

项目相关背景 现在市面上已经出现很多搜索引擎,比如:百度、Google、Bing等等,它们都是全网性搜索 而我做得项目就像cplusplus网站中搜索C的相关知识一样,同样做的是站内搜索,它的搜索更垂直。 搜索引擎的宏观原理 ser…

模型 洋葱模型(组织管理方向)

系列文章 分享 模型,了解更多👉 模型_思维模型目录。层层深入,探索核心。 1 洋葱模型的应用 1.1 洋葱模型用于职业规划 有一个名叫李明的大学生,他最近感到迷茫和压力,因为他即将毕业并面临职业选择。李明决定寻求心…

Java中55种锁,高级面试题,最新面试题

Java中乐观锁在实际应用中如何解决并发问题? 乐观锁通过假设并发冲突发生概率较低来解决并发问题,主要通过数据版本控制实现。在更新数据前,会检查数据版本是否发生变化,只有在数据版本未变时才允许更新,这样可以避免…

uos server 无法通过ssh工具连接

问题现象 uos server 服务器操作系统 在虚拟机中安装好之后,防火墙已经关闭,ssh服务已经启动,但通过finalshell等ssh工具连接报错 :java.net.ConnectException: Connection timed out: connect 经过确认 防火墙已关,s…

计算机毕业设计springboot体育馆场地预约管理系统【附源码】

计算机毕业设计springboot体育馆场地预约管理系统[附源码] 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制…

人工智能生成图像的兴起:区分事实与虚构

人工智能生成图像的兴起:区分事实与虚构 概述 在人工智能 (AI) 已融入我们日常生活的时代,人工智能生成图像的快速发展引发了人们对数字内容真实性的担忧。最近,人工智能生成的图像甚至欺骗了最敏锐的眼睛,这引发了人们对批判性…

@游戏行业er!MongoDB广州线下沙龙邀您报名!

随着游戏和应用程序的发展,数据变得越来越重要。在为您的下一个游戏选择数据库时,数据库管理者常常会面对灵活性、可扩展性、可靠性、运营效率等问题或挑战。 MongoDB在游戏开发领域有着广泛的应用,灵活数据模型可以存储和处理各种类型的数据…

OPT系列极速版远距离光数据传输器|光通讯传感器安装与调试方法

OPT系列极速版远距离光数据传输器|光通讯传感器使用红外激光通信,满足全双工 100M 带宽,通讯距离可达 300 米。能够快速,稳地传送数据,支持主流的工业控制总线(Profinet,Ethercat 等)&#xff1…

媒体宣发:多元宣发方式的方式有哪些

在信息爆炸的今天,媒体宣发被广泛地运用在各个领域,对于产品宣传、企业形象塑造等都起着至关重要的作用。多样化的媒体宣发方式越来越受到企业的重视,那么常见的媒体宣发方式有哪些呢? 首先,新闻发布是最传统也是最直…

SQLStringInFo SQL 数据库操作语句的解析器!!!

SQLStringInFo 开源技术栏 SQLStringInFo是一个专注于sql命令语句解析的sql命令解析库,在库中提供了有关SQL命令语法的解析器,通过该库,可以实现快速准确的SQL语句分析处理。 介绍 SQLStringInFo是一个专注于sql命令语句解析的sql命令解析…

形位公差Overview of GDT

零件公差产生于十九世纪后期,其初衷是为了保证零件的互换性。起初只有尺寸公差。由于 当时的设计部门和制造部门通常都在一起或就在隔壁,因此交流起来非常方便。在当时,给 定的公差一般都很大,因此当时的设备刀具的能力对于保证产…

1.基本概念,半导体基础

1.电压降: 指电流通过阻抗负载时的电位降的大小。(线段或部件两端的电压)。 2.数量较多的载流子称为多子 3.二极管和稳压管 4.习题

合专家模型 (MoE) 详解

本文转载自:混合专家模型 (MoE) 详解 https://huggingface.co/blog/zh/moe 英文版:https://huggingface.co/blog/moe 文章目录 一、简短总结二、什么是混合专家模型?三、混合专家模型简史四、什么是稀疏性?五、混合专家模型中令牌的负载均衡…

2024中国(重庆)航空航天暨无人机低空经济展览会

2024中国(重庆)航空航天暨无人机低空经济展览会 邀请函 组织机构 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 展会概括∶ 2024中国航空航天暨无人机低空经济展览会将于2024年8月23-25日在重庆…

基于C#开发web网页模板流程-登录界面

前言,首先介绍一下本项目将要实现的功能 (一)登录界面 实现一个不算特别美观的登录窗口,当然这一步跟开发者本身的设计美学相关,像蒟蒻博主就没啥艺术细胞,勉强能用能看就行…… (二&#xff09…

2024期从、证从、基从、银从备考资料及互助交流群

快进,2024年 金融考证备考资料及互助交流备考群,考啥进啥 5.12 (基从)基金从业资格考试 5.18(期从)期货从业资格考试 6.1 (证从)证券从业资格考试 6.1~6.2(银…

AVL树的完全指南:平衡与性能

文章目录 AVL树简介AVL的操作建立一个AVL树插入操作删除操作 书写代码1.构造函数和析构函数2.获取最大值和最小值3.树的高度和节点个数3.前序中序和后序遍历4.判断树是否为空树5.四个旋转操作6.获取平衡因子7.插入操作8.删除操作9.搜索节点.h文件中的定义 总结 AVL树简介 AVL树…

Linux---vim编辑器(续写)

5. vim正常模式命令集 插入模式 按「i」切换进入插入模式「insert mode」, 按“i”进入插入模式后是从光标当前位置开始输入文件; 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字; 按「o」进入插入模式…

未来相遇过去:博物馆藏品管理平台的科技革新之旅

引言: 尊重历史,意味着保护其实体的载体。在博物馆这个时间的容器中,每一件藏品都承载着人类文明的印记,它们是历史的低语,是过去对现在的细语。在这篇文章中,我将带您走进博物馆的幕后,探究藏品…