目录
- 大模型部署
- 挑战
- 常用大模型部署方式
- 模型剪枝(Pruning)
- 知识蒸馏
- 量化
- LMDeploy
- 核心功能
- 性能表现
- 支持部署的模型
- 作业
- 配置 LMDeploy 运行环境
- 以命令行方式与 InternLM2-Chat-1.8B 模型对话
大模型部署
大模型部署就是将大模型在特定的环境种运行!可以部署到服务器端:CPU\单GPU\TPU\NPU;还可以部署到移动端:机器人\手机等
挑战
-
计算量巨大
20B模型每生成一个token,大约需要进行406亿次的浮点计算;
单张NVIDIA A100,理论上进行FP16运算性能为每秒77.97TFLOPs,约77万亿。
所以如果生成更多的token,如果模型参数量更大一点的话,对显卡的性能要求会更高!
下图是InternLM2大模型向前推理的计算量估算:
-
显存开销巨大
20B模型加载参数至少需要40G显存,175B模型(GPT-3)需要350G+显存;
大模型在推理过程中还会产生缓存,以FP16为例,在batch-size为16,输入512tokens,输出32tokens的情况下,20B模型就会产生10.3GB的缓存;
目前,单张NVIDIA RTX4060显卡的显存为8GB,单张NVIDIA A100的显存为80GB
下图是InternLM2大模型前向推理的缓存占用空间:
-
访存瓶颈
由于硬件计算速度远快于显存带宽,会存在严重的访存性能瓶颈;
以RTX 4090推理175B大模型为例,BS为1时计算量为6.83TFLOPs,远低于82.58TFLOPs的FP16计算能力,但访存量为32.62TB(这里的B代表字节),是显存带宽每秒处理能力的30倍
-
动态请求
请求量不确定
请求时间不确定
Token逐个生成,生成数量不确定
常用大模型部署方式
模型剪枝(Pruning)
剪枝就是移除模型种不必要的组件,如参数,使模型更加高效。
- 非结构化剪枝
移除个别参数,不考虑整体模型结构 - 结构化剪枝
移除连接或分层结构,保持整体网络结构。
知识蒸馏
核心思想是通过引导轻量化的学生模型“模仿”性能更好、结构更复杂的教师模型,在不改变学生模型结构的情况下提高性能。
- 上下文学习(ICL)
- 思维链(CoT)
- 指令跟随(IF)
量化
浮点数转换为整数或其他离散形式,减轻模型的存储和计算负担
- 量化感知训练(QAT)
- 量化感知微调(QAF)
- 训练后量化(PTQ)
LMDeploy
LMDeploy是涵盖了LLM任务的全套轻量化、部署和服务解决方案。核心功能包括高效推理、可靠量化、便捷服务和有状态推理
核心功能
性能表现
支持部署的模型
作业
配置 LMDeploy 运行环境
以命令行方式与 InternLM2-Chat-1.8B 模型对话
启动模型
开启对话