LMDeploy is a toolkit for compressing, deploying, and serving LLM, developed by the MMRazor and MMDeploy teams. It has the following core features:
Efficient Inference: LMDeploy delivers up to 1.8x higher request throughput than vLLM, by introducing key features like persistent batch(a.k.a. continuous batching), blocked KV cache, dynamic split&fuse, tensor parallelism, high-performance CUDA kernels and so on.
Effective Quantization: LMDeploy supports weight-only and k/v quantization, and the 4-bit inference performance is 2.4x higher than FP16. The quantization quality has been confirmed via OpenCompass evaluation.
Effortless Distribution Server: Leveraging the request distribution service, LMDeploy facilitates an easy and efficient deployment of multi-model services across multiple machines and cards.
Excellent Compatibility: LMDeploy supports KV Cache Quant, AWQ and Automatic Prefix Caching to be used simultaneously.
| LLMs | VLMs |
|
|
LMDeploy has developed two inference engines - TurboMind and PyTorch, each with a different focus. The former strives for ultimate optimization of inference performance, while the latter, developed purely in Python, aims to decrease the barriers for developers.
They differ in the types of supported models and the inference data type. Please refer to this table for each engine's capability and choose the proper one that best fits your actual needs.
Internally, the TurboMind backend is being refactored into a new DriftEngine orchestration that adds an explicit engine‑level scheduler, KV cache manager, prefix cache, and KV‑aware capacity control on top of the existing kernels. For a detailed design and an execution plan of this work, see:
LM/lmdeploy/ENGINE.md – architecture and cross‑engine comparison (TurboMind, DriftEngine, vLLM, sglang, TensorRT‑LLM, EasyDeL).LM/lmdeploy/ENGINE_TODOS.md – numbered TODOs and progress for the TurboMind/DriftEngine engine, scheduler, KV manager, prefix cache, capacity scheduler, and benchmarks.It is recommended installing lmdeploy using pip in a conda environment (python 3.9 - 3.13):
conda create -n lmdeploy python=3.10 -y
conda activate lmdeploy
pip install lmdeploy
The default prebuilt package is compiled on CUDA 12 since v0.3.0.
For the GeForce RTX 50 series, please install the LMDeploy prebuilt package complied with CUDA 12.8
export LMDEPLOY_VERSION=0.10.2
export PYTHON_VERSION=310
pip install https://github.com/InternLM/lmdeploy/releases/download/v${LMDEPLOY_VERSION}/lmdeploy-${LMDEPLOY_VERSION}+cu128-cp${PYTHON_VERSION}-cp${PYTHON_VERSION}-manylinux2014_x86_64.whl --extra-index-url https://download.pytorch.org/whl/cu128
For more information on installing on CUDA 11+ platform, or for instructions on building from source, please refer to the installation guide.
import lmdeploy
with lmdeploy.pipeline("internlm/internlm3-8b-instruct") as pipe:
response = pipe(["Hi, pls intro yourself", "Shanghai is"])
print(response)
[!NOTE] By default, LMDeploy downloads model from HuggingFace. If you would like to use models from ModelScope, please install ModelScope by
pip install modelscopeand set the environment variable:
export LMDEPLOY_USE_MODELSCOPE=TrueIf you would like to use models from openMind Hub, please install openMind Hub by
pip install openmind_huband set the environment variable:
export LMDEPLOY_USE_OPENMIND_HUB=True
For more information about inference pipeline, please refer to here.
Please review getting_started section for the basic usage of LMDeploy.
For detailed user guides and advanced guides, please refer to our tutorials:
Deploying LLMs offline on the NVIDIA Jetson platform by LMDeploy: LMDeploy-Jetson
Example project for deploying LLMs using LMDeploy and BentoML: BentoLMDeploy
We appreciate all contributions to LMDeploy. Please refer to CONTRIBUTING.md for the contributing guideline.
@misc{2023lmdeploy,
title={LMDeploy: A Toolkit for Compressing, Deploying, and Serving LLM},
author={LMDeploy Contributors},
howpublished = {\url{https://github.com/InternLM/lmdeploy}},
year={2023}
}
@article{zhang2025efficient,
title={Efficient Mixed-Precision Large Language Model Inference with TurboMind},
author={Zhang, Li and Jiang, Youhe and He, Guoliang and Chen, Xin and Lv, Han and Yao, Qian and Fu, Fangcheng and Chen, Kai},
journal={arXiv preprint arXiv:2508.15601},
year={2025}
}
This project is released under the Apache 2.0 license.
Python
57.3%
C++
27.0%
Cuda
14.5%
LMDeploy is a toolkit for compressing, deploying, and serving LLM, developed by the MMRazor and MMDeploy teams. It has the following core features:
Efficient Inference: LMDeploy delivers up to 1.8x higher request throughput than vLLM, by introducing key features like persistent batch(a.k.a. continuous batching), blocked KV cache, dynamic split&fuse, tensor parallelism, high-performance CUDA kernels and so on.
Effective Quantization: LMDeploy supports weight-only and k/v quantization, and the 4-bit inference performance is 2.4x higher than FP16. The quantization quality has been confirmed via OpenCompass evaluation.
Effortless Distribution Server: Leveraging the request distribution service, LMDeploy facilitates an easy and efficient deployment of multi-model services across multiple machines and cards.
Excellent Compatibility: LMDeploy supports KV Cache Quant, AWQ and Automatic Prefix Caching to be used simultaneously.
| LLMs | VLMs |
|
|
LMDeploy has developed two inference engines - TurboMind and PyTorch, each with a different focus. The former strives for ultimate optimization of inference performance, while the latter, developed purely in Python, aims to decrease the barriers for developers.
They differ in the types of supported models and the inference data type. Please refer to this table for each engine's capability and choose the proper one that best fits your actual needs.
Internally, the TurboMind backend is being refactored into a new DriftEngine orchestration that adds an explicit engine‑level scheduler, KV cache manager, prefix cache, and KV‑aware capacity control on top of the existing kernels. For a detailed design and an execution plan of this work, see:
LM/lmdeploy/ENGINE.md – architecture and cross‑engine comparison (TurboMind, DriftEngine, vLLM, sglang, TensorRT‑LLM, EasyDeL).LM/lmdeploy/ENGINE_TODOS.md – numbered TODOs and progress for the TurboMind/DriftEngine engine, scheduler, KV manager, prefix cache, capacity scheduler, and benchmarks.It is recommended installing lmdeploy using pip in a conda environment (python 3.9 - 3.13):
conda create -n lmdeploy python=3.10 -y
conda activate lmdeploy
pip install lmdeploy
The default prebuilt package is compiled on CUDA 12 since v0.3.0.
For the GeForce RTX 50 series, please install the LMDeploy prebuilt package complied with CUDA 12.8
export LMDEPLOY_VERSION=0.10.2
export PYTHON_VERSION=310
pip install https://github.com/InternLM/lmdeploy/releases/download/v${LMDEPLOY_VERSION}/lmdeploy-${LMDEPLOY_VERSION}+cu128-cp${PYTHON_VERSION}-cp${PYTHON_VERSION}-manylinux2014_x86_64.whl --extra-index-url https://download.pytorch.org/whl/cu128
For more information on installing on CUDA 11+ platform, or for instructions on building from source, please refer to the installation guide.
import lmdeploy
with lmdeploy.pipeline("internlm/internlm3-8b-instruct") as pipe:
response = pipe(["Hi, pls intro yourself", "Shanghai is"])
print(response)
[!NOTE] By default, LMDeploy downloads model from HuggingFace. If you would like to use models from ModelScope, please install ModelScope by
pip install modelscopeand set the environment variable:
export LMDEPLOY_USE_MODELSCOPE=TrueIf you would like to use models from openMind Hub, please install openMind Hub by
pip install openmind_huband set the environment variable:
export LMDEPLOY_USE_OPENMIND_HUB=True
For more information about inference pipeline, please refer to here.
Please review getting_started section for the basic usage of LMDeploy.
For detailed user guides and advanced guides, please refer to our tutorials:
Deploying LLMs offline on the NVIDIA Jetson platform by LMDeploy: LMDeploy-Jetson
Example project for deploying LLMs using LMDeploy and BentoML: BentoLMDeploy
We appreciate all contributions to LMDeploy. Please refer to CONTRIBUTING.md for the contributing guideline.
@misc{2023lmdeploy,
title={LMDeploy: A Toolkit for Compressing, Deploying, and Serving LLM},
author={LMDeploy Contributors},
howpublished = {\url{https://github.com/InternLM/lmdeploy}},
year={2023}
}
@article{zhang2025efficient,
title={Efficient Mixed-Precision Large Language Model Inference with TurboMind},
author={Zhang, Li and Jiang, Youhe and He, Guoliang and Chen, Xin and Lv, Han and Yao, Qian and Fu, Fangcheng and Chen, Kai},
journal={arXiv preprint arXiv:2508.15601},
year={2025}
}
This project is released under the Apache 2.0 license.
(top 30 of 129)
Python
57.3%
C++
27.0%
Cuda
14.5%