特色项目
简而言之:介绍 ExecuTorch MLX Delegate
- 全新的 MLX delegate 使用苹果的 MLX 框架,能够为 Apple Silicon Mac 上的 PyTorch 模型提供优化的 GPU 加速推理。
- 该 delegate 与 PyTorch 2 导出栈无缝集成,并支持多种量化选项(BF16、FP16、FP32、2/4/8-bit 仿射量化、NVFP4)。
- 它支持多种模型,包括稠密 Transformer(Llama、Qwen、Gemma)、稀疏专家混合模型(MoE)以及用于离线和实时转录的语音转文字模型(Whisper、Voxtral、Parakeet)。
- 注意:MLX delegate 目前处于实验阶段。

Apple Silicon 已成为在本地运行大语言模型的流行平台。在此之前,macOS 上的 ExecuTorch 用户仅限于使用基于 CPU 的后端(如 XNNPACK 或 AOTI Metal 后端)。现在我们发布了 MLX delegate,通过苹果的 MLX 框架,为 Apple Silicon Mac 带来了完全优化的 GPU 加速推理。
在这篇文章中,我们将介绍什么是 MLX delegate,为什么要将其构建为 ExecuTorch 后端,以及你现在可以用它运行什么。
注意: MLX delegate 目前处于实验阶段,正处于积极开发中。API 和支持的功能可能会发生变化。
什么是 MLX Delegate?
MLX delegate 是一种全新的 ExecuTorch 后端,用于在 Apple Silicon GPU 上编译和运行 PyTorch 模型。你只需使用标准的 ExecuTorch 流水线导出模型,剩下的工作均由 delegate 完成:划分图(graph)、将其序列化为优化格式,并在运行时将操作调度到 MLX 的 Metal GPU 内核上。
从用户的角度来看,工作流程与任何其他 ExecuTorch 后端相同:
- 使用
torch.export导出你的模型 - 使用
MLXPartitioner通过to_edge_transform_and_lower进行降级(Lowering) - 使用 ExecuTorch 运行时运行生成的
.pte文件
该 delegate 目前支持约 90 个 ATen 操作,涵盖了 Transformer 推理所需的全套操作:量化矩阵乘法、多头注意力、旋转位置嵌入、专家混合路由、循环状态空间操作等。
为什么要将其构建为 ExecuTorch Delegate?
目前已经有用于在 Apple Silicon 上运行模型的优秀工具,包括 MLX 自己的 mlx-lm。那么为什么要再构建一个呢?原因有三:
性能。 与 macOS 上现有的 ExecuTorch delegate 相比,MLX delegate 在生成式 AI 工作负载上的吞吐量提高了 3-6 倍。将推理任务转移到 MLX 优化的 Metal 内核上,对于聊天和实时转录等 ExecuTorch 应用而言,能够带来显著的差异。
PyTorch 2 集成。 该 delegate 直接接入 PyTorch 2 导出栈。它使用 torch.export 进行图捕获,使用 TorchAO 进行量化,这与所有其他 ExecuTorch 后端使用的工具相同。如果你能用 torch.export 导出模型,就可以在 MLX 上运行它。当新的模型或量化技术进入 PyTorch 时,它们无需额外工作即可供 MLX delegate 使用。
便携式应用。 ExecuTorch 在所有后端提供统一的运行时 API。构建在 ExecuTorch C++ 或 Python 运行时之上的应用,无需更改应用程序代码,即可运行为 MLX、XNNPACK、CoreML、Vulkan 或 CUDA 导出的模型。
量化和数据类型支持
该 delegate 支持设备端推理中预期的精度和量化选项:
- BF16、FP16 和 FP32,用于权重和激活值
- 2、4 和 8-bit 仿射量化,通过 TorchAO 的
quantize_API 实现。它与 XNNPACK 和 Vulkan 后端使用相同的量化方案,这意味着单一量化模型定义可以面向多个后端,并为在运行时根据可用后端运行的“胖” PTE 文件打开了大门。 - NVFP4 量化,使用 NVIDIA 的 FP4 数据类型
- 绑定量化嵌入(Tied quantized embeddings),适用于在嵌入层和语言模型头之间共享权重的模型
我可以运行哪些模型?
我们已经在多种架构上验证了该 delegate:
大语言模型
稠密 Transformer 可直接开箱即用,支持完整的 KV 缓存和滑动窗口缓存:
- Llama 3.2 1B
- Qwen 3 (0.6B, 1.7B, 4B)
- Phi-4 mini (3.8B)
- Gemma 3 (1B, 4B),支持滑动窗口注意力
稀疏专家混合模型(MoE) 通过自定义的 gather 操作提供支持,这些操作可以在 GPU 上高效地将 Token 路由到正确的专家:
- Qwen 3.5 35B-A3B:具有 256 个专家和 top-8 路由,结合了 GatedDeltaNet 线性注意力层和全 SDPA 注意力层
语音转文字
离线转录 模型处理完整的录音并返回转录文本:
- OpenAI Whisper (tiny 到 large-v3-turbo)
- NVIDIA Parakeet TDT (0.6B),支持词级时间戳
- Mistral Voxtral (3B)
实时流式转录 可以在音频到达时将其分块处理,从而支持实时用例:
- Mistral Voxtral Realtime (4B),支持实时麦克风输入、循环缓冲区 KV 缓存和滑动窗口注意力
更广泛的覆盖范围
除了这些旗舰模型外,我们还通过后端测试套件验证了超过 30 种额外模型,涵盖了稠密 Transformer、编码器-解码器架构和视觉模型。
入门
每个受支持的模型都有一个 README,包含详细的导出和推理指南
- 通过 HuggingFace 的 LLM:使用 optimum-executorch 涵盖 Llama、Qwen 和 Gemma
- 通过 export_llm 的 LLM:使用基于 Hydra 的流水线涵盖 Phi-4 和 Stories 110M
- Qwen 3.5 MoE:使用 `–backend mlx` 涵盖稀疏 MoE 导出
- Voxtral Realtime:涵盖流式和离线语音转文字
- Parakeet:涵盖带时间戳的语音识别
- Whisper:涵盖 OpenAI 的语音识别模型
有关 delegate 架构、受支持操作和开发指南的概述,请参阅 MLX Delegate README。
我们非常乐意倾听哪些模型和用例对你最重要。如果你遇到问题或有功能需求,请在 ExecuTorch GitHub 仓库 上提出 Issue 或加入我们的 Discord 频道。
