Cómo Configurar vLLM para Project AVA: Guía Completa de Optimización
Benchmarks reales, flags de rendimiento, configuración GPU y conexión con AVA SDK para lograr la máxima velocidad de inferencia local.
Por qué vLLM para Project AVA
Project AVA de Razer requiere un motor de inferencia rápido, eficiente y que funcione completamente en local. vLLM es la opción recomendada por su arquitectura PagedAttention, que elimina la fragmentación del KV cache y permite servir modelos como Llama 3, Mistral y Qwen con el máximo rendimiento posible en GPUs de consumo. Esta guía cubre desde la configuración básica hasta técnicas avanzadas de optimización para sacar el máximo partido a tu hardware.
Configuración Básica
Arrancar vLLM con Docker es el método más rápido y reproducible. Asegúrate de tener Docker Engine y NVIDIA Container Toolkit instalados (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-Instruct \
7 --max-model-len 4096 \
8 --gpu-memory-utilization 0.95Con solo añadir --max-model-len 4096 y --gpu-memory-utilization 0.95 reduces el uso de VRAM ~30% y aumentas el throughput. Esto funciona en cualquier GPU con 12 GB+ VRAM.
Flags de Rendimiento Clave
Estos parámetros marcan la diferencia entre una inferencia usable y una óptima:
| Flag | Valor por defecto | Valor optimizado | Impacto |
|---|---|---|---|
--max-model-len | 8192 | 4096 | Reduce el uso de VRAM un 30-40% limitando el contexto máximo |
--gpu-memory-utilization | 0.9 | 0.95 | Usa más VRAM disponible. Aumenta a 0.95 si no ejecutas otros procesos GPU |
--enforce-eager | false | true | Desactiva CUDA graphs. Reduce VRAM a costa de un poco de latencia. Útil en GPUs con 8 GB |
--max-num-batched-tokens | 256 | 512 | Aumenta el throughput para múltiples requests simultáneas |
Benchmarks: vLLM Optimizado vs Base
Resultados con Llama 3.1 8B en NVIDIA RTX 4090 (24 GB VRAM), mostrando el impacto de las optimizaciones:
| Métrica | Configuración base | Configuración optimizada |
|---|---|---|
| Latencia primera respuesta | ~450ms | ~280ms |
| Throughput | ~90 req/s | ~150 req/s |
| Uso de VRAM | ~18 GB | ~14 GB |
| Tiempo de generación (512 tokens) | ~8s | ~5s |
Múltiples GPUs y Tensor Parallel
Si tienes varias GPUs NVIDIA, activa Tensor Parallel para distribuir el modelo entre ellas. Esto reduce la VRAM por GPU y puede aumentar el throughput:
1# Tensor Parallel con 2 GPUs
2docker run --gpus all \
3 -v ~/.cache/huggingface:/root/.cache/huggingface \
4 -p 8000:8000 \
5 --ipc=host \
6 vllm/vllm-openai:latest \
7 --model meta-llama/Meta-Llama-3.1-8B-Instruct \
8 --tensor-parallel-size 2 \
9 --gpu-memory-utilization 0.95Conexión con AVA SDK
Una vez vLLM esté optimizado, conéctalo a AVA SDK con esta configuración recomendada para gaming:
1from openai import OpenAI
2
3# AVA SDK - Configuracion optimizada para gaming
4client = OpenAI(
5 base_url="http://localhost:8000/v1",
6 api_key="not-needed"
7)
8
9SYSTEM_PROMPT = """
10Eres AVA, un asistente táctico especializado en gaming.
11Analiza partidas, sugiere estrategias y proporciona
12información en tiempo real con respuestas concisas.
13"""
14
15response = client.chat.completions.create(
16 model="meta-llama/Meta-Llama-3.1-8B-Instruct",
17 messages=[
18 {"role": "system", "content": SYSTEM_PROMPT},
19 {"role": "user", "content": "Analiza mi build actual y sugiere mejoras para optimizar DPS."}
20 ],
21 temperature=0.3, # Mas deterministico para gaming
22 max_tokens=256, # Respuestas rapidas y cortas
23 top_p=0.9
24)Consejos por GPU
NVIDIA RTX 4090 (24 GB)
Modelo Llama 3.1 8B, max-model-len 8192, gpu-memory 0.95. Rendimiento máximo.
NVIDIA RTX 4080/4070 Ti (16 GB)
Modelo Llama 3.2 3B o Mistral 7B, max-model-len 4096, gpu-memory 0.9.
NVIDIA RTX 4060 (8-12 GB)
Modelo Phi-3.5 o Llama 3.2 3B, enforce-eager, max-model-len 2048, gpu-memory 0.85.
NVIDIA RTX 3050/3060 (6-8 GB)
Modelo Qwen 2.5 1.5B o Phi-3.5 mini, enforce-eager, max-model-len 2048.
Preguntas Frecuentes
¿vLLM funciona con AMD o Intel?
vLLM requiere CUDA, por lo que solo funciona con GPUs NVIDIA. Para AMD (ROCm) o Intel, considera LM Studio como alternativa.
¿Puedo usar vLLM en Windows sin WSL2?
Sí, vLLM corre directamente en Windows si tienes Python y CUDA instalados nativamente. Sin embargo, Docker + WSL2 es el método recomendado por su reproducibilidad y aislamiento.
¿Qué modelo es mejor para gaming?
Llama 3.1 8B es el mejor equilibrio. Si tu GPU tiene menos de 16 GB VRAM, usa Mistral 7B o Llama 3.2 3B.