Key Takeaways
- llama.cpp: Latencia por token más baja (menor ms/token). Ideal para chat interactivo. Dependencias mínimas.
- Ollama: El más fácil de usar. Un comando, descarga automática de modelos. Compromiso: 5–10% menos throughput que llama.cpp.
- vLLM: Mayor throughput (tokens/seg) en solicitudes en batch. Ideal para servidores API en producción. Curva de aprendizaje más pronunciada.
- Chat para un solo usuario: llama.cpp u Ollama (velocidad casi idéntica).
- API multi-usuario: vLLM (throughput 3–5× mayor).
- Uso casual: Ollama (la simplicidad gana).
- Los tres producen salidas de modelo idénticas — solo difieren la velocidad y el throughput.
- Puedes ejecutar los tres simultáneamente en la misma máquina (puertos diferentes). No entran en conflicto.
Benchmarks de velocidad — RTX 4090 24 GB
llama.cpp lidera con 38 tok/s por token único; vLLM domina con 250+ tok/s en batch. Medido en RTX 4090 24 GB, Llama 3.3 70B Q4_K_M, solicitud única, abril de 2026:
| Backend | Tokens/seg | ms/token | VRAM usada | Throughput en batch |
|---|---|---|---|---|
| llama.cpp | 38 | 26 | 39 GB | N/A (sin batching) |
| Ollama | 36 | 28 | 39 GB | N/A (batch único) |
| vLLM | 34 | 29 | 41 GB | 250+ tok/s (continuo) |
Benchmarks de velocidad — RTX 3060 12 GB
Medido en RTX 3060 12 GB, Llama 3.2 8B Q4_K_M, solicitud única, abril de 2026:
| Backend | Tokens/seg | ms/token | VRAM usada | Throughput en batch |
|---|---|---|---|---|
| llama.cpp | 52 | 19 | 5.2 GB | N/A |
| Ollama | 48 | 21 | 5.4 GB | N/A |
| vLLM | 45 | 22 | 6.1 GB | 180 tok/s (batch=8) |
Tabla comparativa de características
llama.cpp: mejor cuantización y velocidad bruta. Ollama: instalación más simple. vLLM: mejor batching para producción.
| Característica | llama.cpp | Ollama | vLLM |
|---|---|---|---|
| Tiempo de instalación | 30 min (compilar) | 5 min (un comando) | 15 min (pip install) |
| API compatible con OpenAI | ✅ (llama-server) | ✅ (nativa) | ✅ (nativa) |
| Formato del modelo | GGUF | GGUF | SafeTensors / HF |
| Soporte GPU | CUDA, ROCm, Metal | CUDA, ROCm, Metal | Solo CUDA |
| Batching | ❌ | ❌ | ✅ continuo |
| Multi-GPU | ❌ | ❌ | ✅ tensor parallel |
| Apple Silicon | ✅ Metal | ✅ Metal | ❌ |
| Interfaz de chat | ❌ (solo servidor) | ❌ (requiere Open WebUI) | ❌ (solo API) |
| Licencia | MIT | MIT | Apache 2.0 |
Batching y throughput
vLLM procesa 32+ solicitudes en paralelo; llama.cpp y Ollama procesan una a la vez. Aquí es donde vLLM domina:
- llama.cpp: Sin batching nativo. Una solicitud a la vez. Latencia: 27ms/token. Throughput: 36 tok/s.
- Ollama: Solo batch único. No puede procesar 2+ solicitudes en paralelo. Mismo throughput que llama.cpp.
- vLLM: Batching continuo nativo (gestiona dinámicamente solicitudes simultáneas). Procesa 32 solicitudes simultáneamente. Throughput: 250+ tok/s en el mismo RTX 4090.
- La ventaja de vLLM se multiplica con usuarios simultáneos. Para servidores API con 10+ usuarios: vLLM es obligatorio.
Complejidad de instalación
Ollama es el más simple (5 min); vLLM requiere Python (15 min); llama.cpp requiere compilación (30 min). Aquí el resumen:
llama.cpp: Compilar desde el código fuente o descargar un binario. Gestión manual de archivos de modelo. 30 min de instalación.
Ollama: `brew install ollama` o descargar el instalador. `ollama run llama3.2`. 5 min de instalación.
vLLM: `pip install vllm`, luego `python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-3.3-8B-Instruct`. 15 min de instalación (Python + dependencias).
Ganador en simplicidad: Ollama.
Compatibilidad con API
Los tres ahora soportan APIs compatibles con OpenAI; Ollama y vLLM son los más sencillos.
llama.cpp: API compatible con OpenAI (mediante `llama-server`, añadido a finales de 2024). Funciona con extensiones de IDE.
Ollama: API compatible con OpenAI (mediante `ollama serve` + biblioteca cliente). Funciona con la mayoría de extensiones de IDE.
vLLM: API compatible con OpenAI (endpoint nativo `/v1/chat/completions`). Mayor compatibilidad.
Para integración con IDE (VS Code, Cursor): Ollama o vLLM. Omite llama.cpp.
¿Cuándo usar cada uno?
llama.cpp: Dependencias mínimas, velocidad bruta. Úsalo si estás construyendo un motor de inferencia personalizado. Ideal para Mac (aceleración Metal).
Ollama: Simplicidad todo-en-uno. Úsalo para interfaz de chat y uso personal. Funciona en Mac, Linux, Windows.
vLLM: Servidor API en producción. Úsalo para despliegues multi-usuario y requisitos de alto throughput. Requiere NVIDIA CUDA — no funciona en Apple Silicon (M1/M2/M3/M4).
Errores comunes al elegir un backend de inferencia
- Error: Asumir que llama.cpp siempre es el más rápido. Esto solo es válido para la latencia por token único. vLLM gana en throughput para solicitudes en batch (7× más rápido con 10+ usuarios simultáneos).
- Error: Descartar Ollama por ser lento. Ollama es solo 5–10% más lento que llama.cpp puro — una diferencia insignificante para chat interactivo donde 34 tok/s se siente instantáneo.
- Error: Creer que debes elegir un solo backend. Puedes ejecutar los tres simultáneamente en puertos diferentes. Usa Ollama para chat personal, vLLM para tu servidor API.
- Error: Usar vLLM para chat de un solo usuario. La ventaja de vLLM es el batching. Para chat interactivo de un solo usuario, la configuración más simple de Ollama gana.
Contexto regional y residencia de datos
UE/RGPD: Los tres backends se ejecutan completamente on-premises. Ningún dato sale de tu infraestructura, lo que satisface el Artículo 28 del RGPD (no se necesita acuerdo de procesamiento de datos). Recomendado para cargas de trabajo financieras, sanitarias y legales en la UE.
Latinoamérica (LGPD Brasil / Leyes locales): La inferencia local mantiene los datos dentro de tu infraestructura, cumpliendo con las regulaciones de privacidad de datos locales como la LGPD brasileña y las leyes de protección de datos equivalentes en México, Argentina y Colombia.
España (LOPDGDD / AEPD): La inferencia on-premises satisface los requisitos de la Ley Orgánica de Protección de Datos y Garantía de los Derechos Digitales para el tratamiento de datos personales sensibles. llama.cpp y Ollama son las opciones preferidas para PYMEs.
FAQ
¿Cuál debo usar como principiante?
Ollama. Un comando, descarga automática de modelos, interfaz sencilla.
¿Cuál es el más rápido?
Para solicitud única: llama.cpp (~3% más rápido que Ollama). Para 10 solicitudes simultáneas: vLLM (~7× más rápido).
¿Puedo usar llama.cpp en lugar de Ollama?
Sí, pero requiere más configuración. La mejora de velocidad es insignificante (3–5%) para la mayoría de usuarios.
¿vLLM está listo para producción?
Sí. Se usa en despliegues reales. Curva de aprendizaje más pronunciada, pero vale la pena para alto throughput.
¿Puedo cambiar de backend sin reentrenar?
llama.cpp y Ollama usan el formato GGUF (intercambiables directamente). vLLM usa SafeTensors y requiere conversión del modelo.
¿Qué backend es el más estable?
Ollama (simple, menos errores). llama.cpp también es estable. vLLM se actualiza frecuentemente (más características, cambios disruptivos ocasionales).
¿vLLM funciona en Mac?
No. vLLM requiere NVIDIA CUDA. Para Mac, usa llama.cpp u Ollama con aceleración Metal.
Lecturas relacionadas
- Ollama vs LM Studio: ¿Cuál deberías elegir? — Comparativa lado a lado de las dos interfaces de LLM local más populares
- El mejor stack de LLM local por caso de uso (2026) — Combinaciones recomendadas para chat, programación y servidores API
- Text Generation WebUI vs vLLM vs llama.cpp — Comparativa más profunda que incluye frontends al estilo AUTOMATIC1111
- Mejores frontends de LLM local (2026) — OpenWebUI, Chatbot UI y 8 opciones más clasificadas
- Cómo instalar Ollama — Guía de configuración en 2 minutos para macOS, Windows y Linux
- Guía de API compatible con OpenAI para LLM local — Reemplazo directo de la API de OpenAI con modelos locales