InternLM/lmdeploy

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

What it solves

LMDeploy는 LLM 및 VLM의 압축, 배포 및 서빙 프로세스를 단순화하고 가속화하기 위해 설계된 툴킷입니다. 고성능 엔진과 양자화 기술을 제공하여 처리량을 높이고 메모리 사용량을 줄임으로써, LLM 추론의 높은 계산 비용과 지연 시간 문제를 해결합니다.

How it works

이 프로젝트는 두 가지 별도의 추론 엔진을 제공합니다:

  • TurboMind: 궁극의 성능 최적화에에 집중하여, persistent batching (continuous batching), blocked KV cache, tensor parallelism, 그리고 고성능 CUDA kernels를 활용합니다.
  • PyTorch Engine: 개발자의 진입 장벽을 낮추고 새로운 기능에 대한 빠른 실험을 가능하게 하는 Python 기반 엔진입니다.

또한 모델 크기를 줄이고 추론 속도를 높이기 위해 효과적인 양자화 (weight-only 및 KV cache 양자화)를 구현하였으며, 여러 대의 머신과 GPU에 걸쳐 멀티 모델 서비스를 배포하기 위한 요청 분산 서비스도 포함되어 있습니다.

Highlights

  • High Throughput: 특정 시나리오에서 vLLM보다 최대 1.8배 높은 요청 처리량을 제공합니다.

  • Broad Model Support: 광범위한 LLM (예: Llama 3.1, Qwen, DeepSeek, Mistral) 및 VLM (예: InternVL, Qwen-VL, LLaVA)을 지원합니다.

  • Advanced Quantization: 4-bit 추론 및 AWQ를 지원하며, FP16보다 최대 2.4배 빠른 성능을 제공합니다.

  • Flexible Deployment: 프록시 서버를 통해 멀티 모델, 멀티 머신, 멀티 카드 추론 서비스를 지원합니다.

  • Hardware Compatibility: NVIDIA GPU와 Huawei Ascend 플랫폼을 지원합니다.