- 随着v0.4的发布,ExecuTorch已达到Beta状态,提供了稳定的API和运行时,以及广泛的内核覆盖。
- ExecuTorch是Llama 3.2 1B/3B模型推荐的设备端推理引擎,为原始模型和量化模型提供增强的性能和内存效率。
- ExecuTorch的采用率和生态系统增长显著,下一步的重点是提高非CPU后端系统的可靠性、性能和覆盖范围。
当前设备端AI市场
设备端AI市场一直在迅速扩张,并正在彻底改变我们与技术互动的方式。它正在开启新的体验,实现个性化,并减少延迟。传统上,计算机视觉和语音识别一直是设备端AI的主要用例,特别是在物联网、工业应用和移动设备中。然而,大型语言模型(LLM)的出现使生成式AI成为AI增长最快的领域,从而突出了设备端生成式AI的重要性。IDC预测,到2028年,全球将有近10亿部支持生成式AI的智能手机出货。
LLM不仅变得更小,而且更强大。这导致了一类新应用程序的诞生,这些应用程序利用多个模型来实现智能代理和简化的工作流程。社区正在迅速采用并为这些新模型做出贡献,量化版本在模型发布后的几小时内就已创建。几家领先的科技公司正在小型LLM上投入巨资,甚至在设备端大规模部署低秩适应(LoRA),以改变用户体验。
然而,这种快速进展是有代价的。我们设备端AI环境的碎片化在从模型编写到边缘部署的过程中带来了复杂性和低效率。PyTorch的ExecuTorch应运而生——我们发布Beta版标志着解决这些挑战和赋能开发者创建创新AI驱动应用程序的重要里程碑。
今日新进展
自我们首次开源ExecuTorch以来恰好一年,自Alpha版发布以来六个月,今天,我们很高兴地宣布三项主要进展:
1. Beta版。ExecuTorch已从v0.4开始达到Beta状态!它目前在Meta的生产环境中被广泛采用和使用。通过这一采用过程,我们识别并解决了功能差距,提高了稳定性,并扩大了内核和加速器的覆盖范围。这些改进使我们有信心将ExecuTorch从Alpha版提升到Beta版状态,我们很高兴欢迎社区在自己的生产环境中采用它。以下是三项具体增强:
- 开发者可以编写应用程序代码并将最新的ExecuTorch作为依赖项,在需要时通过清晰的API契约进行更新。这得益于我们的API稳定化工作,以及我们明确的API生命周期和向后兼容策略。
- 在CPU上运行ExecuTorch已达到所需的性能、可移植性和覆盖范围。特别是,我们已将超过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倍,预填充延迟提高了4.2倍,而模型大小平均减小了56%,内存使用量平均减少了41%(我们还在三星S24+上验证了1B和3B的类似相对性能,以及三星S22上1B的类似相对性能)。例如,对于Llama 3.2 1B量化模型,ExecuTorch能够在OnePlus 12上实现50.2 tokens/s的解码速度和260 tokens/s的预填充速度,使用了XNNPACK和Kleidi库的最新CPU内核。这些量化模型允许开发者将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已经为Meta的Ray-Ban Meta智能眼镜和Quest 3 VR头显以及Instagram和WhatsApp中的各种ML推理用例提供支持。
我们还与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)和Qualcomm(针对Hexagon NPU)合作,将加速器与ExecuTorch集成,此后我们将合作伙伴关系扩展到MediaTek(NPU)和Cadence(XTensa DSP)。我们还在内部构建Vulkan GPU集成。在功能覆盖方面,我们已成功与合作伙伴实现了核心功能,确保与我们的开发者工具无缝集成,并展示了与许多加速器成功的LLM集成。我们的下一个重要步骤是彻底验证系统在真实世界生产用例中的性能和可靠性。此阶段将帮助我们微调体验并确保平稳运行所需的稳定性。
- 基准测试基础设施:作为我们持续测试工作的一部分,我们开发了一个基准测试基础设施以及一个公共仪表板,以展示我们在设备端模型推理基准测试方面的进展。这使我们能够透明地跟踪和显示各种后端上的模型覆盖率,为我们的社区提供我们实现目标的实时洞察。
我们很高兴与您分享这些进展,并期待与我们的合作伙伴和社区继续合作,持续改进!我们欢迎社区贡献,帮助我们将ExecuTorch打造成为在设备上部署AI和LLM模型的明确选择。我们邀请您开始在您的设备端项目中使用ExecuTorch,甚至更好地考虑为它做出贡献。您也可以在我们的GitHub页面上报告任何问题。