@PyTorch:ExecuTorch 现有一个 MLX 委托,可在 Apple Silicon GPU 上运行 PyTorch 模型。它支持大语言模型、语音转文字、以及……
摘要
ExecuTorch 现有一个 MLX 委托,可在 Apple Silicon Mac 上为 PyTorch 模型提供 GPU 加速推理,支持大语言模型、语音转文字以及通过 TorchAO 进行量化的 MoE 模型。
查看缓存全文
缓存时间: 2026/05/18 16:34
现在,ExecuTorch 推出了一个 MLX 委托,可以在 Apple Silicon GPU 上运行 PyTorch 模型。它支持大语言模型、语音转文本以及通过 TorchAO 进行量化的混合专家模型。使用 torch.export 导出,在 Metal 上运行。阅读我们的最新博客:https://pytorch.org/blog/running-pytorch-models-on-apple-silicon-gpus-with-the-executorch-mlx-delegate/…
通过 ExecuTorch MLX 委托在 Apple Silicon GPU 上运行 PyTorch 模型 – PyTorch
来源:https://pytorch.org/blog/running-pytorch-models-on-apple-silicon-gpus-with-the-executorch-mlx-delegate/
特色项目
- PyTorch 标志 (https://pytorch.org/projects/pytorch/)
TL;DR:介绍 ExecuTorch MLX 委托
- 新的 MLX 委托利用 Apple 的 MLX 框架,可在 Apple Silicon Mac 上实现针对 PyTorch 模型的优化 GPU 加速推理。
- 该委托与 PyTorch 2 导出栈无缝集成,并支持多种量化选项(BF16、FP16、FP32、2/4/8 位仿射量化、NVFP4)。
- 支持多种模型,包括密集 Transformer(Llama、Qwen、Gemma)、稀疏混合专家模型以及语音转文本模型(Whisper、Voxtral、Parakeet),适用于离线与实时转录。
- 注意:MLX 委托目前处于实验阶段。
Apple Silicon 已成为本地运行大语言模型的流行平台。到目前为止,macOS 上的 ExecuTorch (https://github.com/pytorch/executorch) 用户只能使用基于 CPU 的后端(如 XNNPACK)或 AOTI Metal 后端。现在,我们发布了 MLX 委托,通过 Apple 的 MLX (https://github.com/ml-explore/mlx) 框架,为 Apple Silicon Mac 带来了完全优化的 GPU 加速推理。
在这篇文章中,我们将介绍 MLX 委托是什么、为什么将其构建为 ExecuTorch 后端,以及现在可以用它来运行什么。
注意: MLX 委托目前处于实验阶段,正在积极开发中。API 和受支持的功能可能会发生变化。
什么是 MLX 委托?
MLX 委托是一个新的 ExecuTorch 后端,用于在 Apple Silicon GPU 上编译和运行 PyTorch 模型。您可以使用标准的 ExecuTorch 流水线导出模型,委托会处理其余工作:对计算图进行分区、将其序列化为优化的格式,并在运行时将操作分派到 MLX 的 Metal GPU 内核。
从用户的角度来看,工作流程与任何其他 ExecuTorch 后端相同:
- 使用
torch.export导出模型 - 使用
MLXPartitioner通过to_edge_transform_and_lower对模型进行降级 - 使用 ExecuTorch 运行时运行生成的
.pte文件
该委托目前支持大约 90 个 ATen 操作,覆盖了 Transformer 推理所需的所有操作:量化矩阵乘法、多头注意力、旋转位置嵌入、混合专家路由、循环状态空间操作等。
为什么将其构建为 ExecuTorch 委托?
已有一些优秀的工具可用于在 Apple Silicon 上运行模型,包括 MLX 自己的 mlx-lm。那么为什么还要再构建一个呢?三个原因:
性能。 与 macOS 上现有的 ExecuTorch 委托相比,MLX 委托在生成式 AI 工作负载上实现了 3-6 倍的吞吐量提升。将推理转移到 MLX 优化的 Metal 内核上,对于聊天和实时转录等 ExecuTorch 应用来说,影响显著。
PyTorch 2 集成。 该委托直接插入 PyTorch 2 导出栈。它使用 torch.export 进行图捕获,并使用 TorchAO 进行量化——这与所有其他 ExecuTorch 后端使用的工具相同。如果您可以用 torch.export 导出某个模型,就能在 MLX 上运行它。当新的模型或量化技术出现在 PyTorch 中时,无需额外工作,MLX 委托即可使用它们。
可移植的应用程序。 ExecuTorch 为所有后端提供了统一的运行时 API。基于 ExecuTorch C++ 或 Python 运行时构建的应用程序,无需更改应用程序代码,即可运行为 MLX、XNNPACK、CoreML、Vulkan 或 CUDA 导出的模型。
量化与数据类型支持
该委托支持设备端推理所需的精度和量化选项:
- BF16、FP16 和 FP32 用于权重和激活
- 2、4 和 8 位仿射量化,通过 TorchAO 的
quantize_API 实现。这使用了与 XNNPACK 和 Vulkan 后端相同的量化方案,这意味着单个量化模型定义可以针对多个后端,并打开了创建胖 PTE 文件(可在运行时根据可用后端执行)的大门。 - NVFP4 量化,使用 NVIDIA 的 FP4 数据类型
- 绑定量化嵌入,用于在嵌入层和语言模型头之间共享权重的模型
我可以运行哪些模型?
我们已在多种架构上验证了该委托:
大语言模型
密集 Transformer 开箱即用,支持完整 KV 缓存和滑动窗口缓存:
- Llama 3.2 1B
- Qwen 3 (0.6B, 1.7B, 4B)
- Phi-4 mini (3.8B)
- Gemma 3 (1B, 4B) 带滑动窗口注意力
稀疏混合专家 模型通过自定义收集操作得到支持,这些操作可以高效地将令牌路由到 GPU 上的正确专家:
- 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 (https://github.com/pytorch/executorch/tree/89600b3954c08f9224df0ef295232f4c835e46a9/backends/mlx/examples/llm) 的 LLM:涵盖 Llama、Qwen 和 Gemma,使用 optimum-executorch
- 通过 export_llm (https://github.com/pytorch/executorch/tree/89600b3954c08f9224df0ef295232f4c835e46a9/examples/models/llama) 的 LLM:涵盖 Phi-4 和 Stories 110M,使用基于 Hydra 的流水线
- Qwen 3.5 MoE (https://github.com/pytorch/executorch/tree/89600b3954c08f9224df0ef295232f4c835e46a9/examples/models/qwen3_5_moe):涵盖稀疏 MoE 导出,使用
--backend mlx - Voxtral Realtime (https://github.com/pytorch/executorch/tree/89600b3954c08f9224df0ef295232f4c835e46a9/examples/models/voxtral_realtime):涵盖流式与离线语音转文本
- Parakeet (https://github.com/pytorch/executorch/tree/89600b3954c08f9224df0ef295232f4c835e46a9/examples/models/parakeet):涵盖带时间戳的语音识别
- Whisper (https://github.com/pytorch/executorch/tree/89600b3954c08f9224df0ef295232f4c835e46a9/backends/mlx/examples/whisper):涵盖 OpenAI 的语音识别模型
有关委托架构、支持的操作和开发指南的概述,请参阅 MLX 委托 README (https://github.com/pytorch/executorch/tree/89600b3954c08f9224df0ef295232f4c835e46a9/backends/mlx)。
我们很想知道哪些模型和用例对您最重要。如果您遇到问题或有功能请求,请在 ExecuTorch GitHub 仓库 (https://github.com/pytorch/executorch) 中提交 issue,或加入我们的 Discord 频道 (https://discord.com/invite/Dh43CKSAdc)。
相似文章
@PyTorch:PyTorch 2.13 为 Apple Silicon 带来 FlexAttention,借助 nn.Li… 将大词表模型的峰值内存最高削减 4×
PyTorch 2.13 发布版为 Apple Silicon 带来 FlexAttention,通过融合的 LinearCrossEntropyLoss 实现高达 12 倍加速,并将大词表模型的峰值内存降低 4 倍,同时还更新了分布式训练、编译和端侧推理。
MAX models 现在可以在 Apple silicon GPU 上运行
MAX models 已更新,可在 Apple silicon GPU 上运行,从而在 Mac 上实现更快的推理。
优化Apple Silicon设备端推理(20分钟阅读)
Apple的Lily引擎通过利用统一内存和硬件,优化了Apple silicon上的设备端LLM推理,性能超越MLX-LM,并针对Qwen3.6-35B-A3B模型架构进行了调优。
@berryxia: Mac用户大喜啊!苹果端侧模型的优势又来了! 今天还看到Jina直接原生框架支持了MLX了! 以前开源 embedding 模型发布节奏一般是这样: Day 0:放 PyTorch 原版 Day 7-30:社区有人转 GGUF Day 3…
Jina releases MLX-native embedding models simultaneously with PyTorch versions, highlighting the growing importance of Apple's MLX framework for local AI deployment.
@neural_avb:我正在将SAM模型及其工具套件移植到Apple silicon上。已经在mlx上看到1.25倍推理速度提升……
将SAM 2.1模型移植到Apple silicon上(使用MLX),在小模型上实现了1.25倍推理速度提升,计划推出量化版。