Ir al contenido

LMDeploy - Compresión y Servicio de LLM

LMDeploy - Compresión y Servicio de LLM

LMDeploy (del ecosistema InternLM/OpenMMLab) es un conjunto de herramientas para comprimir, cuantizar y servir modelos de lenguaje grandes. Su motor de alto rendimiento TurboMind proporciona un throughput fuerte a través de batching persistente, caché KV bloqueada y kernels CUDA optimizados, y también ofrece un backend PyTorch. Soporta cuantización de peso AWQ de 4-bit y cuantización de caché KV, un servidor API compatible con OpenAI, y modelos de visión-lenguaje (VLMs).

Instalación

MétodoComando
pippip install lmdeploy
Con extras CUDApip install lmdeploy[all]
Dockerdocker run --gpus all openmmlab/lmdeploy:latest
RequisitosGPU NVIDIA + CUDA
Verificarlmdeploy --version

Inferencia Rápida (CLI)

# Chat interactivo en la terminal (motor TurboMind)
lmdeploy chat internlm/internlm2_5-7b-chat

# Inferencia batch/pipeline en Python (abajo)

Pipeline de Python

from lmdeploy import pipeline

pipe = pipeline("internlm/internlm2_5-7b-chat")
resp = pipe(["Explain RAG in one sentence."])
print(resp[0].text)
LlamadaDescripción
pipeline(model)Cargar un modelo con el motor por defecto (TurboMind)
pipe([prompts])Inferencia por lotes
GenerationConfig(...)Parámetros de muestreo (temperature, top_p, max_new_tokens)
TurbomindEngineConfig(...)Afinación del motor (tp, cache, session len)

Serviendo una API

# Servidor compatible con OpenAI en puerto 23333
lmdeploy serve api_server internlm/internlm2_5-7b-chat --server-port 23333

# Consultarlo
curl http://localhost:23333/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"internlm2_5-7b-chat","messages":[{"role":"user","content":"hi"}]}'
ComandoDescripción
lmdeploy serve api_server MODELIniciar el servidor compatible con OpenAI
lmdeploy serve gradio MODELLanzar una interfaz web Gradio
--server-portPuerto API
--tp NParalelismo de tensor a través de N GPUs
--session-len NLongitud máxima de contexto

Cuantización (AWQ)

# Cuantización de peso AWQ de 4-bit solo
lmdeploy lite auto_awq internlm/internlm2_5-7b-chat \
  --work-dir internlm2_5-7b-chat-4bit

# Servir el modelo cuantizado
lmdeploy serve api_server internlm2_5-7b-chat-4bit --model-format awq
ComandoDescripción
lmdeploy lite auto_awq MODELProducir un modelo AWQ de 4-bit
lmdeploy lite calibrate MODELPaso de calibración
--model-format awqServir un modelo cuantizado AWQ
Cuant de caché KV--quant-policy 4 o 8 para caché KV INT4/INT8

Configuración del Motor

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))
OpciónEfecto
tpGPUs paralelizados por tensor
session_lenLongitud de contexto
cache_max_entry_countFracción de VRAM para caché KV
quant_policyCuantización de caché KV (4/8)

Modelos de Visión-Lenguaje

CapacidadNota
Soporte VLMServir modelos como InternVL, LLaVA, Qwen-VL
API igualMensajes multimodales a través del servidor compatible con OpenAI

LMDeploy vs Otros Motores

AspectoLMDeployvLLMAphrodite
MotorTurboMind + PyTorchPagedAttentionBifurcación de vLLM
CuantizaciónAWQ + cuant de caché KVCrecienteFormatos más amplios
Soporte VLMFuerte
Mejor paraAlto throughput + AWQ + VLMsServicio estándarFormatos cuant comunitarios

Recursos