改进了 Pixel 6 上的设备上机器学习,具有神经架构搜索

发布时间:2021-11-20编辑:RainNight阅读(186)

    今年秋季推出的 Pixel 6 手机搭载Google Tensor,这是谷歌首款移动系统级芯片 (SoC),将各种处理组件(如中央/图形/张量处理单元、图像处理器等)集成到单个芯片上,定制- 旨在为 Pixel 用户提供最先进的机器学习 (ML) 创新。事实上,Google Tensor 的每个方面都经过设计和优化,以运行 Google 的 ML 模型,符合我们的AI 原则。首先是在 Google Tensor 中集成的定制 TPU,它使我们能够实现我们对 Pixel 手机应该具备的可能性的愿景。

    今天,我们分享了通过为Google Tensor 的 TPU设计 ML 模型而实现的设备上机器学习的改进。我们使用神经架构搜索(NAS) 来自动化设计 ML 模型的过程,这会激励搜索算法发现在满足延迟和功率要求的同时实现更高质量的模型。这种自动化还使我们能够为各种设备上的任务扩展模型的开发。我们将通过TensorFlow 模型花园和TensorFlow Hub公开这些模型 以便研究人员和开发人员可以在 Pixel 6 上引导进一步的用例开发。此外,我们还应用了相同的技术来构建高能效的人脸检测模型,该模型是许多 Pixel 6 相机功能的基础。

    file

    NAS 寻找 TPU 优化模型的图示。每列代表神经网络中的一个阶段,点表示不同的选项,每种颜色代表不同类型的构建块。通过矩阵从输入(例如,图像)到输出(例如,每像素标签预测)的路径表示候选神经网络。在搜索的每次迭代中,使用在每个阶段选择的块形成一个神经网络,搜索算法旨在找到共同最小化 TPU 延迟和/或能量并最大化准确性的神经网络。

    视觉模型的搜索空间设计

    NAS 的一个关键组成部分是设计候选网络从中采样的搜索空间。我们自定义搜索空间以包含在 Google Tensor TPU 上高效运行的神经网络构建块。

    用于各种设备上视觉任务的神经网络中一种广泛使用的构建块是倒瓶颈(IBN)。IBN 块有几个变体,每个变体都有不同的权衡,并使用常规卷积和深度卷积层构建。虽然具有深度卷积的 IBN 因其低计算复杂度而传统上用于移动视觉模型,但融合 IBN,其中深度卷积被常规卷积取代,已被证明可以提高图像分类和对象检测模型的准确性和延迟在 TPU 上。

    然而,融合 IBN 对视觉模型后期阶段的典型神经网络层形状可能具有极高的计算和内存要求,限制了它们在整个模型中的使用,并使深度 IBN 成为唯一的选择。为了克服这个限制,我们引入了使用组卷积的 IBN 来增强模型设计的灵活性。虽然常规卷积混合输入中所有特征的信息,但分组卷积将特征分成更小的组并对组内的特征执行常规卷积,从而降低整体计算成本。称为基于组卷积的 IBN(GC-IBN),它们的权衡是它们可能会对模型质量产生不利影响。

    file

    反向瓶颈(IBN)变体:(a)depthwise-IBN,深度卷积层,过滤器大小为K x K,夹在两个过滤器大小为 1x1 的卷积层之间;(b) fused-IBN、卷积和depthwise被融合成一个卷积层,滤波器大小为K x K;© 基于组卷积的 GC-IBN,它用组卷积的 Fused-IBN 中的K x K常规卷积代替。组数(组计数)是 NAS 期间的可调参数。

    file

    包含 GC-IBN 作为选项提供了超越其他 IBN 的额外灵活性。不同 IBN 变体的计算成本和延迟取决于正在处理的特征维度(如上所示的两个示例特征维度)。我们使用 NAS 来确定 IBN 变体的最佳选择。

    更快、更准确的图像分类

    在深度神经网络的哪个阶段使用哪种 IBN 变体取决于目标硬件上的延迟以及生成的神经网络在给定任务上的性能。我们构建了一个包含所有这些不同 IBN 变体的搜索空间,并使用 NAS 来发现用于图像分类任务的神经网络,以在 TPU 上以所需的延迟优化分类精度。与在 TPU 上运行的现有设备上模型相比,由此产生的 MobileNetEdgeTPUV2 模型系列提高了给定延迟(或所需精度的延迟)下的精度。MobileNetEdgeTPUV2 的性能也优于其前身MobileNetEdgeTPU,后者是专为上一代 TPU 设计的图像分类模型。

    file

    网络架构系列可视化为不同延迟目标的连接点。与FBNet、MobileNetV3和EfficientNets等其他移动模型相比,MobileNetEdgeTPUV2 模型在 Google Tensor 的 TPU 上运行时以更低的延迟实现了更高的ImageNet top-1 精度。

    MobileNetEdgeTPUV2 模型是使用模块构建的,这些模块还改进了 Google Tensor SoC 中其他计算元素(例如CPU)的延迟/准确性权衡。与 TPU 等加速器不同,CPU在神经网络中的乘法累加运算次数与延迟之间表现出更强的相关性。GC-IBN 的乘法累加操作往往比融合 IBN 少,这导致 MobileNetEdgeTPUV2 即使在 Pixel 6 CPU 上也优于其他模型。

    file

    MobileNetEdgeTPUV2 模型在 Pixel 6 CPU 上以更低的延迟实现 ImageNet top-1 精度,并且优于其他 CPU 优化的模型架构,例如 MobileNetV3。

    改进设备上的语义分割

    许多视觉模型由两部分组成,用于理解图像一般特征的基本特征提取器,以及用于理解特定领域特征的头部,例如语义分割(分配标签的任务,例如天空、汽车等,到图像中的每个像素)和对象检测(检测对象实例的任务,例如图像中的猫、门、汽车等)。图像分类模型通常用作这些视觉任务的特征提取器。如下图所示,MobileNetEdgeTPUV2 分类模型与DeepLabv3+分割头相结合,提高了设备​​端分割的质量。

    为了进一步提高分割模型质量,我们使用双向特征金字塔网络(BiFPN)作为分割头,对特征提取器提取的不同特征进行加权融合。使用 NAS,我们在特征提取器和 BiFPN 头中找到块的最佳配置。生成的模型名为 Autoseg-EdgeTPU,可产生更高质量的分割结果,同时运行速度更快。

    分割模型的最后几层对整体延迟有显着影响,主要是由于生成高分辨率分割图所涉及的操作。为了优化 TPU 上的延迟,我们引入了一种生成高分辨率分割图的近似方法,该方法降低了内存需求并提供了近 1.5 倍的加速,而不会显着影响分割质量。

    file

    左图:在ADE20K语义分割数据集(前 31 个类别)上比较不同分割模型的性能,以平均交叉并集(mIOU)衡量。右:近似特征上采样(例如,从 32x32 → 512x512 增加分辨率)。用于计算每像素标签的Argmax操作与双线性上采样融合。在较小分辨率特征上执行的 Argmax 减少了内存需求并改善了 TPU 的延迟,而不会对质量产生重大影响。

    更高质量、低能耗的目标检测

    经典的目标检测架构将 ~70% 的计算预算分配给特征提取器,仅 ~30% 分配给检测头。对于此任务,我们将 GC-IBN 块合并到我们称为“意大利面条搜索空间” 1 的搜索空间中,这提供了将更多计算预算转移到头部的灵活性。这个搜索空间还使用了近期 NAS 工作(如MnasFPN)中看到的非平凡连接模式来合并网络的不同但相关的阶段以加强理解。

    我们将 NAS 产生的模型与MobileDet-EdgeTPU进行比较,MobileDet-EdgeTPU是为上一代 TPU 定制的一类移动检测模型。MobileDets 已被证明可以在各种移动加速器上实现最先进的检测质量:DSP、GPU 和以前的 TPU。与 MobileDets 相比,新的 SpaghettiNet-EdgeTPU 检测模型系列在COCO上实现了 +2.2% mAP(绝对值),同时消耗的能量低于 MobileDet-EdgeTPU 所使用的能量的 70%,以达到类似的精度。

    file

    将COCO数据集上不同对象检测模型的性能与 mAP 指标进行比较(越高越好)。与之前的移动模型(例如具有特征金字塔网络 (FPN) 的MobileDets 和 MobileNetV2)相比,SpaghettiNet-EdgeTPU 以更低的延迟和能耗实现了更高的检测质量。

    包容、节能的人脸检测 人

    脸检测是相机中的一项基础技术,可实现一系列附加功能,例如固定焦点、曝光和白平衡,甚至使用新的人脸去模糊功能消除人脸模糊。此类功能必须以负责任的方式设计,而 Pixel 6 中的人脸检测在开发时首先考虑了我们的AI 原则。

    file

    左:未经改进的原始照片。右图:动态环境中一张清晰的脸。这是Face Unblur结合更准确的人脸检测器以更高的每秒帧数运行的结果。

    由于移动摄像头可能会耗电,因此人脸检测模型必须符合功率预算。为了优化能源效率,我们使用 Spaghetti Search Space 和一种算法来搜索在给定能源目标下最大限度地提高准确性的架构。与高度优化的基线模型相比,SpaghettiNet 在大约 70% 的能量下实现了相同的精度。由此产生的人脸检测模型称为 FaceSSD,更加节能和准确。这个改进的模型,结合我们的自动白平衡和自动曝光调整改进,是Pixel 6真实色调的一部分。这些改进有助于更好地反映所有肤色的美感。开发人员可以通过Android Camera2 API在他们自己的应用程序中使用这个模型。

    在移动设备上实现数据中心质量的语言模型在移动设备上

    部署低延迟、高质量的语言模型有利于 ML 任务,如语言理解、语音识别和机器翻译。MobileBERT是BERT的衍生物,是一种针对移动 CPU 调整的自然语言处理(NLP) 模型。

    然而,由于为了在移动 CPU 上高效运行这些模型而进行的各种架构优化,它们的质量不如大型 BERT 模型高。由于 TPU 上的 MobileBERT 运行速度明显快于 CPU,因此它提供了进一步改进模型架构并缩小 MobileBERT 和 BERT 之间质量差距的机会。我们扩展了 MobileBERT 架构并利用 NAS 来发现与 TPU 映射良好的模型。这些名为 MobileBERT-EdgeTPU 的 MobileBERT 新变体实现了高达 2 倍的硬件利用率,使我们能够以与基线 MobileBERT 相当的延迟在 TPU 上部署大型和更准确的模型。

    MobileBERT-EdgeTPU 模型部署在 Google Tensor 的 TPU 上时,产生的设备端质量可与通常部署在数据中心的大型 BERT 模型相媲美。

    file

    在问答任务(SQuAD v 1.1)上的表现。虽然 Pixel 6 中的 TPU 提供了比 CPU 约 10 倍的加速,但 TPU 的进一步模型定制实现了与通常部署在数据中心的大型BERT模型相当的设备端质量。

    结论

    在这篇博文中,我们展示了为目标硬件设计 ML 模型如何扩展 Pixel 6 的设备上 ML 功能,并为 Pixel 用户带来高质量、ML 支持的体验。通过 NAS,我们将 ML 模型的设计扩展到各种设备端任务,并构建了在移动设备的延迟和功率限制内提供最先进的设备端质量的模型。研究人员和机器学习开发人员可以通过TensorFlow 模型花园和TF Hub访问这些模型,在他们自己的用例中试用这些模型。

Collect from 雨夜的博客 雨夜的博客