Key Takeaways
- Nivel 1 (simple): `ollama run llama3.2` + OpenWebUI. No se requiere código.
- Nivel 2 (estándar): vLLM + wrapper de FastAPI. Python 3.10+, pip install de 2 paquetes, configuración en 30 min.
- Nivel 3 (producción): vLLM + balanceador de carga nginx + monitoreo (Prometheus). Multi-GPU, multiusuario, tolerante a fallos.
- Integración IDE: VS Code Copilot o Cursor con el endpoint de la API OpenAI de vLLM.
- Procesamiento por lotes: Envía 10 prompts a la vez, recibe 10 respuestas en paralelo (no de forma secuencial).
- Costo: Cero (código abierto) vs. $20/mes (Claude Pro) o $200/mes (equipo grande en la nube).
- Velocidad: El Nivel 2 alcanza 30-50 tok/s para programación. El Nivel 3 alcanza 200+ tok/s entre usuarios.
- Complejidad: Nivel 1 (1/10), Nivel 2 (4/10), Nivel 3 (8/10).
Los tres niveles
Elige según el caso de uso:
- Nivel 1: Desarrollador individual, uso casual, sin servidor API. Ollama + interfaz de chat.
- Nivel 2: Desarrollador individual, integración con IDE, scripts personalizados. vLLM + FastAPI.
- Nivel 3: Despliegue en equipo, 5+ desarrolladores, servicio siempre activo. vLLM + nginx + monitoreo.
Nivel 1: Inicio rápido con CLI (5 minutos)
Para programación: instala la extensión "Continue" de VS Code (`continue.dev`), apúntala a la API de Ollama y obtén completaciones en tiempo real.
- 1`brew install ollama` (macOS) o descargar el instalador para Windows.
- 2`ollama run llama3.2` (descarga y ejecuta el modelo 8B).
- 3Abrir el navegador: `http://localhost:11434` (interfaz web de Ollama).
- 4Comenzar a chatear. Listo.
Nivel 2: Servidor API con FastAPI (30 minutos)
Por qué FastAPI: endpoint compatible con OpenAI. Reemplazo directo de la API real de OpenAI en tu código.
- 1Instalar Python 3.10+: `python --version`.
- 2Instalar vLLM: `pip install vllm torch`.
- 3Iniciar el servidor vLLM: `python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-3.3-8B-Instruct --port 8000`.
- 4Probar el endpoint: `curl http://localhost:8000/v1/chat/completions -d '{"model": "Llama-3.1-8B-Instruct", "messages": [{"role": "user", "content": "Write Python code for Fibonacci"}]}' -H "Content-Type: application/json"`.
- 5Integrar en el IDE: apuntar la extensión Copilot a `http://localhost:8000`.
- 6Solicitudes por lotes: envía múltiples prompts en paralelo; vLLM los procesa todos a la vez.
Nivel 3: Producción multiusuario (2 horas)
Escala a 50+ desarrolladores simultáneos (5 tok/s cada uno) en un equipo de doble GPU. Costo: solo electricidad (~$100/mes si está activo 24/7).
- 1Desplegar 2 instancias de vLLM en GPUs separadas (GPU 0, GPU 1).
- 2Configurar nginx para balancear las solicitudes entre ambas instancias.
- 3Configurar Prometheus para la recolección de métricas (latencia de solicitudes, tokens/seg, errores).
- 4Añadir limitación de tasa por usuario (algoritmo de token bucket).
- 5Desplegar en una VM en la nube o servidor on-premises con red de 10 Gbps.
- 6Monitorear mediante el panel de Grafana (opcional).
Integración con IDE (VS Code, Cursor)
Configuración para completaciones de código en tiempo real:
Alternativa (soporte nativo del IDE): Cursor Editor tiene soporte integrado para LLMs locales (no se requiere extensión).
- 1Instalar la extensión "Continue" (`continue.dev`).
- 2Abrir la configuración de la extensión y configurar la API personalizada: `http://localhost:8000/v1` (endpoint de vLLM).
- 3Establecer el nombre del modelo para que coincida con el servidor vLLM (`meta-llama/Llama-3.3-8B-Instruct`).
- 4Presionar Ctrl+Shift+Space (o cmd+shift+space) para activar la completación.
- 5Las completaciones se transmiten en tiempo real (10-20 tok/s).
Depuración y monitoreo
- Logs de vLLM: Revisa stdout en busca de errores (carga del modelo, OOM, errores CUDA).
- Métricas de Prometheus: vLLM exporta el endpoint `/metrics` (recuento de solicitudes, histograma de latencia, tokens generados).
- Conteo de tokens: Usa la biblioteca `tiktoken` para contar tokens antes de enviar (evita sorpresas por OOM).
- Perfilado de latencia: Agrega registro de marcas de tiempo antes/después de la llamada a vLLM para identificar cuellos de botella.
Contexto regional y cumplimiento normativo
- UE / RGPD (Europa): La inferencia local satisface el Artículo 28 del RGPD -- ningún dato sale de tu infraestructura. No se requiere un DPA. Recomendado para cargas de trabajo en salud, derecho y finanzas.
- Japón / METI: Las Directrices de Gobernanza de IA del METI 2024 recomiendan la inferencia on-premises para datos empresariales sensibles. La configuración de vLLM + Nivel 3 cumple los requisitos de auditoría del METI.
- China / PIPL: La Ley de Protección de Información Personal de China (2021) exige la residencia de datos. El stack local de Nivel 2/3 mantiene toda la inferencia dentro del país. Compatible con instancias GPU de Alibaba Cloud y Tencent Cloud.
- Estados Unidos: No existe un mandato federal de residencia de datos de IA a partir de 2026. Las entidades cubiertas por HIPAA deben garantizar que la PHI nunca salga de la infraestructura controlada -- el Nivel 2/3 lo cumple por defecto.
Errores comunes de configuración
- Ejecutar vLLM en la misma GPU que otro proceso (Discord, juegos). Causa errores de GPU out-of-memory.
- Enviar solicitudes sin tiempo de espera. Si vLLM se cuelga, el cliente espera indefinidamente. Establece siempre `timeout=60` en las solicitudes.
- Asumir que vLLM escala automáticamente en múltiples GPUs. Requiere el flag explícito `--tensor-parallel-size`.
- Olvidar establecer CUDA_VISIBLE_DEVICES en configuraciones multi-GPU. vLLM usa todas las GPUs por defecto.
- Usar modelos Llama 2 en 2026. Meta desaprobó Llama 2 para uso comercial en enero de 2026. Usa Llama 3.3 8B Instruct (licencia Apache 2.0, sin restricciones).
- Usar Llama 3.1 cuando Llama 3.3 está disponible. Llama 3.3 8B Instruct tiene mejor seguimiento de instrucciones y es el predeterminado recomendado a partir de abril de 2026. Usa `ollama run llama3.3:8b-instruct`.
FAQ
¿Qué nivel debo usar?
Nivel 1 para uso individual (casual). Nivel 2 para un desarrollador con integración de IDE. Nivel 3 para equipos con servicio 24/7.
¿Puedo usar vLLM en lugar de Ollama?
Sí, pero requiere más configuración. vLLM es más rápido (procesamiento por lotes) y más flexible (API de Python).
¿Cómo sirvo modelos en múltiples GPUs?
vLLM: `--tensor-parallel-size 2`. Divide el modelo en 2 GPUs para el doble de rendimiento.
¿Puedo hacer fine-tuning sobre la inferencia de vLLM?
No. Realiza el fine-tuning por separado (HuggingFace Transformers) y luego carga el modelo ajustado en vLLM.
¿Qué hago si vLLM genera OOM?
Usa una cuantización más pequeña (Q4 en lugar de Q8), reduce el tamaño del lote o asigna menos VRAM por modelo. Consulta `nvidia-smi`.
¿El Nivel 3 está listo para producción?
Sí, con monitoreo. Agrega Prometheus, Grafana y alertas (Alertmanager). Patrones de infraestructura estándar.
Fuentes
- vLLM OpenAI-Compatible Server Documentation -- Guía oficial de configuración del servidor API de vLLM
- Continue.dev Configuration Documentation -- Configuración de la extensión IDE para endpoints OpenAI personalizados
- Meta Llama 3.3 Model Card -- Meta. Modelo instruct actualizado, Apache 2.0. Reemplazo recomendado de Llama 3.1 8B.
- Qwen2.5-Coder Model Card -- Alibaba. 82% HumanEval, licencia Apache 2.0. Mejor modelo de programación con menos de 8 GB de VRAM.