Salta ai contenuti

LMDeploy - Compressione e Servizio LLM

LMDeploy - Compressione e Servizio LLM

LMDeploy (dall”ecosistema InternLM/OpenMMLab) è un toolkit per comprimere, quantizzare e servire modelli di linguaggio di grandi dimensioni. Il suo motore TurboMind ad alte prestazioni offre un throughput forte tramite persistent batching, cache KV bloccato e kernel CUDA ottimizzati, e offre anche un backend PyTorch. Supporta quantizzazione 4-bit AWQ di pesi e quantizzazione di cache KV, un server API compatibile con OpenAI e modelli vision-language (VLM).

Installazione

MetodoComando
pippip install lmdeploy
Con extra CUDApip install lmdeploy[all]
Dockerdocker run --gpus all openmmlab/lmdeploy:latest
RequisitiGPU NVIDIA + CUDA
Verificalmdeploy --version

Inferenza Rapida (CLI)

# Chat interattiva nel terminale (motore TurboMind)
lmdeploy chat internlm/internlm2_5-7b-chat

# Inferenza batch/pipeline in Python (sotto)

Pipeline Python

from lmdeploy import pipeline

pipe = pipeline("internlm/internlm2_5-7b-chat")
resp = pipe(["Spiega RAG in una frase."])
print(resp[0].text)
ChiamataDescrizione
pipeline(model)Carica un modello con il motore predefinito (TurboMind)
pipe([prompts])Inferenza batch
GenerationConfig(...)Parametri di sampling (temperature, top_p, max_new_tokens)
TurbomindEngineConfig(...)Tuning del motore (tp, cache, session len)

Servizio di un”API

# Server compatibile con OpenAI sulla porta 23333
lmdeploy serve api_server internlm/internlm2_5-7b-chat --server-port 23333

# Interrogalo
curl http://localhost:23333/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"internlm2_5-7b-chat","messages":[{"role":"user","content":"hi"}]}'
ComandoDescrizione
lmdeploy serve api_server MODELAvvia il server compatibile con OpenAI
lmdeploy serve gradio MODELAvvia un”UI web Gradio
--server-portPorta API
--tp NTensor parallelism su N GPU
--session-len NLunghezza massima del contesto

Quantizzazione (AWQ)

# Quantizzazione weight-only AWQ 4-bit
lmdeploy lite auto_awq internlm/internlm2_5-7b-chat \
  --work-dir internlm2_5-7b-chat-4bit

# Servi il modello quantizzato
lmdeploy serve api_server internlm2_5-7b-chat-4bit --model-format awq
ComandoDescrizione
lmdeploy lite auto_awq MODELProduci un modello AWQ 4-bit
lmdeploy lite calibrate MODELPassaggio di calibrazione
--model-format awqServi un modello quantizzato AWQ
Quant cache KV--quant-policy 4 o 8 per cache KV INT4/INT8

Configurazione del Motore

from lmdeploy import pipeline, TurbomindEngineConfig
pipe = pipeline("internlm/internlm2_5-7b-chat",
    backend_config=TurbomindEngineConfig(
        tp=2, session_len=8192, cache_max_entry_count=0.8, quant_policy=8))
OpzioneEffetto
tpGPU tensor-parallel
session_lenLunghezza del contesto
cache_max_entry_countFrazione di VRAM per cache KV
quant_policyQuantizzazione cache KV (4/8)

Modelli Vision-Language

CapacitàNota
Supporto VLMServi modelli come InternVL, LLaVA, Qwen-VL
Stessa APIMessaggi multimodali tramite il server compatibile con OpenAI

LMDeploy vs Altri Motori

AspettoLMDeployvLLMAphrodite
MotoreTurboMind + PyTorchPagedAttentionFork di vLLM
QuantizzazioneAWQ + quant cache KVCrescenteFormati più ampi
Supporto VLMForte
Migliore perThroughput elevato + AWQ + VLMServizio standardFormati di quant della comunità

Risorse