Home
Login

LMDeploy 是一個用於壓縮、部署和服務大語言模型的工具包

Apache-2.0Python 6.6kInternLM Last Updated: 2025-06-19

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 支援多個模型庫:

  1. HuggingFace(預設)
  2. ModelScope:設定環境變數 LMDEPLOY_USE_MODELSCOPE=True
  3. openMind Hub:設定環境變數 LMDEPLOY_USE_OPENMIND_HUB=True

應用場景

  1. 生產環境部署:高吞吐量的 LLM 服務
  2. 研發實驗:快速驗證新模型和演算法
  3. 資源受限環境:通過量化技術降低資源需求
  4. 多模態應用:視覺-語言模型的高效推理
  5. 邊緣設備:支援 NVIDIA Jetson 等平台

生態集成

LMDeploy 與多個開源項目深度集成:

  • OpenAOE:無縫集成 LMDeploy 服務
  • Swift:作為預設 VLM 推理加速器
  • BentoML:提供部署示例項目
  • Jetson 平台:專門的邊緣設備適配

總結

LMDeploy 是一個功能強大、效能卓越的大語言模型部署工具包,適合從研發實驗到生產部署的各種場景。其雙引擎架構、先進的量化技術和廣泛的模型支援,使其成為 AI 應用開發者的重要工具選擇。無論是追求極致效能的生產環境,還是需要快速迭代的研發場景,LMDeploy 都能提供合適的解決方案。