Skip to content
LMDeploy logo

LMDeploy

Apache 2.0 LLM serving and quantization toolkit from Shanghai AI Laboratory's InternLM group. Builds for NVIDIA, Huawei Ascend, Cambricon and AMD ROCm from a single codebase.

4/5 my assessment
Open-source
Artificial Intelligence

Overview

Shanghai AI Laboratory's InternLM group maintains LMDeploy as the compression and serving toolkit for its own models, and it has long since outgrown that origin. Two engines ship in the same package. TurboMind is the C++ and CUDA implementation built for raw throughput, carrying hand-written kernels including SM90 native BF16 and FP8 GEMM paths. The PyTorch engine is pure Python and exists so that supporting a new architecture does not require kernel work first. Quantization covers AWQ weight-only 4-bit, K/V cache quantization, FP8 for MoE layers and MXFP4 on recent NVIDIA silicon.

The reason it matters outside the InternLM ecosystem is hardware. Set LMDEPLOY_TARGET_DEVICE at build time and the same codebase targets NVIDIA CUDA, Huawei Ascend, Cambricon or AMD ROCm. For any organisation in China operating under domestic-chip procurement rules, that one environment variable is the difference between a working deployment and a rewrite, and no Western serving stack offers an equivalent. The licence is plain Apache 2.0 with no field-of-use restriction and no user cap, so it can go into a commercial product without a legal review cycle.

Judge the performance claims yourself. The README states up to 1.8 times the request throughput of vLLM and 2.4 times FP16 speed at 4-bit, both from the project's own benchmarks, and that gap narrows or reverses depending on model shape and batch profile. Community size is the real trade-off: 8,030 stars against a vastly larger vLLM ecosystem means fewer integrations and thinner third-party answers when something breaks. v0.16.0 arrived 19 August 2026 with GLM-5.2 support, TurboMind ViT paths for InternVL and Qwen-VL plus the SM90 kernels, following v0.15.0 on 31 July with DeepSeek V4 support. English documentation sits on readthedocs and is adequate rather than generous.

Key Features

  • Two engines in one package: TurboMind, a C++ and CUDA kernel implementation aimed at throughput, and a pure Python PyTorch engine that lowers the barrier to adding new architectures
  • Quantization across AWQ weight-only 4-bit, K/V cache quantization, FP8 for MoE layers and MXFP4 on recent NVIDIA parts
  • Multi-vendor builds selected through the LMDEPLOY_TARGET_DEVICE environment variable, covering NVIDIA CUDA from V100 through RTX 50 series, Huawei Ascend, Cambricon and AMD ROCm
  • OpenAI-compatible serving plus an Anthropic-compatible endpoint and an OpenAI Responses-compatible endpoint added through the 0.13 and 0.14 lines
  • Automatic prefix caching, speculative decoding with guided decoding support and long-context prefix-cache hits
  • v0.16.0 on 19 August 2026 added GLM-5.2, TurboMind ViT paths for InternVL and Qwen-VL plus SM90 native BF16 and FP8 GEMM kernels

Where it holds

  • Plain Apache 2.0 with no field-of-use clause and no user cap, unlike several Chinese model and infrastructure releases
  • Multi-accelerator support from one codebase, which no Western serving stack matches for Huawei Ascend. That single build flag can decide whether a domestic-procurement deployment happens at all
  • Vision-language serving is a first-class path, with InternVL and Qwen-VL running on TurboMind rather than a slow generic fallback
  • Tracks new Chinese model architectures quickly. GLM-5.2 and DeepSeek V4 support landed within weeks of the weights

Where it breaks

  • 8,030 stars against a far larger vLLM community means fewer third-party integrations and much thinner troubleshooting material when something breaks at 2am
  • The 1.8x throughput advantage over vLLM and the 2.4x FP16 figure at 4-bit are the project's own benchmark claims. They depend on model, batch shape and hardware, so reproduce them on your traffic before committing
  • Ascend, Cambricon and ROCm builds trail the CUDA path on model coverage. Check the support matrix for your specific architecture first
  • TurboMind kernels are C++ and CUDA, so extending it for an unusual architecture is a real engineering project rather than a config change

My Take

For teams that have to serve on Ascend, this is the short list. LMDeploy comes out of Shanghai AI Laboratory's InternLM group under a clean Apache 2.0 licence, and its build system targets NVIDIA CUDA, Huawei Ascend, Cambricon and AMD ROCm from one codebase, which matters enormously if your procurement is subject to domestic hardware rules. The README claims up to 1.8 times the request throughput of vLLM and 2.4 times FP16 speed at 4-bit, both figures worth reproducing on your own traffic before you commit to them. v0.16.0 landed 19 August 2026 with GLM-5.2 and FP8 MoE support.

Francis Okafor
Francis Okafor AI & Tech Lead · Engineer

Quick Info

Pricing:
open-source
Openness:
Open source
Licence:
Apache 2.0
Starting at:
Free under a plain Apache 2.0 licence with no field-of-use restriction and no user cap. Installable from PyPI as lmdeploy or built from source, selecting the accelerator target at build time. Your only costs are the GPU or NPU hardware and the electricity to run it. Docker images are published for the CUDA path, with separate build instructions for Ascend, Cambricon and ROCm targets.
Added:
Aug 2026
Updated:
Aug 2026

Use Cases

enterprise ai software development agent development computer vision

Judge it on your own work

The notes above say where LMDeploy holds and where it breaks. The fastest check is your own workload.

Visit website ↗

LMDeploy compared head to head

Alternatives to LMDeploy