CN116157808A - 用于神经网络的组平衡式稀疏激活和联合激活权重稀疏训练的***和方法 - Google Patents
用于神经网络的组平衡式稀疏激活和联合激活权重稀疏训练的***和方法 Download PDFInfo
- Publication number
- CN116157808A CN116157808A CN202280005926.2A CN202280005926A CN116157808A CN 116157808 A CN116157808 A CN 116157808A CN 202280005926 A CN202280005926 A CN 202280005926A CN 116157808 A CN116157808 A CN 116157808A
- Authority
- CN
- China
- Prior art keywords
- tensor
- sparse
- derivative
- weight
- dense
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000012549 training Methods 0.000 title claims abstract description 68
- 230000004913 activation Effects 0.000 title claims description 48
- 238000003860 storage Methods 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 29
- 230000001131 transforming effect Effects 0.000 claims 3
- 238000004590 computer program Methods 0.000 abstract description 2
- 238000001994 activation Methods 0.000 description 38
- 230000008569 process Effects 0.000 description 21
- 239000011159 matrix material Substances 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000005070 sampling Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0499—Feedforward networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
- Rehabilitation Tools (AREA)
- Measuring Volume Flow (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本文描述了用于优化神经网络训练的方法、***和装置,包括编码在计算机存储介质上的计算机程序。该方法可包括:在神经网络的当前层的前向传播期间,基于当前层的稀疏输入张量和稀疏权重张量生成密集输出张量,和稀疏化密集输出张量以获得稀疏输出张量;在神经网络的当前层的后向传播期间:基于稀疏输出张量确定第一稀疏导数张量,基于第一稀疏导数张量和当前层的稀疏权重张量获得密集导数张量,和稀疏化密集导数张量以获得第二稀疏导数张量;和基于第一稀疏导数张量和第二稀疏导数张量训练神经网络的权重张量。
Description
技术领域
本公开内容大概涉及人工智能(AI)模型的训练,特别是涉及组平衡式神经网络(NN)的联合激活权重稀疏(以下简称联合AW稀疏)训练。
背景技术
神经网络(NN)目前是许多现代人工智能(AI)应用的基础,如图像和视频识别、推荐***、分类、医学图像分析和自然语言处理。在部署神经网络进行推理之前,需要对其进行训练。训练NN模型包括使用训练数据集来迭代更新模型的权重,以创建输入与输出的精确映射。当今的NN训练过程通常包括大量的前向传播和后向传播的迭代。由于要计算大量的训练数据(例如在CNN中的卷积)并且在每次训练迭代中需要训练/更新的权重数量很大,NN模型的训练是计算密集型的,因此成本很高。
近年来,人们开发了各种方法,通过向NN引入稀疏性来提高NN的效率,如裁剪NN的权重张量,以减少训练后的NN模型的大小和推理时需要计算的数据量。然而,稀疏性还没有被充分地利用来提高NN的训练速度。本公开内容描述了一种新的解决方案,在前向传播和后向传播过程中引入稀疏性以提高NN训练过程的效率。此外,为了优化硬件效率,引入到权重张量和激活张量的稀疏性被定制为组平衡式的。
发明内容
本说明书的各种实施例可包括用于优化神经网络训练的***、方法和非暂时性计算机可读介质。
根据一方面,该方法可包括:在神经网络的当前层的前向传播期间,基于该当前层的稀疏输入张量和稀疏权重张量,生成密集输出张量;和通过稀疏化该密集输出张量获得稀疏输出张量;在该神经网络的该当前层的后向传播期间,基于该稀疏输出张量,确定第一稀疏导数张量;基于该第一稀疏导数张量和该当前层的该稀疏权重张量,获得密集导数张量;和通过稀疏化该密集导数张量获得第二稀疏导数张量;和基于该第一稀疏导数张量和该第二稀疏导数张量训练该神经网络的权重张量。
在一些实施例中,密集输出张量包括当前层的稀疏输入张量和稀疏权重张量的张量乘积;而密集导数张量包括第一稀疏导数张量和当前层的稀疏权重张量的张量乘积。
在一些实施例中,训练神经网络的权重张量包括:基于第二稀疏导数张量,为前一层确定新的稀疏权重张量。
在一些实施例中,训练神经网络的权重张量包括:基于第一稀疏导数张量和稀疏输入张量为当前层确定新的稀疏权重张量。
在一些实施例中,神经网络的当前层对应于权重张量掩码,并且为当前层确定新的稀疏权重张量包括:基于第一稀疏导数张量和稀疏输入张量的转置的张量乘积,获得密集导数权重张量;以及通过将权重张量掩码应用于密集导数权重张量,禁用密集导数权重张量中的一个或多个权重,以获得当前层的新的稀疏权重张量。
在一些实施例中,密集导数权重张量包括对应于神经网络的当前层的多个权重参数的多个梯度。
在一些实施例中,为当前层确定新的稀疏权重张量包括:基于第一稀疏导数张量和稀疏输入张量的转置的张量乘积获得密集导数权重张量;以及将前K(top-K)激活函数应用于密集导数权重张量以获得当前层的新的稀疏权重张量。
在一些实施例中,应用前K激活函数包括:将密集导数权重张量的每一行或每一列划分为对应于处理器的存储器组的多个组;以及对于多个组中的每一个,确定组中前K个权重,并禁用组中非前K个权重的权重。
在一些实施例中,通过稀疏化密集输出张量获得稀疏输出张量包括:对密集输出张量应用前K激活函数以获得稀疏输出张量;以及通过稀疏化密集导数张量获得第二稀疏导数张量包括:对密集导数张量应用前K激活函数以获得第二稀疏导数张量。
在一些实施例中,神经网络的当前层包括密集权重张量并对应于权重张量掩码,而当前层的稀疏权重张量通过以下方式获得:通过将权重张量掩码应用于密集权重张量,从而禁用密集权重张量中的一个或多个权重,以获得稀疏权重张量。
根据另一个方面,描述了一种用于优化神经网络训练的***。该***可以包括一个或多个处理器和一个或多个非暂时性计算机可读存储器,该一个或多个非暂时性计算机可读存储器耦合到该一个或多个处理器并配置有可由该一个或多个处理器执行的指令,以使该***执行操作,操作包括:在神经网络的当前层的前向传播期间,基于该当前层的稀疏输入张量和稀疏权重张量,生成密集输出张量;和通过稀疏化该密集输出张量获得稀疏输出张量;在该神经网络的该当前层的后向传播期间,基于该稀疏输出张量,确定第一稀疏导数张量;基于该第一稀疏导数张量和该当前层的该稀疏权重张量,获得密集导数张量;和通过稀疏化该密集导数张量获得第二稀疏导数张量;和基于该第一稀疏导数张量和该第二稀疏导数张量训练该神经网络的权重张量。
根据又另一方面,描述了一种用于优化神经网络训练的非暂时性计算机可读存储介质。该非暂时性计算机可读存储介质可以配置有可由一个或多个处理器执行的指令,以使该一个或多个处理器执行操作,操作包括:在神经网络的当前层的前向传播期间,基于该当前层的稀疏输入张量和稀疏权重张量,生成密集输出张量;和通过稀疏化该密集输出张量获得稀疏输出张量;在该神经网络的该当前层的后向传播期间,基于该稀疏输出张量,确定第一稀疏导数张量;基于该第一稀疏导数张量和该当前层的该稀疏权重张量,获得密集导数张量;和通过稀疏化该密集导数张量获得第二稀疏导数张量;和基于该第一稀疏导数张量和该第二稀疏导数张量训练该神经网络的权重张量。
本文所公开的***、方法和非暂时性计算机可读介质的这些和其他特征,以及相关结构元素的操作方法和功能,以及部件的组合和制造的经济性,在参照附图且考虑到以下描述和所附权利要求的情况下将变得更加明显,以上所有形成本说明书的一部分,其中类似的附图标记指定各附图中的相应部分。然而,应明确理解的是,附图仅用于说明和描述的目的,而不是旨在作为本发明的界限的限定。
附图说明
图1示出根据各种实施例的神经网络(NN)的示例性训练过程。
图2示出根据各种实施例的NN的示例性联合AW稀疏训练。
图3示出根据各种实施例的NN的联合AW稀疏训练中的示例性前向传播。
图4示出根据各种实施例的NN的联合AW稀疏训练中的示例性后向传播。
图5A示出根据各种实施例的组平衡式NN的联合AW稀疏训练中的示例性权重梯度更新过程。
图5B示出根据各种实施例的组平衡式NN的联合AW稀疏训练中的用于更新权重梯度的示例性方法。
图5C示出根据各种实施例的组平衡式NN的联合AW稀疏训练中的用于更新权重梯度的示例性方法。
图6A示出根据各种实施例的用于生成组平衡式稀疏化张量的示例性2D(二维)稀疏化。
图6B示出根据各种实施例的用于生成组平衡式稀疏化张量的示例性3D(三维)稀疏化。
图7示出根据各种实施例的组平衡式NN的联合AW稀疏训练的示例方法。
图8示出示例计算机***,其中可以实施本文所述的任何实施例。
具体实施方式
本文描述的实施例提供了用于联合激活权重稀疏(以下简称联合AW稀疏)训练组平衡式NN的方法、***、装置。在下面的描述中,将参照附图对本发明的具体的、非限制性的实施例进行描述。本文公开的任何实施例的特定特征和方面可用于和/或与本文公开的任何其他实施例的特定特征和方面相结合。还应理解的是,这些实施例是以举例的方式,仅仅是说明本发明范围内的少量实施例。对本发明相关领域的技术人员来说,各种显而易见的变化和修改被认为是在本发明的精神、范围和设想之内,如所附权利要求书中进一步限定的那样。
图1示出根据各种实施例的神经网络(NN)的示例性训练过程100。本公开内容中描述的实施例可以作为图1中说明性训练过程的一部分来实施,或者作为另一个合适的NN训练方法来实施以提高训练效率。
如图1所示,示例性NN包括多个层130,例如层1、层2、层3、……、层L、……等。每个层130可以包括多个参数,如权重张量、偏置张量等。“张量”是指深度学习领域的主要数据结构,包括秩-1张量(矢量)、秩-2张量(矩阵)和更高秩的张量。
说明性的训练过程100包括多个迭代来训练NN的参数。每个迭代可以包括前向传播(或前向传递)110和后向传播(或后向传递)120。前向传播110涉及按照从输入层到输出层的顺序计算和存储神经网络的中间变量(包括输出)。后向传播120涉及计算NN参数的梯度,这可作为更新NN参数的基础。
为了说明问题,图1中的层L被选为示例来描述前向传播110和后向传播120中涉及的操作。假设来自在先的层L-1的输入张量为a[L-1],并且层L具有权重项(例如权重张量)w[L]和偏置项(例如偏置张量)b[L]。中间变量可被计算并表示为z[L]=[L]a[L-1]+[L],其中,w和a均为张量,并且z是w与a的张量乘积。在通过激活函数φ运行中间变量z之后,可以得到激活张量为a[L+1]=φ(z)。这个激活张量a[L+1]可以作为层L+1(下一层)的前向传播的输入。在某些情况下,z[L]可以作为中间变量存储在缓存中,以便在后向传播120期间进行计算(例如避免重复计算)。此外,权重张量w[L]和偏置张量b[L]也可以存储在缓存中,以避免在后向传播120期间不必要的外部存储器访问。前向传播过程继续进行到NN的输出层。输出层的输出张量可以与训练数据的(多个)训练标签一起被送入损失函数,以确定损失(例如在当前参数下NN的量化性能)。然后,该损失可以与正则化项(如L2正则化)相结合,以确定目标函数。
后向传播120的目标是计算梯度。然后,梯度可用于更新NN的相应权重参数,以最小化损失或最大化目标函数。在后向传播120期间,激活张量的导数可以通过所有层迭代计算。例如,在NN的第L层中,第L层的激活张量的导数可以得到为第L层的权重张量w[L]可以乘以/>以获得第(L-1)层的激活张量的导数。这个过程可以持续到NN的第一层。在此,乘法可以指的是获得两个张量的张量乘积的操作。在层L,导数/>与输入张量a[L]的转置的张量乘积可以被计算为第L层的权重张量的导数,表示为/>基于第L层的权重参数可以被相应地更新以适应训练数据。可以指出的是,上述导数也可以被称为相应变量的梯度。
在一些实施例中,可以将稀疏性引入到上述的每个步骤中,包括前向传播、后向传播和权重梯度计算,以提高训练效率。现有的基于稀疏化的NN训练方法通常侧重于前向传播(例如通过在前向传递中裁剪张量),但忽略了后向传播。下面描述的实施例描述了一种方法和***,其中所有的张量,包括导数张量,在前向传播和后向传播中都被裁剪以优化训练效率。此外,在每一轮后向传播之后,每一层的更新权重张量以组平衡的方式进行修剪,以便使所训练的NN针对底层硬件架构进行优化,例如与处理器(如GPU、TPU、NPU)中的存储器组对齐。组平衡式NN可以支持使用多核***的平衡并行处理(核上的负载是平衡的),并通过最小化组冲突来优化推理过程中的存储器访问(避免对一些组的访问拥堵)。对于将信息存储在组中的存储器类型,当同一组被随机地址连续访问时就会发生组冲突。例如,如果两次连续的访问是在同一组的不同行,那么这两次访问可能不会同时进行。事实上,对于许多类型的存储器(例如DDR),在同一组的每次存储器访问之间可能有多个周期的延迟。例如,如果下一次存储器访问是在同一组的不同行,那么该下一次存储器访问可能需要等待12个周期才能完成。因此,组冲突可能会在***中造成严重的延迟。
图2示出根据各种实施例的NN的示例性联合AW稀疏训练。图2中示出的训练过程涉及前向传播110、后向传播120、以及发生在一个NN层的权重梯度更新130。图2中使用的索引是为了说明目的,并且仅仅是为了表示层的相对位置,这可以被概括为NN的其他层。
在前向传播110期间,可以从前一层接收输入激活张量。在一些实施例中,这个输入激活张量可以被裁剪成稀疏输入张量,在图2中被表示为A1,索引1表示当前层是层1。然后,稀疏输入张量可以使用张量乘法,与层1的权重张量相乘,以获得下一层的输出张量。在一些实施例中,当前的层1的权重张量可以被裁剪成稀疏权重张量,表示为W,以减小NN的大小和要处理的数据量。如图2所示,张量乘积R1在两个稀疏张量、即A1和W的基础上生成,由于张量乘法的性质,该张量乘积可能是密集的。
在一些实施例中,这个密集张量乘积R1可以通过激活操作和/或前K采样(top-K采样)来减少非零值,并得到稀疏输出张量,表示为A2,其中索引2表示A2将被用作前向传播过程110中下一层的输入张量。激活操作可以包括将非线性引入NN中的非线性激活函数。示例性非线性激活函数包括sigmoid(S型)、双曲正切和整流线性单元(ReLU)。ReLU函数可以应用元素激活函数来过滤掉密集张量乘积R1中的一些输出(激活)。ReLU函数可以不改变输出激活张量的大小,但可以限制活动神经元的数量,以提高以下各层的计算效率。前K采样可能涉及到在密集张量乘积R1中凭借最大幅度选择每个组中的K值,以保留他们的值,并将组中的其他值设置为零。这些激活和/或前k操作在训练过程中有效地减少了张量的占用空间,而不牺牲准确性,因为只有绝对值小的非重要的值/特征被清零或裁剪掉。
上述前向传播110继续进行并在NN的最后一层(例如输出层)终止。之后,后向传播120可以以相反的方向(例如从NN的最后一层到第一层)进行,以计算梯度,以便更新NN的权重和/或其他参数。在一些实施例中,图2中NN的层1的后向传播120可以基于稀疏输出张量A2从计算导数张量开始,表示为由于A2是稀疏的,所以导数张量/>也是稀疏的。在此,导数张量可以通过对稀疏输出张量A2中的每个非零值进行导数操作来获得。在一些实施例中,这个导数张量/>可以以两种方式使用。
首先,它可以被用作后向传播120的中间值。例如,层1的稀疏权重张量的张量乘积可以与稀疏导数张量相乘,以获得稀疏输入张量A1的导数版本,该导数版本可以表示为如上所述,两个稀疏张量的乘积,例如W和/>的乘积可能是密集的。在一些实施例中,可以应用激活和/或前K采样来裁剪/>以获得前一层(例如层0)的稀疏导数张量/>该稀疏导数张量/>可用于后向传播120的下一个步骤。
第二,可用于更新层1的权重梯度130。例如,如图2所示,层1的稀疏输入张量A1与层1的稀疏导数张量/>的张量乘积可以是表示权重参数梯度的密集张量,表示为/>权重参数的梯度/>可以进一步裁剪成稀疏梯度张量,用于更新权重参数。
如图所示,上述的NN的联合AW稀疏训练在训练的每一步中都利用了稀疏性,包括前向传播110中的步骤(例如激活和/或前K操作将R1裁剪为A2)和后向传播120(例如激活和/或前K操作将裁剪为/>)。图5进一步描述了在更新权重梯度更新过程130中如何引入稀疏性。
图3示出根据各种实施例的NN的联合AW稀疏训练中的示例性前向传播。图3中示出的过程提供了关于图2中前向传播110的更多细节。图3中的数值和符号是为了说明的目的。
在图3中,稀疏输入张量A1被接收到NN的当前层以与当前层的权重张量W进行计算,例如矩阵乘法。图3示出两个张量A1和W均为二维矩阵。在一些实施例中,权重张量W可以通过应用稀疏权重张量掩码来裁剪,该掩码遮盖了权重张量中的一些权重。被遮盖的权重可以被认为是被设置为零或禁用。在一些实施例中,NN的每个层可以有一个相应的稀疏权重张量掩码。稀疏权重张量掩码可以根据权重张量中权重的幅度来确定,其中具有较小幅度的权重有较大的机会被遮掩为零。
在一些实施例中,稀疏A1和稀疏W可以乘为密集张量R1,然后该密集张量可以通过激活函数、前K采样或两者进行裁剪,以获得稀疏张量A2。
图4示出根据各种实施例的NN的联合AW稀疏训练中的示例性后向传播。图3中示出的过程提供了关于图2中后向传播120的更多细节。图4中的数值和符号是为了说明的目的。
在图4中,导数张量可以根据图2和图3中的稀疏输出张量R2来生成。由于A2是稀疏的,并且导数操作不改变零值,因此产生的导数张量/>也是稀疏的。NN的当前层的权重张量W可以使用图3中描述的稀疏权重张量掩码进行裁剪。两个稀疏张量/>和W的产生可以是密集张量,表示为/>它可以通过激活、前K采样或两者进一步裁剪,以获得稀疏张量稀疏张量/>也可用于更新前一层(例如层0)的权重张量,这在图5A中有所描述。
图5A示出根据各种实施例的组平衡式NN的联合AW稀疏训练中的示例性权重梯度更新过程。通过图2至图4中描述的前向传播和后向传播,可以为NN的每一层获得稀疏导数张量其中i指的是该层的索引。在图5A中,假定已经获得/>
例如,在图5A中的选项1中,图3中描述的稀疏权重张量掩码可以应用于密集导数张量以获得稀疏导数张量/>稀疏权重张量掩码可以将一些权重识别为当前层的非必需项,并将这些权重设置为零(例如禁用这些权重或与这些权重对应的激活)。图5B示出图表,示出了根据各种实施例的组平衡式NN的联合AW稀疏训练中的用于更新权重梯度的选项1。如图5B所示,现有的稀疏掩码520被应用于密集导数张量/>以获得稀疏导数张量。现有的稀疏掩码520包含多个零值,以遮掩密集导数张量/>中的相应权重。
作为另一示例,在图5A的选项2中,密集导数张量可以被分割成多个大小相同的组。图5C示出图表,示出了根据各种实施例的组平衡式NN的联合AW稀疏训练中的用于更新权重梯度的选项2。图5C中的组530可以根据实施方式以不同方式限定。例如,组530可以是密集导数张量/>中的列或排。在每个组530内,可以进行前K采样,以确定具有最大幅度(最大的正值和负值)的K权重,并将组530内的其他权重设置为零,从而生成稀疏导数张量通过这种基于前K采样的裁剪方法,生成的/>可以是组平衡式的,即每个组530包括相同数量的非零值。在实际应用中,张量的每个组530可以对应于(例如存储在)底层硬件的本地存储器(例如NN训练加速器的缓存、外部存储器)中的一区段。因此,组平衡式张量可以在本地存储器的不同区段中均匀地分配非零值,这可能会促进训练和推理的更平衡的并行处理方案。在下面的描述中,在图6A和图6B中描述了生成组平衡式稀疏化张量的不同方法。
图6A示出根据各种实施例的用于生成组平衡式稀疏化张量的示例性2D稀疏化。在图6A中,要裁剪的张量是2D矩阵。例如,假设输入张量或权重张量是3D张量,其可以与三个维度之一、例如通道维度一起被分割,以获得多个2D矩阵。图6A中示出的示例性2D稀疏化方法可适用于多个2D矩阵中的每一个。图6A中的张量可以指NN背景下的权重张量或激活张量。
如图所示,表示为Y1的2D密集矩阵可能有大量的非零值。有两种方法可以生成组平衡式和稀疏化版本的矩阵:行式稀疏化610和列式稀疏化620。例如,在行式稀疏化610中,2D密集矩阵的每一行可以被分割成多个大小相同的组。在每个组中,执行前K采样,以保留具有最大幅度的K个非零值,并将其他值设置为零。在图6A中,2D矩阵的每一行被分割成两个组,并对每个组进行前2采样(top-2采样),以保留其中的2个非零值。作为另一示例,在列式稀疏化620中,2D密集矩阵的每一列可以被分割成多个大小相同的组。在每个组中,执行前K采样,以保留具有最大幅度的K个非零值,并将其他值设置为零。在图6A中,2D密集矩阵的每一列被分割成两个组,并对每个组进行前1采样(top-1采样),以保留其中的1个非零值。
在一些实施例中,在上述的联合AW稀疏训练过程中,行式稀疏化或列式稀疏化可以应用于NN的不同层。例如,在图5A所示的权重梯度更新步骤中,密集权重梯度张量可使用行式或列式稀疏化进行裁剪,以获得稀疏权重梯度张量/>不同的层可以部署不同的稀疏化方法以达到最佳性能。
图6B示出根据各种实施例的用于生成组平衡式稀疏化张量的示例性3D稀疏化。在图6B中,假设要裁剪的张量是3D矩阵,它可以是在NN中的一层获得的激活张量,或者权重张量。作为图6B中所示的示例,激活张量Y1可以基于输入张量X、权重张量W和偏置张量B获得。激活张量Y1可以有三个维度:高度维度、宽度维度和通道维度。
有几种方法来基于3D密集矩阵生成组平衡式和稀疏化张量,例如图6B中示出的630-650。这些方法在如何限定组方面有所不同。例如,在方法630中,一个通道被认为是一组,例如,前平面/表面可以被认为是一组。作为另一示例,在方法640中,每个通道可以被划分为多个大小相等的组。作为又另一示例,在方法650中,多个通道可以被视为一组。在限定各组之后,可以对每个组进行前K采样,以保留具有最大幅度的K个非零值,并将其他值设置为零。在一些实施例中,分割组的不同方式可能需要不同的存储方案,以使每个组内的数据在存储器中物理上是同地的。连续存储每个组可以促进顺序读数(减少存储器访问的次数),并均匀分布非零数据,以便更好地进行并行处理。
与图6A中描述的2D稀疏化方法相比,3D稀疏化可以在更多维度上保留固有的权重关系,而2D稀疏化可能更容易实现。根据使用情况和偏好,可以部署任一稀疏化方法来生成组平衡式和稀疏张量。
图7示出根据各种实施例的组平衡式NN的联合AW稀疏训练的示例方法。方法700可由用于优化资源分配的设备、装置或***执行。下面介绍的方法700的操作是为了说明的目的。根据实施方式,方法700可以包括以各种顺序或并行地执行的额外的、较少的或替代的步骤。
区块710包括在神经网络的当前层的前向传播期间:基于当前层的稀疏输入张量和稀疏权重张量,生成密集输出张量;以及通过稀疏化密集输出张量获得密集输出张量。在一些实施例中,密集输出张量包括当前层的稀疏输入张量和稀疏权重张量的张量乘积;而密集导数张量包括第一稀疏导数张量和当前层的稀疏权重张量的张量乘积。在一些实施例中,通过稀疏化密集输出张量获得稀疏输出张量包括:对密集输出张量应用前K激活函数以获得稀疏输出张量;以及通过稀疏化密集导数张量获得第二稀疏导数张量包括:对密集导数张量应用前K激活函数以获得第二稀疏导数张量。在一些实施例中,神经网络的当前层包括密集权重张量并对应于权重张量掩码,而当前层的稀疏权重张量通过以下方式获得:通过将权重张量掩码应用于密集权重张量,从而禁用密集权重张量中的一个或多个权重,以获得稀疏权重张量。
区块720包括在神经网络的当前层的后向传播期间:基于稀疏输出张量确定第一稀疏导数张量;基于第一稀疏导数张量和当前层的稀疏权重张量获得密集导数张量;以及通过稀疏化密集导数张量获得第二稀疏导数张量。
区块730基于第一稀疏导数张量和第二稀疏导数张量训练神经网络的权重张量。在一些实施例中,训练神经网络的权重张量包括:基于第二稀疏导数张量,为前一层确定新的稀疏权重张量。在一些实施例中,训练神经网络的权重张量包括:基于第一稀疏导数张量和稀疏输入张量为当前层确定新的稀疏权重张量。
在一些实施例中,神经网络的当前层对应于权重张量掩码,并且为当前层确定新的稀疏权重张量包括:基于第一稀疏导数张量和稀疏输入张量的转置的张量乘积,获得密集导数权重张量;以及通过将权重张量掩码应用于密集导数权重张量,禁用密集导数权重张量中的一个或多个权重,以获得当前层的新的稀疏权重张量。
在一些实施例中,密集导数权重张量包括对应于神经网络的当前层的多个权重参数的多个梯度。在一些实施例中,为当前层确定新的稀疏权重张量包括:基于第一稀疏导数张量和稀疏输入张量的转置的张量乘积获得密集导数权重张量;以及将前K激活函数应用于密集导数权重张量以获得当前层的新的稀疏权重张量。
在一些实施例中,应用前K激活函数包括:将密集导数权重张量的每一行或每一列划分为对应于处理器的存储器组的多个组;以及对于多个组中的每一个,确定组中前K个权重,并禁用组中非前K个权重的权重。
图8示出示例计算***,其中可以实施本文所述的任何实施例。计算设备可用于实施图1至图7所示的***和方法的一个或多个组件。计算设备800可以包括用于通信信息的总线802或其他通信机制,以及与总线802耦合的用于处理信息的一个或多个硬件处理器804。(多个)硬件处理器804可以是例如一个或多个通用的微处理器。
计算设备800还可以包括主存储器807,例如随机存取存储器(RAM)、缓存和/或其他动态存储装置,耦合到总线802,用于存储将由(多个)处理器804执行的信息和指令。主存储器807也可用于在执行将由(多个)处理器804执行的指令期间存储临时变量或其他中间信息。这样的指令,当存储在(多个)处理器804可访问的存储介质中时,可使计算设备800成为被定制来执行指令中指定的操作的特殊用途机器。主存储器807可以包括非易失性介质和/或易失性介质。非易失性介质可以包括例如光盘或磁盘。易失性介质可包括动态存储器。常见的介质形式可以包括例如软盘、可折叠磁盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM(只读光盘驱动器)、任何其他光学数据存储介质、任何有孔排列模式的物理介质、RAM(随机存取存储器)、DRAM(动态随机存取存储器)、PROM(可编程序只读存储器)和EPROM(可擦可编程只读存储器)、FLASH-EPROM(快擦可编程只读存储器)、NVRAM(非易失随机存取存储器)、任何其他存储芯片或磁带盒,或以上各项的网络版本。
计算设备800可以使用定制的硬接线逻辑、一个或多个ASIC(特定用途集成电路)或FPGA(现场可编程门阵列)、固件和/或程序逻辑来实施本文所述的技术,它们与计算设备相结合,可以使计算设备800成为特殊用途机器或对其进行编程。根据一个实施例,本文的技术由计算设备800响应于(多个)处理器804执行主存储器807中包含的一个或多个指令的一个或多个序列而执行。这样的指令可以从另一存储介质、例如存储装置809读入主存储器807。执行主存储器807中包含的指令序列可使(多个)处理器804执行本文所述的处理步骤。例如,本文公开的过程/方法可由存储在主存储器807中的计算机程序指令来实施。当这些指令被(多个)处理器804执行时,它们可以执行相应附图中所示和如上所述的步骤。在备选的实施例中,可以用硬接线电路来代替软件指令或与软件指令结合使用。
计算设备800还包括耦合到总线802的通信接口810。通信接口810可以提供与一个或多个网络链接耦合的双向数据通信,这些网络链接连接到一个或多个网络。作为另一示例,通信接口810可以是局域网(LAN)卡,以提供与兼容的LAN(或与WAN(广域网)通信的WAN组件)的数据通信连接。也可以实施无线链接。
某些操作的性能可以分布在处理器之间,不仅驻留在单个机器内,而是部署在许多机器上。在一些示例性实施例中,处理器或处理器实施的引擎可以位于单个地理位置(例如在家庭环境、办公室环境或服务器场内)。在其他示例性实施例中,处理器或处理器实施的引擎可以分布在许多地理位置上。
前面各节所述的每个过程、方法和算法都可以体现在由一个或多个计算机***或包括计算机硬件的计算机处理器执行的代码模块中,并完全或部分地由其自动化。这些过程和算法可以部分或全部在特定应用电路中实施。
当本文公开的功能以软件功能单元的形式实施并作为独立的产品出售或使用时,它们可以被存储在处理器可执行的非易失性计算机可读存储介质中。本文公开的特定技术解决方案(全部或部分)或有助于当前技术的方面可以以软件产品的形式体现。该软件产品可以存储在存储介质中,包括一些指令,以使计算设备(可以是个人计算机、服务器、网络设备等)执行本申请实施例的方法的全部或部分步骤。存储介质可以包括闪存驱动器、移动硬盘、ROM、RAM、磁盘、光盘、另一种可用于存储程序代码的介质、或上述任何组合。
特定实施例进一步提供了一种***,包括处理器和非暂时性计算机可读存储介质,其存储有可由处理器执行的指令,以使***执行与上述实施例的任何方法中的步骤相对应的操作。特定的实施例进一步提供了一种非暂时性计算机可读存储介质,其配置有可由一个或多个处理器执行的指令,以使一个或多个处理器执行与上述公开的实施例中的任何方法的步骤相对应的操作。
本文所公开的实施例可以通过与客户端交互的云平台、服务器或服务器组(以下统称为“服务***”)来实施。客户端可以是终端设备,或由用户在平台注册的客户端,其中终端设备可以是移动终端、个人电脑(PC),以及可以安装平台应用程序的任何设备。
上面描述的各种特征和过程可以相互独立使用,也可以以各种方式组合。所有可能的组合和子组合都是为了落在本公开的范围内。此外,在一些实施方式中可以省略某些方法或过程区块。本文描述的方法和过程也不限于任何特定的顺序,与之相关的区块或状态可以以其他适当的顺序执行。例如,所描述的区块或状态可以以非具体公开的顺序执行,或者多个区块或状态可以结合在单个区块或状态中。示例性区块或状态可以以串行、并行或其他方式执行。区块或状态可以被添加到所公开的示例性实施例中或从其中移除。本文描述的示例性***和组件可以配置为与描述的不同。例如,与所公开的示例性实施例相比,可添加、移除或重新布置元素。
本文描述的示例性方法的各种操作可以至少部分地由算法执行。算法可由存储在存储器(例如上述的非暂时性计算机可读存储介质)中的程序代码或指令组成。这种算法可以包括机器学习算法。在一些实施例中,机器学习算法可以不明确地对计算机进行编程以执行功能,但可以从训练数据中学习,得到执行该功能的预测模型。
本文描述的示例性方法的各种操作可以至少部分地由一个或多个处理器执行,这些处理器被临时配置(例如通过软件)或永久配置以执行相关操作。无论是临时配置还是永久配置,这样的处理器可以构成处理器实施的引擎,其操作以执行本文所述的一个或多个操作或功能。
类似地,本文所述的方法至少可以部分地由处理器实施,其中特定的一个或多个处理器是硬件的示例。例如,方法的至少部分操作可以由一个或多个处理器或处理器实施的引擎执行。此外,一个或多个处理器也可以在“云计算”环境下或作为“软件即服务”(SaaS)运行,以支持相关操作的执行。例如,至少一些操作可以由计算机组(作为包括处理器的机器的示例)执行,这些操作可以通过网络(例如互联网)和通过一个或多个适当的接口(例如应用程序接口(API))来访问。
某些操作的性能可以分布在处理器之间,不仅驻留在单个机器内,而是部署在许多机器上。在一些示例性实施例中,处理器或处理器实施的引擎可以位于单个地理位置(例如在家庭环境、办公室环境或服务器场内)。在其他示例性实施例中,处理器或处理器实施的引擎可以分布在许多地理位置上。
在本说明书中,多个实例可以实施描述为单一实例的组件、操作或结构。尽管一个或多个方法的单个操作被作为独立的操作来说明和描述,但一个或多个单独的操作可以同时执行,而且不要求这些操作按照所示出的顺序来执行。在示例配置中作为独立组件呈现的结构和功能可以作为组合的结构或组件实施。类似地,作为单个组件呈现的结构和功能可以作为独立的组件来实施。这些和其他变化、修改、补充和改进都属于本文主题的范围。
正如本文所使用的,“或”是包含而非排他性的,除非明确指出或根据上下文另行指明。因此,在这里,“A、B或C”是指“A、B、A和B、A和C、B和C,或A、B和C”,除非明确指出或根据上下文另行指明。此外,“和”既是共同的,也是个别的,除非明确指出或根据上下文另行指明。因此在本文中,“A和B”是指“A和B,共同地或个别地”,除非明确表示或根据上下文另行指明。此外,可以为本文作为单个实例描述的资源、操作或结构提供多种实例。此外,各种资源、操作、引擎和数据存储之间的界限在某种程度上是任意的,并且特定的操作是在特定的说明性配置的背景下说明的。其他功能的分配是可以设想的,并且可以落在本公开的各种实施例的范围内。一般来说,在示例配置中作为独立资源呈现的结构和功能可以作为组合的结构或资源来实施。类似地,作为单个资源呈现的结构和功能可以作为独立的资源来实施。这些和其他的变化、修改、补充和改进都属于所附权利要求书所代表的本公开的实施例的范围。因此,本说明书和附图应以说明性而非限制性的意义来看待。
术语“包括”或“包含”用于表示随后声明的特征的存在,但其并不排除增加其他特征。条件性语言,尤其是例如“可”、“可以”或“可能”,除非特别说明或在使用的上下文中以其他方式理解,一般旨在表达某些实施例包括、而其他实施例不包括某些特征、元素和/或步骤。因此,这种条件性语言一般不意味着特征、元素和/或步骤以任何方式是一个或多个实施例所必需的,或者一个或多个实施例必须包括逻辑,该逻辑在有或没有用户输入或提示的情况下,决定这些特征、元素和/或步骤是否包括在任何特定实施例中,或者是否要在任何特定实施例中执行。
尽管已经参照具体的示例性实施例描述了本主题的概况,但在不脱离本公开的实施例的广泛范围的情况下,可以对这些实施例进行各种修改和变化。该主题的这样的实施例在本文中可以单独或集合地用术语“发明”来称呼,这仅仅是为了方便,并且如果事实上公开了多于一个公开或概念,那么不旨在将本申请的范围自愿限制在任何单一的公开或概念上。
本文示出的实施例已被描述得足够详细,以使本领域的技术人员能够实践所公开的教导。其他的实施例可以被使用并由此衍生出来,这样的结构和逻辑上的替换和改变可以在不偏离本公开的范围的情况下进行。因此,详细描述不应具有限制性意义,并且各种实施例的范围仅由所附权利要求书以及这样的权利要求书所享有的全部等同范围来限定。
Claims (20)
1.一种计算机实施的用于优化神经网络训练的方法,包括:
在神经网络的当前层的前向传播期间:
基于所述当前层的稀疏输入张量和稀疏权重张量,生成密集输出张量,和
稀疏化所述密集输出张量,以获得稀疏输出张量;
在所述神经网络的所述当前层的后向传播期间:
基于所述稀疏输出张量,确定第一稀疏导数张量,
基于所述第一稀疏导数张量和所述当前层的所述稀疏权重张量,获得密集导数张量,和
稀疏化所述密集导数张量,以获得第二稀疏导数张量;和
基于所述第一稀疏导数张量和所述第二稀疏导数张量训练所述神经网络的权重张量。
2.根据权利要求1所述的方法,其中,所述密集输出张量包括所述当前层的所述稀疏输入张量与所述稀疏权重张量的张量乘积;和
所述密集导数张量包括所述当前层的所述第一稀疏导数张量与所述稀疏权重张量的张量乘积。
3.根据权利要求1所述的方法,其中,所述训练所述神经网络的所述权重张量包括:
基于所述第二稀疏导数张量,为前一层确定新的稀疏权重张量。
4.根据权利要求1所述的方法,其中,所述训练所述神经网络的所述权重张量包括:
基于所述第一稀疏导数张量和所述稀疏输入张量,为所述当前层确定新的稀疏权重张量。
5.根据权利要求4所述的方法,其中,所述神经网络的所述当前层对应于权重张量掩码,并且
所述为所述当前层确定新的稀疏权重张量包括:
基于所述第一稀疏导数张量与所述稀疏输入张量的转置的张量乘积获得密集导数权重张量;和
通过将所述权重张量掩码应用于所述密集导数权重张量,禁用所述密集导数权重张量中的一个或多个权重,从而为所述当前层获得新的稀疏权重张量。
6.根据权利要求5所述的方法,其中,所述密集导数权重张量包括对应于所述神经网络的所述当前层的多个权重参数的多个梯度。
7.根据权利要求4所述的方法,其中,所述为所述当前层确定新的稀疏权重张量包括:
基于所述第一稀疏导数张量与所述稀疏输入张量的转置的张量乘积获得密集导数权重张量;和
将前K激活函数应用于所述密集导数权重张量,从而为所述当前层获得所述新的稀疏权重张量。
8.根据权利要求7所述的方法,其中,应用所述前K激活函数包括:
将所述密集导数权重张量的每一行或每一列划分为与处理器的存储器组相对应的多个组;以及
对于所述多个组中的每个组,确定所述组中的前K个权重,并禁用所述组中非所述前K个权重的权重。
9.根据权利要求1所述的方法,其中,所述稀疏化所述密集输出张量以获得稀疏输出张量包括:
将前K激活函数应用于所述密集输出张量,以获得所述稀疏输出张量;和
所述稀疏化所述密集导数张量以获得第二稀疏导数张量包括:
将所述前K激活函数应用于所述密集导数张量,以获得所述第二稀疏导数张量。
10.根据权利要求1所述的方法,其中,所述神经网络的所述当前层包括密集权重张量且对应于权重张量掩码,并且所述当前层的所述稀疏权重张量是通过以下方式获得:
通过将所述权重张量掩码应用于所述密集权重张量,禁用所述密集权重张量中的一个或多个权重,从而获得所述新的稀疏权重张量。
11.一种***,包括一个或多个处理器和一个或多个非暂时性计算机可读存储器,所述一个或多个非暂时性计算机可读存储器耦合到所述一个或多个处理器并配置有能够由所述一个或多个处理器执行的指令,以使所述***执行操作,所述操作包括:
在神经网络的当前层的前向传播期间:
基于所述当前层的稀疏输入张量和稀疏权重张量,生成密集输出张量,和
稀疏化所述密集输出张量,以获得稀疏输出张量;
在所述神经网络的所述当前层的后向传播期间:
基于所述稀疏输出张量,确定第一稀疏导数张量,
基于所述第一稀疏导数张量和所述当前层的所述稀疏权重张量,获得密集导数张量,和
稀疏化所述密集导数张量,以获得第二稀疏导数张量;和
基于所述第一稀疏导数张量和所述第二稀疏导数张量训练所述神经网络的权重张量。
12.根据权利要求11所述的***,其中,所述训练所述神经网络的所述权重张量包括:
基于所述第一稀疏导数张量和所述稀疏输入张量,为所述当前层确定新的稀疏权重张量。
13.根据权利要求12所述的***,其中,所述神经网络的所述当前层对应于权重张量掩码,并且
所述为所述当前层确定新的稀疏权重张量包括:
基于所述第一稀疏导数张量与所述稀疏输入张量的转置的张量乘积获得密集导数权重张量;和
通过将所述权重张量掩码应用于所述密集导数权重张量,禁用所述密集导数权重张量中的一个或多个权重,从而为所述当前层获得新的稀疏权重张量。
14.根据权利要求12所述的***,其中,所述神经网络的所述当前层对应于权重张量掩码,并且
所述为所述当前层确定新的稀疏权重张量包括:
基于所述第一稀疏导数张量与所述稀疏输入张量的转置的张量乘积获得密集导数权重张量;和
通过将所述权重张量掩码应用于所述密集导数权重张量,禁用所述密集导数权重张量中的一个或多个权重,从而为所述当前层获得所述新的稀疏权重张量。
15.根据权利要求1所述的***,其中,所述稀疏化所述密集输出张量以获得稀疏输出张量包括:
将前K激活函数应用于所述密集输出张量,以获得所述稀疏输出张量;和
所述稀疏化所述密集导数张量以获得第二稀疏导数张量包括:
将所述前K激活函数应用于所述密集导数张量,以获得所述第二稀疏导数张量。
16.一种非暂时性计算机可读存储介质,配置有能够由一个或多个处理器执行的指令,以使所述一个或多个处理器执行操作,所述操作包括:
在神经网络的当前层的前向传播期间:
基于所述当前层的稀疏输入张量和稀疏权重张量,生成密集输出张量;和
稀疏化所述密集输出张量,以获得稀疏输出张量;
在所述神经网络的所述当前层的后向传播期间:
基于所述稀疏输出张量,确定第一稀疏导数张量,
基于所述第一稀疏导数张量和所述当前层的所述稀疏权重张量,获得密集导数张量,和
稀疏化所述密集导数张量,以获得第二稀疏导数张量;和
基于所述第一稀疏导数张量和所述第二稀疏导数张量训练所述神经网络的权重张量。
17.根据权利要求16所述的非暂时性计算机可读存储介质,其中,所述训练所述神经网络的所述权重张量包括:
基于所述第一稀疏导数张量和所述稀疏输入张量,为所述当前层确定新的稀疏权重张量。
18.根据权利要求17所述的非暂时性计算机可读存储介质,其中,所述神经网络的所述当前层对应于权重张量掩码,并且
所述为所述当前层确定新的稀疏权重张量包括:
基于所述第一稀疏导数张量与所述稀疏输入张量的转置的张量乘积获得密集导数权重张量;和
通过将所述权重张量掩码应用于所述密集导数权重张量,禁用所述密集导数权重张量中的一个或多个权重,从而为所述当前层获得新的稀疏权重张量。
19.根据权利要求17所述的非暂时性计算机可读存储介质,其中,所述神经网络的所述当前层对应于权重张量掩码,并且
所述为所述当前层确定新的稀疏权重张量包括:
基于所述第一稀疏导数张量与所述稀疏输入张量的转置的张量乘积获得密集导数权重张量;和
通过将所述权重张量掩码应用于所述密集导数权重张量,禁用所述密集导数权重张量中的一个或多个权重,从而为所述当前层获得新的稀疏权重张量。
20.根据权利要求16所述的非暂时性计算机可读存储介质,其中,所述稀疏化所述密集输出张量以获得稀疏输出张量包括:
将前K激活函数应用于所述密集输出张量,以获得所述稀疏输出张量;和
所述稀疏化所述密集导数张量以获得第二稀疏导数张量包括:
将所述前K激活函数应用于所述密集导数张量,以获得所述第二稀疏导数张量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/403,668 | 2021-08-16 | ||
US17/403,668 US11429864B1 (en) | 2021-08-16 | 2021-08-16 | System and method for bank-balanced sparse activation and joint-activation-weight-sparse training of neural networks |
PCT/CN2022/112435 WO2023020419A1 (en) | 2021-08-16 | 2022-08-15 | System and method for bank-balanced sparse activation and joint-activation-weight-sparse training of neural networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116157808A true CN116157808A (zh) | 2023-05-23 |
CN116157808B CN116157808B (zh) | 2024-02-02 |
Family
ID=83007777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280005926.2A Active CN116157808B (zh) | 2021-08-16 | 2022-08-15 | 用于神经网络的组平衡式稀疏激活和联合激活权重稀疏训练的***和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11429864B1 (zh) |
EP (1) | EP4388455A1 (zh) |
JP (1) | JP2024529717A (zh) |
KR (1) | KR20240042505A (zh) |
CN (1) | CN116157808B (zh) |
TW (1) | TWI813414B (zh) |
WO (1) | WO2023020419A1 (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180046916A1 (en) * | 2016-08-11 | 2018-02-15 | Nvidia Corporation | Sparse convolutional neural network accelerator |
CN107832847A (zh) * | 2017-10-26 | 2018-03-23 | 北京大学 | 一种基于稀疏化后向传播训练的神经网络模型压缩方法 |
CN109754078A (zh) * | 2017-11-03 | 2019-05-14 | 三星电子株式会社 | 用于优化神经网络的方法 |
WO2020069239A1 (en) * | 2018-09-28 | 2020-04-02 | Qualcomm Incorporated | Exploiting activation sparsity in deep neural networks |
CN111247537A (zh) * | 2017-10-06 | 2020-06-05 | 深立方有限公司 | 紧凑且高效的稀疏神经网络的***和方法 |
WO2020239824A1 (en) * | 2019-05-27 | 2020-12-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method, apparatus and computer program for training deep networks |
CN112508190A (zh) * | 2020-12-10 | 2021-03-16 | 上海燧原科技有限公司 | 结构化稀疏参数的处理方法、装置、设备及存储介质 |
CN112585619A (zh) * | 2018-06-22 | 2021-03-30 | 墨芯人工智能有限公司 | 利用激活稀疏化的神经网络加速和嵌入压缩***和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544545B2 (en) * | 2017-04-04 | 2023-01-03 | Hailo Technologies Ltd. | Structured activation based sparsity in an artificial neural network |
US11914606B2 (en) * | 2019-03-04 | 2024-02-27 | Walmart Apollo, Llc | Systems and methods for a machine learning framework |
EP3748545A1 (en) * | 2019-06-07 | 2020-12-09 | Tata Consultancy Services Limited | Sparsity constraints and knowledge distillation based learning of sparser and compressed neural networks |
-
2021
- 2021-08-16 US US17/403,668 patent/US11429864B1/en active Active
-
2022
- 2022-08-15 JP JP2024509037A patent/JP2024529717A/ja active Pending
- 2022-08-15 EP EP22857731.8A patent/EP4388455A1/en active Pending
- 2022-08-15 WO PCT/CN2022/112435 patent/WO2023020419A1/en active Application Filing
- 2022-08-15 CN CN202280005926.2A patent/CN116157808B/zh active Active
- 2022-08-15 KR KR1020247007848A patent/KR20240042505A/ko not_active Application Discontinuation
- 2022-08-16 TW TW111130736A patent/TWI813414B/zh active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180046916A1 (en) * | 2016-08-11 | 2018-02-15 | Nvidia Corporation | Sparse convolutional neural network accelerator |
CN111247537A (zh) * | 2017-10-06 | 2020-06-05 | 深立方有限公司 | 紧凑且高效的稀疏神经网络的***和方法 |
CN107832847A (zh) * | 2017-10-26 | 2018-03-23 | 北京大学 | 一种基于稀疏化后向传播训练的神经网络模型压缩方法 |
CN109754078A (zh) * | 2017-11-03 | 2019-05-14 | 三星电子株式会社 | 用于优化神经网络的方法 |
CN112585619A (zh) * | 2018-06-22 | 2021-03-30 | 墨芯人工智能有限公司 | 利用激活稀疏化的神经网络加速和嵌入压缩***和方法 |
WO2020069239A1 (en) * | 2018-09-28 | 2020-04-02 | Qualcomm Incorporated | Exploiting activation sparsity in deep neural networks |
CN112740236A (zh) * | 2018-09-28 | 2021-04-30 | 高通股份有限公司 | 在深度神经网络中利用激活稀疏性 |
WO2020239824A1 (en) * | 2019-05-27 | 2020-12-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method, apparatus and computer program for training deep networks |
CN112508190A (zh) * | 2020-12-10 | 2021-03-16 | 上海燧原科技有限公司 | 结构化稀疏参数的处理方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
KELLY KOSTOPOULOU 等: "DeepReduce: A Sparse-tensor Communication Framework for Distributed Deep Learning", ARXIV, pages 1 - 15 * |
SIMON WIEDEMANN 等: "Dithered backprop: A sparse and quantized backpropagation algorithm for more efficient deep neural network training", 2020 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION WORKSHOPS (CVPRW), pages 3096 - 3104 * |
Also Published As
Publication number | Publication date |
---|---|
TW202312040A (zh) | 2023-03-16 |
WO2023020419A1 (en) | 2023-02-23 |
US11429864B1 (en) | 2022-08-30 |
JP2024529717A (ja) | 2024-08-08 |
CN116157808B (zh) | 2024-02-02 |
TWI813414B (zh) | 2023-08-21 |
KR20240042505A (ko) | 2024-04-02 |
EP4388455A1 (en) | 2024-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11308398B2 (en) | Computation method | |
KR101959376B1 (ko) | 멀티 코어 최적화된 순환 신경망을 위한 시스템 및 방법 | |
CN110119809B (zh) | 对神经网络中非对称量化数据执行mac运算的装置和方法 | |
US20180260709A1 (en) | Calculating device and method for a sparsely connected artificial neural network | |
US11657285B2 (en) | Methods, systems, and media for random semi-structured row-wise pruning in neural networks | |
CN115485695A (zh) | 用于分层权重稀疏卷积处理的方法和*** | |
WO2020101948A1 (en) | Dynamic precision scaling at epoch granularity in neural networks | |
JP6950756B2 (ja) | ニューラルネットワークのランク最適化装置および最適化方法 | |
US11775832B2 (en) | Device and method for artificial neural network operation | |
US11995552B2 (en) | Apparatus and method for multi-phase pruning for neural network with multi-sparsity levels | |
WO2022095984A1 (en) | Method and system for convolution with workload-balanced activation sparsity | |
US20230316080A1 (en) | Sparsity masking methods for neural network training | |
JP7150651B2 (ja) | ニューラルネットワークのモデル縮約装置 | |
CN116457794A (zh) | 用于神经网络模型的组平衡式稀疏激活特征图 | |
US20220076121A1 (en) | Method and apparatus with neural architecture search based on hardware performance | |
US11568243B2 (en) | Method and apparatus with neural network convolution operations | |
CN116157808B (zh) | 用于神经网络的组平衡式稀疏激活和联合激活权重稀疏训练的***和方法 | |
US20220405571A1 (en) | Sparsifying narrow data formats for neural networks | |
Chang et al. | Deep unitary convolutional neural networks | |
CN110610227B (zh) | 人工神经网络调整方法及神经网络计算平台 | |
KR20200023155A (ko) | 뉴럴 네트워크의 학습을 가속하는 방법 및 뉴럴 네트워크 시스템 | |
JP6994572B2 (ja) | データ処理システムおよびデータ処理方法 | |
JP2024107649A (ja) | ニューラルネットワーク、ディープニューラルネットワーク、およびプログラム | |
CN115222039A (zh) | 预训练语言模型的稀疏训练方法和深度语言计算*** | |
WO2022150108A1 (en) | Determining schedules for processing neural networks on hardware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |