executorch: 一個用於將 PyTorch 模型部署到行動裝置與嵌入式硬體的統一裝置端 AI 推論引擎
executorch: 一個用於將 PyTorch 模型部署到行動裝置與嵌入式硬體的統一裝置端 AI 推論引擎
它解決了什麼問題
ExecuTorch 提供了一種統一的方式,將 PyTorch AI 模型部署到從智慧型手機到微控制器等各種裝置端。它消除了手動重寫 C++、中間格式轉換(例如 ONNX 或 TFLite)以及供應商鎖定的需求,讓開發者能夠使用相同的 PyTorch API 從研究階段過渡到生產階段。
運作原理
ExecuTorch 使用提前編譯 (AOT) 來為邊緣端準備模型。該過程包含三個主要步驟:
- 匯出 (Export):使用
torch.export()擷取 PyTorch 模型圖。 - 編譯 (Compile):模型會經過量化、優化並分割到特定的硬體後端,最終生成一個
.pte檔案。 - 執行 (Execute):輕量級的 C++ 執行階段(基礎佔用空間僅 50KB)會在裝置端載入並執行
.pte檔案。
它使用標準化的 Core ATen 算子集和分割器,將子圖委派給 NPU 或 GPU 等專用硬體,並具備 CPU 回退機制。
對象是誰
需要將 LLM、視覺、語音和多模態模型部署到行動裝置 (Android/iOS) 和嵌入式系統 (Linux/Windows/MCU) 的 AI 開發者與工程師,且涵蓋各種硬體後端 (Apple, Qualcomm, ARM, MediaTek, 等)。
重點特色
- 原生 PyTorch 匯出:直接從 PyTorch 匯出,無需中間格式。
- 極小執行階段:極致的可攜性,基礎佔用空間僅 50KB。
- 廣泛的硬體支援:超過 12 個開源加速後端,包括 CoreML、Vulkan 和 XNNPACK。
- 生產環境驗證:為 Meta 的 Instagram、WhatsApp 和 Quest 3 提供裝置端 AI 功能。
- 進階部署工具:內建對量化 (透過 torchao)、記憶體規劃和動態形狀的支援。
Sources
- undefinedpytorch/executorch