Ollama, vLLM, SGLang y MLX: qué usar

La pregunta real no es cuál es mejor, sino cuál encaja con tu tarea, tu hardware y tu nivel de operación. Prototipar, servir a varios usuarios y exprimir un Mac no piden la misma herramienta.

Objetivos de aprendizaje
  • Elegir runtime según caso de uso: prueba, RAG, agente o producción.
  • Evitar migraciones prematuras que complican sin aportar valor.
  • Medir latencia, memoria y errores antes de decidir.
En cristiano: runtime de inferencia. Es el programa que carga el modelo y responde peticiones. El modelo puede ser el mismo, pero la experiencia cambia muchísimo según el runtime.

Decisión rápida

  • Ollama: empezar rápido, demos, escritorio, cursos y prototipos.
  • llama.cpp: control fino, GGUF, CPU/GPU sencilla y despliegues pequeños.
  • vLLM: muchas peticiones, API compatible, batching y GPU NVIDIA.
  • SGLang: serving avanzado, flujos estructurados y cargas complejas.
  • MLX: Apple Silicon, experimentación local eficiente en Mac.
Terminal
Mide antes de opinar:

caso: "chat_rag_pyme"
modelo: "qwen-coder/local"
hardware: "Mac M4 24GB"
runtime: "Ollama"
metricas:
  first_token_ms: 850
  tokens_s: 28
  ram_gb: 11
  errores_20_preguntas: 2
decision: "suficiente para prototipo; no migrar todavía"
Idea clave. Si solo tienes un usuario y una cola pequeña, Ollama puede ser suficiente. Si empiezas a tener concurrencia, colas y acuerdos de tiempo de respuesta, mira vLLM, SGLang o un gateway.
Cuidado. No mezcles benchmark de internet con tu caso. Un ranking no sabe si tus documentos son largos, si usas tool calling o si tu GPU se queda sin VRAM.
Comprueba que funciona. Ejecuta las mismas 20 preguntas con el mismo prompt, modelo y documentos en dos runtimes. Compara latencia, errores, consumo y facilidad de operación.
Guardar y reabrir el proyecto.
Guarda una tabla de decisión por proyecto. Dentro de tres meses te evitará discutir otra vez por qué elegiste ese stack.