- Ollama: configuración más sencilla, ideal para principiantes
- MLX: el más rápido en Apple Silicon (15–25% más veloz)
- llama.cpp: más formatos de modelos, multiplataforma
- Para la mayoría: empieza con Ollama, cambia a MLX si necesitas velocidad
Comparativa directa
| Característica | Ollama | MLX | llama.cpp |
|---|---|---|---|
| Tiempo de configuración | 2 min | 5 min | 10 min |
| Metal GPU | Automático | Nativo | Compatible |
| Formato de modelo | GGUF | Formato MLX | GGUF |
| API | REST (localhost:11434) | Python nativo | CLI + HTTP |
| Velocidad (8B Q4) | 45–50 tok/s | 55–65 tok/s | 45–55 tok/s |
| Velocidad (70B Q4) | 12–16 tok/s | 18–22 tok/s | 14–18 tok/s |
| Fine-tuning | No | Sí (LoRA) | No |
| Ideal para | Principiantes, API | Desarrolladores ML | Multiplataforma |
Ollama en Apple Silicon
- Instalación en un comando: `brew install ollama`
- Metal GPU automático — sin configuración adicional
- API REST para integración (cualquier lenguaje)
- Gestión de modelos: `ollama pull`, `ollama list`, `ollama rm`
- Limitación: sin fine-tuning, sin cuantización personalizada
- Limitación: ligeramente más lento que MLX por el overhead de GGUF
- Ideal para: principiantes, usuarios de API, integración con Whisper
Modelos compatibles con Ollama (100+ curados)
- Llama 3.1 (1B, 3B, 8B, 70B, 405B)
- Mistral 7B, Mixtral 8x7B/22B
- Qwen2.5 (0.5B hasta 72B)
- Phi-3, Phi-4
- Gemma 2 (2B, 9B, 27B)
- DeepSeek Coder V2
- Visión: Llama 3.2 Vision, LLaVA
- Embeddings: nomic-embed-text, mxbai-embed-large
MLX — el framework nativo de Apple
- Desarrollado por Apple específicamente para Apple Silicon
- API Python similar a NumPy: `import mlx.core as mx`
- Evaluación diferida + memoria unificada = utilización óptima
- MLX-LM: paquete dedicado a inferencia y fine-tuning de LLMs
- Inferencia más rápida en Apple Silicon (10–25% más veloz que Ollama)
- Soporte de fine-tuning: LoRA y QLoRA directamente en Mac
- Limitación: solo modelos en formato MLX (biblioteca en crecimiento)
- Limitación: solo macOS — el código no es portable
- Ideal para: desarrolladores ML, máxima velocidad, fine-tuning
Modelos compatibles con MLX (mlx-community en HuggingFace)
- Todos los LLMs principales (Llama, Mistral, Qwen, Gemma, Phi)
- Versiones cuantizadas (Q3, Q4, Q5, Q6, Q8)
- Modelos de visión: Llama 3.2 Vision, LLaVA, Qwen2-VL
- Nota: requiere conversión al formato MLX (la comunidad convierte la mayoría)
llama.cpp en Apple Silicon
- C/C++ multiplataforma — el mismo binario funciona en Mac, Linux y Windows
- Soporte Metal mediante flag de compilación: `make LLAMA_METAL=1`
- Formato GGUF: la biblioteca de modelos más grande
- Modo servidor: `./llama-server -m model.gguf` — API REST
- Whisper.cpp del mismo autor — soporte Metal STT
- Limitación: compilar desde el código fuente (sin instalación en un clic)
- Limitación: más lento que MLX, comparable a Ollama
- Ideal para: proyectos multiplataforma, soporte máximo de formatos de modelos
Modelos compatibles con llama.cpp (cualquier GGUF)
- Cualquier GGUF de HuggingFace funciona (más de 10.000 modelos)
- El ecosistema más grande de modelos fine-tuned y personalizados
- Los modelos originales y experimentales suelen aparecer aquí primero
- Para los modelos más populares (Llama, Mistral, Qwen), los tres frameworks los cubren. Para modelos poco conocidos o experimentales, llama.cpp gana por tamaño de ecosistema.
Comparativa de configuración: 5 líneas de código para ejecutar Llama 3.1 8B
Ollama (2 comandos):
```bash
brew install ollama
ollama run llama3.1:8b "Hello, world"
```
MLX (4 líneas de Python):
```python
from mlx_lm import load, generate
model, tokenizer = load("mlx-community/Llama-3.1-8B-Instruct-4bit")
response = generate(model, tokenizer, prompt="Hello, world", max_tokens=100)
print(response)
```
llama.cpp (5 comandos):
```bash
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make LLAMA_METAL=1
wget https://huggingface.co/ggml-org/models/resolve/main/llama-3.1-8b-q4.gguf
./main -m llama-3.1-8b-q4.gguf -p "Hello, world"
```
Benchmarks: mismo modelo, tres frameworks, M5 Pro 64 GB
| Modelo | Ollama tok/s | MLX tok/s | llama.cpp tok/s |
|---|---|---|---|
| Llama 3.1 8B Q4 | 48 | 62 | 52 |
| Llama 3.1 8B Q8 | 38 | 48 | 40 |
| Llama 3.1 70B Q4 | 10 | 14 | 11 |
| Mistral 7B Q4 | 52 | 66 | 55 |
| Phi-4 Q4 | 58 | 72 | 60 |
MLX es un 15–25% más rápido gracias a la optimización nativa de Metal. Benchmarks preliminares — se esperan mejoras en los frameworks.
Uso de memoria: mismo modelo, tres frameworks (M5 Pro 64 GB)
| Modelo | Ollama RAM | MLX RAM | llama.cpp RAM |
|---|---|---|---|
| Llama 3.1 8B Q4 | 5,2 GB | 4,8 GB | 5,0 GB |
| Llama 3.1 70B Q4 | 43 GB | 41 GB | 42 GB |
| Mistral 7B Q4 | 4,6 GB | 4,3 GB | 4,4 GB |
MLX usa un 5–10% menos de memoria que Ollama para el mismo modelo gracias a la optimización de memoria unificada. En configuraciones con poca memoria (16 GB, 36 GB), esto puede ser la diferencia entre que un modelo entre en RAM o tenga que usar swap.
Matriz de decisión: cuándo usar cada framework
- 1Empezar desde cero
Why it matters: Ollama — configuración en 2 minutos, funciona de inmediato. - 2Desarrollar una app en Python
Why it matters: MLX — Python nativo, máxima velocidad. - 3Necesitas una API REST
Why it matters: Ollama — servidor API integrado. - 4Fine-tuning en Mac
Why it matters: MLX — la única opción con soporte LoRA. - 5Proyecto multiplataforma
Why it matters: llama.cpp — el mismo código en Mac + Linux + Windows. - 6
- 7Máxima velocidad
Why it matters: MLX — un 15–25% más rápido que las alternativas. - 8Modelos poco conocidos
Why it matters: llama.cpp — la biblioteca de modelos GGUF más grande.
Cuándo NO usar cada framework
No uses Ollama si:
• Necesitas fine-tuning (no compatible)
• Necesitas exprimir cada gota de velocidad (15–25% más lento que MLX)
• Quieres cuantización completamente personalizada (control limitado)
No uses MLX si:
• Necesitas despliegue multiplataforma (solo macOS)
• No te sientes cómodo con Python
• Necesitas una API REST lista para usar (hay que envolverla)
• Necesitas modelos de visión en producción (selección más reducida)
No uses llama.cpp si:
• Quieres una experiencia en un clic (requiere compilación)
• Necesitas fine-tuning (no compatible)
• No quieres gestionar tus propias descargas de modelos
¿Puedes usar varios frameworks a la vez?
Sí — no entran en conflicto. Instala los tres. Patrón habitual: Ollama para el uso diario, MLX para tareas críticas en velocidad, llama.cpp para modelos que no están en Ollama/MLX. Comparten los mismos modelos base (en formatos distintos).
¿Qué framework es el más rápido?
MLX, un 15–25% más rápido que Ollama en Apple Silicon. llama.cpp es comparable a Ollama. La diferencia de velocidad solo importa en modelos grandes (70B+); para 8B, los tres son suficientemente rápidos.
¿Puedo cambiar de framework más adelante?
Sí. Instala Ollama hoy, cambia a MLX mañana. Los modelos son compatibles (solo en formatos distintos). Sin dependencia de proveedor.
¿MLX es solo para Python?
MLX tiene una API Python nativa, pero puedes llamarlo desde otros lenguajes mediante subprocess o un wrapper de servidor HTTP. Lo óptimo es usarlo desde Python.
¿Tiene Ollama una interfaz gráfica?
Ollama en sí es solo CLI. Usa interfaces de código abierto como Open-WebUI para obtener una interfaz de chat.
¿Puedo ejecutar Ollama y MLX al mismo tiempo?
Sí. Usan directorios de modelos separados y no entran en conflicto. Muchos desarrolladores ejecutan Ollama como servicio en segundo plano para el acceso a la API y usan MLX para experimentos en notebooks Python. Con suficiente memoria unificada, incluso pueden cargar el mismo modelo en memoria simultáneamente.
¿Funciona MLX en Macs con Intel?
No. MLX está diseñado específicamente para Apple Silicon (M1+). Los usuarios de Mac con Intel deben usar Ollama o llama.cpp. Ambos funcionan en Intel, pero sin aceleración Metal GPU — significativamente más lentos que Apple Silicon.
¿Qué framework tiene mejor soporte para modelos de visión?
Ollama ofrece la integración más limpia de modelos de visión mediante `ollama run llama3.2-vision`. MLX admite modelos de visión pero requiere más configuración. llama.cpp tiene soporte de visión mediante un ejecutable llava separado. Para trabajo multimodal, empieza con Ollama.
Versiones y actualidad del framework
• Ollama: probado con la versión 0.5.x (última disponible a mayo de 2026)
• MLX: probado con mlx-lm 0.21
• llama.cpp: probado con la build de mayo de 2026
• Última verificación: 2026-05-15
• El rendimiento de los frameworks mejora cada mes — se recomienda repetir los benchmarks trimestralmente para obtener cifras actualizadas