AI Edge Torch: 在移动设备上实现高性能的 PyTorch 模型推理
作者 / 主任工程师 Cormac Brick,软件工程师 Advait Jain,软件工程师 Haoliang Zhang
这一新产品现已作为 Google AI Edge 的一部分提供。Google AI Edge 是一套易于使用的工具,包含可直接使用的机器学习 (ML) 任务、构建机器学习流水线的框架,以及运行流行的大语言模型 (LLM) 和自定义模型的能力——所有这些都可在设备上运行。本文是 Google AI Edge 博客连载中的第一篇,用于帮助开发者们构建 AI 功能,并轻松地将其部署至多个平台。
Google AI Edge http://ai.google.dev/edge
今天发布的 AI Edge Torch Beta 版本包含以下特性:
直接集成 PyTorch 出色的 CPU 性能和初步 GPU 支持 在 torchvision、timm、torchaudio 和 HuggingFace 里的 70 多个模型上得到验证 支持超过 70% 的 PyTorch core_aten 算子 兼容现有的 TFLite 运行时,无需更改部署代码 支持在工作流的多个阶段进行模型探索器 (Model Explorer) 可视化
AI Edge Torch
https://github.com/google-ai-edge/ai-edge-torch
模型探索器
https://ai.google.dev/edge/model-explorer
以 PyTorch 为中心的简洁体验
Google AI Edge Torch 从一开始就致力于为 PyTorch 社区提供卓越的开发体验,API 使用起来感觉非常原生,并提供简便的模型转换路径。
import torchvisionimport ai_edge_torch# Initialize modelresnet18 = torchvision.models.resnet18().eval()# Convertsample_input = (torch.randn(4, 3, 224, 224),)edge_model = ai_edge_torch.convert(resnet18, sample_input)# Inference in Pythonoutput = edge_model(*sample_input)# Export to a TfLite model for on-device deploymentedge_model.export('resnet.tflite'))
提交反馈 https://github.com/google-ai-edge/ai-edge-torch/issues/new/choose
模型覆盖和性能
在此版本发布之前,许多开发者使用社区提供的转换方法,如 ONNX2TF,在 TFLite 中运行 PyTorch 模型。我们开发 AI Edge Torch 的目标是减少开发过程中的阻力,提供出色的模型覆盖率,并继续完成我们的使命: 在 Android 设备上提供最佳的性能。
在覆盖率方面,我们的测试表明,与现有工作流程 (尤其是 ONNX2TF) 相比,AI Edge Torch 在给定的模型集合上的覆盖率有显著的提高。
在性能方面,我们的测试显示 AI Edge Torch 与 ONNX2TF 的基准性能表现相当,比 ONNX 运行时相比则有着更好的性能。
下图显示了在 ONNX 覆盖的模型子集上的每个模型的详细性能:
早期体验用户和合作伙伴
在过去的几个月中,我们与参与早期体验的合作伙伴们密切合作,包括 Shopify、Adobe 和 Niantic,以改进我们的 PyTorch 支持。ai_edge_torch 已经被 Shopify 团队用来在设备上去除产品图像的背景,这个功能会出现在不久后发布的 Shopify 应用中。
芯片合作伙伴和代理
我们也很荣幸地和高通共同宣布新的 TensorFlow Lite 代理,现已开放供所有开发者使用。TFLite 代理是附加的软件模块,可提升在 GPU 和硬件加速器上的执行速度。这个新的 QNN 代理支持我们在 PyTorch Beta 测试集中用到的大多数模型,并提供对高通芯片的广泛支持。通过使用高通的 DSP 和神经处理单元,相比仅使用 CPU 和 GPU 的场景,能明显地提升运行速度 (相较 CPU 平均提升 20 倍,GPU 平均提升 5 倍)。为了方便测试,高通最近还发布了新的 AI Hub。高通 AI Hub 是一个云服务,可以让开发者在一系列 Android 设备上对 TFLite 模型进行测试,并在使用 QNN 代理的设备上提供性能增益的可见性。
新的 TensorFlow Lite 代理
https://softwarecenter.qualcomm.com/api/download/software/qualcomm_neural_processing_sdk/v2.22.0.240425.zip
高通 AI Hub
https://aihub.qualcomm.com/
下一步
AI Edge Torch 生成式 API https://github.com/google-ai-edge/ai-edge-torch/tree/main/ai_edge_torch/generative
我们要感谢所有早期体验用户,正是他们提供的宝贵反馈让我们得以及早发现错误,并确保开发者们获得顺畅的体验。我们还要感谢硬件合作伙伴以及 XNNPACK 生态系统的贡献者,是他们的帮助让我们在如此多样的设备上都能获得优异的性能表现。同时,我们也要感谢广大的 PyTorch 社区在这一路提供的指导和支持。