LMDeploy 量化部署 LLM-VLM 实践

模型部署背景

定义:在软件工程中,部署通常是指将开发完成的软件投入使用的过程。

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

具体场景有:服务器端:CPU部署,单GPU/TPU/NPU部署,多卡/集群部署......移动端/边缘端:移动机器人,手机等等。

大模型部署面对的挑战:

计算量巨大。
大模型参数量巨大,前向推理时需要进行大量计算。
根据InternLM2技术报告!1!提供的模型参数数据,以及OpenAl团队提供的计算量估算方法,模型每生成1个token,就要进行约406亿次浮点运算;照此计算,若生成128个token,就要进行5.2万亿次运算,20B算是大模型里的“小”模型了,若模型参数规模达到175B(GPT-3),Batch-Size(BS)再大一点,每次推理计算量将达到干万亿量级。
以NVIDIA A100为例,单张理论FP16运算性能为每秒77.97 TFLOPS[3)(77万亿),性能捉紧。

内存开销巨大。
以FP16为例,20B模型仅加载参数就需40G+显存175B模型(如GPT-3)更是需要350G+显存。
大模型在推理过程中,为避免重复计算,会将计算注意力(Attention)得到的KV进行缓存。根据InternLM2技术报告!1提供的模型参数数据,以及KVCache空间估算方法,以FP16为例,在batch-size为16、输入512 tokens、输出32 tokens的情境下,仅20B模型就会产生10.3GB的缓存。
目前,以NVIDIA RTX 4060消费级显卡为例(参考零售价¥23993)),单卡显存仅有8GB;NVIDIA A100单卡显存仅有80GB。

访存瓶颈
大模型推理是“访存密集”型任务。目前硬件计算速度“远快于”显存带宽,存在严重的访存性能瓶颈。
以RTX 4090推理175B大模型为例,BS为1时计算量为6.83TFLOPS,远低于82.58 TFLOPs的FP16计算能力;但访存量为32.62 TB,是显存带宽每秒处理能力的30倍。
动态请求
请求量不确定,
请求时间不确定
Token逐个生成,生成数量不确定。

 大模型部署方法:

总结有三类:

1.模型剪枝(Pruning)
剪枝指移除模型中不必要或多余的组件,比如参数,以使模型更加高效。通过对模型中贡献有限的冗余参数进行枝,在保证性能最低下降的同时,可以减小存储需求、提高计算效率。
非结构化剪枝如SparseGPT, LoRAPrune2,Wandal3。
指移除个别参数,而不考虑整体网络结构。这种方法通过将低于阈值的参数置零的方式对个别权重或神经元进行处理。
结构化剪枝如LLM-Prunerl4。
根据预定义规则移除连接或分层结构,同时保持整体网络结构,这种方法一次性地针对整组权重,优势在于降低模型复杂性和内存使用,同时保持整体的LLM结构完整

2.知识蒸馏(Knowledge Distillation,KD)
知识蒸馏是一种经典的模型压缩方法,核心思想是通过引导轻量化的学生模型“模仿”性能更好、结构更复杂的教师模型,在不改变学生模型结构的情况下提高其性能。

3.量化(Quantization)
量化技术将传统的表示方法中的浮点数转换为整数或其他离散形式,以减轻深度学习模型的存储和计算负担。
量化感知训练如(QAT)LLM-QAT。
量化目标无缝地集成到模型的训练过程中。这种方法使LLM在训练过程中适应低精度表示。
量化感知微调如(QAF)PEQAB,QLORAB。
QAF涉及在微调过程中对LLM进行量化。主要目标是确保经过微调的LLM在量化为较低位宽后仍保持性能。
训练后量化如(PTQ)LLM.int8),AWQ5)。
在LLM的训练阶段完成后对其参数进行量化。PTQ的主要目标是减少LLM的存储和计算复杂性,而无需对LLM架构进行修改或进行重新训练。

动手实践环节

Tutorial/lmdeploy/lmdeploy.md at camp1 · InternLM/Tutorial (github.com)

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值