任务一
LMDeploy验证启动模型文件
设置最大kv cache缓存大小
设置在线 kv cache int4/int8 量化
用 W4A16 模型量化和部署1.8B模型
可以看到文件夹里面的1.8b模型从原来的3.6G->1.5G 少了2.1G
部署1.8b模型显存为20.6G:
检查部署 1.8b W4A16后显存为 为20.9GB:
lmdeploy chat /root/models/internlm2_5-1_8b-chat-w4a16-4bit/ --model-format awq
为什么用W4A16后显存反而增加了??
原来的1.8b模型显存计算:1810^92byte( = 3.6GB) +( 24-3.6)*0.8 + 1 = 20.9GB
经过W4A16后 把权重变为int4类型 所以3.6GB/4(16位->4位:3.6/4) 所以显存为3.6/4 + (24 - 3.6/4)*0.8 + 1 = 20.38GB
可以看到对于小模型 用W4A16量化不能显著减小显存
W4A16 + KV cache量化结合
3.6/4 + (24-3.6/4)*0.4 + 1=11.14GB
InternVL2-26B
量化 减小显存
因为26B部署太慢了 每次还没部署完就释放了
所以改为经过int4量化+ cache变为0.4后的1_8B模型部署
- 部署
显存为11.3GB
以命令行形式连接API服务器
经过端口映射后,打开23333网页后关闭
然后用新建终端, 以Gradio网页形式连接API服务器
打开Gradio网页然后对话
任务二
Function call
关于Function call,即函数调用功能,它允许开发者在调用模型时,详细说明函数的作用,并使模型能够智能地根据用户的提问来输入参数并执行函数。完成调用后,模型会将函数的输出结果作为回答用户问题的依据。
** 为什么会报错 typeerror呢