Saltar al contenido principal
LECCIÓN 02

Lección 02: Configuración vLLM

Aprende a desplegar modelos locales con vLLM, optimizar inferencia y conectar AVA SDK

Actualización GDC 2026

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:

Advertencia

Asegúrate de que el Docker Engine y NVIDIA Container Toolkit están funcionando antes de continuar (Lección 01).

Terminal
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-Instruct
Primera descarga

La 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:

ModeloVRAM requeridaUso recomendado
Llama 3.1 8B16 GB VRAMMejor equilibrio calidad/rendimiento
Mistral 7B12 GB VRAMRápido y eficiente para tareas simples
Qwen 2.5 7B14 GB VRAMExcelente en respuestas estructuradas
Nota

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:

config.py
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)
API Key

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étricavLLM (Local)OpenAI API
Latencia primera respuesta~350ms~800ms
Throughput~120 req/s~50 req/s
Coste por 1M tokens~0€~0.15€
Privacidad de datosTotal (local)En la nube
Consejo

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