🔥較早收集於 49m

透過 MLX Delegate 在 Apple Silicon 上執行 PyTorch 模型

透過 MLX Delegate 在 Apple Silicon 上執行 PyTorch 模型
PostLinkedIn
🔥閱讀原文: PyTorch Blog

💡透過全新的 MLX delegate,解鎖您的 PyTorch 模型在 Apple Silicon 上的原生 GPU 加速效能。

⚡ 30-Second TL;DR

有什麼變化

支援在 Apple Silicon Mac 上進行 PyTorch 模型的 GPU 加速推論。

為什麼重要

此更新大幅降低了開發者在 Mac 硬體上部署高效能 AI 模型的門檻,並能更有效地利用 Apple 的統一記憶體架構來處理機器學習任務。

下一步行動

如果您正在開發 macOS 裝置端 AI,請將 ExecuTorch MLX delegate 整合至您的開發流程中,以測試並評估推論速度的提升。

誰應關注:Developers & AI Engineers

關鍵要點

  • 支援在 Apple Silicon Mac 上進行 PyTorch 模型的 GPU 加速推論。
  • 直接整合 Apple 的 MLX 框架以達到最佳效能。
  • 屬於 ExecuTorch 生態系統的一部分,專注於邊緣與裝置端 AI 部署。

🧠 深度解析

Web-grounded analysis with 29 cited sources.

🔑 增強重點摘要

  • MLX 框架利用 Apple Silicon 的統一記憶體架構和惰性計算,在大型語言模型 (LLM) 推論方面,通常比 PyTorch 自身的 Metal Performance Shaders (MPS) 後端表現更優異,減少了 CPU 與 GPU 之間的資料傳輸需求。
  • ExecuTorch 作為 PyTorch 核心專案的一部分,提供了一個標準化、供應商中立的框架,用於邊緣 AI 部署,允許硬體供應商(如 Apple)透過委託(delegate)機制整合其專用加速器。
  • 在 MLX delegate 推出之前,PyTorch 已透過 Metal Performance Shaders (MPS) 後端在 Apple Silicon 上實現 GPU 加速訓練,該功能於 PyTorch v1.12 版本中引入,主要針對訓練工作負載。
  • ExecuTorch 的設計強調可移植性、生產力和性能,透過提前編譯 (AOT) 和輕量級 C++ 運行時,支援從高階行動裝置到資源受限的嵌入式系統等多種硬體平台。
  • MLX 框架的 API 設計與 NumPy 相似,並包含 mlx.nn 和 mlx.optimizers 等高階套件,其 API 遵循 PyTorch 模式,使得開發者在兩個框架之間轉換相對直接。
📊 競品分析▸ Show

MLX Delegate 與 PyTorch MPS 及原生 MLX 框架比較

特性/指標PyTorch ExecuTorch MLX Delegate (本文主題)PyTorch MPS 後端 (現有解決方案)Apple MLX 框架 (原生框架)
目標透過 ExecuTorch 實現 PyTorch 模型在 Apple Silicon 上的優化 GPU 推論。實現 PyTorch 模型在 Apple Silicon 上的 GPU 加速訓練與推論。專為 Apple Silicon 設計的機器學習框架,用於研究、原型開發與部署。
執行模型透過 ExecuTorch 的委託機制,利用 MLX 的惰性計算。預設為即時執行 (eager execution)。預設為惰性計算 (lazy computation),僅在需要時才具體化陣列。
記憶體模型利用 MLX 的統一記憶體模型,CPU 和 GPU 共享記憶體,無需資料傳輸。統一記憶體,但 PyTorch 仍需顯式裝置放置,可能涉及內部複製。統一記憶體模型,CPU 和 GPU 直接存取單一記憶體池,無資料傳輸。
LLM 推論基準在 LLM 推論中,MLX 通常顯著優於 PyTorch MPS,例如 Llama 7B 模型可提升 46% 的 Tokens/秒,記憶體使用減少 23%。在 LLM 推論中,通常不如 MLX 框架。在 LLM 推論中表現出色,特別是對於大型記憶體需求的模型。
CNN 推論基準針對傳統 CNN 工作負載,性能可能與 PyTorch MPS 相當或略低。針對傳統 CNN 工作負載(如 ResNet-50),由於成熟的 Metal 優化,可能略優於 MLX。卷積操作目前相對較慢,團隊正在努力改進。
API 相似性保持 PyTorch API,透過 ExecuTorch 抽象層與 MLX 整合。PyTorch 的標準 API,使用 .to("mps") 指定裝置。NumPy-like API,高階套件 mlx.nn 和 mlx.optimizers 類似 PyTorch。
生態系統成熟度作為 ExecuTorch 的一部分,受益於 PyTorch 的廣泛生態系統。作為 PyTorch 的一部分,擁有龐大且成熟的生態系統。較新,生態系統正在成長,但已有多個範例和社群專案。
主要優勢將 MLX 的 LLM 推論優勢帶入 PyTorch 生態系統,實現邊緣部署。廣泛的 PyTorch 庫支援,對傳統 CNN 訓練和推論有良好優化。原生為 Apple Silicon 優化,記憶體效率高,特別適合 LLM 推論。

🛠️ 技術深入

  • 統一記憶體模型 (Unified Memory Model, UMM):MLX 框架的核心優勢之一是利用 Apple Silicon 的 UMM。這意味著 CPU 和 GPU 共享單一的高頻寬記憶體池,允許兩者直接存取整個記憶體空間,從而消除了傳統架構中 CPU 和 GPU 之間耗時的資料傳輸。
  • 惰性計算 (Lazy Computation):MLX 中的計算是惰性的,陣列僅在需要時才具體化。這種設計有助於優化性能,特別是在處理大型模型時。
  • 動態圖建構 (Dynamic Graph Construction):MLX 的計算圖是動態建構的。改變函數參數的形狀不會觸發緩慢的編譯,並且除錯過程更為簡單直觀。
  • ExecuTorch 委託機制 (Delegation Mechanism):ExecuTorch 透過標準化的編譯器介面(即 delegate)支援選擇性後端委託。這允許模型的部分(子圖)被卸載到專門的加速器(如 MLX)進行優化執行。在 ExecuTorch 運行時中,這些委託的子圖表現為特殊的 call_delegate 指令。
  • 提前編譯 (Ahead-of-Time, AOT):ExecuTorch 的工作流程將模型準備(匯出、轉換和編譯)盡可能地推到 AOT 階段。這使得運行時(用 C++ 編寫)非常輕量級,並具有最小的執行開銷,提高了可移植性和執行效率。
  • 量化感知匯出 (Quantization-Aware Export):ExecuTorch 支援後訓練量化和量化感知訓練,作為模型部署的關鍵步驟。後端可以聲明其能力,ExecuTorch 會相應地應用量化,確保在 PyTorch 中驗證的量化與裝置端執行相符。

🔮 前景展望AI analysis grounded in cited sources

Apple Silicon Mac 將成為本地 AI 開發和部署更具吸引力的平台。
MLX delegate 結合 MLX 對 LLM 的原生優化和統一記憶體,顯著提升了 PyTorch 模型在 Apple 硬體上的性能,降低了對雲端資源的依賴。
ExecuTorch 生態系統在邊緣 AI 領域的採用率將會增加。
透過委託機制整合 Apple MLX 等專用硬體框架,ExecuTorch 展現了其為多樣化邊緣裝置和加速器提供可移植且高性能解決方案的能力。
針對 Apple 用戶,雲端訓練與本地推論的混合 AI 工作流程將變得更加普遍。
Apple Silicon 上改進的本地推論能力,特別是對於 LLM,允許用戶在雲端 GPU 上訓練大型模型(例如,使用 CUDA),然後在其本地 Mac 上高效部署和執行推論。

時間線

2020-11
Apple 宣布向 Apple Silicon (M1 晶片) 過渡。
2022-05
PyTorch v1.12 透過 Metal Performance Shaders (MPS) 後端引入 Mac 上的 GPU 加速訓練支援。
2023-12
Apple 釋出 MLX 機器學習框架。
2025-10
ExecuTorch 1.0 正式發布,擴展了對各種硬體後端的支援。
2026-04
ExecuTorch 成為 PyTorch 核心專案,強調供應商中立的治理和更廣泛的生態系統整合。
2026-05
PyTorch 推出 ExecuTorch MLX delegate,用於在 Apple Silicon 上優化 PyTorch 模型推論。
📰

AI 週報

閱讀本週精選 AI 大事摘要 →

👉相關動態

AI 策展新聞聚合。所有內容版權歸原始發布者所有。
原始來源: PyTorch Blog