当前位置: 首页 > 专利查询>东南大学专利>正文

一种流水线分布式深度学习中异构网络感知的模型划分与任务放置方法技术

技术编号:22723323 阅读:24 留言:0更新日期:2019-12-04 05:53
本发明专利技术提供一种流水线分布式深度学习中异构网络感知的模型划分与任务放置方法,主要包含三个部分,分别是深度学习模型刻画、模型划分与任务放置、流水线分布式训练。本发明专利技术首先针对深度学习应用在GPU训练过程中的资源需求,刻画出其训练执行过程中计算时间、中间结果通信数量、参数同步量等相应指标,并将其作为模型划分与任务放置的输入。然后根据模型刻画得出指标以及GPU集群的异构网络连接拓扑,设计基于min‑max的动态规划算法执行模型划分与任务放置,目的是最小化划分之后各阶段任务执行时间的最大值,以确保负载均衡。最后根据划分放置结果,在模型并行的基础上使用流水线分时注入数据进行分布式训练,实现训练速度与精度的有效保障。

A model partition and task placement method of heterogeneous network awareness in pipeline distributed deep learning

The invention provides a model division and task placement method for heterogeneous network perception in pipeline distributed deep learning, which mainly includes three parts, namely, deep learning model description, model division and task placement, and pipeline distributed training. According to the resource requirements of deep learning application in GPU training process, the invention first describes the corresponding indexes such as calculation time, intermediate result communication quantity, parameter synchronization quantity in the training execution process, and takes them as the input of model division and task placement. Then, according to the model description, we get the index and the heterogeneous network connection topology of GPU cluster, and design the execution model division and task placement of dynamic programming algorithm based on min \u2011 max, in order to minimize the maximum execution time of each stage after the division, so as to ensure the load balance. Finally, according to the results of partition and placement, the pipeline time-sharing injection data is used for distributed training on the basis of model parallel, which can effectively guarantee the training speed and accuracy.

【技术实现步骤摘要】
一种流水线分布式深度学习中异构网络感知的模型划分与任务放置方法
本专利技术涉及一种流水线分布式深度学习中异构网络感知的模型划分与任务放置技术,属于分布式计算

技术介绍
深度学习(deeplearning)是一类机器学习技术,是利用多层非线性信息进行有监督或无监督的特征提取和转换,以及用于模式分析和分类的技术。深度学习一般包含两个过程,训练过程和推断过程:训练过程是利用设计好的神经网络从大量训练集中(已知标签)提取特征执行预测,然后根据预测值与实际标签值之间的误差计算梯度,利用梯度下降的方法执行参数更新,重复迭代,直至收敛。推断过程是利用训练过程训练好的神经网络模型,对未知标签的数据执行相应预测或识别推断。由于在实际环境中,训练时间一个神经网络通常需要上百小时甚至几周,而推断时间通常只需要几毫秒,训练时间与推断时间相差十几个数量级,因此如何减少训练时间,即快速高效的执行深度学习的训练过程成为人们关注的重点问题。深度学习的训练过程是一个迭代收敛的过程,以深度学习图像识别为例,通常包含以下三个阶段:(1)前向传播。前向传播是从训练数据中执行输入到结果输出的过程。利用设计好的神经网络从一批带有标签的图像、视频中抽取出特征,将特征进行组合,计算出图像的分类。为了加快训练速度以及减少图片噪声影响,通常一次迭代会同时处理一批数据,称为一个mini-batch。(2)反向传播。反向传播是与前向传播执行方向相反的过程。为了使前向传播预测值与实际标签值的误差尽可能小,将预测值与实际标签值进行对比,根据对比误差(通常称为损失函数),按照前向传播相反的方向,依次反向计算神经网络各层参数的梯度,计算每一层参数梯度时会用到相应层前向传播的中间结果值,最后利用梯度下降的方式对各个参数执行梯度更新。(3)下一轮迭代。根据反向传播更新后的参数,继续执行下一轮前向反向传播参数更新。通常深度学习的训练过程需要迭代很多轮次才能达到收敛状态。由于深度学习的训练过程是一个多次迭代直至收敛的过程,加之设计的模型往往越来越大,导致所需计算量急剧上升,通过分布式训练神经网络以提升训练速度成为必然趋势。传统的分布式训练主要包含两种方式:数据并行和模型并行。数据并行的方式是每次迭代过程中,每个GPU计算节点会拥有模型的一个副本,每块GPU使用部分数据计算梯度,一次迭代结束向全局的参数服务器发送计算好的梯度并在参数服务器端执行参数同步更新。由于神经网络设计越来越大,数据并行由于大量参数同步存在性能瓶颈而大大降低了分布式训练性能,同时也难以扩展。另一种方式是模型并行,模型并行则将模型划分到不同的GPU计算节点上(通常按层划分),然后根据神经网络的执行拓扑顺序按层执行计算,每个节点计算结束产生的结果会向下游计算节点传输。由于每个GPU负责模型一部分参数计算更新,减少了参数同步,通信数量大大降低,因此更能胜任更大模型计算。然而,由于模型计算过程中存在计算依赖导致GPU利用率不高,同时由于神经网络结构复杂,如何设计模型划分对于用户而言又是一大难题。为了提升模型并行中GPU利用效率,近期研究者们提出一种流水线分时注入数据的方式提高GPU利用率。首先将模型按层执行划分成不同阶段,每个阶段包含连续的层,每个阶段包含神经网络部分连续的层,每个阶段映射到GPU上执行相应层前向和反向传播计算,计算中间结果沿着网络向下游阶段传输。在流水线模式下,每个时间片不同的阶段并行地在执行模型不同部分相应前向和反向传播计算。因此,为了使流水线更好的并行化,减少GPU空闲时间,模型划分需保证各阶段的吞吐率几乎一致,即需保证模型划分后各阶段负载均衡。然而,在现有的流水线分布式深度学习中,其模型划分与任务放置方法未考虑GPU集群中GPU间网络连接的异构性(GPU间的网络带宽差异巨大,可达80%),导致现有的模型划分与任务放置方法不能保证划分的负载均衡性,难以高效执行训练。更为重要的是,GPU计算能力的提升,将分布式训练的性能瓶颈从计算转移到网络,因此,在流水线模式下如何根据GPU间的异构网络,设计有效的模型划分与任务放置策略以提升训练速度成为关键问题。
技术实现思路
本专利技术主要针对目前流水线训练模式下分布式深度学习的模型划分与任务放置无法适应GPU集群的网络异构性,提出一种网络感知的模型划分与任务放置方法。在流水线模式下,同一时间片,不同的阶段中GPU在执行模型不同部分的相应计算,为了使得模型训练并行化程度高,提升分布式训练速度,需要在模型划分时不仅考虑训练速度还应考虑各阶段之间负载均衡。为此,该方法根据深度神经网络的层级特性,定义按GPU间带宽从大到小排序,从而固定GPUID顺序的启发式规则,使用动态规划和回溯法,求解出负载均衡的模型划分与任务放置。为达到上述目的,本专利技术采用的方法是:一种流水线分布式深度学习中异构网络感知的模型划分与任务放置方法,主要包含三大部分,每个部分具体包括以下步骤。步骤一:建立深度神经网络的层次累积分布函数(CDF)模型,分析深度学习应用在流水线模式下执行模型划分与任务放置算法所需相应输入条件,为了使得后续模型划分更加准确,通过实际运行的方式测量得出神经网络按层计算时间、中间结果通信量以及同步参数量。由于神经网络训练分为前向传播预测结果和反向传播更新参数过程,数据经过神经网络逐层计算,因此在流水线模式下,对于神经网络的层次结构建立累积分布函数模型。根据累积分布函数模型,使用GPU硬件环境执行预训练过程,刻画出神经网络在训练过程中各层的计算总时间激活值大小参数数量大小|wl|。为后续模型划分与任务放置提供基础。步骤二:针对网络异构的GPU集群,对流水线模式下分布式深度学习训练过程进行建模,基于步骤一得到的训练过程相应指标,定义按GPU之间带宽从大到小排序,从而固定GPUID顺序的启发式规则,采用基于min-max的动态规划回溯法,执行模型划分与任务放置,目的是最小化划分之后各阶段任务执行时间之间的最大值,求解出使得流水线分布式在异构网络模式下GPU负载尽可能均衡、GPU利用率得以提升从而加速分布式训练的划分放置策略。模型划分与任务放置方法是以步骤一中刻画得到的相应指标,以及GPU集群中GPU间的网络拓扑连接作为算法输入,根据神经网络的不同层级间特性(前期卷积层通信量大,后期全连接层通信量小),定义按GPU之间带宽从大到小排序,从而固定GPUID顺序的启发式规则,然后使用动态规划和回溯法,得到最小化划分之后各个阶段计算和通信时间的最大值。以步骤一中刻画得到的结果为基础,令As表示第s个阶段的计算时间,Cs表示第s和第s+1个阶段的通信量。整体目标为最小化一次迭代计算与通信时间,在流水线模式下,该问题转换成最小化划分之后某个阶段的计算和通信的最大值:步骤三:使用流水线分时注入数据执行训练,根据步骤二中算法,将模型划分成不同阶段,每个阶段包含神经网络部分连续的层,同时,每个阶段映射到k块GPU上执行数据并行,阶段间模型并行产生数据通过网络传输,阶段内部数据并行参数通过网络进行同步,采用流水线分时注入数据本文档来自技高网
...

【技术保护点】
1.一种流水线分布式深度学习中异构网络感知的模型划分与任务放置方法,其特征在于:该方法包括以下步骤:/n步骤一:建立深度神经网络的层次累积分布函数模型,分析深度学习应用在流水线模式下执行模型划分与任务放置算法所需相应输入条件,通过实际运行的方式测量得出神经网络按层计算时间、中间结果通信量以及同步参数量,刻画神经网络层级结构相应指标;/n步骤二:针对网络异构的GPU集群,对流水线模式下分布式深度学习训练过程进行建模,基于步骤一得到的训练过程相应指标,定义按GPU之间带宽从大到小排序,从而固定GPUID顺序的启发式规则,采用基于min-max的动态规划回溯法,执行模型划分与任务放置,目的是最小化划分之后各阶段任务执行时间之间的最大值,求解出使得流水线分布式在异构网络模式下GPU负载尽可能均衡、GPU利用率得以提升从而加速分布式训练的划分放置策略;/n步骤三:使用流水线分时注入数据执行训练,根据步骤二中算法,将模型划分成不同阶段,每个阶段包含神经网络部分连续的层,同时,每个阶段映射到k块GPU上执行数据并行,阶段间模型并行产生数据通过网络传输,阶段内部数据并行参数通过网络进行同步,采用流水线分时注入数据的方式确保在同一时刻各阶段并行执行不同批次数据的相应计算。/n...

【技术特征摘要】
1.一种流水线分布式深度学习中异构网络感知的模型划分与任务放置方法,其特征在于:该方法包括以下步骤:
步骤一:建立深度神经网络的层次累积分布函数模型,分析深度学习应用在流水线模式下执行模型划分与任务放置算法所需相应输入条件,通过实际运行的方式测量得出神经网络按层计算时间、中间结果通信量以及同步参数量,刻画神经网络层级结构相应指标;
步骤二:针对网络异构的GPU集群,对流水线模式下分布式深度学习训练过程进行建模,基于步骤一得到的训练过程相应指标,定义按GPU之间带宽从大到小排序,从而固定GPUID顺序的启发式规则,采用基于min-max的动态规划回溯法,执行模型划分与任务放置,目的是最小化划分之后各阶段任务执行时间之间的最大值,求解出使得流水线分布式在异构网络模式下GPU负载尽可能均衡、GPU利用率得以提升从而加速分布式训练的划分放置策略;
步骤三:使用流水线分时注入数据执行训练,根据步骤二中算法,将模型划分成不同阶段,每个阶段包含神经网络部分连续的层,同时,每个阶段映射到k块GPU上执行数据并行,阶段间模型并行产生数据通过网络传输,阶段内部数据并行参数通过网络进行同步,采用流水线分时注入数据的方式确保在同一时刻各阶段并行执行不同批次数...

【专利技术属性】
技术研发人员:张竞慧詹隽金嘉晖罗军舟
申请(专利权)人:东南大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1