LMDeploy 是由上海人工智能实验室开发的专为大语言模型(LLM)和视觉-语言模型(VLM)设计的高效部署工具箱,其核心目标是通过压缩、量化和服务化技术降低模型推理成本并提升性能。没错,咱们国人团队开发的,属于国货,made in china!
一、核心功能与架构
高效推理引擎 TurboMind
连续批处理(Continuous Batch):动态调整批次大小,最大化 GPU 利用率,显著提升吞吐量。
KV 缓存优化:通过分块存储和动态管理 KV Cache,减少显存占用,支持长文本对话场景。
张量并行与高性能 CUDA 内核:支持多 GPU 并行计算,适配 NVIDIA 全系列显卡(如 A100、H100)。
量化技术
权重量化(W4A16/AWQ):将 FP16 权重量化为 INT4,显存需求降低至 1/4,推理速度提升 2.4 倍。
KV Cache 量化:对注意力机制的键值缓存进行 INT8/INT4 量化,进一步优化显存占用。
服务化部署
多协议接口:支持 RESTful API、gRPC 及 OpenAI 兼容接口,便于集成到现有业务系统。
有状态推理:缓存历史对话的注意力结果,避免重复计算,提升多轮对话效率。
二、多模态与模型支持
视觉-语言模型(VLM):支持 InternVL、LLaVA 等多模态模型,通过复用上游库的图像处理和视觉推理模块,简化部署流程。
模型兼容性:原生适配 Hugging Face 和 ModelScope 模型仓库,支持 InternLM、LLaMA 等主流架构。
三、部署场景与性能优势
典型应用场景
高并发在线服务:如智能客服、实时风控系统,吞吐量可达 vLLM 的 1.8 倍。
边缘设备与低资源环境:通过 4-bit 量化在消费级 GPU(如 3090)上运行 7B 模型,显存占用仅 6-8GB。
性能基准
在 A100 GPU 上,推理 13B 模型的吞吐量可达 2100 tokens/s,显存占用比 FP16 减少 40%。
对比 vLLM,LMDeploy 的延迟降低至 50ms 级别,更适合实时性要求高的场景。
四、安装与使用
按照惯例,我们还是使用 anaconda 创建一个新环境
conda create -n lmdeploy python=3.10 -y
conda activate lmdeploy
pip install lmdeploy -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com -- 直接安装lmdeploy
以上环境皆是在 wsl子系统 上运行的
基础使用:模型对话
安装完成之后以命令行对话的模式(像ollama的run命令)运行之前已经下载好的模型
lmdeploy chat /root/llm/models/Qwen/Qwen2.5-0.5B-Instruct -- 调整显存占用,通过-cache-max-entry-count控制KV Cache显存比例,如:lmdeploy chat /root/llm/models/Qwen/Qwen2.5-0.5B-Instruct --cache-max-entry-count 0.4
第一次运行可能会报错没有 partial_json_parser 模块,直接通过命令
pip install partial_json_parser -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
安装就行了
服务化部署
1. 启动API服务器
lmdeploy serve api_server \
/root/llm/models/Qwen/Qwen2.5-0.5B-Instruct \
--server-name 0.0.0.0 \
--server-port 23333 \
--tp 1 # GPU 并行数
2. 客户端连接
使用另一个窗口执行客户端连接命令
lmdeploy serve api_client http://localhost:23333
由于lmdeploy遵循了 openai/swagger规范,所以使用apifox客户端导入也是可以的
3. web端连接
lmdeploy提供了gradio的方式开启web端页面连接服务使用,执行命令成功后可在浏览器使用对应端口打开该网页
# 打开另一个窗口执行
lmdeploy serve gradio http://localhost:23333 --server-port 6006 # 执行后如果报错没有gradio模块,则先用pip install安装后再执行
# 或者在启动API服务器时一起启动gradio,加入gradio参数
lmdeploy serve api_server \
gradio
/root/llm/models/Qwen/Qwen2.5-0.5B-Instruct \
--server-name 0.0.0.0 \
--server-port 23333 \
--tp 1 # GPU 并行数
总结
LMDeploy 是面向生产环境的高性能部署方案,尤其适合需要低延迟、高吞吐量及多模态支持的场景。其量化技术与 TurboMind 引擎的结合,显著降低了 LLM/VLM 的部署门槛和成本。开发者可通过其灵活的接口和工具链,快速实现从本地测试到云端服务的全流程部署