书生浦语大模型实战营第四期:LMDeploy 量化部署进阶实践
- 教程链接:https://github.com/InternLM/Tutorial/tree/camp4/docs/L2/LMDeploy
- 视频链接:https://www.bilibili.com/video/BV18aUHY3EEG/?vd_source=b96c7e6e6d1a48e73edafa36a36f1697
- 任务链接:https://github.com/InternLM/Tutorial/blob/camp4/docs/L2/LMDeploy/task.md
- 提交链接:https://aicarrier.feishu.cn/share/base/form/shrcnUqshYPt7MdtYRTRpkiOFJd
任务说明
基础任务(完成此任务即完成闯关)
- 使用结合W4A16量化与kv cache量化的
internlm2_5-1_8b-chat
模型封装本地API并与大模型进行一次对话,作业截图需包括显存占用情况与大模型回复,参考4.1 API开发(优秀学员必做),请注意2.2.3节与4.1节应使用作业版本命令。 - 使用Function call功能让大模型完成一次简单的"加"与"乘"函数调用,作业截图需包括大模型回复的工具调用情况,参考4.2 Function call(选做)
视频教程
LMDeploy部署模型
大模型缓存推理技术
大模型量化技术
大模型外推技术
Function Calling
环境配置
conda create -n lmdeploy python=3.10 -y
conda activate lmdeploy
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu121
pip install timm==1.0.8 openai==1.40.3 lmdeploy[all]==0.5.3
pip install datasets==2.19.2
下载internlm2_5-7b-chat
和internlm2_5-1_8b-chat
两个模型至models
文件夹,具体参考之前入门岛的内容即可,然后测试下环境:
lmdeploy chat models/internlm2_5-7b-chat
这样环境基本上就搭建好了,看下显存占用,后面对比下:
显存占用分析
对于一个7B(70亿)参数的模型,每个参数使用16位浮点数(等于 2个 Byte)表示,则模型的权重大小约为:
7×10^9 parameters×2 Bytes/parameter=14GB
70亿个参数×每个参数占用2个字节=14GB
因此,对于internLM2.5 7B模型为bf16,LMDpeloy推理精度为bf16的7B模型权重需要占用14GB显存
然后lmdeploy默认设置cache-max-entry-count为0.8,即kv cache占用剩余显存的80%;
所以,对于24GB的A10显卡,权重占用14GB显存,剩余显存24-14=10GB,因此kv cache占用10GB*0.8=8GB,加上原来的权重14GB,总共占用14+8=22GB。
启动API服务器
conda activate lmdeploy
lmdeploy serve api_server \
models/Shanghai_AI_Laboratory/internlm2_5-7b-chat \
--model-format hf \
--quant-policy 0 \
--server-name 0.0.0.0 \
--server-port 23333 \