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 都能提供合適的解決方案。