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计算公式