- ExecuTorch 隨著 v0.4 版本的釋出已達到 Beta 階段,提供了穩定的 API 和執行時,以及廣泛的核心覆蓋。
- ExecuTorch 是 Llama 3.2 1B/3B 模型的推薦裝置端推理引擎,為原始模型和量化模型提供增強的效能和記憶體效率。
- ExecuTorch 的採用率和生態系統增長顯著,下一步的重點是提高非 CPU 後端的可靠性、效能和覆蓋範圍。
當前的裝置端AI市場
裝置端人工智慧市場正在迅速擴張,並正在徹底改變我們與技術互動的方式。它正在解鎖新的體驗,實現個性化,並減少延遲。傳統上,計算機視覺和語音識別一直是裝置端人工智慧的主要用例,尤其是在物聯網、工業應用和移動裝置中。然而,大型語言模型(LLMs)的出現使生成式人工智慧成為人工智慧中增長最快的領域,隨後凸顯了裝置端生成式人工智慧的重要性。IDC 預測,到 2028 年,全球將出貨近 10 億部具備生成式人工智慧功能的智慧手機。
LLM 不僅變得更小,而且更強大。這催生了一類新的應用程式,它們利用多個模型來實現智慧代理和簡化的工作流程。社群正在迅速採用併為這些新模型做出貢獻,量化版本在模型釋出後數小時內即可建立。幾家領先的科技公司正在大力投資小型 LLM,甚至在裝置端大規模部署低秩適應(LoRA),以改變使用者體驗。
然而,這種快速進步是有代價的。裝置端人工智慧格局的碎片化在從模型編寫到邊緣部署的過程中造成了複雜性和低效率。這正是 PyTorch 的 ExecuTorch 的用武之地——我們的 Beta 公告標誌著解決這些挑戰和賦能開發者建立創新、人工智慧驅動的應用程式方面的一個重要里程碑。
今日新進展
距離我們首次開源 ExecuTorch 已經整整一年,距離 Alpha 版本釋出 也過去了六個月。今天,我們很高興地宣佈三項主要進展。
1. Beta 版本。ExecuTorch 已從 v0.4 版本開始達到 Beta 階段!它目前已在 Meta 的生產環境中廣泛採用和使用。透過這一採用過程,我們識別並解決了功能缺失,提高了穩定性,並擴充套件了核心和加速器的覆蓋範圍。這些改進使我們有信心將 ExecuTorch 從 Alpha 提升到 Beta 階段,我們很高興地歡迎社群在自己的生產設定中採用它。以下是三項具體增強:
- 開發者可以編寫應用程式程式碼並將最新版本的 ExecuTorch 作為依賴項,在需要時透過清晰的 API 契約進行更新。這得益於我們 API 穩定化的努力,以及我們明確的 API 生命週期和向後相容策略。
- ExecuTorch 在 CPU 上的執行已達到所需的效能、可移植性和覆蓋範圍。特別是,我們已將超過 85% 的所有核心 ATen 運算元作為可移植 CPU 核心庫的一部分實現,以確保在大多數情況下,模型在 ExecuTorch 上執行良好,使缺失的運算元成為例外而非常態。此外,我們集成了並廣泛測試了我們的XNNPACK 委託,以在各種 CPU 架構上實現高效能。它目前已在許多生產案例中使用。
- 除了用於更高可移植性的底層 ExecuTorch 元件外,我們還構建了擴充套件和更高級別的抽象,以支援更常見的用例,例如支援裝置端除錯和分析的開發者工具,以及簡化移動裝置部署的Module.h 擴充套件。
2. 裝置端大型語言模型(LLMs)。社群對在邊緣裝置上部署大型語言模型(LLMs)的興趣日益增長,因為它提供了改進的隱私和離線能力。然而,這些模型相當龐大,突破了可能性的極限。幸運的是,ExecuTorch 可以支援這些模型,我們已經透過許多最佳化增強了整個框架。
- ExecuTorch 是推薦的框架,用於在裝置端執行最新的 Llama 模型,並且效能卓越。Llama 3.2 1B/3B 模型非常適合移動部署,尤其是 Meta 官方釋出的量化 1B/3B 模型,它在效能、準確性和尺寸之間取得了很好的平衡。在部署 Llama 3.2 1B/3B 量化模型時,在 Android OnePlus 12 裝置上進行基準測試時,解碼延遲平均提高了 2.5 倍,預填充延遲平均提高了 4.2 倍,而模型尺寸減少了 56%,記憶體使用量平均減少了 41%(我們還在三星 S24+ 上驗證了 1B 和 3B 的類似相對效能,以及在三星 S22 上驗證了 1B 的類似相對效能)。例如,對於 Llama 3.2 1B 量化模型,ExecuTorch 在 OnePlus 12 上使用最新的 XNNPACK 和 Kleidi 庫中的 CPU 核心,能夠實現每秒 50.2 個令牌的解碼速度和每秒 260 個令牌的預填充速度。這些量化模型允許開發人員將 LLM 整合到記憶體和功耗受限的裝置中,同時仍保持質量和安全性。
- ExecuTorch 的價值主張之一是能夠無縫地使用移動裝置上的加速器。事實上,ExecuTorch 也展示了透過 Apple MPS 後端、高通 AI 加速器 和 聯發科 AI 加速器 執行 Llama,實現了更強大的效能。
- Meta 的 Llama 3.2 11B/90B 視覺模型 和 Llava 等開源模型表明,社群和行業對多模態和超越純文字的 LLM 越來越感興趣。到目前為止,我們已經 透過 ExecuTorch 在手機上啟用了 Llava 1.5 7B 模型,並進行了許多最佳化,顯著地將執行時記憶體從 11GB 減少到 5GB。
3. 生態系統和社群採用
現在 ExecuTorch 處於 Beta 階段,它已經足夠成熟,可以在生產中使用。它在 Meta 的各種產品介面中越來越多地被使用。例如,ExecuTorch 已經為 Meta 的 Ray-Ban Meta 智慧眼鏡和 Quest 3 VR 頭顯以及 Instagram 和 WhatsApp 的各種機器學習推理用例提供支援。
我們還與 Hugging Face 合作,為使用 torch.export 匯出的模型提供原生 ExecuTorch 支援。這種合作確保匯出的工件可以直接在各種移動和邊緣裝置上高效地進行降級和執行。gemma-2b 和 phi3-mini 等模型已受支援,更多基礎模型的支援正在進行中。
憑藉穩定的 API 和生成式 AI 支援,我們很高興能與社群一起構建和發展 ExecuTorch。裝置端 AI 社群正在迅速發展,並尋找在各個領域採用 ExecuTorch 的方法。例如,ExecuTorch 正被 Digica 構建的移動應用程式用於簡化醫院的庫存管理。另一個例子是,Software Mansion 開發了一款應用程式 EraserAI,透過 Core ML 委託在裝置端執行 EfficientSAM,以從照片中移除不需要的物體。
邁向通用可用性 (GA)
自 ExecuTorch alpha 版本釋出以來,我們發現社群對在各種生產環境中使用 ExecuTorch 的興趣日益濃厚。為此,我們在更穩定和成熟的 API 方面取得了巨大進展,並對 ExecuTorch 的社群支援、採用和貢獻進行了大量投入。隨著我們越來越接近 GA,我們正在以下領域投入精力:
- 非 CPU 後端:使非 CPU 後端達到更高的魯棒性、覆蓋率和效能是我們的下一個目標。從我們最初發布的第一天起,我們就與 Apple(Core ML 和 MPS)、Arm(EthosU NPU)和 Qualcomm(Hexagon NPU)合作進行 ExecuTorch 的加速器整合,此後我們將合作伙伴擴充套件到 MediaTek(NPU)和 Cadence(XTensa DSP)。我們還在內部構建 Vulkan GPU 整合。在功能覆蓋方面,我們已成功與合作伙伴實現了核心功能,確保了與我們的開發者工具的無縫整合,並展示了與許多加速器的成功 LLM 整合。我們的下一步是全面驗證系統在真實世界生產用例中的效能和可靠性。這個階段將幫助我們微調體驗並確保平穩執行所需的穩定性。
- 基準測試基礎設施:作為我們持續測試工作的一部分,我們開發了基準測試基礎設施以及一個公共儀表板,以展示我們在裝置端模型推理基準測試方面的進展。這使我們能夠透明地跟蹤和顯示各種後端上的模型覆蓋範圍,讓社群即時瞭解我們實現目標的進展。
我們很高興與您分享這些進展,並期待與我們的合作伙伴和社群繼續合作,不斷改進!我們歡迎社群貢獻,幫助我們將 ExecuTorch 打造成為在裝置上部署 AI 和 LLM 模型的明確選擇。我們邀請您在您的裝置端專案中開始使用 ExecuTorch,或者更好的是考慮貢獻給它。您也可以在我們的 GitHub 頁面上報告任何問題。