LMDeploy

Kit de herramientas eficiente para el despliegue de LLM por Shanghai AI Lab — inferencia, cuantización y servicio de grado de producción para modelos de lenguaje grandes con batching continuo y PagedAttention.

🏛️ Desarrollado por OpenMMLab / Shanghai AI Lab | Licencia Apache-2.0 | 4.000+ estrellas en GitHub


¿Qué es LMDeploy?

LMDeploy es un conjunto de herramientas integral para comprimir, desplegar y servir Modelos de Lenguaje Grande en producción. Construido por el mismo equipo detrás de OpenMMLab (MMDetection, MMSeg), aporta optimizaciones de nivel de investigación al despliegue práctico:

  • Motor TurboMind — backend de inferencia de alto rendimiento en C++ con optimizaciones CUDA

  • Motor PyTorch — motor flexible basado en Python para amplia compatibilidad de modelos

  • Batching continuo — maximiza la utilización de la GPU entre solicitudes concurrentes

  • PagedAttention — gestión eficiente de la caché KV (similar a vLLM)

  • Cuantización de 4 bits / 8 bits — soporte para AWQ y SmoothQuant

  • Modelos Visión-Lenguaje — soporte para InternVL, LLaVA, Qwen-VL

Comparado con vLLM, el motor TurboMind de LMDeploy ofrece ~1.36× mayor rendimiento en Llama 3 8B con batch=32, y su cuantización AWQ es de primera clase — no una ocurrencia tardía. Para VLMs (especialmente InternVL2), LMDeploy es la pila de despliegue de referencia.

¿Por qué LMDeploy?

Característica
LMDeploy
vLLM
TGI

Batching continuo

Cuantización AWQ

Decodificación especulativa

Visión-Lenguaje

Limitado

Limitado

API de OpenAI

TurboMind (motor personalizado)


Inicio rápido en Clore.ai

Paso 1: Seleccionar un servidor GPU

En clore.aiarrow-up-right mercado:

  • Mínimo: GPU NVIDIA con 8GB de VRAM (para modelos 7B)

  • Recomendado: RTX 3090/4090 (24GB) o A100 (40/80GB)

  • CUDA: Se requiere 11.8 o 12.x

Paso 2: Desplegar LMDeploy Docker

Mapeos de puertos:

Puerto del contenedor
Propósito

22

Acceso SSH

23333

Servidor API de LMDeploy

Variables de entorno:

Paso 3: SSH y Verificación


Iniciando el Servidor API

Servidor compatible con OpenAI (Recomendado)

Motor PyTorch (Mayor compatibilidad)

Salida de inicio del servidor

circle-check

Modelos compatibles

Modelos de texto

Modelos Visión-Lenguaje


Cuantización

Cuantización AWQ de 4 bits

El AWQ (Activation-aware Weight Quantization) de LMDeploy produce una excelente calidad en 4 bits:

SmoothQuant W8A8

Cuantización de pesos y activaciones a 8 bits (mejor para despliegues críticos en rendimiento):

Impacto de la cuantización

Cuantización
VRAM (7B)
Pérdida de calidad
Ganancia de rendimiento

Ninguna (bf16)

~14GB

Ninguna

Referencia

SmoothQuant W8A8

~8GB

Mínima

+20%

AWQ W4A16

~4GB

Baja

+15%

GPTQ W4A16

~4GB

Baja

+10%

circle-info

Recomendación AWQ: Para la mayoría de los casos de uso, AWQ 4-bit es el mejor equilibrio entre calidad y ahorro de VRAM. Use --w-group-size 128 para mejor calidad con un uso de memoria ligeramente mayor.


Ejemplos de uso de la API

Cliente Python

Streaming

Cliente Python nativo de LMDeploy

Modelo Visión-Lenguaje


Despliegue multi-GPU

Paralelismo tensorial


Configuración avanzada

Configuración del motor TurboMind

Configuración de generación


Monitoreo y métricas

Comprobar la salud del servidor

Monitoreo de GPU


Ejemplo Docker Compose


Benchmarking

Salida de ejemplo (RTX 4090, TurboMind, bf16):

En A100 80GB, espere ~2.2× mayor rendimiento vs RTX 4090 en alta concurrencia debido al ancho de banda de memoria HBM2e (2 TB/s vs 1 TB/s).


Recomendaciones de GPU en Clore.ai

Elija según el tamaño de modelo objetivo y la carga de servicio:

Caso de uso
GPU
VRAM
Por qué

Modelos 7–13B, desarrollo/preproducción

RTX 3090

24 GB

Mejor relación $/VRAM; maneja 7B bf16 o 13B AWQ

Modelos 7–13B, producción

RTX 4090

24 GB

~40% más rápido que 3090 con la misma VRAM; 412 tok/s en Llama 3 8B

Modelos 70B, servicio por equipo

A100 40GB

40 GB

Ajusta 70B AWQ; memoria ECC para fiabilidad

Modelos 70B, alto rendimiento

A100 80GB

80 GB

Ajusta 70B bf16; 2× rendimiento vs A100 40GB con batch=32

Opción económica: RTX 3090 + AWQ 4-bit — sirve Llama 3 8B a ~280 tok/s batch=8, cubre la mayoría de casos de uso de API.

Opción velocidad: RTX 4090 — la más rápida por dólar para modelos 7–13B; TurboMind exprime cada GB/s de su ancho de banda de 1 TB/s.

Opción producción: A100 80GB — ejecuta Qwen2-72B o Llama 3 70B en bf16 completo sin compromisos de calidad por cuantización; encaja fácilmente en servicio multi-instancia de GPU.


Solución de problemas

Modelo no carga

CUDA Fuera de memoria

Puerto ya en uso

circle-exclamation

Recomendaciones de GPU en Clore.ai

El motor TurboMind de LMDeploy y la cuantización W4A16 ofrecen el mejor rendimiento de su clase — especialmente en GPUs Ampere/Hopper.

GPU
VRAM
Precio en Clore.ai
Rendimiento Llama 3 8B
Llama 3 70B Q4

RTX 3090

24 GB

~$0.12/h

~120 tok/s (fp16)

❌ Demasiado grande

RTX 4090

24 GB

~$0.70/h

~200 tok/s (fp16)

❌ Demasiado grande

A100 40GB

40 GB

~$1.20/h

~160 tok/s (fp16)

~55 tok/s (W4A16)

A100 80GB

80 GB

~$2.00/h

~175 tok/s (fp16)

~80 tok/s (fp16)

2× RTX 4090

48 GB

~$1.40/hr

~380 tok/s (paralelismo tensorial)

~60 tok/s

circle-info

RTX 3090 a ~$0.12/hr es la mejor opción para modelos 7B–13B. El motor TurboMind de LMDeploy extrae casi el máximo rendimiento de GPUs de consumo. Una sola RTX 3090 sirviendo Llama 3 8B maneja 120 tok/s — suficiente para APIs de producción con 10–20 usuarios concurrentes.

Para modelos 70B: A100 40GB (~$1.20/hr) con cuantización W4A16 entrega ~55 tok/s — más rentable que dos RTX 4090.


Recursos

Última actualización

¿Te fue útil?