LMDeploy是一个用于压缩、部署和服务大语言模型的工具包,由MMRazor和MMDeploy团队开发。该项目专注于为大语言模型(LLM)和视觉-语言模型(VLM)提供高效的推理、部署和服务解决方案。
LMDeploy的请求吞吐量比vLLM高1.8倍,通过引入持久批处理(continuous batching)、分块KV缓存、动态分割融合、张量并行、高性能CUDA内核等关键特性。
LMDeploy支持权重量化和k/v量化,4位推理性能比FP16高2.4倍,量化质量已通过OpenCompass评估确认。
利用请求分发服务,LMDeploy便于在多台机器和多张卡上轻松高效地部署多模型服务。
通过在多轮对话过程中缓存注意力的k/v,引擎记住对话历史,从而避免重复处理历史会话。
LMDeploy支持KV Cache量化、AWQ和自动前缀缓存同时使用。
LMDeploy开发了两个推理引擎:
两个引擎在支持的模型类型和推理数据类型上有所不同,用户可根据实际需求选择合适的引擎。
LMDeploy支持广泛的模型类型:
推荐在conda环境中使用pip安装(支持Python 3.8-3.12):
conda create -n lmdeploy python=3.8 -y
conda activate lmdeploy
pip install lmdeploy
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支持多个模型库:
LMDEPLOY_USE_MODELSCOPE=True
LMDEPLOY_USE_OPENMIND_HUB=True
LMDeploy与多个开源项目深度集成:
LMDeploy是一个功能强大、性能卓越的大语言模型部署工具包,适合从研发实验到生产部署的各种场景。其双引擎架构、先进的量化技术和广泛的模型支持,使其成为AI应用开发者的重要工具选择。无论是追求极致性能的生产环境,还是需要快速迭代的研发场景,LMDeploy都能提供合适的解决方案。