LMDeploy验证启动模型文件
要验证一下获取的模型文件能否正常工作,以免竹篮打水一场空。
启动API服务器
以命令行形式连接API服务器
以Gradio网页形式连接API服务器
LMDeploy Lite
lmdeploy chat /root/models/internlm2_5-7b-chat
lmdeploy chat /root/models/internlm2_5-7b-chat --cache-max-entry-count 0.4
让我们计算一下4GB显存的减少缘何而来,
对于修改kv cache默认占用之前,即如1.3 LMDeploy验证启动模型文件所示直接启动模型的显存占用情况(23GB):
1、在 BF16 精度下,7B模型权重占用14GB:70×10^9 parameters×2 Bytes/parameter=14GB
2、kv cache占用8GB:剩余显存24-14=10GB,kv cache默认占用80%,即10*0.8=8GB
3、其他项1GB
是故23GB=权重占用14GB+kv cache占用8GB+其它项1GB
对于修改kv cache占用之后的显存占用情况(19GB):
1、与上述声明一致,在 BF16 精度下,7B模型权重占用14GB
2、kv cache占用4GB:剩余显存24-14=10GB,kv cache修改为占用40%,即10*0.4=4GB
3、其他项1GB
是故19GB=权重占用14GB+kv cache占用4GB+其它项1GB
而此刻减少的4GB显存占用就是从10GB0.8-10GB0.4=4GB,这里计算得来。
设置在线 kv cache int4/int8 量化
W4A16 模型量化和部署
使用结合W4A16量化与kv cache量化的internlm2_5-1_8b-chat模型封装本地API并与大模型进行一次对话
注意命令要改为:
lmdeploy chat /root/models/internlm2_5-1_8b-chat-w4a16-4bit/ --model-format awq
输入以下指令,让我们同时启用量化后的模型、设定kv cache占用和kv cache int4量化
lmdeploy serve api_server \
/root/models/internlm2_5-1_8b-chat-w4a16-4bit/ \
--model-format awq \
--quant-policy 4 \
--cache-max-entry-count 0.4\
--server-name 0.0.0.0 \
--server-port 23333 \
--tp 1
LMDeploy之FastAPI与Function call
在这一章节中我们将依托于LMDeploy封装出来的API进行更加灵活更具DIY的开发