Home
Login

LMDeploy는 대규모 언어 모델을 압축, 배포 및 서비스하기 위한 도구 모음입니다.

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

LMDeploy 프로젝트 상세 소개

프로젝트 개요

LMDeploy는 MMRazor와 MMDeploy 팀에서 개발한 대규모 언어 모델을 압축, 배포 및 서비스하기 위한 툴킷입니다. 이 프로젝트는 대규모 언어 모델(LLM)과 시각-언어 모델(VLM)에 대한 효율적인 추론, 배포 및 서비스 솔루션을 제공하는 데 중점을 둡니다.

핵심 기능

1. 효율적인 추론 (Efficient Inference)

LMDeploy는 지속적인 배치 처리(continuous batching), 청크 KV 캐시, 동적 분할 융합, 텐서 병렬 처리, 고성능 CUDA 커널 등 핵심 기능을 도입하여 vLLM보다 요청 처리량이 1.8배 높습니다.

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는 적합한 솔루션을 제공할 수 있습니다.