Key Takeaways
- Ollama: mais fácil de instalar, Metal automático, API REST para integração de apps, ideal para iniciantes.
- MLX: 15–25% mais rápido no Apple Silicon, framework nativo da Apple, melhor integração Python, fine-tuning.
- llama.cpp: mais formatos de modelos (.gguf), multiplataforma (Mac/Windows/Linux), baixo overhead.
- Para a maioria dos usuários de Mac: comece com Ollama. Mude para MLX se precisar de máxima velocidade.
- Diferença de velocidade prática: MLX > llama.cpp ≈ Ollama para modelos padrão no Apple Silicon.
Comparativo direto: Ollama vs MLX vs llama.cpp
| Recurso | Ollama | MLX | llama.cpp |
|---|---|---|---|
| Tempo de instalação | 2 min (GUI) | 5 min (pip) | 10 min (compilação) |
| Velocidade no Apple Silicon | Base | +15–25% | +5–10% |
| API REST integrada | Sim | Não (biblioteca Python) | Sim (servidor) |
| Suporte a Metal GPU | Automático | Automático | Automático |
| Fine-tuning | Não | Sim (LoRA) | Não |
| Multiplataforma | Sim | Apenas Mac | Sim |
| Formatos de modelo | GGUF via Modelfile | MLX (conversão necessária) | GGUF (todos) |
| Interface de chat | Via Open WebUI | Não | Via llama.cpp server |
Ollama no Apple Silicon
Ollama é o ponto de entrada mais fácil para LLMs locais no Mac. Uma instalação com um clique, Metal GPU automático e uma API REST compatível com OpenAI embutida — tudo isso torna o Ollama a ferramenta padrão para iniciantes e desenvolvedores que querem integração rápida de apps.
O Ollama gerencia downloads de modelos, versionamento e quantizações automaticamente. Execute `ollama pull llama3.2:8b` e o modelo estará pronto em minutos.
# Instalar o Ollama no Mac
curl -fsSL https://ollama.ai/install.sh | sh
# Baixar e executar um modelo
ollama run llama3.2:8b
# Usar a API REST (compatível com OpenAI)
curl http://localhost:11434/api/generate -d '{"model": "llama3.2:8b", "prompt": "Olá, como vai?"}'Framework MLX
MLX é o framework de machine learning nativo da Apple para Apple Silicon. Desenvolvido pela Apple Research, o MLX usa Metal GPU diretamente e oferece 15–25% mais velocidade de geração de tokens que o Ollama para modelos equivalentes. É a melhor escolha para usuários avançados que precisam de máxima velocidade ou fine-tuning.
O MLX requer conversão de modelos para o formato MLX. A comunidade mlx-community no Hugging Face fornece modelos pré-convertidos para os modelos mais populares.
# Instalar MLX
pip install mlx-lm
# Executar um modelo
python -m mlx_lm.generate --model mlx-community/Llama-3.2-8B-Instruct-4bit \
--prompt "Olá, como vai?"
# Benchmark de velocidade
from mlx_lm import load, generate
import time
model, tokenizer = load("mlx-community/Llama-3.1-8B-Instruct-4bit")
start = time.time()
response = generate(model, tokenizer, prompt="Teste", max_tokens=100)
print(f"{100/(time.time()-start):.1f} tok/s")llama.cpp no Apple Silicon
llama.cpp é a implementação C++ de baixo nível dos modelos Llama. Oferece suporte ao maior número de formatos de modelo (todos os .gguf), funciona em Mac/Windows/Linux sem mudanças e tem suporte Metal GPU automático no macOS. É 5–10% mais rápido que o Ollama na maioria dos cenários.
O llama.cpp requer compilação do código-fonte (10 min) mas oferece o maior controle sobre parâmetros de inferência e é frequentemente a primeira implementação a suportar novos modelos.
# Compilar llama.cpp com suporte Metal
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && make LLAMA_METAL=1
# Baixar modelo GGUF
wget https://huggingface.co/bartowski/Llama-3.2-8B-Instruct-GGUF/resolve/main/Llama-3.2-8B-Instruct-Q4_K_M.gguf
# Executar inferência
./llama-cli -m Llama-3.2-8B-Instruct-Q4_K_M.gguf -p "Olá, como vai?" -n 200Benchmarks e uso de memória no M5 Pro 64GB
- MLX é 15–25% mais rápido que Ollama no Apple Silicon graças à otimização Metal nativa.
- llama.cpp reduz a diferença com otimizações de KV-cache; dentro de 10% do Ollama.
- Todos os três frameworks usam quantidades similares de RAM unificada para o mesmo modelo.
| Modelo | Ollama | MLX | llama.cpp |
|---|---|---|---|
| Llama 3.3 8B Q4 | 48–52 tok/s | 58–62 tok/s | 50–55 tok/s |
| Llama 3.3 70B Q4 | 8–10 tok/s | 11–13 tok/s | 9–11 tok/s |
| Mistral Small Q4 | 50–55 tok/s | 62–68 tok/s | 53–58 tok/s |
Matriz de decisão: quando usar cada framework
- Use Ollama quando: você é iniciante, quer setup rápido, precisa de API REST para integração de apps, ou gerencia vários modelos. Ollama é a escolha padrão para 80% dos usuários.
- Use MLX quando: você precisa de máxima velocidade de inferência no Apple Silicon, trabalha principalmente com Python, ou quer fazer fine-tuning de modelos com LoRA.
- Use llama.cpp quando: você precisa de um formato de modelo .gguf específico não disponível no Ollama, quer o máximo controle sobre parâmetros de inferência, ou precisa de compatibilidade multiplataforma.
Posso usar Ollama e MLX ao mesmo tempo no mesmo Mac?
Sim. O Ollama roda como um daemon em segundo plano na porta 11434. O MLX é uma biblioteca Python que você importa. Eles não conflitam. Você pode ter ambos instalados e usar cada um para diferentes tarefas.
O MLX funciona no MacBook Air M5?
Sim. O MLX funciona em qualquer Mac com Apple Silicon (M1 e posterior). O MacBook Air M5 com 16 GB ou mais de memória unificada executará modelos 8B com bom desempenho.
Por que o Ollama é mais lento que o MLX?
O Ollama usa o llama.cpp internamente com camadas adicionais de abstração para gerenciamento de modelos e API REST. O MLX usa Metal API diretamente sem overhead de compatibilidade cruzada.