- 随着 v0.4 版本的发布,ExecuTorch 已正式进入 Beta 阶段,提供了稳定的 API 和运行时,并具备广泛的内核覆盖。
- ExecuTorch 是 Llama 3.2 1B/3B 模型的推荐端侧推理引擎,为原始模型和量化模型提供了更佳的性能与内存效率。
- ExecuTorch 的采用率和生态系统规模显著增长。接下来的重点是提升非 CPU 后端的可靠性、性能及覆盖范围。
当前的端侧 AI 市场
端侧 AI 市场正在迅速扩张,彻底改变了我们与技术的交互方式。它开启了全新的体验,实现了个性化并降低了延迟。传统上,计算机视觉和语音识别是端侧 AI 的主要应用场景,特别是在物联网、工业应用和移动设备中。然而,大语言模型(LLM)的出现使生成式 AI 成为 AI 领域增长最快的行业,随之凸显了端侧生成式 AI 的重要性。IDC 预测,到 2028 年,全球具备生成式 AI 能力的智能手机出货量将接近 10 亿部。
LLM 不仅在变小,而且变得更加强大。这催生了一类利用多个模型进行智能代理和精简工作流的新型应用程序。社区正在迅速采用这些新模型并做出贡献,通常在模型发布后的几小时内就会出现量化版本。几家领先的科技公司正在加大对小型 LLM 的投入,甚至在设备上大规模部署低秩自适应(LoRA)以提升用户体验。
然而,这种快速发展也付出了代价。端侧 AI 生态的碎片化给从模型创作到边缘部署的过程带来了复杂性和低效。这就是 PyTorch 的 ExecuTorch 发挥作用的地方——我们的 Beta 版本公告标志着在解决这些挑战并赋能开发者创建创新型 AI 应用方面迈出了重要一步。
今日新功能
距离我们首次开源 ExecuTorch 已经过去整整一年,距离 Alpha 版本发布 也已过去六个月。今天,我们很高兴地宣布三项主要进展:
1. Beta 版本。自 v0.4 版本起,ExecuTorch 已进入 Beta 阶段!它目前已被广泛采用,并运行在 Meta 的各种生产环境中。通过此采用流程,我们识别并解决了功能缺失,提高了稳定性,并扩展了内核和加速器的覆盖范围。这些改进使我们有信心将 ExecuTorch 从 Alpha 提升至 Beta 状态。我们欢迎社区在自己的生产环境中采用它。以下是三项具体的改进:
- 开发者可以编写应用程序代码并将最新的 ExecuTorch 作为依赖项,并在需要时通过清晰的 API 契约进行更新。这得益于我们所做的 API 稳定化工作,以及我们明确的 API 生命周期和向后兼容性政策。
- ExecuTorch 在 CPU 上的运行达到了必要的性能、可移植性和覆盖范围。特别是,我们已实现了超过 85% 的核心 ATen 算子,作为我们的便携式 CPU 内核库的一部分,确保在大多数情况下模型能在 ExecuTorch 上开箱即用,使缺失算子成为特例而非惯例。此外,我们集成并全面测试了我们的 XNNPACK 代理,以在各种 CPU 架构上实现高性能。它目前已被用于多个生产案例中。
- 除了用于更大可移植性的底层 ExecuTorch 组件外,我们还构建了扩展和更高级别的抽象,以支持更常见的用例,例如支持端侧调试和分析的开发者工具,以及简化移动设备部署的 Module.h 扩展。
2. 端侧大语言模型 (LLM)。 社区对在边缘设备上部署 LLM 的兴趣日益浓厚,因为它提供了更好的隐私和离线功能。然而,这些模型相当庞大,突破了现有能力的极限。幸运的是,ExecuTorch 可以支持这些模型,我们通过大量的优化增强了整个框架。
- ExecuTorch 是目前在端侧运行最新 Llama 模型并获得出色性能的推荐框架。Llama 3.2 1B/3B 模型非常适合移动端部署,尤其是 Meta 官方发布的量化 1B/3B 模型,它们在性能、准确性和体积之间取得了极佳的平衡。在 Android OnePlus 12 设备上进行基准测试时,部署 Llama 3.2 1B/3B 量化模型后,解码延迟平均提升了 2.5 倍,预填充(prefill)延迟平均提升了 4.2 倍,同时模型体积减小了 56%,内存占用平均降低了 41%(我们也在三星 S24+(1B 和 3B)以及三星 S22(1B)上验证了类似的相对性能)。以 Llama 3.2 1B 量化模型为例,利用 XNNPACK 和 Kleidi 库中的最新 CPU 内核,ExecuTorch 在 OnePlus 12 上能够达到 50.2 tokens/s 的解码速度和 260 tokens/s 的预填充速度。这些量化模型使开发者能够在内存和功耗受限的设备中集成 LLM,同时保持质量和安全性。
- ExecuTorch 的价值主张之一是能够无缝利用移动设备上的加速器。事实上,ExecuTorch 还展示了通过 Apple MPS 后端、高通 AI 加速器 和 联发科 AI 加速器 运行 Llama 以实现更高性能。
- 社区和行业对多模态及超越文本的 LLM 兴趣日益增长,Meta 的 Llama 3.2 11B/90B 视觉模型 以及 Llava 等开源模型便是例证。到目前为止,我们已经通过 ExecuTorch 在手机上启用了 Llava 1.5 7B 模型,并进行了多项优化,显著将运行时内存从 11GB 降低到了 5GB。
3. 生态系统与社区采纳
随着 ExecuTorch 进入 Beta 阶段,它已经足够成熟,可以应用于生产环境。它正越来越多地被用于 Meta 的各种产品表面。例如,ExecuTorch 已经在 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 代理利用 ExecuTorch 在设备上运行 EfficientSAM,从而从照片中去除多余的物体。
迈向全面可用(GA)
自 ExecuTorch Alpha 原版发布以来,我们看到社区对在各种生产环境中使用 ExecuTorch 的兴趣日益浓厚。为此,我们在 API 的稳定化和成熟化方面取得了巨大进展,并对社区支持、采用和对 ExecuTorch 的贡献进行了重大投入。随着我们临近 GA 阶段,我们将努力投入到以下领域:
- 非 CPU 后端:将非 CPU 后端提升到更高的稳健性、覆盖范围和性能是我们接下来的目标。从最初发布之日起,我们就与 Apple(针对 Core ML 和 MPS)、Arm(针对 EthosU NPU)和高通(针对 Hexagon NPU)在加速器与 ExecuTorch 的集成方面展开了合作,此后我们将合作伙伴关系扩展到了联发科(NPU)和 Cadence(XTensa DSP)。我们还在内部构建 Vulkan GPU 集成。在功能覆盖方面,我们已与合作伙伴成功实现了核心功能,确保了与我们开发者工具的无缝集成,并展示了许多加速器成功集成 LLM 的案例。我们的下一步重大举措是在真实世界的生产用例中彻底验证系统的性能和可靠性。这一阶段将帮助我们微调用户体验,并确保平稳运行所需的稳定性。
- 基准测试基础设施:作为我们持续测试工作的一部分,我们开发了一套基准测试基础设施以及一个公开仪表板,以展示我们在端侧模型推理基准测试方面的进展。这使我们能够透明地跟踪并展示跨各种后端的模型覆盖情况,让我们的社区实时了解我们实现目标的进展。
我们很高兴能与您分享这些进展,并期待与我们的合作伙伴和社区继续携手改进!我们欢迎社区做出贡献,帮助我们将 ExecuTorch 打造成在设备上部署 AI 和 LLM 模型的首选。我们诚邀您开始在您的端侧项目中使用 ExecuTorch,或者最好能考虑为它做出贡献。您也可以在我们的 GitHub 页面上报告任何问题。