LMDeploy
Kit de implementación eficiente de LLM de Shanghai AI Lab — inferencia, cuantización y servicio de nivel de producción para modelos de lenguaje grandes con batching continuo y PagedAttention.
🏛️ Desarrollado por OpenMMLab / Shanghai AI Lab | Licencia Apache-2.0 | más de 4.000 estrellas en GitHub
¿Qué es LMDeploy?
LMDeploy es un conjunto de herramientas integral para comprimir, implementar y servir modelos de lenguaje grandes en producción. Creado por el mismo equipo detrás de OpenMMLab (MMDetection, MMSeg), lleva optimizaciones de nivel de investigación a la implementación práctica:
Motor TurboMind — backend de inferencia C++ de alto rendimiento con optimizaciones CUDA
Motor PyTorch — motor flexible basado en Python para una amplia compatibilidad de modelos
Agrupación continua — maximiza la utilización de GPU en solicitudes concurrentes
PagedAttention — gestión eficiente de la caché KV (similar a vLLM)
Cuantización de 4 bits / 8 bits — compatibilidad con AWQ y SmoothQuant
Modelos visión-lenguaje — compatibilidad con InternVL, LLaVA, Qwen-VL
En comparación con vLLM, el motor TurboMind de LMDeploy ofrece ~1,36× más rendimiento en Llama 3 8B con batch=32, y su cuantización AWQ es de primera clase — no una idea de último momento. Para VLM (especialmente InternVL2), LMDeploy es la pila de implementación de referencia.
¿Por qué LMDeploy?
Agrupación continua
✅
✅
✅
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: Selecciona un servidor GPU
En clore.ai marketplace:
Mínimo: GPU NVIDIA con 8 GB de VRAM (para modelos 7B)
Recomendado: RTX 3090/4090 (24 GB) o A100 (40/80 GB)
CUDA: se requiere 11.8 o 12.x
Paso 2: Despliega el Docker de LMDeploy
Mapeos de puertos:
22
Acceso SSH
23333
Servidor API de LMDeploy
Variables de entorno:
Paso 3: Conéctate por SSH y verifica
Iniciando el servidor API
Servidor compatible con OpenAI (recomendado)
Motor PyTorch (compatibilidad más amplia)
Salida de inicio del servidor
Una vez iniciado, LMDeploy expone documentación interactiva de la API en http://<your-ip>:23333/docs — útil para probar endpoints directamente desde el navegador.
Modelos compatibles
Modelos de texto
Modelos visión-lenguaje
Cuantización
Cuantización AWQ de 4 bits
La AWQ de LMDeploy (cuantización de pesos con conciencia de activación) produce una calidad excelente a 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
Sin cuantización (bf16)
~14 GB
Ninguno
Base
SmoothQuant W8A8
~8 GB
Mínima
+20%
AWQ W4A16
~4 GB
Baja
+15%
GPTQ W4A16
~4 GB
Baja
+10%
Ejemplos de uso de la API
Cliente Python
Transmisión
Cliente nativo de Python de LMDeploy
Modelo visión-lenguaje
Implementación con varias GPU
Paralelismo tensorial
Configuración avanzada
Configuración del motor TurboMind
Configuración de generación
Monitorización y métricas
Comprobar estado del servidor
Monitorización de GPU
Ejemplo de Docker Compose
Evaluación comparativa
Salida de ejemplo (RTX 4090, TurboMind, bf16):
En A100 de 80 GB, espera ~2,2× más rendimiento que en RTX 4090 con alta concurrencia debido al ancho de banda de memoria HBM2e (2 TB/s frente a 1 TB/s).
Recomendaciones de GPU para Clore.ai
Elige según el tamaño del modelo objetivo y la carga de servicio:
Modelos de 7–13B, desarrollo/staging
RTX 3090
24 GB
Mejor relación precio/VRAM; gestiona 7B bf16 o 13B AWQ
Modelos de 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 de 70B, servicio para equipos
A100 40GB
40 GB
Cabe 70B AWQ; memoria ECC para mayor fiabilidad
Modelos de 70B, alto rendimiento
A100 80GB
80 GB
Cabe 70B bf16; 2× de rendimiento frente a A100 40 GB con batch=32
Opción económica: RTX 3090 + AWQ de 4 bits — sirve Llama 3 8B a ~280 tok/s con batch=8, cubre la mayoría de los casos de uso de la API.
Opción rápida: RTX 4090 — la más rápida por dólar para modelos de 7–13B; TurboMind exprime cada GB/s de su ancho de banda de 1 TB/s.
Opción para producción: A100 80GB — ejecuta Qwen2-72B o Llama 3 70B en bf16 completo sin compensaciones en la calidad por cuantización; encaja fácilmente en servicio GPU con múltiples instancias.
Solución de problemas
El modelo no se carga
Memoria insuficiente en CUDA
Puerto ya en uso
Modo de red de Docker: Al ejecutar en Docker, asegúrate de que el contenedor use --network host o una asignación de puertos adecuada (-p 23333:23333) para que la API sea accesible desde fuera.
Recomendaciones de GPU para Clore.ai
El motor TurboMind de LMDeploy y la cuantización W4A16 ofrecen un rendimiento de primera clase — especialmente en GPU Ampere/Hopper.
RTX 3090
24 GB
$0.07–0.21/h
~120 tok/s (fp16)
❌ Demasiado grande
RTX 4090
24 GB
$0.14–0.42/h
~200 tok/s (fp16)
❌ Demasiado grande
2× RTX 4090
48 GB
$0.28–0.84/h
~380 tok/s (paralelismo tensorial)
~60 tok/s
Recursos
📦 Docker Hub: hub.docker.com/r/openmmlab/lmdeploy
🐙 GitHub: github.com/InternLM/lmdeploy
📚 Documentación: lmdeploy.readthedocs.io
💬 Discord: discord.gg/xa29JuW84p
🤗 Modelos precuantizados: huggingface.co/lmdeploy
Última actualización
¿Te fue útil?