LLM推理需要多大GPU?背完再去面试

在实际工作中,经常有人问,7B、14B 或 70B 的模型需要多大的显存才能推理?如果微调他们又需要多大的显存呢?

为了回答这个问题整理一份训练或推理需要显存的计算方式。如果大家对具体细节不感兴趣,可以直接参考经验法则评估推理或训练所需要的资源。

更简单的方式可以通过工具或者 huggface 官网计算推理/训练需要的显存工具在线评估。

01

数据精度

开始介绍之前,先说一个重要的概念——数据精度。数据精度指的是信息表示的精细程度,在计算机中是由数据类型和其位数决定的。

如果想要计算显存,从“原子”层面来看,就需要知道我们的使用数据的精度,因为精度代表了数据存储的方式,决定了一个数据占多少 bit。

目前,精度主要有以下几种:

  • 4 Bytes: FP32 / float32 / 32-bit
  • 2 Bytes: FP16 / float16 / bfloat16 / 16-bit
  • 1 Byte: int8 / 8-bit
  • 0.5 Bytes: int4 / 4-bit

02

经验法则

推理: 参数量 * 精度。

例如,假设模型都是 16-bit 权重发布的,也就是说一个参数消耗 16-bit 或 2 Bytes 的内存,模型的参数量为 70B,基于上述经验法则,推理最低内存需要 70B * 2Bytes = 140G。

训练: 4 - 6 倍的推理资源。

03

推理

在模型推理阶段,需要的资源主要有三部分:

  • 模型的权重
  • KV Cache
  • 激活(在推理过程中创建的张量)

(1)模型权重

加载模型权重(即模型大小)占用资源主要依赖于模型的参数量和精度。其中,参数量基本不变,精度可以通过模型量化技术进行优化。

尽管量化会影响模型的性能,但相比于选择更高精度的小模型来说,量化技术更受青睐。

公式:模型的大小 = 模型的参数量 * 精度

图片

十亿参数模型在 32 位、16 位和 8 位精度下所需的近似 GPU 内存[2]

(2)KV Cache

在 Transformer 的解码阶段,每次推理生成一个 token,依赖于之前的 token 结果,如果每次都对所有 token 重新计算一次,代价非常大。为了避免重新计算,通过 KV Cache 技术将其缓存到 GPU 内存中。

**公式:**KV Cache = 2 * Batch Size * Sequence Length * Number of Layers * Hidden Size * Precision

注意:第一个因子 2 解释了 K 和 V 矩阵。通常,在 Transformer 中,Hidden Size 和 Number of Layers 的值可以在模型相关的配置文件中找到。

(3)激活内存

在模型的前向传播过程中,必须存储中间激活值。这些激活值代表了神经网络中每层的数据在向前传播时的输出。它们必须保持为 FP32 格式,以避免数值爆炸并确保收敛。

**公式 :**Activation Memory = Batch Size * Sequence Length * Hidden Size * (34 + (5 * Sequence Length * Number of attention heads) / (Hidden Size))

04

训练

训练阶段所需的资源,除了上述介绍的模型权重、KV Cache 和激活内存之外,还需要存储优化器和梯度状态,因此,训练比推理需要更多的资源。

(1)优化器内存

优化器需要资源来存储参数和辅助变量。这些变量包括诸如 Adam 或 SGD 等优化算法使用的动量和方差等参数。这取决于优化状态的数量及其精度。

例如,AdamW 优化器是最流行的微调 llm,它为模型的每个参数创建并存储 2 个新参数。如果我们有一个 70B 的模型,优化器将创建 140B 的新参数!

假设优化器的参数为 float32,即每个参数占用 4 字节的内存。优化器至少需要 140B * 4 Bytes = 516 G 的资源。

图片

其中,不同优化器的状态数量如下:

  • AdamW (2 states): 8 Bytes per parameter
  • AdamW (bitsandbytes Quantized): 2 Bytes per parameter
  • SGD (1 state): 4 Bytes per parameter

(2)梯度

在模型的反向传播过程中计算梯度值。它们表示损失函数相对于每个模型参数的变化率,对于在优化过程中更新参数至关重要。作为激活值,它们必须存储在 FP32 中以保持数值稳定性 。

因此,每个参数占用4字节的内存 。例如,一个 70B 的模型,计算梯度所需的内存需要 70B * 4 Bytes = 280 G左右。

图片

05

总结

在本文中,我们介绍的评估方法,都是基于 Transformer 架构推算的,该评估方法不适合 Transformer 以外的其他体系结构。

同时,目前存在大量的框架、模型和优化技术,估计运行大型语言模型的确切内存可能很困难。然而,本文可作为估计执行 LLM 推理和训练所需内存资源的起点。

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

😝有需要的小伙伴,可以VX扫描下方二维码免费领取🆓
在这里插入图片描述

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型落地应用案例PPT👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
img

在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

在这里插入图片描述
👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

在这里插入图片描述

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

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

相关文章

original多因子图绘制

成品参考 首先导入数据 设置过程 设置X轴 设置图 双击空白部分设置图层宽度(也需要设置高度) 颜色配置 1.删除边框 合适的参数与颜色(设置为单色)

【Python】Python多行输入储存为字典,值为列表

1.储存在变量中 # 输入格式:3 5 tabel, customer map(int, input().split()) print("table:", tabel) print("customer:", customer) 2.储存在列表中 #输入格式:2 4 2 tabel_number [int(x) for x in input().split()] print(&q…

跨国企业如何布局知识产权战略以应对国际条约的挑战与机遇?

在跨国企业的全球运营中,知识产权的战略布局显得尤为重要。面对复杂多变的国际环境,跨国企业如何在全球范围内有效保护其知识产权,同时利用国际条约促进合作并应对挑战,成为了一个亟待探讨的问题。 跨国企业知识产权的全球布局 1…

项目管理系统中的风险管理:如何识别和应对项目风险?

在现代项目管理中,风险管理是确保项目成功的关键因素之一。无论是技术、资源还是市场的变化,风险无处不在。有效的风险管理能够帮助团队识别潜在问题并制定应对策略,从而避免项目延误和预算超支。项目管理系统在这一过程中扮演着重要角色&…

微积分入门(真的很入门)

前置知识 前置知识:极限 我们要求 lim ⁡ x → 1 x 2 − 1 x − 1 \lim\limits_{x \to 1}\dfrac{x^2-1}{x-1} x→1lim​x−1x2−1​。 右边我们都知道是什么意思,那左边是什么呢? 意思就是,当 x x x 无限接近 1 1 1 时&…

相亲交友系统的社会影响:家庭结构的变化

随着互联网技术的发展,相亲交友系统已成为许多单身人士寻找伴侣的重要途径。这些平台不仅改变了人们的社交方式,还对家庭结构产生了深远的影响。本文将探讨相亲交友系统如何促使家庭结构发生变化,开发h17711347205并通过简单的Python代码示例…

华为OD机试 - 对称美学(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

kubernetes基础配置(入门操作)

资源管理 一、资源管理方式 1.命令式对象管理:直接使用命令去操作kubernetes资源 [rootmaster ~]# kubectl run nginx-pod --imagenginx --port80 kubectl run --generatordeployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubect…

煤矿厂智能化可视化:提升安全与效率

运用图扑可视化技术对煤矿厂进行实时监控与数据分析,提高安全管理水平和生产效率。

Java8/9/10/11新特性

目录 一、 Lambda表达式二、函数式(Functional)接口三、方法引用与构造器引用3.1、方法引用3.2 构造器引用和数组引用3.2.1 构造器引用3.2.2 数组引用 四、 强大的Stream API4.1 Stream API说明4.2 Stream 的操作三个步骤4.3 创建 Stream方式4.4 、Stream 的中间操作4.4.1 筛选…

VMware Tools安装——VMware Tools是灰色的,不能安装, (不带图形化界面的虚拟机,只有命令行的模式!!!)

问题 VMware Workstation 中“ 安装VMware Tools”是灰色的,无法点击安装 解决 1.挂载镜像文件 打开 VMware,点击虚拟机设置>>CD/DVD,选择“使用ISO映像文件”,点击“浏览” 再选择 VMware 安装目录中的 linux.iso 文件&a…

FPGA到底要怎么学?一篇文章直接让你搞清楚!!!

学好FPGA(现场可编程门阵列)涉及理论学习和实践操作的结合。以下是学习FPGA的基本流程和建议: 关注我,我会更新更多的知识,这会给你很多的帮助。 1. 理论基础 数字逻辑:了解基本的逻辑门、组合逻辑、时序…

JS对不同浏览器的检测问题

Navigator对象也称浏览器对象,该对象包含了浏览器的整体信息,如浏览器名称,版本号等。Navigator对象由Navigator浏览器率先使用,后来各方浏览器都开始支持Navigator对象,逐步成为一种标准。 一、Navigator对象的属性 …

HttpClientHandler 详解及使用

在现代网络编程中,HttpClientHandler 是一个至关重要的组件,它提供了对 HTTP 请求的底层配置和控制。本文将详细介绍 HttpClientHandler 的核心概念、配置选项以及如何在实际应用中使用它。 1. 什么是 HttpClientHandler? HttpClientHandle…

mongodb光速上手

开始 mongodb是一种nosql数据库,即非关系型数据库。 安装好后将bin目录添加到环境变量。 安装studio-3t,这是可视化编辑器。 启动 mongo --host localhost --port 27017 指令 查看所有库 show dbs 使用或创建并使用库 use school use 数据库名 向…

引入 LangChain4j 来简化 LLM 与 Java 应用程序的集成

作者:来自 Elastic David Pilato LangChain4j 框架于 2023 年创建,其目标如下: LangChain4j 的目标是简化将 LLM 集成到 Java 应用程序的过程。 LangChain4j 提供了一种标准方法: 根据给定内容(例如文本)创…

【Lcode 随笔】C语言版看了不后悔系列持续更新中。。。

文章目录 题目一:爬楼梯问题描述:题目分析:解题思路:示例代码:深入剖析: 题目二:打家劫舍问题描述:题目分析:解题思路:示例代码:深入剖析&#xf…

什么是数字化转型?数字化转型对企业有哪些优势?

一、什么是数字化转型? 定义: 数字化转型是指企业或组织将传统业务转化为数字化业务,利用人工智能、大数据、云计算、区块链、5G等数字技术提升业务效率和质量的过程。通俗来说,就是将数字技术应用到企业的各个方面,…

【C语言软开面经】

C语言软开面经 malloc calloc realloc free动态分配内存malloccalloc函数:realloc 函数:free函数: 堆栈-内存分区栈区(Stack):堆区(Heap):全局(静态&#xff…

windows下安装rabbitMQ并开通管理界面和允许远程访问

如题,在windows下安装一个rabbitMQ server;然后用浏览器访问其管理界面;由于rabbitMQ的默认账号guest默认只能本机访问,因此需要设置允许其他机器远程访问。这跟mysql的思路很像,默认只能本地访问,要远程访…