LMDeploy: 高效部署大语言模型的强大工具包
LMDeploy 是一个专门用于压缩、部署和服务大型语言模型(LLM)的工具包。它由 MMRazor 和 MMDeploy 团队开发,具有以下核心特性:
高效推理
LMDeploy 采用了多项创新技术,如持久性批处理、分块 KV 缓存、动态分割融合、张量并行等,再加上高性能 CUDA 内核的支持,使得其推理请求吞吐量比 vLLM 高出 1.8 倍。
有效量化
LMDeploy 支持权重量化和 KV 缓存量化。4 比特推理性能比 FP16 高出 2.4 倍,且量化质量已通过 OpenCompass 评估验证。
便捷分布式服务
利用请求分发服务,LMDeploy 可以轻松高效地部署跨多机多卡的多模型服务。
交互式推理模式
在多轮对话过程中,LMDeploy 会缓存注意力机制的 KV 值,从而记住对话历史,避免重复处理历史会话。
出色兼容性
LMDeploy 支持同时使用 KV 缓存量化、AWQ 量化和自动前缀缓存等技术。
支持多种模型
LMDeploy 支持多种主流大语言模型,包括 Llama 系列、InternLM 系列、Qwen 系列等。同时还支持多模态视觉语言模型(VLM),如 LLaVA、InternLM-XComposer 等。
两种推理引擎
LMDeploy 开发了 TurboMind 和 PyTorch 两种推理引擎。TurboMind 致力于推理性能的极致优化,而纯 Python 开发的 PyTorch 引擎则旨在降低开发者使用门槛。
使用方法
安装
推荐在 conda 环境(Python 3.8 - 3.12)中使用 pip 安装 LMDeploy:
conda create -n lmdeploy python=3.8 -y
conda activate lmdeploy
pip install lmdeploy
离线批量推理
import lmdeploy
pipe = lmdeploy.pipeline("internlm/internlm2-chat-7b")
response = pipe(["Hi, pls intro yourself", "Shanghai is"])
print(response)
总结
LMDeploy 是一个功能强大、易于使用的大语言模型部署工具包。它不仅提供了高效的推理性能,还支持多种量化和部署方式,能够满足不同场景下的 LLM 部署需求。无论是离线批量推理还是在线服务,LMDeploy 都能提供出色的解决方案。对于想要高效部署大语言模型的开发者和研究人员来说,LMDeploy 是一个值得尝试的工具。