如果你在 Mac 上运行本地模型,你最终会遇到同样的抉择:同一个模型既有 GGUF 文件格式,也有 MLX 版本,必须有某种方式告诉你该下载哪一个。简而言之,MLX 在苹果硅芯片上速度更快,而 GGUF 则通用性更强。更有用的答案是了解这种权衡何时真正重要,因为对于许多配置来说,这并不重要。
以下是包含原因的实用版本。
这两种格式究竟是什么
GGUF 是一个独立的单一文件。权重、分词器、元数据和量化参数都打包在一个可移植的数据块中,llama.cpp(以及基于它构建的所有工具)可以在任何地方加载它:Mac、Linux、Windows、中央处理器、CUDA、Metal。这种可移植性是该格式的核心价值所在。
MLX 是苹果公司的数组框架,而不是一种文件格式。MLX 模型是一个包含 safetensors 文件的目录加上一个由 MLX 运行时直接读取的配置文件。它是专为在苹果硅芯片上运行而构建的,并针对统一内存池进行原生量化。它无法脱离苹果硅芯片环境运行,就此为止。
因此,这实际上并不是“两种文件格式”。它是一种可移植格式和一种苹果原生运行时,恰好提供了相同的模型权重。
性能差距真实存在但有限
在同一台 Mac 上,在相同的量化级别下,MLX 的运行速度比 GGUF 快大约 15% 到 40%,并且内存占用少约 10%。速度的提升源于 MLX 是针对苹果硅芯片编译的,并直接在统一内存池上运行,其中中央处理器和图形处理器共享同一块随机存取存储器,每一吉字节都可用作模型内存。
有一个值得了解的质量细微差别。在 4 位量化下,GGUF 的 Q4_K_M 在每个层内使用混合精度,因此其质量保持能力略优于朴素的 4 位 MLX 量化。这是一个微小的差异,但如果你是在内存紧张的机器上进行激进量化,这种差异会在输出结果中显现出来。
| GGUF | MLX | |
|---|---|---|
| 本质 | 可移植的单一文件 | 苹果框架,safetensors 目录 |
| 运行平台 | Mac、Linux、Windows、中央处理器、CUDA、Metal | 仅限苹果硅芯片 |
| M 系列芯片上的速度 | 基准 | 快约 15% 到 40% |
| 内存 | 基准 | 少约 10% |
| 4 位量化质量 | 略好(Q4_K_M 混合精度) | 良好,在 4 位量化下略逊一筹 |
| 最适合 | 可移植性、生态系统、跨平台 | 苹果硅芯片上的原始吞吐量 |
工具支持是人们容易误解的部分
你应该选择的格式部分取决于你已经使用的工具。
LM Studio 自 2024 年末以来一直拥有 MLX 后端,同时也通过其捆绑的 llama.cpp 运行 GGUF。因此,在 LM Studio 中,你确实可以针对每个模型进行选择,而在 M 系列芯片上选择 MLX 版本通常能免费获得速度提升。
Ollama 长期以来通过 llama.cpp 的 Metal 路径运行 GGUF。其 0.19 预览版添加了一个可选的 MLX 后端,据报道速度约为旧版本的两倍,但它针对的是拥有 32GB 或更多统一内存的 Mac。在 16GB 内存的机器上,你仍停留在 GGUF/Metal 路径上,因此 MLX 的问题对你来说尚未出现。
这条 32GB 的分界线比原始基准测试更重要。许多声称“MLX 速度快两倍”的说法暗中假设了一台大多数人并没有的机器。
日后会带来麻烦的可移植性陷阱
MLX 仅限于苹果平台,这在没问题的时候还好,一旦出问题就不行了。如果你正在构建可能需要 CUDA 回退方案、Linux 服务器或 Windo
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。