分享好友 最新资讯首页 最新资讯分类 切换频道
大模型 | 如何估计LLM推理和训练所需的GPU内存?
2024-12-29 04:22


在实际工作中,经常有人问,7B、14B或70B的模型需要多大的显存才能推理?如果微调他们又需要多大的显存呢?为了回答这个问题整理一份训练或推理需要显存的计算方式。如果大家对具体细节不感兴趣,可以直接参考经验法则评估推理或训练所需要的资源。更简单的方式可以通过这个工具或者huggface官网计算推理/训练需要的显存工具在线评估。

开始介绍之前,先说一个重要的概念——数据精度。数据精度指的是信息表示的精细程度,在计算机中是由数据类型和其位数决定的。如果想要计算显存,从“原子”层面来看,就需要知道我们的使用数据的精度,因为精度代表了数据存储的方式,决定了一个数据占多少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
  • 推理: 参数量 * 精度。例如,假设模型都是16-bit权重发布的,也就是说一个参数消耗16-bit或2 Bytes的内存,模型的参数量为70B,基于上述经验法则,推理最低内存需要70B * 2Bytes = 140G。
  • 训练: 4 - 6 倍的推理资源。

在模型推理阶段,需要的资源主要有三部分:模型的权重、KV Cache和激活(在推理过程中创建的张量)。

加载模型权重(即模型大小)占用资源主要依赖于模型的参数量和精度。其中,参数量基本不变,精度可以通过模型量化技术进行优化。尽管量化会影响模型的性能,但相比于选择更高精度的小模型来说,量化技术更受青睐。

公式[1]

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

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

KV Cache

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

公式 [3]

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

激活内存

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

公式 [4]

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

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

优化器内存

优化器需要资源来存储参数和辅助变量。这些变量包括诸如Adam或SGD等优化算法使用的动量和方差等参数。这取决于优化状态的数量及其精度。例如,AdamW优化器是最流行的微调llm,它为模型的每个参数创建并存储2个新参数。如果我们有一个70B的模型,优化器将创建140B的新参数!假设优化器的参数为float32,即每个参数占用4字节的内存。优化器至少需要 140B * 4 Bytes = 516 G的资源。

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

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

梯度

在模型的反向传播过程中计算梯度值。它们表示损失函数相对于每个模型参数的变化率,对于在优化过程中更新参数至关重要。作为激活值,它们必须存储在 FP32 中以保持数值稳定性 [1]。 因此,每个参数占用4字节的内存 。例如,一个70B的模型,计算梯度所需的内存需要 70B * 4 Bytes = 280 G左右。

在本文中,我们介绍的评估方法,都是基于Transformer架构推算的,该评估方法不适合Transformer以外的其他体系结构。同时,目前存在大量的框架、模型和优化技术,估计运行大型语言模型的确切内存可能很困难。然而,本文可作为估计执行 LLM 推理和训练所需内存资源的起点。


最新文章
广西驾校哪个口碑最好?
在广西,有不少口碑不错的驾校。 像南宁市永兴机动车驾驶员培训有限责任公司,2012 年成立,有 20 座新国标标准训练场和近千位教
用AI工具生成高清美女写真,轻松打造你的虚拟女友!
经过上述工具的比较,我们不难发现,搜狐简单AI在提供优秀的创造体验方面,尤其适合新手用户。无论你是在寻找将照片转化为艺术,
安兔兔
安兔兔,一般又称安兔兔跑分排行,安兔兔跑分,安兔兔评测,安兔兔手机性能测试,安兔兔手机测评软件,AnTuTu。安兔兔评测,一款专业
【TG88(移动版)铃声多多下载】海信TG88 移动版铃声多多8.9.91.1免费下载
铃声多多 手机铃声大全!中国移动、中国电信、中国联通3大运营商音乐基地战略产品!百万铃声,轻松一键设置!手机铃声,来电彩铃
明教高手如林,最强的15位高手,等级排名,第一名仍不是张三丰对手
因为他们虽然在真实的历史上,是大明朝的开国元勋,统兵大将,为推翻蒙元,恢复华夏立下了不世之功。但是,在金庸先生笔下,他们
计算所AI数智赋能项目荣获2024年全国智慧企业建设创新案例
近日,中国企业联合会正式公布2024年(第六届)全国智慧企业建设创新案例名单,中国航空工业集团计算所报送的“AI数智赋能的企业生
巨人网络发布“千影”有声游戏大模型 加码“游戏+AI”赛道
新京报贝壳财经讯(记者 覃澈)12月12日,巨人网络在2024年度中国游戏产业年会上发布“千影 QianYing”有声游戏生成大模型,加码
PC端无需跳转直接调用哔哩哔哩自适应视频
1、获取B站相应嵌入代码:iframe src=https://cloud.tencent.com/developer/article///player.bilibili.com/player.html?aid=545
闲玩游戏盒子
闲玩游戏app软件汇聚了诸多游戏资讯,礼包,攻略等等,用户在这里可以享受到最佳的游戏体验,闲玩游戏app还可以获得最有趣好玩的
重磅!亚马逊发布2025年业务战略重点;TikTok将继续上诉至美国最高法院
NEWS2024/12/101重磅!亚马逊发布2025年业务战略重点2TikTok:继续上诉至美国最高法院3TikTok Shop西班牙站点正式上线4增长15%!