一种神经网络训练的并行方法

文档序号:35164545发布日期:2023-08-18 12:46阅读:15来源:国知局
一种神经网络训练的并行方法

本发明涉及神经网络并行模型的应用,尤其涉及的是,一种神经网络训练中并行模型设计方法和系统。


背景技术:

1、在深度学习训练过程中,为取得较高的精度,除海量的训练图像外,全连接层也常常含有大量的数以亿计的参数,导致网络训练要耗费巨大的时间。因此,深度学习的并行化研究吸引了广大学者,致力于突破深度学习应用的瓶颈,将深度学习推向实用[1-3]。

2、前向传播是指从第一层开始到最后一层,生成自变量为权重和偏置构成的输出函数。而后向传播是指从最后一层到第一层,生成自变量为权重和偏置构成的损失函数。然后通过计算最小损失,不断更新权重的偏置。因此,前期许多工作主要针对前向传播与后向传播算法进行并行算法设计。网络训练方法随机梯度下降法(stochastic gradientdescent,sgd)具有串行性质,难以在大规模的cpu或gpu集群上并行化。文献[4]在分布式dnn的训练过程中,研究了数据并行方式的随机梯度下降过程中,阻碍深度学习并行化的三个方面,为深度学习的并行化提供了有效的建议。文献[5]研究了dnn中加速训练的方法,研究了分布式算法中并行的可能性及实现方法,讨论了随机梯度下降算法中同步和异步情况及分布式系统架构中的通信方法。文献[6]讨论了经典方法进行并行化的局限性,在深度学习中,将mpi并行性扩展到松散耦合的参数服务器(ps)任务中,来提升随机梯度下降算法的收敛速度。这些研究的目的都是为了最大程度挖掘深度学习的并行化潜能。深度学习应用于图像的并行处理模式最常见的是数据并行[7-8],把大的数据集分割为多个小批次(batch),在不同工作节点(工作节点可以是cpu或gpu)上计算一个小批次,最后将所有工作节点的梯度结果进行汇总,并加权平均,得到总梯度估计值。一些数据并行的应用取得了较好的效率,这表明通信开销在合理的范围内。另一些数据并行的应用会受到过多的设备间通信开销,降低通信开销对提高并行化性能是一个重要手段[9]。文献[10]采用数据划分的方式,将互不相交的子数据划分给不同的工作节点,每个工作节点并行计算梯度。为减少训练时数据交换的通信代价采取了两种措施,一是将32位单精度浮点数压缩为1位,二是在工作节点间不进行模型参数的交换,仅进行梯度的交换。由于对数据压缩成1位,损失了精度,为了减少数据压缩带来的误差,实行了误差补偿技术,即将上一次计算的误差迭加在本次计算得到的梯度上,再进行量化。这一方法能实现几乎不损失模型精度情况下,大幅提高训练速度,但该方法不能够保证随着并行工作结点数量的增加,训练速度能实现线性加速,这是衡量模型并行化性能的一个重要指标。

3、模型并行方式通常当模型太大而无法放入单个设备的内存中时使用。根据模型部署,将训练模型划分为子模型装入不同的工作节点中,每个工作结点都使用同一批样本数据训练自己的模型[11]。在模型并行化方面,一些著名公司相继实现了各自的并行化框架,如google的tensorflow、distbelief,百度的paddle,腾讯的mariana,脸书的dlrm,nvidia的megatron和微软的deepspeed。模型并行的计算量和通信量依模型结构而定,实现起来较数据并行复杂[12]。可以充分利用现有的模型并行化框架,为遥感图像处理所使用。当前的一些主流框架如pytorch、tensorflow等都有为处理普通二维样本图像而设计的并行运算,不能直接用于处理多光谱图像的多维特征。遥感图像通常包含多个波段,尤其是高光谱图像,甚至达数百个波段,不仅这些波段间存在相关性,图像中的邻近像素也是高度相关的,一些研究将光谱信息与光谱空间信息融合在一起作为特征源来提高分类的精度。例如,cube-cnn-svm模型将深度学习应用于多光谱遥感图像分类[13],提出了相邻像素(8个相邻像素)的光谱空间数据立方体,即将目标像素及其邻域的光谱信息组织成光谱空间多特征三维信息立方体。使用cnn进行特征提取,再用svm进行分类,能得到较好的分类精度,但是训练的耗时却非常大,训练数据量大,意味着计算迭代的次数更多。文献[14]提出了一个在gpu上运行的遥感图像光谱三维信息立方体的训练框架,不需要进行3d到2d的转换,卷积层能处理多光谱三维数据的直接输入,用cuda编程,实现pc机上多个gpu并行计算。

4、神经网络主要是序列化模型,模型并行中可以并行化处理的部分不多,造成资源的浪费。受cpu执行指令时流水操作的启发,提出了流水线并行模式。流水线并行是将不同工作结点的小批次数据分割为微批次数据,用不同的工作结点计算不同的流水线批次,前后阶段的流水线以一种类似接力的方式工作[15,16]。它本质上依赖于数据并行,在批次尺寸远大于gpu数量的情况下,流水线并行的效率通常能得到提高。常和模型并行一起使用,能有效克服模型并行空洞的问题。流水线并行采用的批间并行策略,使每一工作结点不用像数据并行那样必须聚合所有的梯度信息进行平均,而是仅需要点对点地进行上下游工作结点间的梯度信息通信。该方法使得计算与通信时间重叠,能提高并行训练吞吐量。基于这一思想,微软提出了pipedream方法[17],它是一种异步流水线。谷歌提出了gpipe[18],一种同步流水线方法。在边缘设备上进行图像处理面临着大量计算参数,而对边缘设备实行并行化时,由于通信成本和同步开销较大,负载平衡效果不理想。现有的并行技术从平衡负载,降低通信成本等方面进行改进[19]。文献[20]设计了流水线在低功耗的边缘设备的分配方法,提出一种在边缘设备上实现图像识别的流水线并行方法,为计算机视觉在边缘设备网络的可部署性提供了解决方案。

5、随着深度模型向着更深层发展,网络参数的数量也随之呈指数倍增长,与数据增长相匹配的计算能力的要求也相应提高。并行计算作为一种常用策略,对计算能力和训练速度的提升是显而易见的。计算机资源的简单堆砌,不能保证训练的线性加速及性能,相关的软件提速需求很大。算法的串行改并行涉及到各种资源的划分,由此衍生出了不少并行优化方法,相应的优化方法主要集中在减少工作节点间的通信量,平衡负载等方面。

6、张量划分是实现并行加速的一项有效手段,比如沿多个维度对张量划分,并实现自动搜索最佳张量划分维度。尤其对于大型的dnn模型,张量划分能够平衡每个gpu的内存使用,较其它方法对加速器的利用率更高。目前这方面的研究主要聚焦在粗粒度的张量划分上,如全连接层和2d卷积层,使用的场景比较有限,即要么为特定模型开发专门的实现,要么只允许组合常用的dnn层。在数据流图中对每个张量进行划分可以有多种组合选择,各自对应不同的执行时间和加速器的内存消耗,对数据流的划分以获得最佳性能是一个np难题

7、参考文献

8、[1]s.moreno-alvarez,j.haut,m.paoletti.heterogeneous model parallelismfor deep neural networks[j].neurocomputing.2021,44:1-12.

9、[2]g.gonzalez,c.evans.biomedical image processing with containers anddeep learning:an automated analysis pipeline[j].bioessays.2019,41(6):1-10.

10、[3]v.rybalkin,j.ney,m.tekleyohannes,n.when.when massive gpuparallelism ain’t enough:a novel hardware architecture of 2d-lstm neuralnetwork[j].acm transactions on reconfigurable technology and systems.2022,15(1):1-35.

11、[4]f.x.tang,w.c.zhang,x.g.tian,x.y.fan,x.x.cao.optimization ofconvolution neural network algorithm based on fpga[c].internationalconference on embedded system technology,berlin,german:springer,2017:131–140.

12、[5]y.oyama,a.nomura,i.sato,h.nishimura,el.predicting statistics ofasynchronous sgd parameters for a large-scale distributed deep learningsystem on gpu supercomputers[c].2016ieee international conference on big data(big data).piscataway,nj:ieee,2016:66-75.

13、[6]a.r.mamidala,g.kollias,f.artico,c.ward.mxnet-mpi:embedding mpiparallelism in parameter server task model for scaling deep learning[j].arxiv:1801.03855v1[cs.dc]11jan.2018:1-12.

14、[7]m.aspri,g.tsagkatakis,p.tsakalides.distributed training andinference of deep learning models for multi-modal land cover classification[j].remote sensing.2020,12(17):2670

15、[8]n.liu,b.guo,x.li,x.min.gradient clustering algorithm based on deeplearning aerial image detection[j].pattern recognition letters.2021,141:37-44.

16、[9]f.seide,h.fu,j.droppo,g.li,d.yu.1-bit stochastic gradient descentand its application to data-parallel distributed training of speech dnns[c].fifteenth annual conference of the international speech communicationassociation.2014:1058-1062.

17、[10]k.chen,q.huo.scalable training of deep learning machines byincremental block training with intra-block parallel optimization andblockwise model-update filtering[c].icassp,piscataway,nj:ieee,2016:5880-5884.

18、[11]c.chen,g.lee,y.xia,et al.efficient multi-training framework ofimage deep learning on gpu cluster[c].ieee internaltional symposium onmultimedia.piscataway,nj:ieee,2015:489-494.

19、[12]w.zhu,c.zhao,w.li,h.roth,z.xu,d.xu.lamp:large deep nets withautomated model parallelism for image segmentation[c].medical image computingand computer assisted intervention.berl in,german:springer,2020:374-384.

20、[13]j.l eng,t.li,g.bai,q.dong,h dong.cube-cnn-svm:anovelhyperspectralimage classification method[c].28th international conference on tools withartificial intelligence.piscataway,nj:ieee,2016:1028-1034.

21、[14]y.lu,k xie,g xu,h.dong,c.li,t.li.mtfc:amulti-gpu trainingframework for cube-cnn-based hyperspectral image classification[j].ieeetransactions on emerging topics in computing.2020,9(4):1738-1753.

22、[15]t.ben-nun,t.hoefler.demystifying parallel and distributed deeplearning:an in-depth concurrency analysis[j].acm computing surveys(csur).2019,52(4):1-43.

23、[16]a.chew,a.ji,l.zhang.large-scale 3d point-cloud semanticsegmentation of urban and rural scenes using data volume decompositioncoupled with pipeline parallelism[j].automation in construction.2022,133:1-19.

24、[17]d.narayanan,a.harlap,a.phanishayee,w.seshadri,et al.pipedream:generalized pipeline parallelism for dnn training[c].proceedings of the 27thacm symposium on operating systems principles.new york,ny:acm,2019:1-15.

25、[18]y.huang,y.cheng,a.bapna,et al.gpipe:efficient training of giantneural networks using pipeline parallelism[c].conference on neuralinformation processing systems.new york,ny:acm,2019:103-112.

26、[19]s.moreno-alvarez,j.haut,m.paoletti,j.rico-gallego,et al.trainingdeep neural networks:a static load balancing approach[j].the journal ofsupercomputing.2020,76:9739-9754.

27、[20]a.goel,c.tung,x.hu,et al.efficient computer vision on edgedevices with pipeline-parallel hierarchical neural networks[j].27th asia andsouth pacific design automation conference(asp-dac).piscataway,nj:ieee.2022:1-6.


技术实现思路

1、本发明研究在多加速器环境中,研究对数据流(特征图,卷积核,梯度张量)的划分,并使用动态规划的自动搜索技术而不是枚举算法实现这些划分的最优化;研究并行类型与不同权重层间的通信,量化这些通信,最终使得训练一个深度模型期间的总的通信量最小。

2、本发明的技术方案如下:

3、一种神经网络训练的并行方法,其包括:

4、六种张量切分模型步骤,用于对神经网络中特征图,卷积核,梯度张量在模型并行和数据并行下的切分;

5、两个worker间通信量化步骤,用于两个worker间层内通信与层间通信中通信量化,从而实现并行模型状态空间的自动搜索;

6、多个worker间通信协议及形式化验证步骤,用于多个worker间的可信通信。

7、优选的,六种张量切分模型步骤包括:

8、前向传播中的张量,分别在数据并行和模型并行中的切分方法;

9、误差反向传播中的张量,分别在数据并行和模型并行中的切分方法;

10、梯度更新计算中的张量,分别在数据并行和模型并行中的切分方法。

11、优选的,两个worker间通信量化步骤包括:

12、两种层内通信量化方法;

13、四种层间通信量化方法。

14、优选的,多个worker间通信协议及形式化验证步骤步骤包括:

15、两个以上的worker通信协议模型;

16、对通信协议模型的形式化验证方法。

17、采用上述方案,本发明提出基于神经网络的并行方法,构建了张量并行模型,并基于这种张量并行模型,提出了worker间的通信量化方法,通过分层的动态规划算法自动组合层内及层间的张量切分策略,以通信量最小为优化目标得到最优切分方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1