跳轉到主要內容
部落格

ExecuTorch Alpha:與我們的社群和合作夥伴將 LLM 和 AI 帶到邊緣

作者: 2024年4月30日2024年11月13日暫無評論

我們很高興地宣佈釋出 ExecuTorch Alpha,該版本專注於將大型語言模型 (LLM) 和大型機器學習模型部署到邊緣裝置,穩定 API 介面,並改進我們的安裝流程。在與 Arm、Apple 和 Qualcomm Technologies, Inc. 的合作伙伴合作下,自 0.1(預覽版)釋出以來,這幾個月一直令人興奮。

在這篇文章中,我們將討論我們對 Meta 的 Llama 2 的全面支援,對 Meta 的 Llama 3 的早期支援,ExecuTorch 中廣泛的模型支援,並強調我們的合作伙伴為推動我們前進所做的重要工作。

移動裝置上的大型語言模型

移動裝置在計算、記憶體和功耗方面受到高度限制。為了將 LLM 帶到這些裝置上,我們大量利用量化和其他技術來適當地封裝這些模型。

ExecuTorch Alpha 支援使用 GPTQ 進行 4 位訓練後量化。透過在 XNNPack 中實現動態形狀支援和新資料型別,我們提供了廣泛的 CPU 裝置支援。我們還在匯出和降級方面進行了重大改進,減少了記憶體開銷並提高了執行時效能。這使得 Llama 2 7B 能夠在 iPhone 15 Pro、iPhone 15 Pro Max、三星 Galaxy S22、S23 和 S24 手機以及其他邊緣裝置上高效執行。早期支援 Llama 3 8B 也包括在內。我們一直在改進各種邊緣裝置上的 token/秒效能,您可以訪問 GitHub 檢視 最新的效能資料

我們正在與 Apple、Arm 和 Qualcomm Technologies 的合作伙伴密切合作,分別透過 Core ML、MPS、TOSA 和 Qualcomm AI Stack 後端將任務委託給 GPU 和 NPU 以提高效能。

支援的模型

我們仍然致力於透過 ExecuTorch 支援不斷擴充套件的模型列表。自預覽版以來,我們已顯著擴充套件了我們測試過的 NLP、視覺和語音模型,詳細資訊請參見 我們的釋出說明。儘管對裝置端 LLM 的支援尚處於早期階段,但我們預計大多數傳統模型將開箱即用無縫執行,並透過委託給 XNNPACK、Core ML、MPS、TOSA 和 HTP 來提高效能。如果您遇到任何問題,請隨時向我們 提交 GitHub issue

生產力

為特定平臺部署經過最佳化的高效能模型通常需要對裝置端執行時資料進行深入視覺化,以確定在原始 PyTorch 模型中進行哪些更改。藉助 ExecuTorch Alpha,我們提供了一個強大的 SDK,在從模型開發到部署的整個過程中提供可觀測性,包括委託和硬體級別的資訊。

ExecuTorch SDK 得到了增強,包含了更好的除錯和分析工具。由於 ExecuTorch 構建在 PyTorch 之上,除錯功能包括能夠將運算子節點映射回原始 Python 原始碼,從而更有效地解決異常和最佳化委託和非委託模型例項的效能。您可以在 此處 瞭解有關 ExecuTorch SDK 的更多資訊。

合作伙伴關係

ExecuTorch 只有透過與 Arm、Apple 和 Qualcomm Technologies 的強大合作才成為可能。隨著我們支援 PyTorch 邊緣裝置上的 LLM 和大型 AI 模型,ExecuTorch 初次釋出的合作仍在繼續。正如我們在 ExecuTorch Alpha 的早期工作中看到的那樣,這些更大的模型帶來了獨特的挑戰,我們很高興能公開開發。

我們還要強調與 Google 在 XNNPACK 方面的良好合作,以提高 CPU 效能。團隊繼續合作,將我們的更改上游化,並在 TensorFlow 和 PyTorch 團隊之間進行合作,以確保我們都能以 SOTA 效能支援邊緣裝置上的生成式 AI 模型。

最後,我們的硬體合作伙伴 MediaTek 一直致力於在他們的 SoC 上透過 ExecuTorch 啟用 Llama 模型系列。我們將來會分享更多資訊。

Alpha 和生產用途

透過我們的 Alpha 版本,我們已對 ExecuTorch 進行了生產測試。Meta 正在將 ExecuTorch 用於 Meta Quest 3 上的手部追蹤以及 Ray-Ban Meta 智慧眼鏡上的各種模型。此外,我們已開始在 Instagram 上推出 ExecuTorch,並正在與其他 Meta 產品整合。我們很高興看到 ExecuTorch 如何用於其他邊緣體驗。

社群

我們很高興看到社群中各種採用或貢獻 ExecuTorch 的努力。例如,Unity 最近在遊戲開發者大會 (GDC) 上 分享了他們的工作,內容是如何利用 ExecuTorch 和 Edge IR 透過其神經網路推理庫 Sentis 執行 PyTorch 模型。利用 ExecuTorch 的可駭客性和可擴充套件性,Unity 推出了自己的自定義後端,將 ExecuTorch 的 Edge Dialect IR 序列化為 Sentis 的原生序列化格式,使開發人員能夠輕鬆地在他們的遊戲和應用程式中使用 PyTorch 模型。

我們一直在公開構建和創新 ExecuTorch。我們的目標是賦能社群,使其能夠輕鬆高效地在邊緣裝置上部署任何機器學習模型。無論您是業餘愛好者還是日常工作,我們都希望您能 加入我們,將您的機器學習模型帶到邊緣。我們正在尋求您的幫助,以

  1. 使用 ExecuTorch 在各種部署目標上 本地執行您的 LLM 模型 並分享您的反饋
  2. 擴充套件我們的支援模型,包括錯誤報告
  3. 擴充套件我們的量化方案
  4. 幫助我們構建 GPU 和 NPU 的委託

在此也向所有 ExecuTorch 的個人貢獻者和早期採用者表示衷心的感謝。我們迫不及待地希望更多的人 加入我們