Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

陈天翼-微软西雅图-高级研究员作者

微软提出自动化神经网络训练剪枝框架OTO,一站式获得高性能轻量化模型

OTO 是业内首个自动化、一站式、用户友好且通用的神经网络训练与结构压缩框架。
人工智能时代,如何部署和维护神经网络是产品化的关键问题考虑到节省运算成本,同时尽可能小地损失模型性能,压缩神经网络成为了 DNN 产品化的关键之一。

图片

DNN 压缩通常来说有三种方式,剪枝知识蒸馏量化剪枝旨在识别并去除冗余结构,给 DNN 瘦身的同时尽可能地保持模型性能,是最为通用且有效的压缩方法。三种方法通常来讲可以相辅相成,共同作用来达到最佳的压缩效果。

图片

然而现存的剪枝方法大都只针对特定模型,特定任务,且需要很强的专业领域知识,因此通常需要 AI 开发人员花费大量的精力才能将这些方法应用于自己的场景中,非常消耗人力物力成本。

图片

OTO 概述
 
为了解决现存剪枝方法的问题并给 AI 开发者提供便利,微软团队提出了 Only-Train-Once OTO 框架。OTO 是业内首个自动化、一站式、用户友好且通用的神经网络训练与结构压缩框架,系列工作陆续发表于 ICLR2023 和 NeurIPS2021。

通过使用 OTO,AI 工程师可以方便地训练目标神经网络,一站式地取得高性能且轻量化的模型。OTO 最小化了开发者的工程时间精力的投入,且全程无需现有方法通常需要的非常耗时的预训练和额外的模型微调。

图片

  • 论文链接:
  • OTOv2 ICLR 2023: https://openreview.net/pdf?id=7ynoX1ojPMt
  • OTOv1 NeurIPS 2021:https://proceedings.neurips.cc/paper_files/paper/2021/file/a376033f78e144f494bfc743c0be3330-Paper.pdf
  • 代码链接:

    https://github.com/tianyic/only_train_once


框架核心算法

理想化的结构剪枝算法应该做到:针对通用神经网络,自动化地一站式地从零开始训练,同时达到高性能且轻量化的模型,并无需后续微调。但因为神经网络的复杂性,实现这一目标是一件极其有挑战性的事情。为了实现这一最终目的,下面的三个核心问题需要被系统性地解决:

  • 如何找出哪些网络结构可以被移除?
  • 如何在移除网络结构的过程中,尽可能不损失模型性能?
  • 如何能自动化地完成如上两点?

微软团队设计并实现了三套核心算法,首次系统性地,全面性地解决这三个核心问题。

自动化 Zero-Invariant Groups (零不变组) 分组

由于网络结构的复杂性和关联性,删去任意网络结构可能会导致剩余的网络结构无效。因此自动化网络结构压缩的一个最大的问题之一是如何找到必须要被一起剪枝的模型参数,使得余下的网络依然有效。为了解决该问题,微软团队在 OTOv1 中提出了零不变组 Zero-Invariant Groups  (ZIGs)。零不变组可以理解为一类最小的可移除单元,使得该组对应的网络结构移除后剩余网络依然有效。零不变组的另一大特性是,如果一个零不变组等于零,那么无论输入值是什么,输出值永远是零。在 OTOv2 中,研究者进一步提出并实现了一套自动化算法来解决通用网络的零不变组的分组问题。自动化分组算法是由一系列图算法精心设计组合而成,整套算法非常高效,具有线性的时间空间复杂度。

图片

双半平面投影梯度优化算法 (DHSPG)

当划分目标网络所有的零不变组后,接下来的模型训练和剪枝任务需要找出哪些零不变组是冗余的,哪些又是重要的。冗余的零不变组对应的网络结构需要被删除,重要的零不变组需要保留并保证压缩模型的性能。研究者公式化这个问题为一个结构性稀疏化问题,并提出全新的 Dual Half-Space Projected Gradient  (DHSPG) 优化算法来解决。

图片


DHSPG 可以非常有效地找出冗余的零不变组并将其投影成零,并持续训练重要的零不变组来取得跟原始模型相媲美的性能。

与传统稀疏优化算法相比,DHSPG 具有更强更稳定地稀疏结构探索能力,且扩展了训练搜索空间并因此通常要获得更高的实际表现效果。

图片

自动化构建轻量压缩模型

通过使用 DHSPG 对模型进行训练,我们会得到一个服从于零不变组的高结构稀疏性的解,即该解里有很多被投影成零的零不变组,此外该解还会具有很高的模型性能。接下来,研究者把所有对应与冗余零不变组的结构删去来自动化地构建压缩网络。由于零不变组的特性,即如果一个零不变组等于零,那么无论输入值是什么,输出值永远是零,因此删去冗余的零不变组不会对网络产生任何影响。所以通过 OTO 得到的压缩网络和完整网络会有相同的输出,无需传统方法所需要的进一步模型微调。

图片

数值实验

分类任务

图片

表 1:CIFAR10 中的 VGG16 及 VGG16-BN 模型表现。

在 CIFAR10 的 VGG16 实验中,OTO 将浮点数减少了 86.6%,将参数量减少了 97.5%,性能表现令人印象深刻。

图片

表 2:CIFAR10 的 ResNet50 实验。

在 CIFAR10 的 ResNet50 实验中,OTO 在没有量化的情况下优于 SOTA 神经网络压缩框架 AMC 和 ANNC,仅使用了 7.8% 的 FLOPs 和 4.1% 的参数

图片

表 3. ImageNet 的 ResNet50 实验。

在 ImageNet 的 ResNet50 实验中,OTOv2 在不同结构稀疏化目标下,展现出跟现存 SOTA 方法相媲美甚至更优的表现。

图片

表 4: 更多结构和数据集。

OTO 也在更多的数据集和模型结构上取得了不错的表现。

Low-Level Vision 任务

图片

表 4:CARNx2 的实验。

在 super-resolution 的任务中,OTO 一站式训练压缩了 CARNx2 网络,得到了跟原始模型有竞争力的性能且压缩了越 75% 的运算量和模型大小。 

语言模型任务

图片

此外,研究者还在 Bert 上针对核心算法之一,DHSPG 优化算法,进行了对比试验,验证了其相较于其他稀疏优化算法的高性能性。可以发现在 Squad 上,利用 DHSPG 进行训练所得到的参数量减小和模型性能要远远优于其他稀疏优化算法。

结论

微软团队提出了一个名为 OTO(Only-Train-Once)的 自动化一站式神经网络训练结构剪枝框架。它可以将一个完整的神经网络自动化地压缩为轻量级网络,同时保持较高的性能。OTO 大大简化了现有结构剪枝方法复杂的多阶段流程,适合各类网络架构和应用,且最小化了用户的额外工程投入,具有通用性,有效性和易用性。
理论微软
2
相关数据
VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

知识蒸馏技术

Hinton 的工作引入了知识蒸馏压缩框架,即通过遵循“学生-教师”的范式减少深度网络的训练量,这种“学生-教师”的范式,即通过软化“教师”的输出而惩罚“学生”。为了完成这一点,学生学要训练以预测教师的输出,即真实的分类标签。这种方法十分简单,但它同样在各种图像分类任务中表现出较好的结果。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

神经网络压缩技术

神经网络压缩方向是目前深度学习研究的一个热门的方向,其主要的研究方向是压缩,蒸馏,网络架构搜索,量化等。

推荐文章
暂无评论
暂无评论~