#AIGC翻新先锋者征文大赛# GPU 前如何计算与优化 部署 LLMs 内存需求

  • 电脑网络维修
  • 2024-11-15

​ ​ 【本文正在介入 AI.x社区AIGC翻新先锋者征文大赛】 ​ ​

作者 | Muhammad Saad Uddin

编译 | 岳扬

将 LLMs 投入消费环境经常使用,会遇到诸多应战,尤其是想要为 LLMs 高效提供所需的计算资源时。有过此类阅历的人或者深有体会,GPU 内存是允许 LLMs 运转的一项关键资源。由于这些模型体积渺小,且推理环节具备灵活性质,因此对 GPU 内存经常使用的布局和优化提出了更高的要求。

Image by Author via DallE

出于以下几个要素,准确预算 GPU 内存的需求至关关键:

但是,计算 LLMs 服务所需的 GPU 内存并非一件便捷的事。模型的大小(model size)、序列长度(sequence lengths)、批处置数量(batch sizes)以及解码算法(decoding algorithms)等多种要素,都会以复杂的形式影响内存经常使用。而且,传统的内存调配方法常因内存碎片和键值(KV)缓存等灵活内存组件的低效治理而形成少量糜费。

在本文中,我将尽或者具体地解释如何计算 LLMs 服务所需的 GPU 内存。我将剖析影响内存经常使用的各局部,并依据模型参数和上班负载特色(workload characteristics),逐渐引见如何预算内存占用大小。同时,我还会讨论 Paged Attention 和 vLLM 等先进的优化技术,这些技术能清楚降低内存消耗并优化处置才干。经过阅读本文,你将能够片面了解如何布局和优化 LLMs 的 GPU 内存经常使用,从而在实践运行中成功高效且低老本的 LLMs 部署。

01 了解 LLM 推理环节中,关键消耗 GPU 内存的几局部

要想把握 GPU 内存的计算方法,最关键的是了解各局部如何占用 GPU 内存的。了解内存的经常使用去向有助于咱们更好地布局与优化资源。在 LLMs 推理环节中,关键消耗 GPU 内存的几局部包含权重(模型参数)、键值缓存内存(Key-Value Cache Memory)、激活值(Activations)与暂时缓冲区(Temporary Buffers),以及系统开支(Overheads)(假设你对并行处置或散布式计算有所钻研,或者对这个概念已有必定的看法)。

1.1 模型参数(权重)

模型参数是神经网络在训练环节中学到的数值(权重(weights)和偏置(biases))。这些参数定义了模型如何处置输入数据生成输入。

模型大小对 GPU 内存的影响

让咱们看看这些模型:

请记住,关于 GPT-3 及其之后的模型,经常使用模型并行化(model parallelism)将模型参数散布到多个 GPU 上是十分必要的。

1.2 键值(KV)缓存内存

KV缓存存储生成序列中每个 token 所需的两边示意。便捷来说,当模型每次生成一个 token 时,它须要记住之前的 tokens 以坚持高低文。KV缓存存储了目前为止生成的每个 token 的键(key)和值(value)向量,使模型能够高效地处置过去的 tokens ,而无需从新计算。

上班原理:

序列长度(Sequence Length)和并发恳求(Concurrent Requests)的影响:

计算每个 token 的 KV 缓存大小

让咱们来剖析一下如何得出每个 token 的 KV 缓存大小:

键向量(每层一个键向量)和值向量(每层一个值向量)

再次以 llama-13b 模型为例,假定模型具备以下特色:

i. 键向量:

ii. 值向量:

iii. 每个 token 的总KV缓存:

如今思索输入内容为2000个 tokens 的状况:

KV缓存随着序列长度和并发恳求数量的参与而线性增长。我从一篇论文[1]中了解到,KV缓存可以消耗多达 30% 甚至更多的GPU内存。

1.3 激活值和暂时缓冲区

激活值(Activations)是指推理环节中神经网络层的输入,而暂时缓冲区(temporary buffers)用于两边计算。激活值缓和冲区通常消耗的内存比模型权重和 KV 缓存要少。

虽然它们的容量较小,但激活值关于模型计算每一层的输入是十分必要的。它们在前向传递环节(forward pass)中被创立和摈弃,但仍须要足够的内存调配。

1.4 内存开支

额外的内存经常使用开支来自于内存调配和经常使用的低效率。上方是对其的简明引见:

内存碎片:

计算环节中发生的两边步骤:

低效内存治理的影响:

示例:假设内存碎片在 40 GB GPU 上糜费了 20 %的内存,那么就有 8 GB 的内存本可以用来处置更多恳求,但是如今被糜费了。

02 计算 GPU 内存需求

既然咱们曾经对关键内容有了足够的了解,那么就不再迁延,间接计算完整的 GPU 内存需求!

逐渐计算:

要计算任何模型的内存需求,简直以下内容都须要:了解模型权重、KV缓存、激活值和暂时缓冲区以及系统内存开支。以 llama-2 13B 模型为例,公式为:

所需内存总量:模型权重 + KV缓存 + 激活值和系统内存开支

关于 13 B 模型来说:

模型权重 = 参数数量 × 每个参数的字节数

总 KV 缓存内存 = 每个 token 的 KV 缓存内存 × 输入序列长度 × 输入序列数量

激活值和系统内存开支 = GPU总内存的 5–10 %

模型权重 = 130 亿 × 2 字节 = 26 GB

总 KV 缓存内存 = 800 KB × 8192* tokens × 10* 并发恳求= 66 GB

激活值和系统内存开支 = 0.1 × (26 GB + 66GB) = 9.2 GB

所需内存总量:26 GB + 66 GB + 9.2 GB = 101.2 GB

所以,运转 llama-2 7B 模型至少须要 3 个 A100 40GB GPU。

假设我想要托管一个 GPT-3 模型(我知道这很疯狂;D),计算方法与此相似,但这次我会假定每次只处置一个恳求,并经常使用 OPT-175B[2] 模型的大小( 96 层和每层 12288 维度)作为参考。

所需总内存:350 GB + 36 GB + 38.6 GB = 424.6 GB 简直须要 11 个 A100

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/6081.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号