LMDeploy : LLM 배포 및 서빙 지원 오픈소스 툴킷

LMDeploy란?

InternLM 팀에서 개발한 고성능 LLM 추론/서빙 프레임워크이다.

Hugging Face 스타일 모델을 효율적이고 유연하게 배포할 수 있도록 설계되었고,

특히 InternLM, Qwen, LLaMA 등의 모델을 고속으로 서빙하는 데 최적화되어 있다.

장점

  • 효율적인 추론
    • 지속적 배치, 병렬화, 고성능 CUDA 커널 등
    • 최대 1.8배 높은 처리량
  • 효과적인 양자화
    • 4비트 양자화 등의 방식을 통해
    • 2.4배 빠른 추론
  • 분산 서빙
    • 여러 머신과 GPU에서
    • 다중 모델 서비스 배포
  • 대화형 추론
    • 대화 이력 재처리를 줄이는
    • 캐싱을 통해 효율적인 대화형 추론
  • 높은 호환성
    • 다양한 기능을 동시에
    • 사용할 수 있음

지원 모델

LLMs VLMs
  • Llama (7B - 65B)
  • Llama2 (7B - 70B)
  • Llama3 (8B, 70B)
  • Llama3.1 (8B, 70B)
  • Llama3.2 (1B, 3B)
  • InternLM (7B - 20B)
  • InternLM2 (7B - 20B)
  • InternLM3 (8B)
  • InternLM2.5 (7B)
  • Qwen (1.8B - 72B)
  • Qwen1.5 (0.5B - 110B)
  • Qwen1.5 - MoE (0.5B - 72B)
  • Qwen2 (0.5B - 72B)
  • Qwen2-MoE (57B A14B)
  • Qwen2.5 (0.5B - 32B)
  • Qwen3, Qwen3-MoE
  • Baichuan (7B)
  • LLaVA(1.5,1.6) (7B-34B)
  • InternLM-XComposer2 (7B, 4khd-7B)
  • InternLM-XComposer2.5 (7B)
  • Qwen-VL (7B)
  • Qwen2-VL (2B, 7B, 72B)
  • Qwen2.5-VL (3B, 7B, 72B)
  • DeepSeek-VL (7B)
  • DeepSeek-VL2 (3B, 16B, 27B)
  • InternVL-Chat (v1.1-v1.5)
  • InternVL2 (1B-76B)
  • InternVL2.5(MPO) (1B-78B)
  • InternVL3 (1B-78B)
  • InternVL3.5 (1B-241B A28B)
  • Intern-S1 (241B)
  • Intern-S1-mini (8.3B)
  • Mono-InternVL (2B)
  • ChemVLM (8B-26B)

사용법

  • 설치
     conda create -n lmdeploy python=3.10 -y
     conda activate lmdeploy
     pip install lmdeploy
    

    파이썬 버전은 3.9 - 3.13을 추천한다고 함!

  • 오프라인 배포
      from lmdeploy import pipeline
      from lmdeploy.vl import load_image
    
      pipe = pipeline('OpenGVLab/InternVL2-8B')
    
      image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
      response = pipe((f'describe this image', image))
      print(response)
    
  • 온라인 배포
      lmdeploy serve api_server OpenGVLab/InternVL2-8B
    

자세한 튜토리얼