· Abraham · Forja · 3 min read
¿Ollama, vLLM o SGLang?
No me podía resistir a probarlo por mi mismo

Nota. Esta comparativa es de marzo de 2026 y se hizo sobre el hardware que tenía entonces: una RTX 3080 de 12 GB. Es una foto de aquel momento, no una recomendación atemporal. Hoy el stack de Alyss corre sobre una AMD 7900 XTX (ROCm) con modelos locales vía LiteLLM, así que los números concretos habría que re-medirlos; las conclusiones cualitativas, en cambio, se mantienen.
Hoy en día es tan fácil como preguntarle a una IA: “Oye, ¿qué me va a ir mejor en mi RTX 3080 de 12GB: Ollama, vLLM o SGLang?“. Al segundo tienes una disertación teórica sobre el primer token, el contexto, el paged attention y mil palabros más.
Te quedas pensando: “Vale, pero cuando dices ‘muchísimo mejor’, ¿de cuánto estamos hablando exactamente?“. Porque no sería la primera vez que ese “muchísimo” resulta ser un puñado de milisegundos a cambio de una complejidad de configuración que te amarga la tarde.
Como no me convencían las estimaciones vagas, la tentación de probarlo por mí mismo fue superior a mí. He montado una comparativa: mismo modelo (Qwen 2.5 7B), misma cuantización (AWQ) y los tres motores frente a frente.
Banco de Pruebas
Para que no fuera solo lanzar una pregunta y ya, he diseñado 4 tests específicos:
Deep Context: Le he pasado la documentación técnica real de mi proyecto (unas 1.200 palabras). A ver cómo lee.
Inferencia en frío (Cold Start): Medir el tiempo hasta la primera palabra (TTFT) con el texto virgen, sin trucos.
Prefix Caching (Hot Cache): Le paso lo mismo por segunda vez. Aquí se ve quién es listo y usa caché (Radix Cache) para no volver a leer lo que ya sabe.
Throughput Stress: Obligar al modelo a escupir 100 tokens exactos para medir la potencia bruta (TPS).
Finalmente despues de andar peleando sobre todo con SGLang, estos son mis números:
| Motor | Interactividad (TTFT) | Velocidad (TPS) |
|---|---|---|
| SGLang | 0.66 s | 144.9 TPS |
| vLLM | 0.64 s | 139.1 TPS |
| Ollama | 1.69 s | 131.7 TPS |
Resultados Detallados
- vLLM (Marlin Optimized)
- Punto 1 (Deep Context): Maneja los 2k tokens con fluidez total.
- Punto 2 (Cold Start - TTFT): 0.64 s (Muy ágil).
- Punto 3 (Hot Cache - TTFT): 0.02 s (Caché instantánea).
- Punto 4 (Throughput - TPS): 139.1 TPS.
- SGLang (Marlin + CUDA Graphs)
- Punto 1 (Deep Context): Capacidad completa de 2k tokens.
- Punto 2 (Cold Start - TTFT): 0.66 s (Excelente interactividad).
- Punto 3 (Hot Cache - TTFT): 0.15 s (Caché muy eficiente).
- Punto 4 (Throughput - TPS): 144.9 TPS (El más rápido).
- Ollama-GPU (GGUF Q4_K_M)
- Punto 1 (Deep Context): Correcto, pero sufre en la carga inicial.
- Punto 2 (Cold Start - TTFT): 1.69 s (Casi 3 veces más lento que SGLang).
- Punto 3 (Hot Cache - TTFT): 0.06 s (Caché efectiva).
- Punto 4 (Throughput - TPS): 131.7 TPS.
Las diferencias no son abismales, sobre todo entre SGLang y vLLM en mi Hardware, pero si no encuentro problemas inesperados, me quedaré con SGLang.
Estas métricas fueron las que, en su momento, marcaron cómo monté la sala de máquinas de Alyss AI. El hardware ha cambiado desde entonces, pero la costumbre de medir antes de creer, no.



