LMDeploy 项目详细介绍
项目概述
LMDeploy是一个用于压缩、部署和服务大语言模型的工具包,由MMRazor和MMDeploy团队开发。该项目专注于为大语言模型(LLM)和视觉-语言模型(VLM)提供高效的推理、部署和服务解决方案。
核心特性
1. 高效推理(Efficient Inference)
LMDeploy的请求吞吐量比vLLM高1.8倍,通过引入持久批处理(continuous batching)、分块KV缓存、动态分割融合、张量并行、高性能CUDA内核等关键特性。
2. 有效量化(Effective Quantization)
LMDeploy支持权重量化和k/v量化,4位推理性能比FP16高2.4倍,量化质量已通过OpenCompass评估确认。
3. 轻松分布式服务(Effortless Distribution Server)
利用请求分发服务,LMDeploy便于在多台机器和多张卡上轻松高效地部署多模型服务。
4. 交互式推理模式(Interactive Inference Mode)
通过在多轮对话过程中缓存注意力的k/v,引擎记住对话历史,从而避免重复处理历史会话。
5. 出色兼容性(Excellent Compatibility)
LMDeploy支持KV Cache量化、AWQ和自动前缀缓存同时使用。
双引擎架构
LMDeploy开发了两个推理引擎:
TurboMind引擎
- 专注:追求推理性能的终极优化
- 特点:高度优化的C++/CUDA实现,专为生产环境设计
PyTorch引擎
- 专注:纯Python开发,降低开发者门槛
- 特点:便于快速实验新功能和技术,易于扩展和定制
两个引擎在支持的模型类型和推理数据类型上有所不同,用户可根据实际需求选择合适的引擎。
支持的模型
LMDeploy支持广泛的模型类型:
大语言模型(LLMs)
- InternLM系列(InternLM、InternLM2、InternLM2.5、InternLM3)
- Llama系列(Llama2、Llama3、Llama3.1)
- Qwen系列(Qwen1.5、Qwen1.5-MOE等)
- Baichuan2系列
- Mistral、Mixtral
- DeepSeek系列
- Gemma
- Code Llama
- 更多模型持续添加中
视觉-语言模型(VLMs)
- InternVL系列
- InternLM-XComposer系列
- LLaVA系列
- CogVLM系列
- Mini-InternVL
- DeepSeek-VL
- 更多多模态模型
安装方式
快速安装
推荐在conda环境中使用pip安装(支持Python 3.8-3.12):
conda create -n lmdeploy python=3.8 -y
conda activate lmdeploy
pip install lmdeploy
注意事项
- 默认预构建包基于CUDA 12编译(v0.3.0版本起)
- 支持CUDA 11+平台安装
- 支持从源码构建
快速使用示例
基本推理
import lmdeploy
with lmdeploy.pipeline("internlm/internlm3-8b-instruct") as pipe:
response = pipe(["Hi, pls intro yourself", "Shanghai is"])
print(response)
多模态推理
from lmdeploy import pipeline
from lmdeploy.vl import load_image
pipe = pipeline('OpenGVLab/InternVL2-8B')
image = load_image('path/to/image.jpg')
response = pipe(('描述这张图片', image))
print(response)
模型来源支持
LMDeploy支持多个模型库:
- HuggingFace(默认)
- ModelScope:设置环境变量
LMDEPLOY_USE_MODELSCOPE=True - openMind Hub:设置环境变量
LMDEPLOY_USE_OPENMIND_HUB=True
应用场景
- 生产环境部署:高吞吐量的LLM服务
- 研发实验:快速验证新模型和算法
- 资源受限环境:通过量化技术降低资源需求
- 多模态应用:视觉-语言模型的高效推理
- 边缘设备:支持NVIDIA Jetson等平台
生态集成
LMDeploy与多个开源项目深度集成:
- OpenAOE:无缝集成LMDeploy服务
- Swift:作为默认VLM推理加速器
- BentoML:提供部署示例项目
- Jetson平台:专门的边缘设备适配
总结
LMDeploy是一个功能强大、性能卓越的大语言模型部署工具包,适合从研发实验到生产部署的各种场景。其双引擎架构、先进的量化技术和广泛的模型支持,使其成为AI应用开发者的重要工具选择。无论是追求极致性能的生产环境,还是需要快速迭代的研发场景,LMDeploy都能提供合适的解决方案。