大模型如何部署-LMDeploy

本文探讨了大模型部署在人工智能中的关键作用,涉及服务器端和移动端的部署场景,强调了大模型面临的计算量巨大问题,特别是BatchSize的概念和其对内存效率的影响,以及大模型对内存的需求,如20B模型的内存开销和KV缓存的计算。
摘要由CSDN通过智能技术生成

 1.大模型部署的背景

模型部署的概念:软件中将开发完毕的软件投入使用的过程。

在人工智能领域,模型部署是实现深度学习算法落地应用的关键步骤。简单来说,模型部署就是讲训练好的的深度学习模型在特定环境运行的过程。

使用场景:服务器端 GPU部署,单GPU/TPU.NPU部署,多卡、集群部署

移动端/边缘端:移动机器人,手机等等

 大模型面临的挑战大计算,大,计算量巨大,根据internLM2技术报告,提供的模型参数数据,以及OpenAI团队提供的计算估算方法,20B的模型每生成一个token,要进行406亿次浮点运算,因此计算,若生成128个token,就要进行5.2万亿次运算

20B算是大模型里的“小”模型,若模型参数规模达到175B(GPT-3),Batch-Size (BS)再增大一点,每次推理计算将达到千万亿量级。

含义Batch Size定义:一次训练所选取的样本数

为什么要提出Batch Size?

在没有使用Batch Size之前,网络在训练时,是一次把所有的数据(整个数据库)输入网络中,然后计算它们的梯度进行反向传播,由于在计算梯度时使用了整个数据库,所以计算得到的梯度方向更为准确。但在这情况下,计算得到不同梯度值差别巨大,难以使用一个全局的学习率,所以这时一般使用Rprop这种基于梯度符号的训练算法,单独进行梯度更新。
在小样本数的数据库中,不使用Batch Size是可行的,而且效果也很好。但是一旦是大型的数据库,一次性把所有数据输进网络,肯定会引起内存的爆炸。所以就提出Batch Size的概念。
batchsize:中文翻译为批大小(批尺寸),适当的Batchsize好处通过并行化提高内存的利用率,尽量让GPU满载运行,提高训练速度,使得梯度下降更加准确。

以NVIDA A100为例,单张理论FP16运算性能,每秒77.97 TFLOPS 77万亿次,性能捉紧。

 大模型内存开销巨大

以FP16为例,20B大模型参数就需要40G+现存,175模型GPT-3需要350G+显存。

大模型在推理过程中,为了避免重复计算,会将计算注意力Atention得到的KV进行缓存。根据InternLM2技术报告,提供的模型参数,以及KV Cache 空间估算方法,以FP16为例,在Batch-size为16输入512tokens输出32tokens的情况下,20B的模型就能产生10,3GB缓存。目前RTX4060消费级先看显寸仅仅有8GB,NVIDIA A100单卡显存仅有80GB。太吃内存了。。。

KV计算公式

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值