- Ollama:安装最简单,适合初学者
- MLX:Apple Silicon上最快(快15–25%)
- llama.cpp:支持最多模型格式,跨平台
- 大多数用户:从Ollama开始,需要速度时切换到MLX
直接对比
| 功能 | Ollama | MLX | llama.cpp |
|---|---|---|---|
| 安装时间 | 2分钟 | 5分钟 | 10分钟 |
| Metal GPU | 自动 | 原生 | 支持 |
| 模型格式 | GGUF | MLX格式 | GGUF |
| API | REST (localhost:11434) | Python原生 | CLI + HTTP |
| 速度(8B Q4) | 45–50 tok/s | 55–65 tok/s | 45–55 tok/s |
| 速度(70B Q4) | 12–16 tok/s | 18–22 tok/s | 14–18 tok/s |
| 微调 | 不支持 | 支持(LoRA) | 不支持 |
| 最适合 | 初学者、API | ML开发者 | 跨平台 |
Ollama on Apple Silicon
- 单命令安装:`brew install ollama`
- Metal GPU自动启用——无需配置
- REST API用于集成(任何语言)
- 模型管理:`ollama pull`、`ollama list`、`ollama rm`
- 限制:不支持微调,不支持自定义量化
- 限制:因GGUF开销略慢于MLX
- 最适合:初学者、API用户、Whisper集成
Ollama支持的模型(100+精选)
- Llama 3.1(1B、3B、8B、70B、405B)
- Mistral 7B、Mixtral 8x7B/22B
- Qwen2.5(0.5B到72B)
- Phi-3、Phi-4
- Gemma 2(2B、9B、27B)
- DeepSeek Coder V2
- 视觉:Llama 3.2 Vision、LLaVA
- 嵌入:nomic-embed-text、mxbai-embed-large
MLX — Apple原生框架
- Apple专为Apple Silicon开发
- 类NumPy的Python API:`import mlx.core as mx`
- 惰性求值 + 统一内存 = 最优利用率
- MLX-LM:专用于LLM推理和微调的包
- Apple Silicon上推理最快(比Ollama快10–25%)
- 微调支持:直接在Mac上进行LoRA和QLoRA
- 限制:仅支持MLX格式模型(库持续增长中)
- 限制:仅限macOS——代码不可移植
- 最适合:ML开发者、追求最高速度、微调
MLX支持的模型(HuggingFace上的mlx-community)
- 所有主流LLM(Llama、Mistral、Qwen、Gemma、Phi)
- 量化版本(Q3、Q4、Q5、Q6、Q8)
- 视觉模型:Llama 3.2 Vision、LLaVA、Qwen2-VL
- 注意:需要转换为MLX格式(社区已转换大多数模型)
llama.cpp on Apple Silicon
- 跨平台C/C++——同一二进制文件在Mac、Linux、Windows上运行
- 通过构建标志支持Metal:`make LLAMA_METAL=1`
- GGUF格式:最大的模型库
- 服务器模式:`./llama-server -m model.gguf` — REST API
- 同作者的Whisper.cpp — Metal STT支持
- 限制:需要从源码编译(无一键安装)
- 限制:比MLX慢,与Ollama相当
- 最适合:跨平台项目、最广泛的模型格式支持
llama.cpp支持的模型(任意GGUF)
- HuggingFace上的所有GGUF都可用(10,000+模型)
- 最大的微调和自定义模型生态系统
- 原创/实验性模型通常率先出现在这里
- 对于主流模型(Llama、Mistral、Qwen),三个框架均可胜任。对于冷门或实验性模型,llama.cpp凭借生态系统规模占优。
安装对比:5行代码运行Llama 3.1 8B
Ollama(2条命令):
```bash
brew install ollama
ollama run llama3.1:8b "Hello, world"
```
MLX(4行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条命令):
```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"
```
基准测试:相同模型,三个框架,M5 Pro 64GB
| 模型 | 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因原生Metal优化快15–25%。为初步基准数据——预计框架持续改进。
内存使用:相同模型,三个框架(M5 Pro 64GB)
| 模型 | 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通过统一内存优化比Ollama少用5–10%内存。在内存紧张的配置(16GB、36GB)中,这可能是模型能否放入内存或需要换页的关键差异。
决策矩阵:何时使用哪个框架
- 1刚开始使用
Why it matters: Ollama — 2分钟完成安装,立即可用。 - 2开发Python应用
Why it matters: MLX — Python原生,最高速度。 - 3需要REST API
Why it matters: Ollama — 内置API服务器。 - 4在Mac上微调
Why it matters: MLX — 唯一支持LoRA的选择。 - 5跨平台项目
Why it matters: llama.cpp — Mac + Linux + Windows上使用相同代码。 - 6
- 7需要最高速度
Why it matters: MLX — 比其他框架快15–25%。 - 8冷门模型
Why it matters: llama.cpp — 最大的GGUF模型库。
何时不该使用各框架
不要使用Ollama,如果:
• 需要微调(不支持)
• 需要极致速度(比MLX慢15–25%)
• 需要完全自定义量化(控制有限)
不要使用MLX,如果:
• 需要跨平台部署(仅限macOS)
• 不熟悉Python
• 需要开箱即用的REST API(需要封装)
• 生产环境需要视觉模型(选择有限)
不要使用llama.cpp,如果:
• 想要一键体验(需要编译)
• 需要微调(不支持)
• 不想自己管理模型下载
可以同时使用多个框架吗?
可以——它们不会冲突。三个都安装。常见模式:日常使用Ollama,速度关键任务用MLX,Ollama/MLX中没有的模型用llama.cpp。它们共享相同的底层模型(格式不同)。
哪个框架最快?
MLX在Apple Silicon上比Ollama快15–25%。llama.cpp与Ollama相当。速度差异仅在大型模型(70B+)上明显;对于8B,三者速度均足够快。
以后可以切换框架吗?
可以。今天安装Ollama,明天换成MLX。模型兼容(只是格式不同)。无厂商锁定。
MLX只能用Python吗?
MLX有Python原生API,但也可以通过子进程或HTTP服务器封装从其他语言调用。最好从Python使用。
Ollama有图形界面吗?
Ollama本身仅支持命令行。使用Open-WebUI等开源前端获得聊天界面。
可以同时运行Ollama和MLX吗?
可以。它们使用独立的模型目录,不会冲突。很多开发者将Ollama作为API访问的后台服务,同时用MLX进行Python Notebook实验。如果统一内存足够,甚至可以同时将同一模型加载到内存中。
MLX在Intel Mac上能用吗?
不能。MLX专为Apple Silicon(M1+)设计。Intel Mac用户必须使用Ollama或llama.cpp。两者在Intel上可用,但没有Metal GPU加速——比Apple Silicon慢得多。
哪个框架对视觉模型的支持最好?
Ollama通过`ollama run llama3.2-vision`提供最简洁的视觉模型集成。MLX支持视觉模型但需要更多配置。llama.cpp通过独立的llava可执行文件支持视觉。多模态工作建议从Ollama开始。
框架版本与时效性
• Ollama:使用0.5.x版本测试(2026年5月最新)
• MLX:使用mlx-lm 0.21测试
• llama.cpp:使用2026年5月的构建版本测试
• 最后验证:2026-05-15
• 框架性能每月都在提升——建议每季度重新进行基准测试获取最新数据