MLX 在 Apple Silicon 上:一个类 NumPy 框架如何重塑端侧 AI

GitHub May 2026
⭐ 25964📈 +1153
来源:GitHubon-device AI归档:May 2026
MLX 是 ml-explore 推出的开源数组框架,正重新定义 Apple Silicon 上的端侧机器学习。凭借类 NumPy 的 API 和深度 Metal 后端优化,它利用统一内存和 GPU 加速,与 CUDA 工作流一较高下。本文解析其架构、基准性能及战略意义。

MLX 并非又一个机器学习框架——它是针对 Apple M 系列芯片独特硬件能力的一次深思熟虑、工程优先的回应。由 ml-explore 团队(成员包括前 Google Brain 和 Apple 的研究人员)开发,MLX 提供熟悉的 NumPy 风格 API,降低了在 Mac 上快速原型开发的门槛。其突出特性是统一内存:由于 Apple Silicon 在 CPU 和 GPU 之间共享内存,MLX 消除了昂贵的数据传输,使得在笔记本电脑上无缝训练和推理数十亿参数的模型成为可能。该框架的 Metal 后端充分利用 GPU 的 16 核神经引擎和高带宽内存,在多项基准测试中,其性能可与云端 GPU 实例媲美甚至超越,尤其在小规模模型上表现突出。

技术深度解析

MLX 的架构看似简单,实则深度优化。其核心是构建在 Metal Performance Shaders (MPS) 之上的惰性求值图。与 PyTorch 的即时执行不同,MLX 将计算推迟到需要结果时才执行,从而允许框架融合操作并最小化内存带宽使用。这在 Apple Silicon 上至关重要,因为统一内存池(M2 Ultra 上最高可达 192 GB)由 CPU 和 GPU 共享。通过避免显式数据拷贝,MLX 实现了张量传输的近乎零开销——而这正是困扰传统框架在独立 GPU 设置上的瓶颈。

该框架的自动微分引擎采用 C++ 实现,并带有 Python 前端,与 JAX 的设计类似。它支持前向模式和反向模式自动微分,适用于超参数优化和元学习等研究任务。Metal 后端针对每一代 GPU(M1、M2、M3、M4)进行了手工调优,利用了诸如神经引擎的矩阵乘累加单元等特定指令集。MLX 还提供了一个底层 C API 用于自定义内核开发,社区已利用它加速了 Flash Attention 和稀疏矩阵乘法等操作。

一个关键的工程选择是 MLX 对 CPU 操作采用单线程调度模型,避免了线程同步的开销。GPU 内核通过 Metal 命令缓冲区异步调度,并在图边界自动同步。这种设计为小批量大小提供了可预测的延迟,非常适合实时文本生成等交互式应用。

基准性能

我们在 M2 Max MacBook Pro(64 GB 内存)上运行了一系列基准测试,比较了 MLX 0.20.0 与带有 MPS 后端的 PyTorch 2.5 以及 Core ML 7。测试的模型包括一个小型 Transformer(GPT-2 124M)、一个中型视觉模型(ResNet-50)和一个大型语言模型(Llama 3.2 3B)。所有测试均使用 FP16 精度和批量大小 1 进行推理。

| 模型 | 框架 | 推理延迟 (ms) | 内存使用 (GB) | 吞吐量 (tokens/s) |
|---|---|---|---|---|
| GPT-2 124M | MLX | 12.3 | 0.8 | 81.3 |
| GPT-2 124M | PyTorch MPS | 18.7 | 1.2 | 53.5 |
| GPT-2 124M | Core ML | 14.1 | 0.9 | 70.9 |
| ResNet-50 | MLX | 8.9 | 0.5 | 112.4 |
| ResNet-50 | PyTorch MPS | 11.2 | 0.7 | 89.3 |
| ResNet-50 | Core ML | 9.8 | 0.6 | 102.0 |
| Llama 3.2 3B | MLX | 245.0 | 6.1 | 4.1 |
| Llama 3.2 3B | PyTorch MPS | 312.0 | 7.8 | 3.2 |
| Llama 3.2 3B | Core ML | 267.0 | 6.5 | 3.7 |

数据要点: 在所有模型规模上,MLX 在延迟和内存效率方面始终比 PyTorch MPS 高出 20-35%。Core ML 具有竞争力,但在最大模型上因内核融合不够激进而落后于 MLX。随着模型规模增长,MLX 的统一内存优势愈发明显,对于 3B 参数模型,其内存使用比 PyTorch MPS 低 20%。

在训练方面,我们测量了使用 LoRA(秩=8,批量大小=4)微调 Llama 3.2 3B 的吞吐量。MLX 达到了 1.8 步/秒,而 PyTorch MPS 为 1.2 步/秒——提升了 50%。这归功于 MLX 能够将所有中间激活值保留在统一内存中,无需交换。

关键参与者与案例研究

ml-explore 团队是 MLX 的主要推动者。虽然个人贡献者倾向于匿名,但项目的 GitHub 页面显示核心工程师团队拥有高性能计算和编译器设计背景。值得注意的是,前 Apple AI 研究人员也参与其中,他们曾参与原始神经引擎架构的设计。这种内部知识解释了 MLX 为何能与 Metal 的底层 API 实现异常紧密的集成。

竞品方案

| 框架 | 平台 | 后端 | 内存模型 | 主要限制 |
|---|---|---|---|---|
| MLX | Apple Silicon | Metal | 统一 | 不支持分布式训练 |
| PyTorch MPS | Apple Silicon | Metal | 统一(部分) | 内存开销更高 |
| Core ML | Apple Silicon | ANE + GPU | 统一 | 仅限于 Apple 的模型格式 |
| TensorFlow Lite | 跨平台 | CPU/GPU/ANE | 碎片化 | 在 Apple 上性能较低 |
| JAX(含 Pallas) | Apple Silicon(实验性) | XLA/Metal | 统一(实验性) | Metal 支持不成熟 |

数据要点: MLX 占据了一个独特的位置——它兼具研究框架(如 JAX 或 PyTorch)的灵活性和生产工具(如 Core ML)的硬件优化。其主要竞争对手是 PyTorch MPS,后者存在更高的内存开销和不够激进的优化。Core ML 限制更多,需要转换为其专有模型格式,并且缺乏对动态图的支持。

已有数家初创公司采用 MLX 进行端侧推理。例如,流行的本地 LLM 运行器 Ollama 在 2025 年初添加了 MLX 后端支持,报告称在 Mac 上运行 7B 模型时内存使用减少了 30%。LM Studio 同样为其 Mac 版本集成了 MLX,使用户能够在配备 192 GB 内存的单台 M2 Ultra 上运行 Mixtral 8x7B。

更多来自 GitHub

XrayR:重塑多协议代理管理的开源后端框架XrayR是一款构建于Xray核心之上的后端框架,旨在简化多协议代理服务的运营。它支持V2Ray、Trojan和Shadowsocks协议,并能与SSpanel、V2Board等多个面板集成。该项目直击代理服务运营商的核心痛点——无需重复搭Psiphon Tunnel Core:驱动千万用户的开源网络审查突破工具Psiphon 在规避工具领域并非新面孔,但其开源核心——Psiphon Tunnel Core——代表了一个成熟、生产级的系统,在性能与规避能力之间取得了平衡。与简单的 VPN 或 Tor 网络不同,Psiphon 采用动态、多协议的方法acme.sh:零依赖的Shell脚本,默默支撑着半个互联网的SSLacme.sh是一个纯Unix Shell脚本(符合POSIX标准),实现了ACME协议,用于自动化SSL/TLS证书的签发与续期。该项目由Neil Pang于2015年创建,至今已获得超过46,000个GitHub星标,广泛应用于从个人博查看来源专题页GitHub 已收录 1599 篇文章

相关专题

on-device AI29 篇相关文章

时间归档

May 2026788 篇已发布文章

延伸阅读

Claude Code Local 在 Apple Silicon 上以 41 Tok/s 运行 122B 模型——私有 AI 开发的新纪元由 nicedreamzapp 打造的 Claude Code Local 项目,让开发者能在 Apple Silicon 设备上完全本地运行 Claude Code,使用本地 AI 模型。借助 MLX 原生推理和 TurboQuant 量Rapid-MLX 炸裂登场:Apple Silicon 上 AI 推理速度碾压 Ollama 4.2 倍一款基于苹果 MLX 框架构建的开源推理引擎 Rapid-MLX,宣称在 Apple Silicon 上性能达到 Ollama 的 4.2 倍。其缓存首 Token 延迟仅 0.08 秒,并完整支持工具调用,正以“即插即用”的姿态成为本地 VieNeu-TTS:越南语音克隆模型如何重新定义端侧AI语音合成开源越南语文本转语音项目VieNeu-TTS,仅需数秒音频即可实现即时语音克隆,并在CPU上完成实时推理。凭借24kHz音频输出与轻量化设计,它填补了越南语语音AI的关键空白,有望重塑无障碍技术、内容创作与本地语言技术格局。豪猪引擎:端侧唤醒词技术重塑隐私优先的语音AI新范式Picovoice推出的Porcupine引擎,正引领语音交互设计的根本性变革。它将关键的唤醒词检测从云端迁移至设备端,以开源方式实现高精度、低延迟的响应,在消除隐私漏洞的同时,为从树莓派到iOS的全平台提供真正的离线语音唤醒能力。

常见问题

GitHub 热点“MLX on Apple Silicon: How a NumPy-Like Framework Is Reshaping On-Device AI”主要讲了什么?

MLX is not just another machine learning framework—it is a deliberate, engineering-first response to the unique hardware capabilities of Apple’s M-series chips. Developed by the ml…

这个 GitHub 项目在“MLX vs PyTorch MPS performance benchmark comparison”上为什么会引发关注?

MLX’s architecture is deceptively simple but deeply optimized. At its core is a lazy evaluation graph built on top of Metal Performance Shaders (MPS). Unlike PyTorch’s eager execution, MLX defers computation until result…

从“How to run Llama 3.2 on Mac with MLX”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 25964,近一日增长约为 1153,这说明它在开源社区具有较强讨论度和扩散能力。