best365手机官网,Google AI和Deepmind正在合作推出新工具,以加快稀疏神经网络的进程

best365手机官网,Google AI和Deepmind正在合作推出新工具,以加快稀疏神经网络的进程

新志远报道
资料来源:GoogleAIBlog
编辑:keyu
[新知园指南]优化神经网络的一种方法是通过低可用性,但是由于支持不足和缺少工具,该技术在生产中的使用仍然受到限制。为了解决这个问题,Google最近与Deepmind合作,在TensorFlowLite和XNNPACKML中开发了新的功能和工具库。
神经网络的推理功能可实现许多实时应用,例如B。姿势估计和背景模糊。这些应用程序通常具有低延迟,并且也很注重隐私。
使用TensorFlowLite和XNNPACKML加速库之类的ML推理框架,工程师可以在模型大小,推理速度和预测质量之间找到最佳点,以优化其模型以在不同设备上执行。
优化模型的一种方法是使用稀疏神经网络,其中这些网络的大部分权重都设置为零:
通常,这是一个理想的功能,因为它不仅通过压缩来减小模型的大小,而且还跳过了乘法和加法运算的重要部分,从而加快了推理速度。
此外,我们还可以增加模型中的参数数量,然后对其进行简化以使其与原始模型的质量相匹配,这仍然可以从加速思考中受益。
但是,由于缺乏简化通用卷积架构的工具,该技术在生产中的使用仍然受到限制。此外,在设备上执行这些操作的支持也不足。
针对此问题,Google最近宣布了XNNPACK加速库和TensorFlowLite的许多新功能:
这些功能旨在帮助研究人员开发支持稀疏网络的有效推理的稀疏设备模型,还包含有关开发人员如何学习如何保存稀疏神经网络的说明。
这些新工具是与DeepMind合作开发的,可提供新一代的实时感知体验,包括MediaPipe中的手部跟踪和Google Meet中的背景功能,并将推理速度从1.2倍提高到2.4倍。减半
图:GoogleMeet背景功能的稠密模型(左)和稀疏模型(右)之间的处理时间比较。
以下主要概述了稀疏神经网络的技术部分,并为研究人员提供了有关如何创建自己的稀疏模型问题的建议。
主要包括:
经济型神经网络
训练稀疏神经网络
实际使用
经济型神经网络
许多现代深度学习体系结构(例如MobileNet和EfficientNetLite)主要由具有小卷积核的深度卷积和具有输入图像特征的线性组合的1×1卷积组成。
尽管这种架构具有许多潜在的简化目标,包括通常在许多网络开始时发生的完整2D卷积或深度卷积,但从推理时间的角度来看,1×1卷积运算是最昂贵的,因为它们占65%以上因此,总的计算量是节俭的最佳目标。
图:现代移动架构中1×1卷积的推理时间比较
在现代推理设备(如XNNPACK)中,深度学习模型和其他操作中1×1卷积的实现取决于HWC张量布局,张量的尺寸为图像的高度,宽度和通道(例如红色,绿色),或蓝色)。
该张量配置使推理引擎能够并行处理与每个空间位置(即图像的每个像素)相对应的通道。
但是,这种类型的张量不适合稀疏思维,因为它将通道设置为张量的最内部维度,并增加了访问它的计算成本。
从Google更新到XNNPACK可以用来确定模型是否稀疏:
该过程从标准密集推理模式更改为稀疏推理模式。在稀疏推理模式下,XNNPACK使用CHW的张量布局(通道,高度,宽度)。两个原因:
1)在一次条件检查之后,如果相应的通道权重为零,则可以跳过张量的整个空间层,而不是逐个像素地进行测试。
2)当通道权重不为零时,可以通过将相邻像素加载到同一存储单元中来提高计算效率。
这使用户可以同时处理多个像素,并同时在多个线程上并行执行任何操作。如果重量的至少80%为零,则这些变化共同导致1.8倍至2.3倍的加速度。
为避免每次操作后在稀疏思想的最佳CHW张量布局与标准HWC张量布局之间来回切换,XNNPACK在CHW布局中提供了CNN运算符的几种有效实现。
训练稀疏神经网络的准则
要创建稀疏的神经网络,此版本中包含的指南建议从密集版本开始,然后在训练过程中逐渐将一些体重归零。此过程称为修剪。
在众多可用的编辑技术中,Google的开发人员建议使用大小调整过程(在TF模型优化工具包中可用)或最近引入的RigL方法。
只要适当延长培训时间,两种方法都可以成功简化深度学习模型,而不会影响深度学习模型的质量。
所获得的稀疏模型可以有效地以压缩格式保存。与密集模型相比,压缩格式的大小减少了1/2。
稀疏网络的质量受几个超参数的影响,包括训练时间,学习率和切割计划。TFPruningAPI提供了一个很好的示例,说明如何选择这些模型以及一些训练此类模型的技术。
官方建议进行超参数搜索,以找到应用程序的最佳位置。
实际使用
Google的开发人员证明,可以解决分类任务,密集分割(例如背景模糊)和回归问题(媒体手),这为用户带来了实实在在的好处。
例如,在GoogleMeet中,稀疏度将模型的推理时间减少了30%,从而使更多的用户可以访问更高质量的模型。
此处描述的稀疏方法最适合基于InvertedResidualBlocks(例如B)的体系结构。MobileNetV2,MobileNetV3和EfficientNetLite。
另外,网络的稀疏性会影响推理的速度和质量。
假设密集,固定容量的网络,谷歌研究人员发现即使节俭30%,性能也会适度提高。随着节俭的增加,模型的质量仍相对接近密度基线,直到达到70%的稀疏性,而超过70%的准确度则显着降低。
但是,开发人员可以通过将基础网络的大小增加20%,从而在不降低模型质量的情况下减少推理时间,从而以70%的稀疏度来弥补精度降低的问题。
由于XNNPACK可以检测到稀疏推断并自动将其激活,因此无需进一步更改即可运行稀疏模型。
最后,Google宣布将进一步扩展XNNPACK,更全面地支持CHW布局的操作,并研究如何将其与其他优化技术(例如量化)结合使用。
概括
稀疏性是一种用于改善神经网络中CPU推理的简单而强大的技术。它使工程师能够以较小的性能或尺寸运行较大的模型,这也是有希望的新研究方向。
有兴趣的朋友可以前往Github自己探索:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/delegates/xnnpack/README.md#sparse-inference
参考资料:
https://ai.googleblog.com/2021/03/accelerating-neural-networks-on-mobile.html
还有什么值得一看的?

Start typing and press Enter to search

bet足球俱乐部