0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Google AI Edge Torch的特性详解

谷歌开发者 来源:谷歌开发者 2024-11-06 10:48 次阅读

作者 / 主任工程师 Cormac Brick,软件工程师 Advait Jain,软件工程师 Haoliang Zhang

我们很高兴地发布 Google AI Edge Torch,可将 PyTorch 编写的模型直接转换成 TFLite 格式 (.tflite),且有着优异的模型覆盖率和 CPU 性能。TFLite 已经支持 Jax、Keras 和 TensorFlow 编写的模型,现在我们加入了对 PyTorch 的支持,进一步丰富了框架选择。

这一新产品现已作为 Google AI Edge 的一部分提供。Google AI Edge 是一套易于使用的工具,包含可直接使用的机器学习 (ML) 任务、构建机器学习流水线的框架,以及运行流行的大语言模型 (LLM) 和自定义模型的能力——所有这些都可在设备上运行。本文是 Google AI Edge 博客连载中的第一篇,用于帮助开发者们构建 AI 功能,并轻松地将其部署至多个平台。

今天发布的 AI Edge Torch Beta 版本包含以下特性:

直接集成 PyTorch

出色的 CPU 性能和初步 GPU 支持

在 torchvision、timm、torchaudio 和 HuggingFace 里的 70 多个模型上得到验证

支持超过 70% 的 PyTorch core_aten 算子

兼容现有的 TFLite 运行时,无需更改部署代码

支持在工作流的多个阶段进行模型探索器 (Model Explorer) 可视化

以 PyTorch 为中心的简洁体验

Google AI Edge Torch 从一开始就致力于为 PyTorch 社区提供卓越的开发体验,API 使用起来感觉非常原生,并提供简便的模型转换路径。

import torchvision
import ai_edge_torch


# Initialize model
resnet18 = torchvision.models.resnet18().eval()


# Convert
sample_input = (torch.randn(4, 3, 224, 224),)
edge_model = ai_edge_torch.convert(resnet18, sample_input)


# Inference in Python
output = edge_model(*sample_input)


# Export to a TfLite model for on-device deployment
edge_model.export('resnet.tflite'))

在底层,ai_edge_torch.convert()使用 torch.export 集成了 TorchDynamo——在 PyTorch 2.x 中,这个方法用于将 PyTorch 模型导出为标准化的模型形式,从而在不同环境中运行。我们目前的实现支持超过 70% 的 core_aten 算子,这个比例会在构建 ai_edge_torch 1.0 版本的过程中大幅增加。我们还提供了 PT2E 量化的示例,这是 PyTorch2 原生的量化方法,以简化量化工作的流程。我们很期待听到来自 PyTorch 社区的反馈,以进一步改善开发者体验,从而帮助大家更好地把用 PyTorch 打造的新颖体验部署至更多样的设备中。

模型覆盖和性能

在此版本发布之前,许多开发者使用社区提供的转换方法,如 ONNX2TF,在 TFLite 中运行 PyTorch 模型。我们开发 AI Edge Torch 的目标是减少开发过程中的阻力,提供出色的模型覆盖率,并继续完成我们的使命: 在 Android 设备上提供最佳的性能。

在覆盖率方面,我们的测试表明,与现有工作流程 (尤其是 ONNX2TF) 相比,AI Edge Torch 在给定的模型集合上的覆盖率有显著的提高。

47a0fd8e-90a0-11ef-a511-92fbcf53809c.png

在性能方面,我们的测试显示 AI Edge Torch 与 ONNX2TF 的基准性能表现相当,比 ONNX 运行时相比则有着更好的性能。

47c39178-90a0-11ef-a511-92fbcf53809c.png

下图显示了在 ONNX 覆盖的模型子集上的每个模型的详细性能:

47e68552-90a0-11ef-a511-92fbcf53809c.png

△ 相对于 ONNX 的每个网络的推理延迟。以 Pixel 8 为测试设备,使用 fp32 精度。XNNPACK 固定为 4 个线程以确保复现性,经过 20 次迭代预热后取 100 次运行的均值

早期体验用户和合作伙伴

在过去的几个月中,我们与参与早期体验的合作伙伴们密切合作,包括 Shopify、Adobe 和 Niantic,以改进我们的 PyTorch 支持。ai_edge_torch 已经被 Shopify 团队用来在设备上去除产品图像的背景,这个功能会出现在不久后发布的 Shopify 应用中。

芯片合作伙伴和代理

我们还和 Arm、Google Tensor G3、联发科技、高通三星 System LSI 这些合作伙伴们一起,提供跨 CPU、GPU 和加速器的硬件支持。我们通过这些合作提高了产品的性能和覆盖率,并在加速器代理上验证了由 PyTorch 生成的 TFLite 文件。

我们也很荣幸地和高通共同宣布新的 TensorFlow Lite 代理,现已开放供所有开发者使用。TFLite 代理是附加的软件模块,可提升在 GPU 和硬件加速器上的执行速度。这个新的 QNN 代理支持我们在 PyTorch Beta 测试集中用到的大多数模型,并提供对高通芯片的广泛支持。通过使用高通的 DSP 和神经处理单元,相比仅使用 CPU 和 GPU 的场景,能明显地提升运行速度 (相较 CPU 平均提升 20 倍,GPU 平均提升 5 倍)。为了方便测试,高通最近还发布了新的 AI Hub。高通 AI Hub 是一个云服务,可以让开发者在一系列 Android 设备上对 TFLite 模型进行测试,并在使用 QNN 代理的设备上提供性能增益的可见性。

下一步

在接下来的几个月中,我们将继续在开放的环境中对产品进行迭代,朝着 1.0 版本努力,包括提升模型覆盖率、改进 GPU 支持,提供新的量化模式。在本系列的第二篇文章中,我们将更深入地介绍 AI Edge Torch 生成式 API,这个 API 能让开发者们在边缘设备中运行自定义生成式 AI 模型,并且提供优秀的性能表现。

我们要感谢所有早期体验用户,正是他们提供的宝贵反馈让我们得以及早发现错误,并确保开发者们获得顺畅的体验。我们还要感谢硬件合作伙伴以及 XNNPACK 生态系统的贡献者,是他们的帮助让我们在如此多样的设备上都能获得优异的性能表现。同时,我们也要感谢广大的 PyTorch 社区在这一路提供的指导和支持。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Google
    +关注

    关注

    5

    文章

    1754

    浏览量

    57365
  • 移动设备
    +关注

    关注

    0

    文章

    490

    浏览量

    54618
  • AI
    AI
    +关注

    关注

    87

    文章

    29740

    浏览量

    268041
  • 模型
    +关注

    关注

    1

    文章

    3108

    浏览量

    48646
  • 机器学习
    +关注

    关注

    66

    文章

    8344

    浏览量

    132288

原文标题:AI Edge Torch: 在移动设备上实现高性能的 PyTorch 模型推理

文章出处:【微信号:Google_Developers,微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Google掌舵人:打电话AI是一次非凡突破

    通过图灵测试!Google掌舵人说“打电话AI”是一次非凡突破
    发表于 05-12 13:45

    Mbed Edge具有什么功能?

    Mbed Edge具有什么功能?Mbed Edge为Mbed Cloud实现的新特性是什么?
    发表于 05-18 07:14

    如何使用torch 2.0或更高版本创建图像?

    我需要使用 torch 2.0 或更高版本创建图像,使用nxp-github中的演示我可以使用 Yocto Project BSP 6.1.1_1.0.0 Release 使用 torch
    发表于 05-16 06:26

    EDGE技术详解

    EDGE技术详解EDGE简述  EDGE是英文Enhanced Data Rate for GSM Evolution 缩写即增强型数据速率GSM演进技术
    发表于 04-10 14:53 66次下载

    Google发布超低功耗的ASIC芯片Edge TPU处理器

    Google于美国当地时间周三在Next云端大会,重磅发布了Edge TPU处理器。
    的头像 发表于 07-30 14:11 8743次阅读

    Google准备开始销售新款机器学习芯片?

    在日前于美国旧金山举行的Google Cloud Next大会上,Google针对基于其TPU设计的边缘运算推出全新人工智能(AI)芯片——Edge TPU,并利用这款机器学习加速器芯
    的头像 发表于 08-08 15:55 3594次阅读

    一文看懂谷歌的AI芯片布局

    谷歌AI芯片 2018年7月Google在其云端服务年会Google Cloud Next上正式发表其边缘(Edge)技术,与另两家国际公有云服务大厂Amazon/AWS、Micros
    发表于 11-29 14:08 675次阅读

    Google之后 微软宣布暂停Chromium Edge版本更新

    就在几天前,IT之家报道了Google决定暂停Chrome版本更新,以确保Web开发人员不会遇到问题。微软现在已决定跟随Google的脚步,今天微软也宣布暂停Chromium 版Edge浏览器更新。
    的头像 发表于 03-21 09:43 1598次阅读

    图文详解:信号的时域和空域特性

    图文详解:信号的时域和空域特性
    发表于 07-15 10:25 2次下载
    图文<b class='flag-5'>详解</b>:信号的时域和空域<b class='flag-5'>特性</b>

    Edge AI在深度学习应用中超越云计算

      因此,处理的划分带来了两种技术的最佳效果。因此,它可能是 AI 应用程序的更好选择。但是,大多数应用程序都需要更快的实时更新训练,因此 Edge AI 比 Cloud AI 技术寿
    的头像 发表于 07-10 11:07 2012次阅读

    借助 Edge Impulse 实现 AI 开发的民主化

    借助 Edge Impulse 实现 AI 开发的民主化
    的头像 发表于 12-30 09:40 1569次阅读

    PyTorch中 torch.nn与torch.nn.functional的区别

    torch.nn pytorch中文文档链接: torch.nn 在 __init__() 函数里定义,定义的是一个类: torch.nn.functional pytorch中文文档链接
    的头像 发表于 01-11 16:47 1304次阅读

    采用Versal AI Edge系列的边缘ACAP

    电子发烧友网站提供《采用Versal AI Edge系列的边缘ACAP.pdf》资料免费下载
    发表于 09-13 17:08 0次下载
    采用Versal <b class='flag-5'>AI</b> <b class='flag-5'>Edge</b>系列的边缘ACAP

    Edge AI工控机的定义、挑选考量与常见应用

    何谓Edge AI  在传统的AI部署方式中,边缘端的数据会集中到一台具备强大运算能力的服务器上,由这台服务器进行相关的模型训练和预测。为了让来自不同地点的使用者能够存取并使用这些AI
    的头像 发表于 08-14 10:51 336次阅读

    使用TI Edge AI Studio和AM62A进行基于视觉AI的缺陷检测

    电子发烧友网站提供《使用TI Edge AI Studio和AM62A进行基于视觉AI的缺陷检测.pdf》资料免费下载
    发表于 09-03 10:38 0次下载
    使用TI <b class='flag-5'>Edge</b> <b class='flag-5'>AI</b> Studio和AM62A进行基于视觉<b class='flag-5'>AI</b>的缺陷检测