Lección 02: Configuración vLLM
Aprende a desplegar modelos locales con vLLM, optimizar inferencia y conectar AVA SDK
Razer presentó en la GDC 2026 las nuevas capacidades <strong>agentic</strong> de Project AVA. vLLM y los modelos locales siguen siendo la base perfecta para ejecutar estos nuevos flujos agentic de forma privada y sin coste recurrente. Leer más →
Introducción
vLLM es el motor de inferencia que impulsa AVA SDK. Basado en PagedAttention, ofrece rendimiento de clase industrial para modelos de lenguaje en hardware local. En esta lección aprenderás a instalar, configurar y optimizar vLLM para ejecutar modelos como Llama 3, Mistral y Qwen directamente en tu GPU.
¿Cómo funciona vLLM?
vLLM utiliza PagedAttention, un novedoso sistema de gestión de memoria que elimina la fragmentación del KV cache. Esto permite:
Mayor throughput
Sirve más requests simultáneas con la misma GPU
Menor latencia
Optimización del bucle de inferencia para respuestas más rápidas
Memoria eficiente
Gestión casi óptima del KV cache gracias a PagedAttention
API compatible con OpenAI
Misma interfaz /v1/chat/completions, misma ergonomía
Paso 1: Iniciar el servidor vLLM
Con Docker ya configurado (Lección 01), lanzar vLLM es tan simple como:
Asegúrate de que el Docker Engine y NVIDIA Container Toolkit están funcionando antes de continuar (Lección 01).
1docker run --gpus all \
2 -v ~/.cache/huggingface:/root/.cache/huggingface \
3 -p 8000:8000 \
4 --ipc=host \
5 vllm/vllm-openai:latest \
6 --model meta-llama/Meta-Llama-3.1-8B-InstructLa primera vez, vLLM descargará el modelo de HuggingFace (varios GB). Las siguientes veces usará la caché local. Asegúrate de tener ~16 GB libres.
Paso 2: Elegir un modelo
vLLM es compatible con decenas de modelos open-source. Para AVA SDK recomendamos:
| Modelo | VRAM requerida | Uso recomendado |
|---|---|---|
| Llama 3.1 8B | 16 GB VRAM | Mejor equilibrio calidad/rendimiento |
| Mistral 7B | 12 GB VRAM | Rápido y eficiente para tareas simples |
| Qwen 2.5 7B | 14 GB VRAM | Excelente en respuestas estructuradas |
Necesitas una cuenta de HuggingFace y haber aceptado los términos de uso de Llama 3 para descargar el modelo. Alternativamente, usa Mistral 7B que no requiere autenticación.
Paso 3: Conectar vLLM con AVA SDK
Una vez el servidor vLLM esté corriendo, configura AVA SDK para que lo use como backend de inferencia local:
1from openai import OpenAI
2
3# AVA SDK - Configuración de inferencia local
4client = OpenAI(
5 base_url="http://localhost:8000/v1",
6 api_key="not-needed" # vLLM no requiere API key
7)
8
9response = client.chat.completions.create(
10 model="meta-llama/Meta-Llama-3.1-8B-Instruct",
11 messages=[
12 {"role": "system", "content": "Eres AVA, un asistente táctico."},
13 {"role": "user", "content": "¿Qué comandos básicos de AVA conoces?"}
14 ],
15 temperature=0.7,
16 max_tokens=512
17)
18
19print(response.choices[0].message.content)Aunque vLLM no requiere API key, el parámetro api_key es obligatorio en el cliente OpenAI. Puedes usar cualquier valor.
Benchmark: vLLM vs OpenAI
Resultados comparativos en una GPU NVIDIA RTX 4090 (24 GB VRAM) con Llama 3.1 8B vs GPT-4o mini:
| Métrica | vLLM (Local) | OpenAI API |
|---|---|---|
| Latencia primera respuesta | ~350ms | ~800ms |
| Throughput | ~120 req/s | ~50 req/s |
| Coste por 1M tokens | ~0€ | ~0.15€ |
| Privacidad de datos | Total (local) | En la nube |
Con vLLM no solo ahorras costes — también ganas en latencia y privacidad. Todos los datos se quedan en tu máquina.
Optimización de rendimiento
Max Model Len
Reduce max_model_len si tu GPU tiene VRAM limitada. Ej: --max-model-len 4096
Tensor Parallel
Si tienes múltiples GPUs, usa --tensor-parallel-size 2 para distribuir el modelo
Quantization
Activa AWQ o GPTQ: vllm serve ... --quantization awq para reducir VRAM un 40%
GPU Memory Utilization
Ajusta --gpu-memory-utilization 0.9 para reservar memoria para otros procesos
Solución de problemas
Out of Memory (OOM)
Reduce max-model-len, activa quantisation, o usa un modelo más pequeño (7B en vez de 13B)
El servidor no arranca
Verifica que nvidia-smi funcione dentro del contenedor docker run --gpus all nvidia/cuda nvidia-smi
Respuestas muy lentas
Comprueba que la GPU esté siendo utilizada (nvidia-smi) y que no haya procesos compitiendo por VRAM