一、如何估计LLM推理和训练所需的GPU内存?
在实际工作中,经常有人问,7B、14B或70B的模型需要多大的显存才能推理?如果微调他们又需要多大的显存呢?为了回答这个问题整理一份训练或推理需要显存的计算方式。如果大家对具体细节不感兴趣,可以直接参考经验法则评估推理或训练所需要的资源。更简单的方式可以通过这个工具或者huggface官网计算推理/训练需要的显存工具在线评估。
1、数据精度
开始介绍之前,先说一个重要的概念——数据精度。数据精度指的是信息表示的精细程度,在计算机中是由数据类型和其位数决定的。如果想要计算显存,从“原子”层面来看,就需要知道我们的使用数据的精度,因为精度代表了数据存储的方式,决定了一个数据占多少bit。 目前,精度主要有以下几种:
2、经验法则
3、推理
在模型推理阶段,需要的资源主要有三部分:模型的权重、KV Cache和激活(在推理过程中创建的张量)。
4、模型权重
加载模型权重(即模型大小)占用资源主要依赖于模型的参数量和精度。其中,参数量基本不变,精度可以通过模型量化技术进行优化。尽管量化会影响模型的性能,但相比于选择更高精度的小模型来说,量化技术更受青睐。
公式[1]
模型的大小 = 模型的参数量 * 精度
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))
5、训练
训练阶段所需的资源,除了上述介绍的模型权重、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左右。
6、总结
在本文中,我们介绍的评估方法,都是基于Transformer架构推算的,该评估方法不适合Transformer以外的其他体系结构。同时,目前存在大量的框架、模型和优化技术,估计运行大型语言模型的确切内存可能很困难。然而,本文可作为估计执行 LLM 推理和训练所需内存资源的起点。
二、最后分享
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 2024行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。