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

NVIDIA SkillSpector:AI Agent技能安全扫描的“救火队长”NVIDIA SkillSpector是一款静态与动态分析工具,专为AI Agent技能这一新兴生态系统设计——即那些扩展LLM能力的模块化插件、工具和函数。与通用代码扫描器不同,SkillSpector深谙Agent AI的独特攻击面:技InstructPix2Pix:用一句话改写图像编辑规则,零门槛创意时代来了由加州大学伯克利分校的Tim Brooks和Alexei Efros等研究人员开发的InstructPix2Pix,代表了图像编辑领域的范式转变。与传统工具需要精确蒙版、图层或复杂参数调整不同,该模型能理解自然语言指令——如“让天空变成日落Insomnia vs Postman:Kong 的开源 API 客户端为何赢得开发者青睐Insomnia 最初是一个独立项目,于 2019 年被 Kong 收购,现已发展为一款功能完备、跨平台的 API 客户端,直接与 Postman 及其他商业工具竞争。其核心差异化优势包括:基于 Electron 的轻量级桌面客户端、对多种查看来源专题页GitHub 已收录 2941 篇文章

相关专题

on-device AI55 篇相关文章

时间归档

May 20263028 篇已发布文章

延伸阅读

苹果 ANE Transformer 开源库:设备端 AI 统治地位的秘密武器苹果正式开源了在 Neural Engine(ANE)上运行 Transformer 模型的官方参考实现,揭示了其设备端 AI 性能背后的核心技术。ml-ane-transformers 代码库展示了如何通过精细的块量化与内存布局,将推理速Ollmlx:苹果芯片上的本地大模型工具,悄然重新定义端侧AI推理Ollmlx,一款专为Apple Silicon打造的极简本地大模型运行工具,正以黑马之姿崛起于端侧AI领域。它基于苹果MLX框架,提供菜单栏应用、命令行界面及兼容OpenAI的API,为macOS用户带来无缝集成的体验。苹果Core ML稳定扩散:设备端图像生成重新定义隐私与性能苹果正式发布基于Core ML的Stable Diffusion实现,针对Apple Silicon(M1/M2/M3)深度优化,让Mac和iPad无需联网即可快速、私密地生成图像,并充分利用神经网络引擎(ANE)实现高效推理。这一举措标志Claude Code Local 在 Apple Silicon 上以 41 Tok/s 运行 122B 模型——私有 AI 开发的新纪元由 nicedreamzapp 打造的 Claude Code Local 项目,让开发者能在 Apple Silicon 设备上完全本地运行 Claude Code,使用本地 AI 模型。借助 MLX 原生推理和 TurboQuant 量

常见问题

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,这说明它在开源社区具有较强讨论度和扩散能力。