ACM MM 2022 加速Transformer工业部署的归一化方法

来源:知乎—张凯

地址:https://zhuanlan.zhihu.com/p/549552888

01

背景

自Transformer提出以来,其在NLP和CV领域都取得了很好的性能,以及展现了其模型大一统的潜力。面向工业上的强烈应用需求,我们组最近一直在探索和研究Transformer如何在工业上部署和落地,也欢迎更多的人能够加入进来一起讨论和探究。近期我们组关于transformer归一化算子(LayerNorm)改进的工作《Unified Normalization for Accelerating and Stabilizing Transformers》被ACM MM 2022接受,和大家一起分享讨论下。

244e3042a3491ee39e512f5d260cd376.jpeg

论文地址:

https://arxiv.org/pdf/2208.01313.pdf

目前代码正在整理和审核,后续会进行开源,代码地址:

https://github.com/hikvision-research/Unified-Normalization

02

研究动机

Transformer这两年在CV任务上取得了广泛的应用和验证,其在工业界有着很强的部署和落地需求。对比CNN中的采用的BN归一化方式(BN是非常高效的,在部署中可以吸收到卷积中),Transformer中采用LayerNorm的归一化方式,对部署是非常不友好的。主要原因有两点:1)LN需要在线计算过程,具体地,在线计算均值和方差;2)LN的方差计算需要开方操作,这在某些部署平台上是非常低效的,甚至是不支持的。那么直接在Transformer中将LN替换成BN怎么样呢?实验性的答案是性能会变差甚至训练会直接崩溃。其实这个问题很多同学都发现了,也都进行了讨论,transformer 为什么使用 layer normalization,而不是其他的归一化方法?。深究其中的原因,我们是将其归结为transformer在训练过程中的激活值及其梯度的统计值异常问题(后面会详细讨论)。对此的话,我们是提出了一种统一的归一化方法Unified Normalization(UN),首先,它可以像BN一样是非常高效,能够被合并到相邻的线性操作中。其次,利用数据的先验统计信息,相较于LN,它可以做到性能几乎相同或者很小的掉点。我们在机器翻译、图像分类、目标检测和图像分割等任务上都验证了其有效性,并且在GeForce RTX 3090上推理,可以带来31%的加速和18%内存节省。

03

研究方法

首先我们对归一化的方法做了一个归类:

8b0d0172f91c4a28ac2e368145cceb1d.jpeg

1)online methods,这类方法的特点在于推理过程中需要在线计算的过程,其统计的维度一般是token维或者channel维度,例如LN【2】,IN【3】,DTN【4】等。这里要注意的是,在CNN中的LN,往往是对CHW维度做归一化的,而在Transformer中的LN,往往是对C维度做归一化的。

2)offline methods,对应的,这类方法的特点是无需在线计算过程,其统计维度一般是batch维度,例如BN【5】,MABN【6】(致敬下孙剑老师,在各个方向都留下了很好的工作)和我们的方法UN。

这里关于PowerNorm(PN)【7】,我们做了一个区分:1)PN with layerscale,这个是原论文最终采用的方式,前置了一个在线计算的layerscale层。2)PN without layerscale,这里在我们文中标注为PN*。

这里顺便提下曹跃老师的一篇工作《Leveraging Batch Normalization for Vision Transformers》【8】,他们也探讨了BN在transformer中的应用问题。因为其在应用中需要对结构进行调整(FFNBN),这个在swin中是较为稳定的。但在其他结构中如平坦的结构DeiT中会有掉点,在原始的transformer中,例如机器翻译任务中则是大幅掉点。本文我们主要研究在通用transformer中的归一化方法。

为了更好地获取数据集的先验统计信息,类似于PN和MABN,我们将平滑策略引入到了激活值的均值和方差统计中,对应地,在反向的梯度中也引入了平滑策略。在这种情况下,我们发现了两个现象:

1)激活值统计值的差异要比梯度统计值的差异要剧烈的多,并且随着训练的增加和深度的加深而更加突出。(可能很多做大模型的同学都知道,大模型增大后会无法收敛,其中一个原因是激活值太大,向上溢出了。这个其实在Swin v2中也提到了激活值增大的问题。)

3c533155044bab669006f01da2db91d5.jpeg

我们定义了一个指标PNAC,来衡量这种变化差异的程度。其物理含义是,其统计值符合正态校验的占比,其值越低,说明其差异越大。详情可见原论文。可以看到,随着训练过程的增加和网络深度的加深,其激活值的差异会变得更加剧烈。

针对这一点,我们是在激活值统计值的平滑和梯度统计值的平滑采用了不同的策略。注意到由于在前向中引入了对统计值的平滑,所以反向中准确的计算梯度代价是非常大的,这里我们采用了对梯度的平滑。详情可以见论文。整体算法流程如下:

e86833592b2ebde365ae1799b1fa0fec.jpeg

2)Transformer训练过程中的outlier会破坏训练的稳定性。而一旦前向激活值出现这种outlier,其统计值的不准确,会导致梯度的估计会出现较大偏差(前文所述梯度是没法准确计算的,是平滑估计得到的),从而影响训练的稳定性。

对应地,我们设计了一个outlier的自适应判断和处理的方法:

b69ebd0d4f7ae1010a5e463cbc8398a0.jpeg

在outlier发生时,我们直接采用当前batch的统计值进行前向和反向的计算,保证梯度传播的正确性。

870aebe01285026c8d84940bcc30dbd9.jpeg

我们也理论证明了在该自适应判断和处理的策略下,其误差被大大减少。

0bbe06198c5966f616d25561a2377e9f.jpeg

我们可视化了LN模型,UN模型和BN模型之间的特征相似性,可以看到,LN和UN之间的特征相似性更高,这也间接说明了UN利用了先验统计信息后,其表现更接近于LN。

04

实验结果

我们主要验证了机器翻译、图像分类、目标检测、图像分割任务。

1)机器翻译任务

8c16af3c3e311bbd94ecb03237bb3c46.jpeg

首先可以看到,归一化是非常重要的,没有归一化的话,在IWSLT14上无法收敛,在WMT14上是掉了7个多点。其次是BN在两个任务上掉点都很大,所以在NLP任务中默认采用的都是LN。同样可以看到,一些LN的简化算法,例如RMSNorm也几乎没有性能损失,但是其依然需要在线计算过程。最后是UN在两个数据集上性能波动在  个点以内。

2)图像分类任务

e1e964875872e2a30a7a10739cc4c056.jpeg

我们验证了两类ViT结构,以塔式结构为代表的SwinT和以平坦结构代表的T2T-ViT。结果上,在Swin-T上掉了0.3个点,在T2T-ViT上掉了0.6个点。但是在下游任务上,例如CIFAR100上,其性能相比LN高了0.5个点,这可能是UN更可以享受到ImageNet上带来的先验数据统计信息,这个在DTN中也有类似的讨论。

3)目标检测和图像分割任务

58ed4aab858099892865414c9510425c.jpeg

UN相比于LN有0.3-0.4的掉点,而相比于其他的归一化方法例如PN和BN则有1个点的优势。

4)加速效果

98c6fe844f44158ea3ffa4c2c8cf58d6.jpeg

我们实测了在GPU上的内存占用和耗时,在分类任务上,UN相比于LN有31%的加速和18%的内存节省。

5)其他消融实验详情可以见原论文。

05

总结讨论

我们探索了transformer中归一化算子在部署中的高效优化问题。经过分析,其核心问题是transformer训练中的激活值及梯度的统计值异常问题,继而我们提出了UN,其在各种transformer模型和任务中都进行了验证,均取得了很好的结果,其在速度和内存上也有明显的优势。

最后再说一点,transformer在工业上的部署不仅仅是归一化算子的问题,需要大家一起努力探索,希望能够早日看到transformer的在工业上的推广和推动行业的进步。

参考文献

【1】Qiming Yang,Kai Zhang,Chaoxiang Lan,Zhi Yang,Zheyang Li,Wenming Tan,Jun Xiao, Shiliang Pu. Unified Normalization for Accelerating and Stabilizing Transformers. ACM MM 2022.

【2】Jimmy Lei Ba, Jamie Ryan Kiros, and Geoffrey E. Hinton. 2016. Layer Normalization. arXiv preprint arXiv:1607.06450 (2016).

【3】Dmitry Ulyanov, Andrea Vedaldi, and Victor Lempitsky. 2016. Instance normalization: The missing ingredient for fast stylization. arXiv preprint arXiv:1607.08022 (2016).

【4】Wenqi Shao, Yixiao Ge, Zhaoyang Zhang, Xuyuan Xu, XiaogangWang, Ying Shan, and Ping Luo. Dynamic Token Normalization Improves Vision Transformer. arXiv preprint arXiv:2112.02624 (2021).

【5】Sergey Ioffe and Christian Szegedy. 2015. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In International conference on machine learning. PMLR, 448–456.

【6】Junjie Yan, Ruosi Wan, Xiangyu Zhang, Wei Zhang, Yichen Wei, and Jian Sun. 2020. Towards stabilizing batch statistics in backward propagation of batch normalization. arXiv preprint arXiv:2001.06838 (2020).

【7】Sheng Shen, Zhewei Yao, Amir Gholami, Michael Mahoney, and Kurt Keutzer. 2020. Powernorm: Rethinking batch normalization in transformers. In International Conference on Machine Learning. PMLR, 8741–8751.

【8】 Zhuliang Yao,Yue Cao, Yutong Lin, Ze Liu, Zheng Zhang, Han Hu. Leveraging Batch Normalization for Vision Transformers,ICCVW,2021

猜您喜欢:

ab20e11e1a895546f89bbdabc2504ffb.png 戳我,查看GAN的系列专辑~!

一顿午饭外卖,成为CV视觉前沿弄潮儿!

ECCV2022 | 生成对抗网络GAN部分论文汇总

CVPR 2022 | 25+方向、最新50篇GAN论文

 ICCV 2021 | 35个主题GAN论文汇总

超110篇!CVPR 2021最全GAN论文梳理

超100篇!CVPR 2020最全GAN论文梳理

拆解组新的GAN:解耦表征MixNMatch

StarGAN第2版:多域多样性图像生成

附下载 | 《可解释的机器学习》中文版

附下载 |《TensorFlow 2.0 深度学习算法实战》

附下载 |《计算机视觉中的数学方法》分享

《基于深度学习的表面缺陷检测方法综述》

《零样本图像分类综述: 十年进展》

《基于深度神经网络的少样本学习综述》

1a1ce3156ec78f19cedc72877bbe1a61.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值