@PyTorch:ExecuTorch 现有一个 MLX 委托,可在 Apple Silicon GPU 上运行 PyTorch 模型。它支持大语言模型、语音转文字、以及……

X AI KOLs Following 工具

摘要

ExecuTorch 现有一个 MLX 委托,可在 Apple Silicon Mac 上为 PyTorch 模型提供 GPU 加速推理,支持大语言模型、语音转文字以及通过 TorchAO 进行量化的 MoE 模型。

ExecuTorch 现有一个 MLX 委托,可在 Apple Silicon GPU 上运行 PyTorch 模型。它支持大语言模型、语音转文字以及通过 TorchAO 进行量化的 MoE 模型。使用 torch.export 导出,在 Metal 上运行。阅读我们的最新博客:https://pytorch.org/blog/running-pytorch-models-on-apple-silicon-gpus-with-the-executorch-mlx-delegate/…
查看原文
查看缓存全文

缓存时间: 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 后端相同:

  1. 使用 torch.export 导出模型
  2. 使用 MLXPartitioner 通过 to_edge_transform_and_lower 对模型进行降级
  3. 使用 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)。

相似文章