本帖最后由 中国计算机学会 于 2024-4-19 15:18 编辑
摘要—本文将面向恒等映射构建的神经网络,分析现有神经网络在损失函数上的计算稳定性。基于分析,作者定义了最深模型的概念,并给出以下分析结果:(1)最深模型是模型搭建的深度的上限。(2)模型在计算过程中,尤其是使用量化方法进行计算的过程中,最深模型具有强计算健壮性的充分条件。强计算健壮性保证了模型可以使用低精度进行推理计算。作者认为,现阶段基于恒等映射构建的神经网络中,算力的精度需求并不高。同时因为对通用模型的需求较大,模型需要较大规模的算力支持。
程大宁(中国科学院计算技术研究所)
张云泉(中国科学院计算技术研究所)
关键词 :恒等映射 神经网络算力
引言 随着大模型技术的发展,模型的规模越来越大,对算力和大规模计算的支撑技术的要求也越来越高。对模型的调整也使研发时间和硬件成本越来越高。 为应对上述挑战,除了对算力的使用、代码性能的优化和训练、推理算法的设计等进行研究外,我们也应该对模型在对应数据集上的效果、规模和模型(推理阶段)的使用精度都有合理的预估。 基于恒等映射(identity mapping,也有领域称为残差结构)组成的神经网络是现阶段最重要的神经网络模型,机器视觉领域最重要的模型如ResNet[1]、MobileNet[2],以及现在主流的自然语言处理大模型如GPT[3]、BERT[4]等的基本组成结构,如ResNet中的块(block),Transformer[5]中的解码器(decoder)和编码器(encoder)等基础结构都为恒等映射。 本文将对基于恒等映射组成的神经网络在计算过程中引入噪音后的健壮性进行分析,尤其对由模型量化引入噪音或者因精度不足带来噪音的情况下的健壮性进行分析,并给出简明证明思路和关键证明步骤。本文定义了最深模型,对模型的深度、模型的计算健壮性提供了理论上的判据,可用于指导大模型的研发和算力的分配。 背景 概率约近正确可学习范式 概率约近正确(Probably Approximately Correct,PAC)可学习范式是现代机器学习的理论基础[6]。在PAC可学习范式中,将需要训练的模型(即某种分类器)的全体的集合称为一个假设类H。在PAC可学习范式中,不可知PAC可学习范式因为实际生活中假设空间不可分,更加符合现实情况而被更加广泛地研究。 不可知PAC可学习范式的具体定义为: 若存在一个函数和一个学习算法A,使得对于任意α, β∈(0, 1)和X→Y上的任意分布D,当样本mH : (0, 1)2→N,数量m≥mH(α, β)时,样本由分布D独立且同分布采样得到,算法将以不小于1-β的概率从一个假设类H中返回一个分类器model(即特定模型),其满足 ,其中LD(model)是模型在分布为D的样本集上的损失函数。 后续我们将以这个定义为基础展开分析。 神经网络 神经网络是符合PAC可学习框架的一类机器学习模型[6]。在神经网络中,一个除参数外,尺寸、层数等信息固定的神经网络构成一类假设类,随机梯度下降法或其他优化算法,如Adam[7],则为PAC可学习范式中的学习算法A。在数据量足够大的情况下,我们通过学习算法A,找到使损失函数最小的神经网络参数的过程,称为神经网络的学习[6]。 本文抓住神经网络的一个工程特点进行分析,定义一个更广义的神经网络。 定义1. 若一个函数在计算机中以复合函数表达并实现,则该函数在计算机中的复合函数实现称为神经网络。 定义1是传统神经网络的超集,传统的神经网络定义,即全连接和激活的概念,是可以被定义1涵盖的;而传统神经网络不能涵盖的现代神经网络结构,如卷积、恒等映射结构等,也可以被定义1涵盖。在后续的分析中,我们使用用于训练的概念进行分析。 在训练模型时,我们的任务是找到神经网络在特定数据集上的损失函数的最小值。可以把要训练的模型和损失函数形式化表述为如下形式: 这里f是指神经网络模型损失函数的最小值,l是神经网络对于单样本的损失函数,L为具体选择的损失函数,如交叉熵损失、逻辑回归损失等,hi是神经网络中的某一层对应的函数,w是神经网络中的所有参数组成的向量,wi是指hi层中的参数组成的向量,xi和yi分别为数据集中第i个样本对应的特征向量和标签。 不失一般性地,我们可以用简单的序列的神经网络进行分析,用如下形式表示: 为了保持符号的统一性,我们将每层的输入xi写为hn+1。 在后续的分析中我们将看到,神经网络是否是序列的并不影响分析结论。 恒等映射 恒等映射是现代神经网络的基础,图像模型MobileNet、ResNet和语言模型BERT、GPT都是基于恒等映射构建的网络。 ResNet是用于图片分类的神经网络,其主要结构如图1(a)所示,即本文中的恒等映射结构。相比之前的神经网络,ResNet克服了传统深度神经网络中性能退化的问题,即在传统神经网络中,神经网络的性能并不能随着神经网络层数的增多而提高。Transformer是现代自然语言处理的基础,其主要结构也是恒等映射,如图1(b)所示。
恒等映射网络的生成 我们首先分析带有恒等映射结构的神经网络是如何构造出来的。目前有一些工作着眼于从网络设计原理的角度进行分析[8, 9],如对残差网络[10]或Transformer的分析[11],但是我们从损失函数降低的角度进行分析。 命题1. 若存在一个函数集合Θ,满足对于任意输入,该集合中的函数可以将0的领域附近射满,则被训练完成(well-trained)的任意神经网络可以在集合Θ的函数中增加一个恒等映射结构(或称为残差块),新构成的模型性能不降低。 证明: 通常情况下,对于一个神经网络来说,在计算过程中带来噪音的部位往往是参数引入计算内核带来的误差和在最终输出阶段引入的截断误差。这两个误差可以和模型混合精度引入的误差在数学上共享一个形式,即图2中参数引入的误差和不同层间引入的误差。
针对训练完成的n层神经网络,该神经网络是假设类Hn中的分类器。我们首先分析的噪音健壮性,向权重和每层的输出引入噪音,我们可以得到如下观察: 这里是指在神经网络中引入噪音后网络的单样本损失函数值,如图2所示。 我们可以得到: 这是已经训练收敛的模型(well-trained模型),这里损失函数对权重(w)导数的期望是0。 在公式(4)中,在神经网络的某个层间合适地添加接近于0的ε,使 内积不大于0,可以极小地提升神经网络的性能(降低损失函数值),如图3所示。所有满足 内积不大于0的ε构成集合E。很显然,该集合非空。
若Θ中存在一个函数g,使得g(outputi)∈E,则可以用g(outputi)替代上文中的ε,即形成了恒等映射结构,如图4所示。形成该恒等映射结构后的网络不属于假设类Hn中的分类器,我们认为该神经网络modeln+1∈Hn+1。 设 ,由于算法A以不小于1-β的概率在Hn+1中找到 使得: 即在原模型基础上增加一层恒等映射结构,不会降低神经网络的性能。 很显然,Conv+Relu层组成的函数集合可以构成集合Θ。对于Transformer、BERT和GPT来说,Θ是多头注意力层。 命题2. ResNet、Transformer和DenseNet中的恒等映射结构可以重复使用命题1中的规则得到。 证明: 重复使用命题1,我们可以得到如下结果:在假设类Hn+1中一定存在一个模型modeln+1∈Hn+1,比假设类中由A算法挑选出的模型 在性能上微小好一点 ,而在Hn+1中存在一个 ,是经过A算法挑选出的模型,其性能优于modeln+1∈Hn+1。重复命题1中的操作,在Hn+2中也可以找到更好的模型,Hn+2比Hn+1在描述上多一层。所以根据命题1的结果,我们可以无限叠加网络的层数,从而得到更好的效果,如图5所示。
当我们在一个已经有恒等映射结构的网络中继续增加层数时,如果每次只在一个恒等映射结构外增加一个新的恒等映射结构,即图6中的位置①,整个网络就会变成ResNet或者Transformer中的块网络结构,如果在恒等映射结构内外都增加新的恒等映射结构(即图6中的位置①和②),则可以得到DenseNet的网络结构。
如果选取Conv+Relu组成集合Θ,则组成网络就是ResNet或DenseNet,而如果选取注意力机制,则组成的网络为Transformer系列。 最深模型与模型计算稳定性 基于上述构造原则,我们定义如下最深模型的概念,因为具有最深概念的模型在模型稳定性和泛化性上具有强大的实践意义。 定义2. 最深模型:当一个训练后的神经网络模型无法通过加入一个新的恒等映射结构进一步减少损失函数值时,则该模型为最深的模型。 显然,SOTA(State-of-the-Art,最先进技术)模型一定是一个最深的神经网络模型,而最深模型不一定是SOTA模型。 以下结论给出了最深模型的一个充分必要条件。 命题3. 当神经网络每层激活的梯度 全部为0,且每层中偏置项(bias)较小时,该神经网络为最深模型。当神经网络为最深模型时, 全部为0。 对于偏置项的分析,我们放在下一节,我们先证明 全部为0时,模型无法通过增加新的恒等映射结构进一步减少神经网络的损失函数值。 充分性证明: 命题3证明的是,当神经网络在某一层的输出激活梯度为0时,在这一层累加一层得到modeln+1∈Hn+1的和 是同一个模型。 当选择激活梯度为0的层引入新层时,我们构造一个0映射(因为函数集合Θ射满了0的领域,所以函数集合Θ中必然包含一个对任意输入都为0的函数),为该函数构造的modeln+1∈Hn+1则为 。 上述是模型参数梯度的计算原理:因为我们构造了一个0映射的函数,所以该层对整个神经网络的输入和该层之上的反向传播是没有影响的,传到该新层的激活梯度保持不变,也是0,而该层参数的梯度 也是0,进而说明新的神经网络参数的梯度为0,继而modeln+1∈Hn+1是model*n+1∈Hn+1。 必要性证明: 假设神经网络为最深模型,但是 不为0,则可以通过命题1进一步找到更深、性能更好的模型,与假设矛盾。因此最深模型的 为0。 命题4. 最深的神经网络模型在量化引入误差较小时,不同量化方法不具有显著区别。不同量化方法既不会带来性能的大量损失,也不会带来大量提升。 证明: 对于接近最深的基于恒等映射构建的神经网络,随着网络层数的增多,性能变化不显著,说明 接近于0。进而说明,对每一层来说 都在减少,从而对于较大的e来说, 都是0,即该神经网络量化后性能变化不大。 偏置项的影响 不少网络在设计的过程中会设计一些神经网络的层,并包含有偏置项。如定义3所示。 定义3. 若神经网络的某一层函数 ,可具体表达为: ,则称bias为偏置项。 从引入噪音的形式上看,加一个常数本质上就是加一个微小的偏置项构造成新的假设类。反过来,全体常函数也可以构成命题1中的Θ集合。 但是引入偏置项后,对模型本身的 会有巨大影响。因为偏置也是参数的一部分,需要优化,即要保证 ,其中,biasi是hi中的偏置项,已知 。但是由于偏置项的特性,使 或者得到对角元素为1的对角矩阵,从而得出结论 ,继而可以得出,无论是 ,还是 ,都会因为链式法则变为0。 就像我们在命题4中讨论的那样,因为 ,所以对于距离网络输出最近的含有偏置项的层,神经网络具有一定的健壮性,即下面的命题5。 命题5. 在训练完成的神经网络中,对于数据输入层距离输出最近的含有偏置项的神经网络中的所有层,在量化引入的误差较小时,不同量化方法不具有显著区别。不同量化方法既不会带来性能的大量损失,也不会带来大量提升。 除了最靠近模型输出的层含有偏置层(我们在后文中称这部分为modelsub)外,其余层只需保证modelsub存在极值,就可以得到一个收敛的神经网络。 当modelsub是带偏置项的三层全连接神经网络时,由于带偏置项的三层全连接神经网络具有非常强大的拟合能力,即比较容易将数据集处理成三层神经网络可以训练的模式,因此在一些实验中存在神经网络输入数据的参数值固定之后,仅训练全连接层,神经网络依旧可以达到收敛状态的现象。 就像我们在上文中对 分析的那样,对于偏置项来说,同样可以通过图4所示的过程累加深度而使得模型的损失函数值进一步降低,直到偏置项消失,即等价于偏置项等于0时,图4对偏置项的变换过程终止。因此,在命题3中,对最深模型的定义中包含对偏置项的要求,即偏置项接近于0。 实验发现,随着模型深度的增加,偏置项的整体趋势是越来越小。以ResNet系列网络在CIFAR-10数据集上的表现为例,ResNet18/34/50中不同层偏置项的二范数(2-norm)平均后得到的结果分别是2.965、2.390、1.804,具有显著的下降趋势。 工程经验与结论 对于含有偏置项的模型和最深模型来说,模型具有一定的计算健壮性,即对模型参数引入一定的噪音后,模型的整体输出基本保持不变。这种不变性是因为模型引入微弱噪音部分的导数是0或者接近于0。 在实际工程中,引入的噪音往往是由精度不足或者使用了量化方法导致的。基于实验得到的经验结论,尤其是ResNet、MobileNet系列在CIFAR-10、CIFAR-100、ImageNet、COCO等数据集上的结果,Transformer系列(含BERT)在CoLA等常用数据集上的结果,现有的神经网络可以容纳的最大噪音约为10−3。 上述结论在模型量化领域的应用至关重要。虽然各个网络不同,但是通常情况下模型使用半精度(最小精度约为10−5)和INT8的量化(引入噪音约为10−4~10−3)[13, 14]。在合理的量化策略下,如使用ACIQ方法[15]量化参数,引入噪音大小满足神经网络层中INT4、INT2级别的量化,甚至是二值、三值量化,可以满足模型的推理精度需求[16, 17]。值得一提的是,对于数据输入部分的网络,其参数值的分布通常较广,使用整数量化,如INT8、INT4、INT2量化,带来的噪音大于10−3,因此这部分神经网络使用半精度或者位数较高的整数量化(如INT8或者INT16)会有更好的效果。 上述噪音大小的分布情况具有相当的普遍性,现有大量的工作表明,使用真实世界产生的数据集,在常用网络中,在适当精度量化下引入的噪音与上述经验结果基本吻合,即INT8的量化引入的噪音足够小。这也是在神经网络加速的实践过程中大量使用INT8作为主要且被掌握的量化目标的主要原因,是TensorRT、NVIDIA Apex等量化工具较为推荐的方案[18]。 为了保证模型的性能达到SOTA,我们需要将神经网络的深度进一步加深,直到它成为最深模型。此时,若神经网络的性能无法满足实际业务需求,则需要改变Θ集合的构成,进一步提升模型的性能。在通常情况下,改变Θ是在原函数的基础上增加参数的参数量,而非改为其他函数,这可以保证修改后的Θ存在一簇参数,与原来的Θ保持一致,继而保证了模型性能不会下降。因此为了满足实际需要,模型的参数规模,即需要的算力规模,会随着数据集的不同和实际业务需求的不同而剧烈变化。但是大规模的模型往往会因为更多的层数和每层中更大的参数对更多的数据集起到比较好的作用,尽管在某些数据集中,网络中有些参数和层实际上是冗余的,即等价于较小的模型。这些模型可以通过去掉一些参数或者减少模型的层数得到和原来大规模模型一致的效果,即反向使用命题3。但是从能够处理的数据角度看,更大规模的模型能够处理的数据集更丰富,因此更大的模型更具有通用性。 基于上述分析,我们可以看到,在同一数据集和函数集合Θ下,模型的层数往往有上限。在真实环境下,提升层数对模型效果的提升非常有限,因此常用的网络集中在RetNet108以下。更多的改良集中在对函数集合Θ的调整上,这与现有的一些研究结论相吻合[19]。 同样地,我们得出这样一个结论,即最深模型往往对噪音不敏感,但是非最深模型存在对噪音较为敏感的可能性。我们在相关的量化算法文献中看到,规模越大的模型,量化效果越好[20],因此众多量化相关的论文往往偏爱使用较大规模的模型[21~24]。在量化实践中,我们也会发现,越深的模型,如ResNet50,量化的难度往往越低,甚至使用规则(如NVIDIA Apex)即可完成任务;而用于边端的较小模型,如一些用于SLAM的模型,量化难度往往非常高,不宜使用低精度进行计算。 总结 基于前文所述命题,以及分析与实际工程中的联系,我们可以得出:计算系统中,尤其是以运行恒等映射构建的神经网络为主的算力中心可以更多地采购低精度的计算部件,在算子库的优化上也应该侧重于低精度或者整型的算子优化。同时,算力规模越大,在其上运行的神经网络模型通用性越强。 ■ 参考文献: [1] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 770-778. [2] Howard A G, Zhu M, Chen B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[OL]. DOI:10.48550/ arXiv:1704.04861, 2017. [3] Radford A, Wu J, Child R, et al. Language models are unsupervised multitask learners[J]. OpenAI Blog, 2019, 1(8): 9. [4] Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[OL]. arXiv preprint arXiv:1810.04805, 2018. [5] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[OL]. DOI:10.48550/arXiv.1706.03762, 2017. [6] Shalev-Shwartz S, Ben-David S. Understanding Machine Learning: From Theory to Algorithms[M]. Cambridge University Press, 2014. [7] Kingma D P, Ba J. Adam: A method for stochastic optimization[OL]. arXiv preprint arXiv:1412.6980, 2014. [8] Vinyals O, Jia Y, Deng L, et al. Learning with recursive perceptual representations[J]. Advances in Neural Information Processing Systems, 2012, 2: 2825-2833. [9] Yu Y, Chan K H R, You C, et al. Learning diverse and discriminative representations via the principle of maximal coding rate reduction[J]. Advances in Neural Information Processing Systems, 2020, 33: 9422-9434. [10] Chan K H R, Yu Y, You C, et al. Deep networks from the principle of rate reduction[OL]. arXiv preprint arXiv:2010.14765, 2020. [11] Yu Y, Buchanan S, Pai D, et al. White-Box Transformers via Sparse Rate Reduction[OL]. arXiv preprint arXiv:2306.01129, 2023. [12] Zhu Y, Newsam S. Densenet for dense flow[C]// 2017 IEEE international conference on image processing (ICIP). IEEE, 2017: 790-794. [13] Krishnamoorthi R. Quantizing deep convolutional networks for efficient inference: A whitepaper[OL]. arXiv preprint arXiv:1806.08342, 2018. [14] Nagel M, Fournarakis M, Amjad R A, et al. A white paper on neural network quantization[OL]. arXiv preprint arXiv:2106.08295, 2021. [15] Banner R, Nahshan Y, Soudry D. Post training 4-bit quantization of convolutional networks for rapid-deployment[J]. Advances in Neural Information Processing Systems, 2019, 12: 7950-7958. [16] Courbariaux M, Bengio Y, David J, et al. BinaryConnect: training deep neural networks with binary weights during propagations[C]// Proceedings of the 28th International Conference on Neural Information Processing Systems. 2015, 2(12): 3123-3131. [17] Rastegari M , Ordonez V , Redmon J, et al. XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks[J]. 2016. [18] Migacz S. 8-bit inference with tensorrt[C]//GPU technology conference. 2017, 2(4): 5. [19] Wu Z, Shen C, Van Den Hengel A. Wider or deeper: Revisiting the resnet model for visual recognition[J]. Pattern Recognition, 2019, 90: 119-133. [20] Gholami A, Kim S, Dong Z, et al. A survey of quantization methods for efficient neural network inference[M]//Low-Power Computer Vision. Chapman and Hall/CRC, 2022: 291-326. [21] Dong Z, Yao Z, Gholami A, et al. Hawq: Hessian aware quantization of neural networks with mixed-precision[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 293-302. [22] Dong Z, Yao Z, Arfeen D, et al. Hawq-v2: Hessian aware trace-weighted quantization of neural networks[J]. Advances in neural information processing systems, 2020, 33: 18518-18529. [23] Yao Z, Dong Z, Zheng Z, et al. Hawq-v3: Dyadic neural network quantization[C]//International Conference on Machine Learning. PMLR, 2021: 11875-11886. [24] Hubara I, Nahshan Y, Hanani Y, et al. Accurate post training quantization with small calibration sets[C]//International Conference on Machine Learning. PMLR, 2021: 4466-4475.
版权声明:中国计算机学会(CCF)拥有《中国计算机学会通讯》(CCCF)所刊登内容的所有版权,未经CCF允许,不得转载本刊文字及照片,否则被视为侵权。对于侵权行为,CCF将追究其法律责任。
|