CN116306897A - 一种基于ac强化学习的神经网络分布式自动并行训练方法 - Google Patents
一种基于ac强化学习的神经网络分布式自动并行训练方法 Download PDFInfo
- Publication number
- CN116306897A CN116306897A CN202310067939.9A CN202310067939A CN116306897A CN 116306897 A CN116306897 A CN 116306897A CN 202310067939 A CN202310067939 A CN 202310067939A CN 116306897 A CN116306897 A CN 116306897A
- Authority
- CN
- China
- Prior art keywords
- neural network
- reinforcement learning
- execution
- state
- current
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 230000002787 reinforcement Effects 0.000 title claims abstract description 49
- 238000012549 training Methods 0.000 title claims abstract description 39
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims abstract description 37
- 238000003062 neural network model Methods 0.000 claims abstract description 34
- 230000008569 process Effects 0.000 claims abstract description 28
- 238000005070 sampling Methods 0.000 claims abstract description 23
- 238000005457 optimization Methods 0.000 claims abstract description 18
- 238000004088 simulation Methods 0.000 claims abstract description 17
- 230000005540 biological transmission Effects 0.000 claims abstract description 16
- 239000013598 vector Substances 0.000 claims abstract description 16
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 15
- 230000004927 fusion Effects 0.000 claims abstract description 9
- 238000004458 analytical method Methods 0.000 claims abstract description 8
- 238000004891 communication Methods 0.000 claims description 43
- 230000006854 communication Effects 0.000 claims description 40
- 239000003795 chemical substances by application Substances 0.000 claims description 31
- 230000009471 action Effects 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 15
- 230000007246 mechanism Effects 0.000 claims description 6
- 239000002243 precursor Substances 0.000 claims description 4
- 238000009826 distribution Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 230000035515 penetration Effects 0.000 claims description 2
- 230000007704 transition Effects 0.000 claims description 2
- 210000005036 nerve Anatomy 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 7
- 238000002679 ablation Methods 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 5
- 238000004220 aggregation Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000013145 classification model Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000007500 overflow downdraw method Methods 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000001960 triggered effect Effects 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/08—Learning methods
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于AC强化学习的神经网络分布式自动并行训练方法。本发明首先基于性能分析方法对神经网络模型进行性能数据采样分析,提取模型算子的性能数据,实现算子分组融合。其次实现消息传递的计算图全局特征向量表示,构建强化学习的状态搜索空间。然后采用基于时序差分采样的AC算法完成强化学习模型的迭代优化,以搜索最优分布式并行策略。最后构建基于事件驱动的多线程模拟执行器,模拟神经网络模型的计算过程。本发明降低AC强化学习的状态搜索空间规模,提高并行策略的搜索性能和通用性,并且减少策略迭代执行时间,降低迭代搜索过程中的硬件执行成本。
Description
技术领域
本发明属于大规模复杂神经网络并行训练领域,特别涉及一种基于AC强化学习的神经网络分布式自动并行训练方法。
技术背景
随着深度学习研究与创新的不断加快,深度学习模型在计算机视觉(ComputerVision,CV)、自然语言处理(Natural Language Processing,NLP)和搜索推荐等场景中得到广泛应用。深度学习模型的共同特点是使用了结构复杂的分层神经网络,例如Bert(theBidirectional transformer language model BERT)网络,由编码器、解码器和注意力机制等可组合的模块构建;CNN网络则基于卷积层,池化层等组件进行构建。神经网络已经被证明具有显著的组合扩展性,可以通过更大规模的数据集训练大规模的模型参数来提高预测精度。但由于单设备资源受限,无法处理大批量输入数据以及复杂的模型参数,因此为了有效训练这样复杂的神经网络,需要对大规模数据集进行切分调度,即数据并行(DataParallel);或通过对神经网络模型进行跨多个设备的切分、调度和执行,即模型并行(Model Parallel),以充分利用计算设备的性能。
目前,有许多可以进行分布式训练的框架如TensorFlow、Pytorch,MindSpore等。但现有方法主要基于专家经验手动搜索并行策略,需要开发者同时具备AI、分布式计算、体系结构等专业知识,以及能够在这些领域知识内进行专业选择的能力,这种手动搜索最优并行策略本身十分困难,所以为了简化神经网络模型并行方法的设计和实现,同时提升并行策略设计的通用性,业界开始研究神经网络的自动并行训练方法,实现分布式并行策略的自动搜索和调优。其中强化学习最近几年在游戏,自动驾驶等复杂决策问题中取得了突出表现,已经达到甚至超越人类的决策水平,因此成为了并行策略自动搜索的研究重点。
Google首次提出Hierarchical方法,通过提取神经网络模型和集群特征,利用强化学习(Reinforcement Learning,RL)指导模型并行策略搜索,上述方法由于需要进行频繁采样而且搜索空间较大,策略搜索过程代价昂贵,因此,相比基于专家经验的模型并行方法性能提升有限。Gao等人提出Spotlight,第一次将神经网络算子调度问题建模为马尔可夫决策过程(Markov decision process,MDP)。但上述方法只对当前特定的网络模型有效,当遇到新的网络模型时需要重新搜索并行策略,不具备移植至其他相似网络的能力,对于不同的网络模型,并行策略设计和实现的代价仍然很高。为了解决这一问题,Addanki等人提出Placeto,通过引入图嵌入编码方法,赋予并行策略可移植能力,避免对相似未知网络的重复训练;Wang Siyu等人提出的AutoMap则基于更细粒度的XLA-IR图进行自动并行策略搜索,但其使用的DQN采样效率低,且需要进行大量的历史经验存储,导致整体的执行效率不高;百度实验室则将流水线技术与强化学习的方法结合实现粗粒度的Layer级的调度,以提升训练的吞吐量,降低模型训练的花费,但仍然是基于蒙特卡洛的全过程采样强化学习,采样方法效率低下,当神经网络模型复杂度成倍增长的情况下,单轮采样效率也会成倍下降,导致模型收敛速率下降,陷入局部最优解,难以应对不断扩展的神经网络模型。
发明内容
针对上述存在的问题,本发明设计并实现了一种基于AC(Actor Critic,演员与评论家算法)强化学习的神经网络分布式自动并行训练方法。
本发明首先,基于profiling方法对神经网络模型进行性能数据采样分析,提取模型算子的计算以及不同设备间通信代价等多维度的性能数据,构建算子并行计算收益以及通信代价的约束性分组规则,实现算子分组融合,减小计算图规模;其次,基于融合后计算图的原始特征实现消息传递的计算图全局特征向量表示,构建强化学习的状态搜索空间;最后,根据构建的状态搜索空间,采用基于时序差分采样的AC算法完成强化学习模型的迭代优化,以搜索最优分布式并行策略,提升强化学习算法平稳性、收敛速率以及策略搜索性能;另外,构建基于事件驱动的多线程模拟执行器,模拟神经网络模型的计算过程,降低硬件执行成本,并通过多线程的方式降低输出策略奖励的时间,为整个方法提供高效的执行和优化环境。
本发明步骤具体如下:
步骤1、通过性能分析profiling方法对神经网络模型进行性能数据采样分析,提取模型算子的计算代价、内存代价、张量传输大小等多维度的性能数据,并拟合真实执行环境下的通信代价函数,实现基于计算-通信代价约束的计算图算子分组融合,降低计算图规模。
步骤2、根据融合后计算图的原始特征实现基于消息传递的计算图特征编码,首先,对算子分组融合后的计算图进行原始特征提取,主要包括计算代价、出入度大小、算子输出张量大小等原始特征信息;其次,利用这些原始特征信息构建计算图的原始特征向量;最后,在此基础上,基于原始特征向量,利用消息传递机制获取算子的近邻信息,通过捕捉更多的局部信息,实现计算图的全局特征表示,构建强化学习的状态搜索空间,即计算图特征编码。
步骤3、针对构建的状态搜索空间,采用基于时序差分采样的AC算法对强化学习模型进行迭代优化,完成最优调度策略输出。
强化学习利用Agent(智能体)与Critic(评论家),即构建的状态搜索空间,进行交互,采样五元组(P,r,V)数据,实现自动最优并行策略搜索,其中/>表示强化学习当前所处环境的状态,/>表示Agent在环境中所能做出的动作,P表示强化学习Agent进行动作选择的概率分布,r表示当前动作产生的奖励,V表示当前状态具备的价值;Agent通过多次采样上述数据组,根据奖励以及价值指导其迭代更新其参数,实现最优自动并行策略输出。
首先构建强化学习状态搜索空间该状态空间即步骤2中的构建的计算图特征编码,在强化学习迭代过程中,Agent通过与环境交互,改变当前计算图所处的状态,该状态即为步骤2中的原始特征向量,对这些不同的原始特征向量进行图特征编码即构成了强化学习的整体状态搜索空间。
其次实现马尔科夫决策过程,基于TD(k)(Temporal Difference k,k步时序差分学习)的方式,在单步迭代的过程中将Agent分为Actor Agent(演员智能体)和CriticAgent(评论家智能体),Actor是具备SoftMax层的前馈神经网络,负责策略迭代优化并基于当前动作概率分布P输出动作Critic则是MLP(Multi Layer Perceptron,多层感知机)网络,针对动作前后相邻的两个状态,输出两个状态的价值估计Vt,Vt+1,这个状态的价值估计代表当前状态的价值大小,价值越高代表当前动作更优;Actor Agent通过采样多组相邻状态的价值以及状态转换的奖励实现时序差分的参数迭代更新算法,其参数迭代公式为:
其中,st表示t时刻环境的状态,π(at|st;θ)代表当前Actor Agent的策略网络,at是在t时刻,Actor Agent基于当前策略做出的动作,θ是策略网络的参数;是熵正则项,用于提升Actor Agent的探索能力;A(st,at;ω)则是优势函数,表明在当前状态st下,动作at的优势大小;ω是Critic Agent的价值网络的参数,优势函数是基于Critic Agent的价值网络估计出的状态价值以及状态转换的奖励构建,其中奖励值是由如下公式定义:
其中,R(at)代表当前动作at获得的奖励,rt代表当前策略的执行时间,M代表硬件设备的内存上限,mcost代表当前策略的内存消耗,α代表惩罚因子,当前策略如果内存消耗大于设备的内存上限,则通过添加内存惩罚项。
Critic本身则通过bootstrapping(自举)的方式,利用两个相邻状态价值的均方误差作为损失函数进行网络参数迭代。
最后将并行策略输入到模拟执行引擎中模拟执行,输出执行奖励值用于Actor和Critic的迭代优化,实现自动最优并行策略的搜索。
步骤4、构建基于事件驱动的多线程模拟执行器,模拟真实环境的神经网络模型执行过程,降低硬件执行成本,减少输出策略奖励的时间,为整个方法提供高效的执行和优化环境。
首先,针对神经网络模型执行中的执行主体计算代价以及通信代价,构建设备执行队列以及设备通信队列,用于模拟神经网络模型中算子的计算以及通信过程;其次,利用多种事件机制(例如计算事件,通信事件,拓扑刷新事件等事件)构造事件队列,实现基于事件驱动的设备执行队列与设备通信队列交互;最后,遍历设备执行队列、设备通信队列以及事件队列三个队列的状态,当队列状态均为空时,神经网络模型模拟执行完毕,完成训练。
本发明具有的有益效果:
首先,通过profiling方法对神经网络模型进行性能数据采样,基于模型算子的采样数据,实现计算-通信代价的算子约束分组融合方法,降低AC强化学习的状态搜索空间规模,提高并行策略的搜索性能;其次,利用基于消息传递的方式,对计算图进行特征编码,对计算图进行全面特征表示,提升并行策略的通用性;最后,实现基于时序差分采样的AC算法对强化学习模型进行迭代优化,以高效搜索最优分布式并行策略。另外,通过构建基于事件驱动方法构建模拟执行器模拟真实执行环境;同时利用拟合通信代价函数的方法提升模拟执行器精度,使模拟执行环境更逼近真实环境,在该模拟环境中,可以减少策略迭代执行时间并降低迭代搜索过程中的硬件执行成本,为整个方法提供高效的执行和优化环境。
附图说明
图1是基于AC强化学习搜索最优并行策略整体过程示意图;
图2是基于近邻消息传递的计算图特征编码示意图;
图3是AC强化学习Agent迭代优化过程示意图;
图4是高精度模拟执行器执行过程示意图。
具体实施方式
下面将结合附图和具体实施步骤对本发明做出进一步说明:
一种基于AC强化学习的神经网络模型分布式自动并行训练方法,如图1所示,包括以下具体步骤:
步骤1、根据目前主流的深度学习框架(Tensorflow,Pytorch等)构建神经网络模型的计算图,计算图就是根据神经网络数据流定义的有向无环图,包含计算节点以及资源依赖关系,因此计算图就是神经网络模型的一种实现形式。通过基于profiling方法对神经网络构建的计算图进行性能数据采样分析,提取计算图算子的计算代价、内存代价、张量传输大小等多维度的性能数据,并拟合真实执行环境下的通信代价函数,实现基于计算-通信代价约束的计算图算子分组融合,降低计算图规模。
首先,通过神经网络模型进行实际的多轮训练,采样神经网络模型算子的计算代价、内存代价、张量传输大小以及张量通信代价;在此基础上利用张量传输过程中的张量大小以及张量通信代价,拟合函数通信代价函数;基于上述采样的数据实现基于计算-通信代价的约束性算子分组,构建约束分组规则,即当算子并行计算时间短于通信时间,则进行约束分组。
其次,在基于上述规则的算子融合过程中,需要保证计算图的有向无环性,否则会出现循环依赖,导致模型执行失败;但由于计算图过于庞大,采用常规的方法判断是否成环开销过大,因此通过设置严格的消融条件,即算子消融需要满足前驱算子的出度为1,或者算子后继算子的入度为1。这样在确保模型顺利执行的情况下,尽可能的基于前述约束规则对节点进行融合,从而降低搜索空间的规模。同时设置消融阈值T,控制计算图消融范围。因此最终构建的分组规则如公式1所示:
其中,oi和oj别代表计算图中的不同算子节点,succ(oi)表示oi的后继节点,outdegree(fore(oi))表示oi的前驱节点出度;indegree(succ(oi))表示oi的后继的入度;表示oi和oj间的拟合通信代价;Cavg(oj)表示oj平均计算代价。
最后,提取神经网络模型计算图,根据拓扑顺序遍历计算图各节点,当前驱节点oi和后继节点oj满足约束规则时则分为同一组,当计算图节点数量低于设置阈值T或者没有符合条件的节点时结束消融。节点消融如算法1所示:
步骤2、根据融合后计算图的原始特征实现基于消息传递的计算图特征编码,对计算图进行表征,完成强化学习的状态搜索空间构建。
首先,对算子分组融合后的计算图进行原始特征提取,主要包括计算代价、出入度大小、算子输出张量大小、硬件设备标记、访问标记等特征信息。
其次,利用这些原始信息构建计算图的原始特征向量。
最后,在原始特征向量的基础上实现基于消息传递的计算图特征编码方法:该过程分两个阶段,消息传递和邻近信息聚合阶段,具体过程如图2所示。
第一个阶段,消息传递阶段,其通过正向计算以及反向计算两个过程,获取当前计算节点oi的前驱节点原始特征向量后继节点原始特征向量/>以及并行节点的原始特征向量/>通过消息传递的形式获取当前节点的所处的全局环境特征,增强节点的特征表示,消息传递过程如公式所示:
其中,Pμ与Sθ分别为前向和后向信息传递的多层感知机网络,θ和μ是可训练的参数,代表当前节点i聚合其邻近节点信息后的原始特征向量,/>是节点经过信息传递后的生成的特征向量,在不同的神经网络下可复用该网络参数,以提升强化学习模型策略搜索的泛化能力。
第二个阶段,邻近信息聚合阶段,将第一个阶段对每个算子完成邻近信息获取后的特征向量与其父节点组子节点组/>以及并行组/>进行聚合,完成计算图特征编码。具体来说,为每个节点实现整体的组合式嵌入过程。在聚合过程中搜索确定父节点组、子节点组以及并行组,父节点组代表当前节点可以到达的父节点集合,子节点组表明节点可以到达的子节点集合;并行组表示不能从当前节点到达也不能到达当前节点的集合。聚合过程公式如下:
其中表示当前三种节点组的特征编码,fμ和gθ为具有可训练参数的多层感知机网络,最后通过向量Concate(连接)操作将这三个嵌入编码结果与第一阶段中/>进行连接,构成计算图特征编码,该特征编码即为强化学习的状态搜索空间。邻近信息聚合阶段算法如下表所示:
步骤3、针对构建的状态搜索空间,采用基于时序差分采样的AC算法对强化学习模型进行迭代优化,完成最优调度策略输出,如图3所示。
首先,Actor将神经网络模型的计算图特征编码作为状态St输入到各自的网络中;Actor基于当前系统的状态特征St经过前馈神经网络FNN网络以及Softmax层输出当前算子的调度动作at,即规划到哪个设备上进行执行,同时根据当前at对系统所处的状态St进行更新,到达St+1并对改状态进行保存。
其次,Critic则利用MLP(Multi Layer Perceptron,多层感知机)对初始输入的状态St以及上一步得出的新的状态St+1进行价值评估,输出状态价值V(st;ω)和V(st+1;ω)。
然后,利用获取的奖励值,V(st+1;ω)以及V(st;ω)计算TD-error(TemporalDifference-error,时序差分误差),该项是基于AC算法构建的优势函数,用于评估当前Agent做出动作的优势大小,其中V(st+1;ω)以及V(st;ω)由Critic价值网络估计得到,而奖励值则由如下式定义:
其中,R(at)代表当前动作at获得的奖励,rt代表当前策略的执行时间,M代表硬件设备的内存上限,md代表当前策略的内存消耗,c代表惩罚因子,当前策略如果内存消耗大于设备的内存上限,则通过添加内存惩罚项,引导Agent向内存更均衡的方向探索。
最后,利用上述完成Actor和Critic的参数更新,Actor的参数更新方法如下所示:
π(at|st;θ)代表当前Actor Agent的策略网络,A(st,at;ω)为TD-error,其具体计算方式如下:
其中k表示当前采样数据的间隔,即Agent执行多少次动作以后进行策略迭代;γ是衰减系数,是一个超参数,用于控制奖励和状态价值的重要程度;R代表当前动作所获得的奖励,V表示当前Agent所处状态的价值,其中状态价值由Critic网络进行预测,ω则是其网络参数。
同时随着模型训练的深入,Actor会不断选择价值更高的动作,从而放弃对环境进行探索,因此通过熵正则项,引导Actor向不确定性更强,信息量更高的动作进行探索,防止整个模型陷入局部最优解,根据香农熵(即信息熵)定义,引入熵正则项
其中,代表所有策略的集合,π(u)代表当前搜索到的策略,香农熵可以计算当前系统的信息增益,因此这个正则项的本质就是为了在迭代的过程中让Agent能够向获取更多信息量的方向进行探索,从而防止模型陷入局部最优。Critic网络参数迭代则使用bootstrapping(自举)的方法,利用两个状态价值的均方误差作为损失函数进行参数的迭代优化:
具体迭代过程如算法3所示:
目前模型开发人员都是基于通用框架(例如Tensorflow,Pytorch等)构建神经网络模型,但模型精度提升需要进行多次反复调试训练,过程十分耗时,而使用本发明方法可以自动高效的为其构建的多种神经网络模型寻找最优并行训练策略,降低神经网络模型开发人员训练模型的时间。以图像分类领域中的经典神经网络模型InceptionV3为例,该模型是目前应用最为广泛的图像分类模型之一,多数图像分类模型开发人员会在此模型上进行扩展开发,因此通过提升该模型的训练效率,可以提升整体的开发效率,该神经网络模型计算图经过算子融合分组后约有1400个算子,基于目前已有的方法需要对所有算子都进行调度后才能进行一次策略迭代,最终需要迭代30轮收敛到最优策略,平均单论迭代时长为95s,而采用本发明提出的基于AC的强化学习模型的可以实现单步的策略迭代,即在每轮迭代中,每进行一次算子调度就可以对策略进行一次迭代,强化学习模型策略搜索效率高,在相同的环境和模型下,本发明方法在第14轮收敛到了与前者相同的最优策略,虽然本方法的平均单轮迭代时长104s,较前者长,但总体的同等最优策略搜索时间降低了48.9%,最终将该分布式并行策略应用于InceptionV3模型的训练调试,可将单轮训练时间从2.65s降低到2s,当模型开发者需要对模型进行分组多轮训练以提升模型精度时,例如分成10组,每组进行1000轮迭代,则可以减少1.8小时的训练调试时间,这样就可以极大提升各种神经网络模型开发人员的模型开发效率,在更短的时间内训练出同样高精度的模型。
步骤4、构建基于事件驱动的模拟执行器,模拟真实环境的神经网络模型执行过程,降低硬件执行成本,减少输出策略奖励的时间,为整个方法提供高效的执行和优化环境,如图4所示。
首先,根据神经网络模型的DAG(Directed Acyclic Graph,有向无环图)计算图,初始化设备执行事件,并将初始的可执行算子放入设备执行队列,完成模拟器整体状态的初始化。其次,通过不断从事件队列获取相应的事件,并通过选择器,选择相应的处理器,从而模拟整个计算图的执行过程,其中每个处理器又包含调度器和事件发生器,具体每个事件的处理器处理过程如下所示:
1、设备执行处理器:
a、设备执行调度器:从当前的设备执行队列中获取队头任务,完成算子执行,并触发事件发生器。
b、事件发生器
i、设备执行事件:当前调度算子已经完成执行,重新调度执行完当前算子的设备,即当前设备空闲并触发设备的下一次设备执行事件。
ii、设备通信事件:当前调度算子已经完成执行,当其后继算子执行设备与其执行设备不同时触发设备间通信事件,并将当前算子oi放入设备通信队列。
iii、拓扑更新事件:当前调度算子已经完成执行,当其后继算子执行设备与其执行设备相同时则触发拓扑更新事件。
2、通信执行处理器
a、通信执行调度器:从当前的设备通信队列中获取队头任务,利用拟合函数计算节点间通信代价,完成设备间模拟通信,并触发事件发生器。
b、事件发生器
i、设备通信事件:如果此次通信结束时间小于全局总体执行时间,则当前设备通信可正常执行,则重新调度当前设备的通信状态,即当前设备的通信处于空闲状态可以触发下一次设备通信事件;反之,则当前将当前算子oi的通信任务重新放入设备执行队列等待下一次调度。
ii、拓扑刷新事件:如果当前设备通信完成,则代表当前算子信息已传递到其后继节点所在设备,因此触发一次拓扑刷新事件。
3、拓扑处理器
a、拓扑调度器:在模型的DAG图中将已经完成计算以及通信的算子置为已访问,并将其子节点的入度减1,并触发事件发生器。
b、事件发生:
i、设备执行事件:会将需要执行的算子同时插入执行队列,并且生成事件;当子节点的入度为0时,则当前算子进入可调度状态,因此产生设备执行事件,并且将当前算子oi的子节点放入设备执行队列等待调度。
最后当上述三个处理器完成所有的事件处理后,即完成对模型图中所有算子的调度,且所有设备会处于空闲状态,则不再产生新的事件,此时执行完毕输出最后结束的执行时间即为模拟执行时间。具体执行过程如算法4所示:
Claims (10)
1.一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,包括以下步骤:
步骤1、通过性能分析profiling方法对神经网络模型进行性能数据采样分析,提取模型算子的多维度性能数据,并拟合真实执行环境下的通信代价函数,实现基于计算-通信代价约束的计算图算子分组融合;
步骤2、根据融合后计算图的原始特征,实现基于消息传递的计算图特征编码,即状态搜索空间;
步骤3、针对状态搜索空间,采用基于时序差分采样的AC算法对强化学习模型进行迭代优化,完成最优调度策略输出;
步骤4、构建基于事件驱动的多线程模拟执行器,模拟真实环境的神经网络模型执行过程,提供高效的执行和优化环境。
2.根据权利要求1所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,步骤1中所述的多维度性能数据包括:计算代价、内存代价和张量传输大小。
4.根据权利要求3所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,步骤2具体过程如下:
2.1、对算子分组融合后的计算图进行原始特征提取;
2.2、利用原始特征构建计算图的原始特征向量;
2.3、基于原始特征向量,利用消息传递机制获取算子的近邻信息,通过捕捉局部信息,实现计算图的全局特征表示,构建强化学习的状态搜索空间,即计算图特征编码。
5.根据权利要求4所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,在2.1中所述原始特征包括计算代价、出入度大小和算子输出张量大小。
6.根据权利要求5所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,步骤3具体过程如下:
3.1、构建强化学习的状态搜索空间该状态空间即步骤2中构建的计算图特征编码,在强化学习迭代过程中,智能体Agent通过与环境交互,改变当前计算图所处的状态,该状态即为步骤2中的原始特征向量,对这些不同的原始特征向量进行图特征编码,即构成了强化学习的状态搜索空间;
3.2、实现马尔科夫决策过程,基于k步时序差分学习的方式,在单步迭代的过程中将Agent分为演员智能体Actor Agent和评论家智能体Critic Agent;
Actor Agent通过采样多组相邻状态的价值以及状态转换的奖励实现时序差分的参数迭代更新算法,其参数迭代公式为:
其中,st表示t时刻环境的状态,π(at|st;θ)代表当前Actor Agent的策略网络,at是在t时刻,Actor Agent基于当前策略做出的动作;θ是策略网络的参数;是熵正则项,用于提升Actor Agent的探索能力;A(st,at;ω)则是优势函数,表明在当前状态st下,动作at的优势大小;ω是Critic Agent的价值网络的参数;
Critic本身则通过自举bootstrapping的方式,利用两个相邻状态价值的均方误差作为损失函数进行网络参数迭代;
3.3、将并行策略输入到模拟执行引擎中模拟执行,输出执行奖励值用于Actor和Critic的迭代优化,实现自动最优并行策略的搜索。
9.根据权利要求8所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,步骤4具体过程如下:
4.1、针对神经网络模型执行中的执行主体计算代价以及通信代价,构建设备执行队列以及设备通信队列,用于模拟神经网络模型中算子的计算以及通信过程;
4.2、利用多种事件机制构造事件队列,实现基于事件驱动的设备执行队列与设备通信队列交互;
4.3、遍历设备执行队列、设备通信队列以及事件队列三个队列的状态,当队列状态均为空时,神经网络模型模拟执行完毕,完成训练。
10.根据权利要求9所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,在4.2中所述事件机制包括:计算事件、通信事件和拓扑刷新事件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310067939.9A CN116306897A (zh) | 2023-02-06 | 2023-02-06 | 一种基于ac强化学习的神经网络分布式自动并行训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310067939.9A CN116306897A (zh) | 2023-02-06 | 2023-02-06 | 一种基于ac强化学习的神经网络分布式自动并行训练方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116306897A true CN116306897A (zh) | 2023-06-23 |
Family
ID=86819418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310067939.9A Pending CN116306897A (zh) | 2023-02-06 | 2023-02-06 | 一种基于ac强化学习的神经网络分布式自动并行训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116306897A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116684437A (zh) * | 2023-08-04 | 2023-09-01 | 江苏量界数据科技有限公司 | 基于自然语言分析的分布式数据管理方法 |
CN117093871A (zh) * | 2023-10-16 | 2023-11-21 | 之江实验室 | 一种面向深度学习分布式训练测评方法和系统 |
-
2023
- 2023-02-06 CN CN202310067939.9A patent/CN116306897A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116684437A (zh) * | 2023-08-04 | 2023-09-01 | 江苏量界数据科技有限公司 | 基于自然语言分析的分布式数据管理方法 |
CN116684437B (zh) * | 2023-08-04 | 2023-10-03 | 江苏量界数据科技有限公司 | 基于自然语言分析的分布式数据管理方法 |
CN117093871A (zh) * | 2023-10-16 | 2023-11-21 | 之江实验室 | 一种面向深度学习分布式训练测评方法和系统 |
CN117093871B (zh) * | 2023-10-16 | 2024-02-13 | 之江实验室 | 一种面向深度学习分布式训练测评方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Russell et al. | Q-decomposition for reinforcement learning agents | |
Wang et al. | Bilateral LSTM: A two-dimensional long short-term memory model with multiply memory units for short-term cycle time forecasting in re-entrant manufacturing systems | |
CN116306897A (zh) | 一种基于ac强化学习的神经网络分布式自动并行训练方法 | |
CN113128702A (zh) | 一种基于强化学习的神经网络自适应分布式并行训练方法 | |
Talbi | Automated design of deep neural networks: A survey and unified taxonomy | |
Goyal et al. | Retrieval-augmented reinforcement learning | |
CN112052948B (zh) | 一种网络模型压缩方法、装置、存储介质和电子设备 | |
CN110014428B (zh) | 一种基于强化学习的时序逻辑任务规划方法 | |
Mehta | State-of-the-art reinforcement learning algorithms | |
CN113487029A (zh) | 一种可移植的神经网络分布式并行策略搜索方法 | |
Sinha et al. | Qubit routing using graph neural network aided Monte Carlo tree search | |
Liu et al. | Libero: Benchmarking knowledge transfer for lifelong robot learning | |
CN115659275A (zh) | 非结构化人机交互环境中的实时准确轨迹预测方法及系统 | |
Li et al. | 3D reconstruction based on hierarchical reinforcement learning with transferability | |
Schubert et al. | A generalist dynamics model for control | |
Chen et al. | Policy gradient from demonstration and curiosity | |
Zhang et al. | Brain-inspired experience reinforcement model for bin packing in varying environments | |
Meng et al. | An integer linear programming framework for mining constraints from data | |
Zhu et al. | Fast Adaptive Character Animation Synthesis Based on Greedy Algorithm | |
Zhou et al. | A single-shot generalized device placement for large dataflow graphs | |
Peng et al. | Simulation Optimization in the New Era of AI | |
CN115168722A (zh) | 内容交互预测方法以及相关设备 | |
CN113139644A (zh) | 一种基于深度蒙特卡洛树搜索的信源导航方法及装置 | |
Hua et al. | Towards efficient 3d human motion prediction using deformable transformer-based adversarial network | |
Marzi et al. | Feudal graph reinforcement learning |
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 |