LMDeploy는 MMRazor와 MMDeploy 팀에서 개발한 대규모 언어 모델을 압축, 배포 및 서비스하기 위한 툴킷입니다. 이 프로젝트는 대규모 언어 모델(LLM)과 시각-언어 모델(VLM)에 대한 효율적인 추론, 배포 및 서비스 솔루션을 제공하는 데 중점을 둡니다.
LMDeploy는 지속적인 배치 처리(continuous batching), 청크 KV 캐시, 동적 분할 융합, 텐서 병렬 처리, 고성능 CUDA 커널 등 핵심 기능을 도입하여 vLLM보다 요청 처리량이 1.8배 높습니다.
LMDeploy는 가중치 양자화 및 k/v 양자화를 지원하며, 4비트 추론 성능은 FP16보다 2.4배 높습니다. 양자화 품질은 OpenCompass 평가를 통해 확인되었습니다.
요청 분산 서비스를 활용하여 LMDeploy는 여러 대의 머신과 여러 개의 카드에 다중 모델 서비스를 쉽고 효율적으로 배포할 수 있습니다.
다중 턴 대화 과정에서 주의력의 k/v를 캐싱함으로써 엔진은 대화 기록을 기억하여 이전 세션을 반복 처리하는 것을 방지합니다.
LMDeploy는 KV Cache 양자화, AWQ 및 자동 접두사 캐시를 동시에 사용할 수 있습니다.
LMDeploy는 두 가지 추론 엔진을 개발했습니다.
두 엔진은 지원하는 모델 유형과 추론 데이터 유형이 다르므로 사용자는 실제 요구 사항에 따라 적합한 엔진을 선택할 수 있습니다.
LMDeploy는 광범위한 모델 유형을 지원합니다.
conda 환경에서 pip를 사용하여 설치하는 것을 권장합니다 (Python 3.8-3.12 지원):
conda create -n lmdeploy python=3.8 -y
conda activate lmdeploy
pip install lmdeploy
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는 여러 모델 라이브러리를 지원합니다.
LMDEPLOY_USE_MODELSCOPE=True
설정LMDEPLOY_USE_OPENMIND_HUB=True
설정LMDeploy는 여러 오픈 소스 프로젝트와 긴밀하게 통합됩니다.
LMDeploy는 강력하고 성능이 뛰어난 대규모 언어 모델 배포 툴킷으로, 연구 개발 실험부터 생산 배포까지 다양한 시나리오에 적합합니다. 듀얼 엔진 아키텍처, 고급 양자화 기술 및 광범위한 모델 지원은 AI 애플리케이션 개발자에게 중요한 도구 선택이 되도록 합니다. 극한의 성능을 추구하는 생산 환경이든 빠른 반복이 필요한 연구 개발 환경이든 LMDeploy는 적합한 솔루션을 제공할 수 있습니다.