executorch: 一个用于将 PyTorch 模型部署到移动和嵌入式硬件的统一端侧 AI 推理引擎

executorch: 一个用于将 PyTorch 模型部署到移动和嵌入式硬件的统一端侧 AI 推理引擎

它解决了什么问题

ExecuTorch 提供了一种统一的方式,将 PyTorch AI 模型部署到从智能手机到微控制器的各种端侧设备上。它消除了对手动 C++ 重写、中间格式转换(如 ONNX 或 TFLite)以及厂商锁定(vendor lock-in)的需求,允许开发者使用相同的 PyTorch APIs 从研究阶段过渡到生产阶段。

工作原理

ExecuTorch 使用提前编译(AOT)来为边缘端准备模型。该过程涉及三个主要步骤:

  1. Export: 使用 torch.export() 捕获 PyTorch 模型图。
  2. Compile: 模型被量化、优化并划分到特定的硬件后端,最终生成一个 .pte 文件。
  3. Execute: 轻量级的 C++ 运行时(基础占用仅 50KB)在设备上加载并运行 .pte 文件。

它使用标准化的 Core ATen 算子集和划分器(partitioners)将子图委派给 NPU 或 GPU 等专用硬件,并提供 CPU 回退机制。

适用人群

需要将 LLMs、视觉、语音和多模态模型部署到移动设备(Android/iOS)和嵌入式系统(Linux/Windows/MCU)的 AI 开发者和工程师,且涉及各种硬件后端(Apple, Qualcomm, ARM, MediaTek 等)。

亮点

  • Native PyTorch Export: 直接从 PyTorch 导出,无需中间格式。
  • Tiny Runtime: 极小的 50KB 基础占用,实现极高的可移植性。
  • Broad Hardware Support: 支持 12 个以上的开源加速后端,包括 CoreML、Vulkan 和 XNNPACK。
  • Production-Proven: 为 Meta 的 Instagram、WhatsApp 和 Quest 3 提供端侧 AI 支持。
  • Advanced Deployment Tools: 内置对量化(通过 torchao)、内存规划和动态形状(dynamic shapes)的支持。

Sources