CN116306897A - 一种基于ac强化学习的神经网络分布式自动并行训练方法 - Google Patents

一种基于ac强化学习的神经网络分布式自动并行训练方法 Download PDF

Info

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
Application number
CN202310067939.9A
Other languages
English (en)
Inventor
李湘干
曾艳
任永坚
张纪林
万健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN202310067939.9A priority Critical patent/CN116306897A/zh
Publication of CN116306897A publication Critical patent/CN116306897A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • YGENERAL 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
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS 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/00Systems supporting electrical power generation, transmission or distribution
    • Y04S10/50Systems 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强化学习的神经网络分布式自动并行训练方法
技术领域
本发明属于大规模复杂神经网络并行训练领域,特别涉及一种基于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(评论家),即构建的状态搜索空间,进行交互,采样五元组(
Figure BDA0004062727460000031
P,r,V)数据,实现自动最优并行策略搜索,其中/>
Figure BDA0004062727460000032
表示强化学习当前所处环境的状态,/>
Figure BDA0004062727460000033
表示Agent在环境中所能做出的动作,P表示强化学习Agent进行动作选择的概率分布,r表示当前动作产生的奖励,V表示当前状态具备的价值;Agent通过多次采样上述数据组,根据奖励以及价值指导其迭代更新其参数,实现最优自动并行策略输出。
首先构建强化学习状态搜索空间
Figure BDA0004062727460000034
该状态空间即步骤2中的构建的计算图特征编码,在强化学习迭代过程中,Agent通过与环境交互,改变当前计算图所处的状态,该状态即为步骤2中的原始特征向量,对这些不同的原始特征向量进行图特征编码即构成了强化学习的整体状态搜索空间。
其次实现马尔科夫决策过程,基于TD(k)(Temporal Difference k,k步时序差分学习)的方式,在单步迭代的过程中将Agent分为Actor Agent(演员智能体)和CriticAgent(评论家智能体),Actor是具备SoftMax层的前馈神经网络,负责策略迭代优化并基于当前动作概率分布P输出动作
Figure BDA0004062727460000035
Critic则是MLP(Multi Layer Perceptron,多层感知机)网络,针对动作前后相邻的两个状态,输出两个状态的价值估计Vt,Vt+1,这个状态的价值估计代表当前状态的价值大小,价值越高代表当前动作更优;Actor Agent通过采样多组相邻状态的价值以及状态转换的奖励实现时序差分的参数迭代更新算法,其参数迭代公式为:
Figure BDA0004062727460000036
其中,st表示t时刻环境的状态,π(at|st;θ)代表当前Actor Agent的策略网络,at是在t时刻,Actor Agent基于当前策略做出的动作,θ是策略网络的参数;
Figure BDA0004062727460000041
是熵正则项,用于提升Actor Agent的探索能力;A(st,at;ω)则是优势函数,表明在当前状态st下,动作at的优势大小;ω是Critic Agent的价值网络的参数,优势函数是基于Critic Agent的价值网络估计出的状态价值以及状态转换的奖励构建,其中奖励值是由如下公式定义:
Figure BDA0004062727460000042
其中,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所示:
Figure BDA0004062727460000061
其中,oi和oj别代表计算图中的不同算子节点,succ(oi)表示oi的后继节点,outdegree(fore(oi))表示oi的前驱节点出度;indegree(succ(oi))表示oi的后继的入度;
Figure BDA0004062727460000062
表示oi和oj间的拟合通信代价;Cavg(oj)表示oj平均计算代价。
最后,提取神经网络模型计算图,根据拓扑顺序遍历计算图各节点,当前驱节点oi和后继节点oj满足约束规则时则分为同一组,当计算图节点数量低于设置阈值T或者没有符合条件的节点时结束消融。节点消融如算法1所示:
Figure BDA0004062727460000063
步骤2、根据融合后计算图的原始特征实现基于消息传递的计算图特征编码,对计算图进行表征,完成强化学习的状态搜索空间构建。
首先,对算子分组融合后的计算图进行原始特征提取,主要包括计算代价、出入度大小、算子输出张量大小、硬件设备标记、访问标记等特征信息。
其次,利用这些原始信息构建计算图的原始特征向量。
最后,在原始特征向量的基础上实现基于消息传递的计算图特征编码方法:该过程分两个阶段,消息传递和邻近信息聚合阶段,具体过程如图2所示。
第一个阶段,消息传递阶段,其通过正向计算以及反向计算两个过程,获取当前计算节点oi的前驱节点原始特征向量
Figure BDA0004062727460000071
后继节点原始特征向量/>
Figure BDA0004062727460000072
以及并行节点的原始特征向量/>
Figure BDA0004062727460000073
通过消息传递的形式获取当前节点的所处的全局环境特征,增强节点的特征表示,消息传递过程如公式所示:
Figure BDA0004062727460000074
其中,Pμ与Sθ分别为前向和后向信息传递的多层感知机网络,θ和μ是可训练的参数,
Figure BDA0004062727460000075
代表当前节点i聚合其邻近节点信息后的原始特征向量,/>
Figure BDA0004062727460000076
是节点经过信息传递后的生成的特征向量,在不同的神经网络下可复用该网络参数,以提升强化学习模型策略搜索的泛化能力。
第二个阶段,邻近信息聚合阶段,将第一个阶段对每个算子完成邻近信息获取后的特征向量与其父节点组
Figure BDA0004062727460000077
子节点组/>
Figure BDA0004062727460000078
以及并行组/>
Figure BDA0004062727460000079
进行聚合,完成计算图特征编码。具体来说,为每个节点实现整体的组合式嵌入过程。在聚合过程中搜索确定父节点组、子节点组以及并行组,父节点组代表当前节点可以到达的父节点集合,子节点组表明节点可以到达的子节点集合;并行组表示不能从当前节点到达也不能到达当前节点的集合。聚合过程公式如下:
Figure BDA00040627274600000710
其中
Figure BDA00040627274600000711
表示当前三种节点组的特征编码,fμ和gθ为具有可训练参数的多层感知机网络,最后通过向量Concate(连接)操作将这三个嵌入编码结果与第一阶段中/>
Figure BDA00040627274600000712
进行连接,构成计算图特征编码,该特征编码即为强化学习的状态搜索空间。邻近信息聚合阶段算法如下表所示:
Figure BDA00040627274600000713
Figure BDA0004062727460000081
步骤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价值网络估计得到,而奖励值则由如下式定义:
Figure BDA0004062727460000082
其中,R(at)代表当前动作at获得的奖励,rt代表当前策略的执行时间,M代表硬件设备的内存上限,md代表当前策略的内存消耗,c代表惩罚因子,当前策略如果内存消耗大于设备的内存上限,则通过添加内存惩罚项,引导Agent向内存更均衡的方向探索。
最后,利用上述完成Actor和Critic的参数更新,Actor的参数更新方法如下所示:
Figure BDA0004062727460000083
其中
Figure BDA0004062727460000084
由如下公式定义:
Figure BDA0004062727460000085
π(at|st;θ)代表当前Actor Agent的策略网络,A(st,at;ω)为TD-error,其具体计算方式如下:
Figure BDA0004062727460000091
其中k表示当前采样数据的间隔,即Agent执行多少次动作以后进行策略迭代;γ是衰减系数,是一个超参数,用于控制奖励和状态价值的重要程度;R代表当前动作所获得的奖励,V表示当前Agent所处状态的价值,其中状态价值由Critic网络进行预测,ω则是其网络参数。
同时随着模型训练的深入,Actor会不断选择价值更高的动作,从而放弃对环境进行探索,因此通过熵正则项,引导Actor向不确定性更强,信息量更高的动作进行探索,防止整个模型陷入局部最优解,根据香农熵(即信息熵)定义,引入熵正则项
Figure BDA0004062727460000092
Figure BDA0004062727460000093
其中,
Figure BDA0004062727460000094
代表所有策略的集合,π(u)代表当前搜索到的策略,香农熵可以计算当前系统的信息增益,因此这个正则项的本质就是为了在迭代的过程中让Agent能够向获取更多信息量的方向进行探索,从而防止模型陷入局部最优。Critic网络参数迭代则使用bootstrapping(自举)的方法,利用两个状态价值的均方误差作为损失函数进行参数的迭代优化:
Figure BDA0004062727460000095
其中,Vs和Vs+k分别表示Critic网络在参数为ω时对状态s以及k步后的状态s+k进行的价值估计,
Figure BDA0004062727460000096
表示均方误差对参数ω的偏导数,最后利用梯度下降的方法对ω进行更新。
具体迭代过程如算法3所示:
Figure BDA0004062727460000097
Figure BDA0004062727460000101
目前模型开发人员都是基于通用框架(例如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所示:
Figure BDA0004062727460000121
/>
Figure BDA0004062727460000131
/>

Claims (10)

1.一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,包括以下步骤:
步骤1、通过性能分析profiling方法对神经网络模型进行性能数据采样分析,提取模型算子的多维度性能数据,并拟合真实执行环境下的通信代价函数,实现基于计算-通信代价约束的计算图算子分组融合;
步骤2、根据融合后计算图的原始特征,实现基于消息传递的计算图特征编码,即状态搜索空间;
步骤3、针对状态搜索空间,采用基于时序差分采样的AC算法对强化学习模型进行迭代优化,完成最优调度策略输出;
步骤4、构建基于事件驱动的多线程模拟执行器,模拟真实环境的神经网络模型执行过程,提供高效的执行和优化环境。
2.根据权利要求1所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,步骤1中所述的多维度性能数据包括:计算代价、内存代价和张量传输大小。
3.根据权利要求2所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,步骤1中,所述分组融合的分组规则如下所示:
Figure FDA0004062727410000011
其中,oi和oj别代表计算图中的不同算子节点,succ(oi)表示oi的后继节点,outdegree(fore(oi))表示oi的前驱节点出度;indegree(succ(oi))表示oi的后继的入度;
Figure FDA0004062727410000012
表示oi和oj间的拟合通信代价,Cavg(oj)表示oj平均计算代价。
4.根据权利要求3所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,步骤2具体过程如下:
2.1、对算子分组融合后的计算图进行原始特征提取;
2.2、利用原始特征构建计算图的原始特征向量;
2.3、基于原始特征向量,利用消息传递机制获取算子的近邻信息,通过捕捉局部信息,实现计算图的全局特征表示,构建强化学习的状态搜索空间,即计算图特征编码。
5.根据权利要求4所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,在2.1中所述原始特征包括计算代价、出入度大小和算子输出张量大小。
6.根据权利要求5所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,步骤3具体过程如下:
3.1、构建强化学习的状态搜索空间
Figure FDA0004062727410000023
该状态空间即步骤2中构建的计算图特征编码,在强化学习迭代过程中,智能体Agent通过与环境交互,改变当前计算图所处的状态,该状态即为步骤2中的原始特征向量,对这些不同的原始特征向量进行图特征编码,即构成了强化学习的状态搜索空间;
3.2、实现马尔科夫决策过程,基于k步时序差分学习的方式,在单步迭代的过程中将Agent分为演员智能体Actor Agent和评论家智能体Critic Agent;
Actor Agent通过采样多组相邻状态的价值以及状态转换的奖励实现时序差分的参数迭代更新算法,其参数迭代公式为:
Figure FDA0004062727410000021
其中,st表示t时刻环境的状态,π(at|st;θ)代表当前Actor Agent的策略网络,at是在t时刻,Actor Agent基于当前策略做出的动作;θ是策略网络的参数;
Figure FDA0004062727410000022
是熵正则项,用于提升Actor Agent的探索能力;A(st,at;ω)则是优势函数,表明在当前状态st下,动作at的优势大小;ω是Critic Agent的价值网络的参数;
Critic本身则通过自举bootstrapping的方式,利用两个相邻状态价值的均方误差作为损失函数进行网络参数迭代;
3.3、将并行策略输入到模拟执行引擎中模拟执行,输出执行奖励值用于Actor和Critic的迭代优化,实现自动最优并行策略的搜索。
7.根据权利要求6所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,在3.2中,所述Actor是具备SoftMax层的前馈神经网络,负责策略迭代优化并基于当前动作概率分布P输出动作
Figure FDA0004062727410000024
所述Critic则是多层感知机MLP网络,针对动作前后相邻的两个状态,输出两个状态的价值估计Vt,Vt+1,这个状态的价值估计代表当前状态的价值大小,价值越高代表当前动作更优。
8.根据权利要求7所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,在3.2中所述优势函数是基于Critic Agent的价值网络估计出的状态价值以及状态转换的奖励值构建,其中奖励值是由如下公式定义:
Figure FDA0004062727410000031
其中,R(at)代表当前动作at获得的奖励,rt代表当前策略的执行时间,M代表硬件设备的内存上限,mcost代表当前策略的内存消耗,α代表惩罚因子,当前策略如果内存消耗大于设备的内存上限,则通过添加内存惩罚项。
9.根据权利要求8所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,步骤4具体过程如下:
4.1、针对神经网络模型执行中的执行主体计算代价以及通信代价,构建设备执行队列以及设备通信队列,用于模拟神经网络模型中算子的计算以及通信过程;
4.2、利用多种事件机制构造事件队列,实现基于事件驱动的设备执行队列与设备通信队列交互;
4.3、遍历设备执行队列、设备通信队列以及事件队列三个队列的状态,当队列状态均为空时,神经网络模型模拟执行完毕,完成训练。
10.根据权利要求9所述的一种基于AC强化学习的神经网络分布式自动并行训练方法,其特征在于,在4.2中所述事件机制包括:计算事件、通信事件和拓扑刷新事件。
CN202310067939.9A 2023-02-06 2023-02-06 一种基于ac强化学习的神经网络分布式自动并行训练方法 Pending CN116306897A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116684437A (zh) * 2023-08-04 2023-09-01 江苏量界数据科技有限公司 基于自然语言分析的分布式数据管理方法
CN117093871A (zh) * 2023-10-16 2023-11-21 之江实验室 一种面向深度学习分布式训练测评方法和系统

Cited By (4)

* Cited by examiner, † Cited by third party
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