MLX:专为Apple Silicon(M1-M4)优化的LLM
运行一个 MLX Apple Silicon LLM 在较新的 Mac 上,就是利用 M1 至 M4 芯片的统一内存,在本地运行 70 亿至 2350 亿参数的开放权重模型。Apple Research 于 2023 年底发布的 MLX 框架通过 Metal 直接利用 Neural Engine 和集成 GPU,无需使用 CUDA。本指南详细介绍 MLX 的工作原理、兼容模型、各量化方式下切合实际的 VRAM 需求、M3 Max 和 M4 Pro 上观察到的速度、参考基准测试,以及在 macOS 上自托管部署时最可靠的应用场景。
为什么 MLX 能改变 Mac 上的局面
MLX 是一个受 NumPy 和 PyTorch 启发的数组计算库,专为 Apple Silicon 的统一内存架构设计。与 llama.cpp 可选用 Metal 作为后端,而 MLX 将 CPU 和 GPU 内存视为一个统一空间:两者之间无需复制数据。官方仓库 ml-explore/mlx 在GitHub上以MIT许可证发布源代码,而相关项目 mlx-examples 提供 Llama、Mistral、Phi 和 Qwen 的即用型实现。
关键要点:
- 统一内存 :配备 192 GB 内存的 Mac Studio M3 Ultra 可让 GPU 使用这 192 GB 内存。配备 RTX 4090 的 PC,其 GDDR6X 显存上限为 24 GB。
- 原生量化 : MLX 支持 int4、int8 和 bfloat16 通过
mlx_lm.convert. - 惰性求值 : 计算图仅在调用时实际构建
mx.eval(),从而降低消耗。 - 兼容Hugging Face : 检查点
safetensors的标准版本可通过一条命令转换。
比较Mac和Linux方案,请参见 llama.cpp 和 GGUF 以及我们的对比分析 MLX 与 llama.cpp 对比.
所需的显存及支持的量化方式
MLX 支持多种量化级别。以下是基于 FP16 数值,按常用比例(Q8 ≈ 50%,Q4 ≈ 25%,Q3 ≈ 20%)估算的量级。
在 MacBook Pro M3 Max 128 GB 或 M4 Max 128 GB 上流畅运行的模型:
- gpt-oss 120B :Q4 量化下约需 70 GB 显存,上下文长度为 128k token,许可证为 Apache 2.0。参见 gpt-oss 120B.
- Llama 3.3 70B Instruct :Q4 量化下的显存需求约为 40 GB,上下文长度为 128k。是 Mac 上智能体工作流的参考选择,详情见 Llama 3.3 70B.
- Qwen 2.5 72B Instruct : VRAM Q4约42 GB,上下文长度131k。完整规格参见 Qwen 2.5 72B.
- DeepSeek R1 Distill Llama 70B : VRAM Q4 ~40 GB。最知名的推理蒸馏模型,详情参见 DeepSeek R1 Distill 70B.
更大规模模型仅限 Mac Studio M3 Ultra 192 GB 或 512 GB 机型使用 :
- Mixtral 8x22B Instruct : VRAM Q4 ~82 GB,上下文长度64k,Apache 2.0。详见 Mixtral 8x22B.
- Mistral Small 4 (119B):Q4 显存需求约 72 GB,上下文长度 256k。模型介绍: Mistral Small 4.
- Qwen 3 235B-A22B :Q4 显存需求约 142 GB,上下文长度 131k。采用 MoE 架构,仅激活 22B 参数,详见模型介绍 Qwen 3 235B-A22B.
- Qwen 3.5 122B-A10B : VRAM Q4 约 73 GB,上下文长度 262k。详见 Qwen 3.5 122B-A10B.
在超大规模下, DeepSeek V3 671B (Q4 量化所需显存约 400 GB,上下文长度 128k)即使是配备 512 GB 内存的 Mac Studio,也仍无法在 Q4 量化下运行它,但采用 Q2/Q3 量化并将少量数据卸载到磁盘后,就可以考虑运行它。完整介绍参见 DeepSeek V3 671B.
实测性能:每秒 token 数
以下数据来自官方文档 mlx-lm 以及在 Hugging Face 上可复现的社区观测结果。所有速度均为估算值,受提示词、上下文和量化级别影响。
- Llama 3.1 70B 以 4 位量化在配备 128 GB 内存的 M3 Max 上运行:生成速度约 10 至 12 token/秒,prefill 约 150 token/秒(估算)。模型详情: Llama 3.1 70B.
- Qwen 2.5 72B 在 M4 Max 上采用 4 位量化:约 9 至 11 tokens/秒(需根据 SoC 的具体版本确认)。
- gpt-oss 120B 在 M3 Ultra 192 GB 上以 4 位量化:约 14 个 token/秒(基于 Hugging Face 基准测试预估)。
- Mixtral 8x22B 在 M3 Ultra 上采用 4 位量化:得益于 MoE 激活,约达到 18 个 token/秒。
- DeepSeek R1 Distill Llama 70B 在 M3 Max 上以 4 位量化运行:约 10 token/秒,包含推理轨迹。
MoE 模型,例如 Qwen3-Coder-Next 80B-A3B (Q4 显存需求约 48 GB)尤其受益于统一内存:生成每个 token 时,只有 30 亿个活跃参数经过计算单元,因此根据用户反馈,M4 Max 上的速度可超过 25 tokens/秒(有待确认)。参见 Qwen3-Coder-Next 80B-A3B.
许可证与 MLX 兼容性
除模型原有许可证的限制外,MLX 不施加任何额外限制。以下是一些典型情况:
- Apache 2.0 (Mixtral 8x22B, Mistral Small 4, gpt-oss 120B, Qwen 3 235B-A22B, Qwen 3.5 397B-A17B) : 无商业使用限制。
- MIT (DeepSeek R1 671B, GLM-5.1, Ling 2.6 1T):非常宽松,需注明出处。
- Llama Community (Llama 3.1 70B, Llama 3.1 405B, Llama 4 Scout 109B):允许在月活跃用户数低于 7 亿的情况下用于商业用途。
- Qwen 许可证 (Qwen 2.5 72B, Qwen 2.5 VL 72B):针对大型平台的特殊要求。
- CC-BY-NC 4.0 (Command R+ 104B) : 仅限非商业用途。
生产环境使用时,优先选择 Apache 2.0 或 MIT。详见我们的指南 开放权重 LLM 许可 ,了解各项条款的细节。
针对 MLX 兼容模型的参考基准测试
这里列出的分数来自 Hugging Face 上发布的官方技术资料,以及模型发布方提供的模型卡。
- MMLU : Llama 3.3 70B 达到约 86, Qwen 2.5 72B 约 85, gpt-oss 120B 约 88(估算)
- HumanEval :Qwen3-Coder-Next 80B-A3B 的目标是 pass@1 超过 85%,DeepSeek R1 Distill Llama 70B 约为 78%(待确认)。
- AIME 2024 :DeepSeek R1 671B达到79.8%,依据是 DeepSeek R1 的 arXiv 论文。70B 蒸馏模型的得分约为 70%。
- GPQA Diamond : DeepSeek R1 ~71 %, Llama 3.3 70B ~50 % (估算值)。
为深入了解表现最佳的代码模型,请参见 最适合编程的 LLM 以及在推理方面 最佳推理LLM.
安装与实际工作流程
准备好 Python 3.10+ 环境后,只需三条命令即可完成安装:
pip install mlx mlx-lm
python -m mlx_lm.convert --hf-path meta-llama/Llama-3.3-70B-Instruct -q
python -m mlx_lm.generate --model ./mlx_model --prompt "Bonjour"
转换 -q 默认采用 4 位量化。转换后的检查点直接发布至 Hugging Face mlx-community, 避免了主流模型的本地转换步骤。
MLX 特别出色的使用场景包括:
- 独立Mac开发人员 : 一台配备 64 GB 内存的 MacBook Pro M3 Max 足以运行 Llama 3.3 70B Q3 或 Qwen 2.5 72B Q3。
- 本地 RAG 工作流 :统一内存可以保留长上下文(128k,甚至 256k tokens),而无需进行内存换页。
- 私有编程智能体 :Qwen3-Coder-Next 80B-A3B 采用 4 位量化的 MoE 配置时,仍能流畅地进行 IDE 代码补全。
- 学术研究 : MLX 集成
mlx.optimizers用于直接在Apple Silicon上进行LoRA微调(参见 LoRA 示例 mlx-examples).
如需根据您打算运行的模型比较 MacBook Pro 和 Mac Studio,请参见 适用于 MacBook Pro 的 LLM.
FAQ
Q:选择哪款 Mac 本地运行 Llama 3.3 70B?
配备 M3 Max 或 M4 Max 芯片及 64 GB 内存的 MacBook Pro 可以运行 Llama 3.3 70B Instruct 4位量化(VRAM约40 GB)。在48 GB内存下较为紧张,但Q3版本仍可运行。对于长上下文或批量处理,建议使用128 GB。Mac Studio M3 Ultra 192 GB仍是该模型最舒适的配置目标。
Q:MLX在Mac上是否比llama.cpp更快?
MLX 通过原生统一内存和图编译器,在长文本生成上通常可提升 10 到 30%。 llama.cpp 在预填充方面仍具竞争力,并拥有更广泛的生态系统(内置兼容 OpenAI 的服务器,提供更多种类的 GGUF 量化)。两者可以共存:MLX 用于开发,llama.cpp 用于无图形界面的部署。
Q:是否可以使用MLX进行LoRA微调?
是。子项目 mlx-examples/lora 允许在 Llama、Mistral 和 Qwen 上训练 LoRA 和 QLoRA 适配器。在 M3 Max 64 GB 上,LoRA 微调 Mistral Small 4 在 4 位量化下仍不可行,但 7B 至 13B 的模型可在几小时内完成训练。
Q:MLX 是否支持 Mixtral 或 Qwen 3 235B 这类 MoE 模型?
是。 Mixtral 8x22B Instruct et Qwen 3 235B-A22B 可通过以下工具获得支持: mlx-lm。MoE 架构特别适合统一内存:未激活的专家驻留在 RAM 中,不会增加延迟。在配备 192 GB 内存的 Mac Studio M3 Ultra 上,Qwen 3 235B-A22B 采用 4 位量化时,只要上下文长度合理,仍可正常使用。
问:哪些模型无法在 Apple Silicon 上实际运行?
即使是配备 512 GB 内存的 Mac Studio,也仍然无法运行参数量超过 500B 的全精度模型: DeepSeek V4 Pro 1.6T (VRAM Q4 ~960 GB), MiMo V2.5 Pro (VRAM Q4 ~595 GB), Kimi K2.6 (VRAM Q4 ~600 GB)。在采用 Q2 或 Q3 激进量化并结合磁盘卸载的情况下,部分模型可进行实验性测试,但速度会大幅下降。
Q:MLX是否支持视觉-语言模型?
是,部分支持。 Qwen 2.5 VL 72B et LLaVA-OneVision 72B 在 Hugging Face 上有社区移植的 MLX 版本。覆盖范围比纯文本 LLM 更有限,但项目 mlx-vlm 由社区维护,弥补了在主流多模态架构上的差距。
结论
Un MLX Apple Silicon LLM 将一台新款 Mac 转化为强大的推理工作站:Llama 3.3 70B、Qwen 2.5 72B 或 gpt-oss 120B 可在配备 64-128 GB 内存的 MacBook Pro 上以 4 位精度运行,而 MoE 模型如 Qwen 3 235B-A22B 则可在配备 192 GB 内存的 Mac Studio 上运行。为选择最适合您硬件配置的模型,请使用我们的 配置工具 或浏览 完整目录 已索引的249个模型