本申请涉及一种分布式深度学习加速方法、装置、设备及可读存储介质,涉及分布式深度学习技术领域,包括对目标非线性网络中的多个并行网络分支进行分支打包处理,得到两个分支集合并存储至参数服务器,每个分支集合包括与其对应的网络分支所包含的参数;对计算集群中的多个计算节点进行分组得到多个计算节点组;针对每个计算节点组,每个计算节点从参数服务器拉取对应分支集合内的所有参数进行梯度计算,同时从属于同一计算节点组中的其他计算节点处拉取其他分支集合内的所有参数进行梯度计算;将梯度计算结果回传至参数服务器,参数服务器基于梯度计算结果更新训练目标非线性网络,进而有效缓解网络拥塞并加速非线性网络在集群中的训练速度。集群中的训练速度。集群中的训练速度。
【技术实现步骤摘要】
分布式深度学习加速方法、装置、设备及可读存储介质
[0001]本申请涉及分布式深度学习
,特别涉及一种分布式深度学习加速方法、装置、设备及可读存储介质。
技术介绍
[0002]深度学习的应用方向越来越广泛,例如计算机视觉、自然语言处理等,而越来越多的公司也试图将深度学习技术(例如神经网络模型)融入产品之中,从而增强产品的竞争力。现如今,大型模型和海量数据已经成为深度学习模型的趋势,例如OpenAI公司开发的ChatGPT(一种聊天机器人程序)就是基于1750亿参数的GPT
‑
3模型,并在45TB的训练数据上训练得到的。因此,如何在这样海量的数据集上训练大型模型,成为了训练的主要问题之一。
[0003]相关技术中,参数服务器一般通过分布式训练来加速训练,不过由于通信开销较大,以致参数服务器架构对网络带宽和延迟要求较高。但是在分布式训练过程中,参数服务器在每个节点计算完成之后,需要对所有节点计算的梯度进行reduce操作(一种节点通信方法),并根据收集到的所有梯度进行模型参数的更新;而由于陈旧的梯度对模型的更新有较大影响,因而需要在相同时刻同步所有节点上的梯度,而这一过程往往伴随着网络的拥塞,尤其当网络条件较差的时候,网络同步的拥塞会成为集群的主要性能瓶颈,从而影响参数服务器的训练速度和效率。
技术实现思路
[0004]本申请提供一种分布式深度学习加速方法、装置、设备及可读存储介质,以解决相关技术中所存在的问题。
[0005]第一方面,提供了一种分布式深度学习加速方法,包括以下步骤:
[0006]对目标非线性网络中的多个并行的网络分支进行分支打包处理,得到两个分支集合并存储至参数服务器,每个分支集合包括与其对应的网络分支所包含的参数;
[0007]对计算集群中的多个计算节点进行分组,得到多个计算节点组;
[0008]针对每个计算节点组,每个计算节点从参数服务器拉取对应分支集合内的所有参数进行梯度计算,同时从属于同一计算节点组中的其他计算节点处拉取其他分支集合内的所有参数进行梯度计算;
[0009]将梯度计算结果回传至参数服务器,以供参数服务器基于所述梯度计算结果更新训练目标非线性网络。
[0010]一些实施例中,所述对计算集群中的多个计算节点进行分组,得到多个计算节点组,包括:
[0011]对计算集群中多个计算节点进行两两分组,得到多个计算节点组;
[0012]其中,当计算节点的数量为奇数时,其中一个计算节点组存在三个计算节点。
[0013]一些实施例中,两个分支集合包括第一分支集合和第二分支集合,当计算节点组
由第一计算节点和第二计算节点组成时,所述每个计算节点从参数服务器拉取对应分支集合内的所有参数进行梯度计算,同时从属于同一计算节点组中的其他计算节点处拉取与其他分支集合对应的参数进行梯度计算,包括:
[0014]第一计算节点从参数服务器中拉取第一分支集合内所有中间网络层对应的第一参数,第二计算节点从参数服务器中拉取第二分支集合内所有中间网络层对应的第二参数;
[0015]第一计算节点基于拉取到的第一参数进行梯度计算,同时从第二计算节点处拉取第二参数并基于拉取到的第二参数进行梯度计算;
[0016]第二计算节点基于拉取到的第二参数进行梯度计算,同时从第一计算节点处拉取第一参数并基于拉取到的第一参数进行梯度计算。
[0017]一些实施例中,两个分支集合包括第一分支集合和第二分支集合,当计算节点组由第一计算节点、第二计算节点和第三计算节点组成时,所述每个计算节点从参数服务器拉取对应分支集合内的所有参数进行梯度计算,同时从属于同一计算节点组中的其他计算节点处拉取与其他分支集合对应的参数进行梯度计算,包括:
[0018]第一计算节点从参数服务器中拉取第一分支集合内所有中间网络层对应的第一参数,第二计算节点和第三计算节点分别从参数服务器中拉取第二分支集合内所有中间网络层对应的第二参数;
[0019]第一计算节点基于拉取到的第一参数进行梯度计算,同时从第二计算节点处或第三计算节点处拉取第二参数并基于拉取到的第二参数进行梯度计算;
[0020]第二计算节点和第三计算节点分别基于拉取到的第二参数进行梯度计算,同时分别从第一计算节点处拉取第一参数并基于拉取到的第一参数进行梯度计算。
[0021]一些实施例中,所述对目标非线性网络中的多个并行的网络分支进行分支打包处理,得到两个分支集合,包括:
[0022]按照网络分支的参数量大小对多个并行的网络分支进行分支打包处理,得到两个分支集合。
[0023]一些实施例中,在所述对目标非线性网络中的多个并行的网络分支进行分支打包处理的步骤之前,还包括:
[0024]对目标非线性网络进行划分,得到多个并行的网络分支。
[0025]第二方面,提供了一种分布式深度学习加速装置,包括:
[0026]分支打包单元,其用于:对目标非线性网络中的多个并行的网络分支进行分支打包处理,得到两个分支集合并存储至参数服务器,每个分支集合包括与其对应的网络分支所包含的参数;
[0027]节点分组单元,其用于对计算集群中的多个计算节点进行分组,得到多个计算节点组;
[0028]传递计算单元,其用于针对每个计算节点组,每个计算节点从参数服务器拉取对应分支集合内的所有参数进行梯度计算,同时从属于同一计算节点组中的其他计算节点处拉取其他分支集合内的所有参数进行梯度计算;
[0029]更新训练单元,其用于将梯度计算结果回传至参数服务器,以供参数服务器基于所述梯度计算结果更新训练目标非线性网络。
[0030]一些实施例中,两个分支集合包括第一分支集合和第二分支集合,当计算节点组由第一计算节点和第二计算节点组成时,所述传递计算单元具体用于:
[0031]使第一计算节点从参数服务器中拉取第一分支集合内所有中间网络层对应的第一参数,使第二计算节点从参数服务器中拉取第二分支集合内所有中间网络层对应的第二参数;
[0032]使第一计算节点基于拉取到的第一参数进行梯度计算,同时从第二计算节点处拉取第二参数并基于拉取到的第二参数进行梯度计算;
[0033]使第二计算节点基于拉取到的第二参数进行梯度计算,同时从第一计算节点处拉取第一参数并基于拉取到的第一参数进行梯度计算。
[0034]第三方面,提供了一种分布式深度学习加速设备,包括:存储器和处理器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现前述的分布式深度学习加速方法。
[0035]第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,以实现前述的分布式深度学习加速方法。
[0036]本申请提供了一种分布式深度学习加速方法、装置、设备及可读存储介质,包括对目标非线性网络中的多个并行的网络分支进行分支打包处理,得到两个分支集合并存储本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种分布式深度学习加速方法,其特征在于,包括以下步骤:对目标非线性网络中的多个并行的网络分支进行分支打包处理,得到两个分支集合并存储至参数服务器,每个分支集合包括与其对应的网络分支所包含的参数;对计算集群中的多个计算节点进行分组,得到多个计算节点组;针对每个计算节点组,每个计算节点从参数服务器拉取对应分支集合内的所有参数进行梯度计算,同时从属于同一计算节点组中的其他计算节点处拉取其他分支集合内的所有参数进行梯度计算;将梯度计算结果回传至参数服务器,以供参数服务器基于所述梯度计算结果更新训练目标非线性网络。2.如权利要求1所述的分布式深度学习加速方法,其特征在于,所述对计算集群中的多个计算节点进行分组,得到多个计算节点组,包括:对计算集群中多个计算节点进行两两分组,得到多个计算节点组;其中,当计算节点的数量为奇数时,其中一个计算节点组存在三个计算节点。3.如权利要求2所述的分布式深度学习加速方法,其特征在于,两个分支集合包括第一分支集合和第二分支集合,当计算节点组由第一计算节点和第二计算节点组成时,所述每个计算节点从参数服务器拉取对应分支集合内的所有参数进行梯度计算,同时从属于同一计算节点组中的其他计算节点处拉取与其他分支集合对应的参数进行梯度计算,包括:第一计算节点从参数服务器中拉取第一分支集合内所有中间网络层对应的第一参数,第二计算节点从参数服务器中拉取第二分支集合内所有中间网络层对应的第二参数;第一计算节点基于拉取到的第一参数进行梯度计算,同时从第二计算节点处拉取第二参数并基于拉取到的第二参数进行梯度计算;第二计算节点基于拉取到的第二参数进行梯度计算,同时从第一计算节点处拉取第一参数并基于拉取到的第一参数进行梯度计算。4.如权利要求2所述的分布式深度学习加速方法,其特征在于,两个分支集合包括第一分支集合和第二分支集合,当计算节点组由第一计算节点、第二计算节点和第三计算节点组成时,所述每个计算节点从参数服务器拉取对应分支集合内的所有参数进行梯度计算,同时从属于同一计算节点组中的其他计算节点处拉取与其他分支集合对应的参数进行梯度计算,包括:第一计算节点从参数服务器中拉取第一分支集合内所有中间网络层对应的第一参数,第二计算节点和第三计算节点分别从参数服务器中拉取第二分支集合内所有中间网络层对应的第二参数;第一计算节点基于拉取到的第一参数进行梯度计算,同时从第二计算节点处或第三计算节点处拉取第二参数并基于拉取到的第二参数进行梯度计算;第二计算节...
【专利技术属性】
技术研发人员:玄跻峰,刘博安,胡创,程大钊,
申请(专利权)人:武汉大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。