PUBLICADO EL 26 DE OCTUBRE DE 2026
Cómo instalar vLLM en tu servidor para servir modelos de IA en producción con una API compatible con OpenAI
vLLM es un motor de inferencia de código abierto que sirve modelos de IA en producción con una API REST idéntica a la de OpenAI. Soporta PagedAttention para manejar miles de requests simultáneos, admite modelos de HuggingFace en precisión completa o cuantizados con AWQ (el soporte para GGUF es experimental), y en una GPU de 16 GB VRAM corre cómodamente modelos de alrededor de 7 mil millones de parámetros. Esta guía muestra cómo instalarlo, configurarlo como servicio y conectar cualquier app que ya use la API de OpenAI.
vLLM es un motor de inferencia de código abierto que sirve cualquier modelo de HuggingFace a través de una API REST idéntica a la de OpenAI: mismo endpoint, mismos parámetros, misma estructura de respuesta. La diferencia práctica respecto a Ollama es que vLLM usa PagedAttention, una técnica que gestiona la memoria de atención en bloques de 16 tokens, lo que le permite servir miles de requests simultáneos sin fragmentación de memoria. Para un equipo pequeño o una app en producción con varios usuarios, la diferencia es medible desde el primer día.
Requisitos mínimos
Ubuntu 22.04 o 24.04, Python 3.10 o 3.11, NVIDIA GPU con CUDA 12.1 o superior y al menos 16 GB VRAM para modelos de alrededor de 7 mil millones de parámetros en precisión completa. Con 24 GB VRAM el margen crece: modelos de 13B funcionan sin problema, y con cuantización AWQ podés llegar a modelos todavía más grandes. 32 GB de RAM en el sistema es la recomendación para que el modelo no compita por memoria con el sistema operativo.
Paso 1: entorno virtual
Creá un entorno de Python dedicado para evitar conflictos con otros paquetes del sistema:
python3.11 -m venv ~/vllm-env
source ~/vllm-env/bin/activate
Paso 2: instalar vLLM
pip install vllm
Este comando instala vLLM junto con PyTorch y los bindings de CUDA. Puede tardar varios minutos la primera vez. Al terminar verificá que detecta la GPU:
python -c "import torch; print(torch.cuda.get_device_name(0))"
Paso 3: descargar y servir el modelo
Para servir un modelo como Llama 3.1 8B de Meta (requiere aceptar la licencia en HuggingFace y autenticarte con huggingface-cli login) o cualquier modelo sin gate como Mistral o DeepSeek:
vllm serve mistralai/Mistral-7B-Instruct-v0.3 \
--host 0.0.0.0 \
--port 8000 \
--dtype auto \
--max-model-len 8192 \
--api-key tu_clave_secreta
La primera vez vLLM descarga los pesos del modelo en ~/.cache/huggingface. Para un modelo de 7B en formato bfloat16 son alrededor de 14 GB. El servidor queda listo cuando aparece Application startup complete en los logs.
Paso 4: probar con curl
curl http://localhost:8000/v1/chat/completions \
-H "Authorization: Bearer tu_clave_secreta" \
-H "Content-Type: application/json" \
-d '{
"model": "mistralai/Mistral-7B-Instruct-v0.3",
"messages": [{"role": "user", "content": "Hola"}],
"max_tokens": 200
}'
Cualquier librería o herramienta que ya esté configurada para la API de OpenAI funciona aquí cambiando solo la URL base y la clave.
Paso 5: servicio systemd para que corra siempre
Creá el archivo /etc/systemd/system/vllm.service:
[Unit]
Description=vLLM inference server
After=network.target
[Service]
User=tu_usuario
WorkingDirectory=/home/tu_usuario
Environment="PATH=/home/tu_usuario/vllm-env/bin:/usr/bin"
ExecStart=/home/tu_usuario/vllm-env/bin/vllm serve mistralai/Mistral-7B-Instruct-v0.3 \
--host 0.0.0.0 --port 8000 --dtype auto --max-model-len 8192 \
--api-key tu_clave_secreta
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Activalo:
sudo systemctl daemon-reload
sudo systemctl enable --now vllm
sudo systemctl status vllm
Para modelos más grandes
Los modelos de más de 13B parámetros suelen requerir GPUs con 48 GB VRAM o más, y los que se acercan a los 70B necesitan varias GPUs o cuantización agresiva para entrar en memoria. Con múltiples GPUs en el mismo servidor, vLLM distribuye el modelo automáticamente con --tensor-parallel-size 2 (para 2 GPUs) o --tensor-parallel-size 4 (para 4 GPUs). Para cuantización AWQ, agregá --quantization awq y usá una versión cuantizada del modelo desde HuggingFace.
Para servir vLLM con modelos de producción de 13B o más parámetros necesitás hardware con GPU dedicada. Podés ver las opciones disponibles en servidores dedicados de NAP Latino.
