MLX 和 llama.cpp 怎么选:Mac 本地大模型运行时对比
在 Mac 上运行本地模型的人很快就会遇到两个名字。llama.cpp 和它的 GGUF 文件,是 Ollama 和 LM Studio 的底层。MLX 是苹果自己为 Apple 芯片做的数组框架,它的语言模型包 mlx-lm 使用另一种格式的模型。两者都使用 Mac 的统一内存,也都可以很快。这篇讲 MLX 和 llama.cpp 的指南,会解释它们各是什么、怎么安装和运行、模型格式有何不同、可能需要调高哪个内存限制,以及怎样不靠道听途说来选择。如果你刚接触用 Mac 做本地 AI,请先读Mac 指南。
核对说明:安装要求和命令来自 MLX 安装页面、mlx-lm 的 README 和 llama.cpp 的 README,均于 2026-10-30 阅读。速度数字由显存带宽推算,不是实测。写这篇文章时我们没有对任何一个运行时做基准测试,也不声称其中一个更快;诚实的答案是,这取决于你的模型、量化和版本。
要点速览(更新于 2026-10-30)
- MLX 需要 Apple 芯片、macOS 14.0 或更新版本、Python 3.10 或更新版本;用
pip install mlx-lm安装语言模型工具。llama.cpp 是跨平台的,通过 ARM NEON、Accelerate 和 Metal 把 Apple 芯片当作一等目标;它使用的 GGUF 文件在 Windows 和 Linux 上也能用。
按工作方式选,而不是按传闻选:喜欢图形界面的用户可以在 LM Studio 里两个都试,只用 Mac 的 Python 用户可以用 mlx-lm,需要跨系统共享文件的人应该留在 GGUF。
MLX 和 llama.cpp 各是什么
MLX 的仓库把它描述为 Apple 芯片上的机器学习数组框架,由苹果机器学习研究团队开发。它有类似 NumPy 的 Python 接口、惰性计算、动态计算图和统一内存模型:数组存放在共享内存里,运算可以在 CPU 或 GPU 上执行而无需拷贝数据。mlx-lm 包建立在它之上,用于文本生成和微调,带有 Hugging Face 集成、量化工具、聊天命令和服务器。Hugging Face 上的 MLX Community 组织托管了成千上万个已经转换好的模型。
llama.cpp 是一个无依赖的纯 C/C++ 实现,可以在多种硬件上运行。它的 README 声明 Apple 芯片是一等公民,通过 ARM NEON、Accelerate 框架和 Metal 做了优化。它读取 GGUF 文件,一种单文件的模型格式,在GGUF 指南里有介绍,它也是 Ollama 和 LM Studio 的 GGUF 模式的底层引擎。README 展示了从 Hugging Face 下载模型并作为聊天或 OpenAI 兼容服务器运行的命令。

安装和运行
对于 MLX,请确保你有原生的 Python 3.10 或更新版本和 macOS 14.0 或更新版本,然后安装包并运行模型:
pip install mlx-lm
mlx_lm.generate --prompt "How tall is Mt Everest?"
mlx_lm.chat
README 里的默认模型是 MLX Community 的 4-bit Llama 3.2 3B,你可以用 --model 参数选择别的模型。这个包还可以用 mlx_lm.server 启动 API 服务器,并用它的 convert 函数从 Hugging Face 转换和量化模型。
对于 llama.cpp,在 Mac 上最简单的办法通常不是自己编译,而是使用已经包含它的工具。Ollama 和 LM Studio 都包含,Ollama 指南和 LM Studio 教程给出了步骤。如果你想直接用这个项目,README 介绍了直接从 Hugging Face 安装并运行模型,编译指南则涵盖从源码构建。较新的版本展示的是统一的聊天和服务命令;旧版本使用单独的 llama-cli 和 llama-server 程序,请阅读你所用版本的 README。
模型格式与量化
两个世界使用不同的文件。llama.cpp 使用带有 Q4_K_M 这类量化类型的 GGUF,我们在量化指南里有解释。MLX 使用它自己的格式,通常来自 mlx-community 组织,量化在转换模型时选择,比如 4-bit 或 8-bit。给其中一个用的文件在另一个里运行不了,所以要下载与你的工具匹配的版本。4-bit 的 MLX 模型和 Q4_K_M 的 GGUF 大小相近但不完全相同,质量也可能略有差别,所以要用你自己的提示词来对比,而不是假定它们相等。
| 方面 | MLX(mlx-lm) | llama.cpp(GGUF) |
|---|---|---|
| 平台 | Apple 芯片,也有 CUDA 后端 | Apple 芯片、NVIDIA、AMD、Vulkan、CPU |
| 模型文件 | mlx-community 的 MLX 格式或自己转换 | Hugging Face 和许多发布者的 GGUF |
| 安装 | pip install mlx-lm |
通过 Ollama、LM Studio 或项目本身 |
| 接口 | Python 接口、聊天、生成、服务器 | 命令行、服务器,以及建立在它之上的许多工具 |
| 微调 | mlx-lm 中的 LoRA 和全量微调 | 不是它的主要用途 |
| 跨机器共享文件 | 实际上只在 Mac 上 | 同一个文件可用于 Windows、Linux 和 Mac |
Apple 芯片上的内存限制
Mac 的内存由 CPU 和 GPU 共享,但 macOS 限制 GPU 可以锁定多少。mlx-lm 的 README 解释说,相对机器内存来说很大的模型可能会很慢,在 macOS 15.0 或更新版本上,mlx-lm 会尝试锁定模型和缓存所占用的内存。如果你看到它关于模型所需内存超出允许范围的警告,可以用 sudo sysctl iogpu.wired_limit_mb=N 调高限制,其中 N 要大于模型的大小(以 MB 计)并小于机器的内存。要给 macOS 和你的其他应用留足内存,并记住这个设置在重启后不会保留,除非你另作处理。同样的算术也适用于 llama.cpp:权重加 KV 缓存必须装得进 GPU 可用的内存,见上下文指南。

速度:我们能说什么、不能说什么
两个运行时的生成速度都取决于显存带宽。把我们记录的带宽除以约 4.9GB 的 8B Q4_K_M 模型的大小,153 GB/s 的 Mac mini M6 推算上限约为每秒 31 个 token,307 GB/s 的 Mac mini M5 Pro 约为 63。对于约 19.7GB 的 32B 模型,上限约为 8 和 16。这些是上限,不是测量值。哪个运行时更接近上限,取决于版本、模型和设置;两个项目优化得都很快,公开的对比文章很快就过时。如果速度对你重要,请在你自己的机器上用你自己的模型测试两者,方法见我们的评测阅读指南。
如何选择运行时
按你的工作方式选择,而不是看哪个名字更火。下表把区别变成决策,图里用简短的形式又重复了一遍。
| 如果你…… | 从这里开始 | 因为 |
|---|---|---|
| 想要图形界面和最简单的设置 | LM Studio 或 Ollama | 都隐藏了细节并处理下载 |
| 与 Windows 或 Linux 机器共享模型文件 | 使用 llama.cpp 工具的 GGUF | 一个文件到处可用 |
| 在 Mac 上写 Python,想编写脚本或微调 | mlx-lm | Python 接口、量化和 LoRA 工具 |
| 需要给其他应用提供 OpenAI 兼容接口 | Ollama、llama.cpp 服务器或 mlx_lm.server | 三者都能提供 |
| 拿不定主意 | 用自己的提示词两个都跑 | 质量和速度取决于你的模型 |

公平的测试很简单。选一个同时有两种格式、量化相近的模型,用相同的上下文长度运行相同的提示词,记录提示词处理时间、生成速度和回答质量。两个项目的每次更新之后都重复一遍,因为它们变化很快。如果某个工具对你的负载明显更好,就用它;如果差不多,就选工作流更适合你的那个。Ollama、LM Studio 与 llama.cpp 的对比列出了基于 GGUF 的几种工具的实际差别。
对于长提示词,要同时检查提示词处理速度和生成速度。mlx-lm 提供可配置的预填充步长,默认 2048,还有提示词缓存命令用来复用长上下文,这对每次都发送相同系统提示词的助手很有帮助。llama.cpp 服务器同样会缓存提示词。请在你用的工具里测试这个功能,而不是想当然。
在 Mac 上微调
如果你想让模型适应自己的数据,根据 README,mlx-lm 包含 LoRA 和全量微调,并支持量化模型。这让它成为在 Mac 上试验微调最简单的办法之一,只是受内存限制。LoRA 指南解释了一次微调需要多少内存,以及为什么大统一内存的 Mac 适合小实验,但与 GPU 服务器相比会比较慢。
你需要哪台 Mac
运行时的重要性不如内存。我们的参考价格里,24GB 内存、512GB 存储的 Mac mini M6 为 9,999 元,64GB 内存、1TB 的 Mac mini M5 Pro 为 24,249 元,128GB 内存、1TB 的 Mac Studio M5 Max 为 41,749 元。这些是 2026-10-30 的官方标价,不含任何升级。24GB 统一内存可以舒适地运行 8B 和 14B 模型,32B 模型只能配短上下文,因为 macOS 会为自己保留一部分内存。64GB 能让 32B 模型配长上下文运行,Q4_K_M 的 70B 模型需要约 43.1GB,装下后只剩不大的缓存。128GB 则可以运行非常大的混合专家模型。
带宽是故事的另一半。我们记录的带宽是 M6 mini 的 153 GB/s 和 M5 Pro 的 307 GB/s,所以更快的芯片让同一个模型的生成上限大约翻倍。如果你打算经常使用大模型,先买内存,再考虑带宽;如果你主要和 8B 模型聊天,你不会感觉到不同规格之间的差别。Mac mini 服务器指南讲了一台常开机器的取舍。
实用的设置
许多 Mac 用户最后两个都用。他们保留 Ollama 或 LM Studio 用于日常聊天和需要 OpenAI 兼容接口的工具,想试 MLX 模型或做实验时,就在虚拟环境里安装 mlx-lm。给每个工具各自的模型文件夹,留意磁盘,因为一个 70B 的文件就要几十 GB,并简单记下哪些模型文件适用于哪个工具。想要一个小型常开服务器,请看 Mac mini 服务器指南。
常见错误
- 下载了错误的格式。 GGUF 文件在 mlx-lm 里运行不了,MLX 模型也不能在 llama.cpp 里运行。
- 相信旧文章里的速度结论。 两个项目变化很快,请测试你的版本。
- 把内存占满。 给 macOS 和你的应用留出空间。
- 在 Intel Mac 上用 MLX。 它需要 Apple 芯片。
- 混用 Python 环境。 给 mlx-lm 用一个干净的虚拟环境。
常见问题
在 Mac 上 MLX 比 llama.cpp 快吗?
取决于模型、量化和版本。我们没有做过基准测试,所以请用你自己的模型测试两者。
安装 MLX 需要什么?
Apple 芯片、macOS 14.0 或更新版本、原生的 Python 3.10 或更新版本,然后 pip install mlx-lm。
能在 MLX 里使用 GGUF 文件吗?
不能。mlx-lm 使用自己的模型格式,通常来自 Hugging Face 上的 mlx-community 组织。
LM Studio 两者都支持吗?
LM Studio 通过 llama.cpp 提供 GGUF,并在 Apple 芯片上提供 MLX 引擎,所以可以在一个应用里对比;请查看它当前的文档。
运行大模型时怎么调高内存限制?
在 macOS 15 或更新版本上,mlx-lm 建议使用 sudo sysctl iogpu.wired_limit_mb=N,N 要大于模型大小并小于你的总内存。
对新手哪个更好?
先用 Ollama 或 LM Studio,如果你想用 Python 控制或微调,再试 mlx-lm。
和我们聊聊
在 Mac 上跑本地模型,不确定该用哪个工具?欢迎加入社区,或发邮件到 admin@microaione.com。
参考资料:MLX 安装指南、mlx-lm 仓库、llama.cpp 仓库、Hugging Face 上的 MLX Community。
