** LMDeploy 部署后为充分发挥软硬件性能,可按自身需求组合以下优化项:**
1、显存均衡
a、pip安装部署的可以按照LMDeploy官方回复的解决方法
https://github.com/InternLM/lmdeploy/issues/3518
使用下面命令按实际文件路径修改,
sed -i \
-e '/def readers(self):/,/def model_info(self):/ {' \
-e '/yield i, reader/ {' \
-e 'a \ torch.cuda.empty_cache()' \
-e '}' \
-e '}' \
/opt/lmdeploy/lmdeploy/turbomind/deploy/source_model/llama.py
b、使用docker,可以dockerfile 直接生成修改好的镜像,dockerfile如下:
# 使用基础镜像
FROM openmmlab/lmdeploy
# 设置工作目录
WORKDIR /opt/lmdeploy/lmdeploy/turbomind/deploy/source_model/
# 执行 sed 命令插入代码并安装 modelscope(合并层优化)
RUN sed -i \
-e '/def readers(self):/,/def model_info(self):/ {' \
-e '/yield i, reader/ a \ torch.cuda.empty_cache()' \
-e '}' \
llama.py && \
pip install modelscope
cd进入dockerfile所在目录,生成显存均衡本地镜像
docker build --no-cache -t lmdeploy-0.9-mod .
2、LMDeploy长上下文yarn配置优化参考
模型config.json
"rope_scaling": null,
这部分修改为
"rope_scaling": {
"type": "yarn",
"factor": 4.0,
"original_max_position_embeddings": 32768
},
启动参数添加
--session-len 131072
实际可用上下文还受显存大小影响,LMDeploy启动日志中会有如
`session_len` truncated to xxxxxx
可以结合以下三个参数充分利用现有显存
--cache-max-entry-count 推荐从0.5-0.7开始逐步调整,确保启动完成后剩余显存大于512-1024M即为稳定最大值
--max-batch-size 推荐32,显存最够可以64甚至128(数值调小可适当增加上下文)
--quant-policy 推荐8,显存足够可以删除该启动参数(8比无该参数可增加接近一倍上下文)
3、LMDeploy T10多卡参考极限上下文参数
双卡T10 LMDeploy TP=2 运行Qwen3-32B-AWQ 极限稳定上下文为70k
启动关键参数为
--cache-max-entry-count 0.80 --max-batch-size 32 --quant-policy 8 --session-len 131072
四卡T10 LMDeploy TP=4 运行Qwen3-32B-AWQ 稳定上下文128k是最小参数为
--cache-max-entry-count 0.50 --max-batch-size 64 --quant-policy 8 --session-len 131072
四卡T10 LMDeploy TP=4 同时运行Qwen3-32B-AWQ 96k 和Qwen3-30B-A3B-AWQ 39k 稳定参数为
Qwen3-32B-AWQ 96k
--cache-max-entry-count 0.3 --max-batch-size 64 --quant-policy 8 --session-len 131072
Qwen3-30B-A3B-AWQ 39k
--cache-max-entry-count 0.37 --max-batch-size 32 --quant-policy 8