InternLM/lmdeploy

LMDeploy is a toolkit for compressing, deploying, and serving LLMs.

What it solves

LMDeploy 是一个旨在简化并加速 LLM 和 VLM 压缩、部署和服务的工具包。它通过提供高性能引擎和量化技术来增加吞吐量并减少内存使用,解决了 LLM 推理中的高计算成本和延迟挑战。

How it works

该项目提供两种不同的推理引擎:

  • TurboMind: 专注于极致的性能优化,利用了持续批处理 (continuous batching)、分块 KV cache、张量并行 (tensor parallelism) 以及高性能 CUDA kernels。
  • PyTorch Engine: 一个基于 Python 的引擎,旨在降低开发者的门槛,并允许对新功能进行快速实验。

它还实现了有效的量化 (weight-only 和 KV cache 量化) 以减小模型大小并加速推理,並包含一个请求分发服务,用于在多台机器和多个 GPU 上部署多模型服务。

Highlights

  • High Throughput: 在某些场景下,其请求吞吐量比 vLLM 高出达 1.8x。
  • Broad Model Support: 支持广泛的 LLM (例如 Llama 3.1, Qwen, DeepSeek, Mistral) 和 VLM (例如 InternVL, Qwen-VL, LLaVA)。
  • Advanced Quantization: 4-bit 推理和 AWQ 支持,性能比 FP16 快上达 2.4x。
  • Flexible Deployment: 通过代理服务器支持多模型、多机器、多卡推理服务。
  • Hardware Compatibility: 兼容 NVIDIA GPUs 和 Huawei Ascend 平台。