- 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 页面上报告任何问题。