一种适用于分布式机器学习的参数同步优化方法及其系统的制作方法_3

文档序号:8395772阅读:来源:国知局
数据,并且该数据已经被转换成[1,784]的矩阵,即整个输入训练数据为[40,784]的矩阵,本实例中定义一批训练数据中仅包含一组数据;相应地,需要训练的目标神经网络模型结构为[784,100]的矩阵(矩阵中每个数据都是双精度浮点数),即AE算法模型中有784个神经元节点组成输入层,100个神经元节点作为隐层;在参数同步过程中,在不同节点中进行交互同步的模型参数矩阵即为目标神经网络模型矩阵[784,100]。注意模型参数矩阵中每个数都是0-1间的双精度浮点数值,因矩阵庞大、整个训练过程中模型参数矩阵值不会影响任何子步骤之间的判断转移,故在具体实施步骤中不详细列举该矩阵具体数值而统一代号Θ表示;类似的参数梯度矩阵用△ Θ表示,当前累计未同步参数梯度值用Σ Δ Θ表示。
[0077]图2是本发明参数同步优化方法的整体工作流程图。如图2所示,本发明参数同步优化方法的整体工作流程包括以下步骤:
[0078](I)系统初始化,初始化服务器和工作节点的模型参数、训练数据集、配置信息等;
[0079](2)并行训练,利用模型参数和各个工作节点的输入训练子集进行训练,并按计算好的时间间隔及时与参数服务器进行同步直至训练结束。
[0080]图3是本发明参数同步优化方法的系统初始化子工作流程图。如图3所示,本发明实施例中参数同步优化方法的系统初始化子工作流程包括以下步骤:
[0081](1.1)向参数服务器输入训练数据,并由参数服务器将训练数据分成多个训练子集;根据用户定义将同步时间间隔上限值maxjnterval初始化为一常量值,该值小于分配给每个工作节点的输入训练数据的总批数;将不同子集和max_interval发送给各个工作节点,转子步骤(1.2);
[0082](1.2)参数服务器根据用户定义的神经网络模型结构随机初始化神经网络模型参数Θ,转子步骤(1.3);
[0083](1.3)各个工作节点从参数服务器处拉取初始化模型参数Θ作为本地初始化参数,转子步骤(1.4);
[0084](1.4)各个工作节点将各自的拉取参数计时器pullCounter、推送参数梯度计时器pushCounter、累计未推送时间间隔accrued_push_interval、累计未拉取时间间隔accrued_pull_interval和当前累计未同步参数梯度值ΣΔ Θ均初始化为0,同时初始化拉取时间间隔pull_interval和推送时间间隔push_interval,其中拉取时间间隔pull_interval和推送时间间隔push_interval均由工作节点随机生成,其值介于I和max_interval之间(包含边界值);进入步骤(2)。
[0085]图4是本发明参数同步优化方法的并行训练子工作流程图。如图4所示,对于I号工作节点,本发明参数同步优化方法的并行训练子工作流程包括以下步骤:
[0086](2.1)工作节点在本地训练子集中查询当前是否有未训练数据,若有则取出一批新的训练数据,计算剩余未训练数据批数remain_batch_size,并转子步骤(2.2);否则结束并行训练步骤;
[0087](2.2)工作节点利用子步骤(2.1)中取出的数据和当前参数Θ进行计算,得到参数梯度Λ Θ,转子步骤(2.3);
[0088](2.3)工作节点利用子步骤(2.2)得到的Δ Θ更新本地参数Θ ;pulICounter和pushCounter自增I (计时动作),转子步骤(2.4);
[0089](2.4)工作节点利用子步骤(2.2)得到的Δ Θ累加到Σ Δ Θ,转子步骤(2.5);
[0090](2.5)根据参数同步时间间隔的控制,推送参数梯度;转子步骤(2.6);
[0091](2.6)根据参数同步时间间隔的控制,拉取参数;转子步骤(2.1)。
[0092]图5是本发明参数同步优化方法的推送参数梯度子工作流程图。如图5所示,本发明参数同步优化方法的子步骤(2.5)中推送参数梯度子工作流程包括以下步骤:
[0093](2.5.1)判断pushCounter记录的时间是否等于push_interval,若等于则转子步骤(2.5.2),否则结束子步骤(2.5),并转子步骤(2.6);
[0094](2.5.2)工作节点向参数服务器节点发送资源请求;如果服务器回复许可,则转子步骤(2.5.3),否则转子步骤(2.5.4);
[0095](2.5.3)工作节点向服务器推送子步骤(2.4)中得到的Σ Δ Θ,等待服务器更新参数完毕,将accrued_push_interval和Σ Δ Θ清零,转子步骤(2.5.5);
[0096](2.5.4)将当前 pushCounter 记录时间累加到 accrued_push_interval,若accrued_push_interval 多 max_interval 或 remain_batch_size = =0,贝丨J 车专子步骤(2.5.3),否则转子步骤(2.5.5);
[0097](2.5.5)重新设置push_interval,push_interval由工作节点随机生成,其值介于 I 到 max_interval-accrued_push_interval 和 remain_batch_size 的车交小值之间(包含边界值),将pushCounter清零,结束子步骤(2.5),并转子步骤(2.6)。
[0098]图6是本发明参数同步优化方法的拉取参数子工作流程图。如图6所示,本发明参数同步优化方法的子步骤(2.6)中拉取参数子工作流程包括以下步骤:
[0099](2.6.1)判断pullCounter记录的时间是否等于pull_interval,若是则转子步骤(2.6.2),否则结束子步骤(2.6),并转子步骤(2.1);
[0100](2.6.2)工作节点向参数服务器节点发送资源请求;如果服务器回复许可,则转子步骤(2.6.3),否则转子步骤(2.6.4);
[0101](2.6.3)工作节点向参数服务器请求拉取最新参数并等待参数服务器返回该值Θ ;将本地参数更新为Θ ;将accrued_pull_interval清零,转子步骤(2.6.5);
[0102](2.6.4)将当前 pullCounter 记录的时间累加到 accrued_pull_interval,若accrued_pull_interval ^ max_interval 或 remain_batch_size = = 0,贝丨J 车专子步骤(2.6.3);否则转子步骤(2.6.5);
[0103](2.6.5)重新设置pull_interval,pull_interval由工作节点随机生成,其值介于 I 到 max_interval-accrued_pull_interval 和 remain_batch_size 的车交小值之间(包含边界值),将pullCounter清零;结束子步骤(2.6),并转子步骤(2.1)。
[0104]进一步地,上述子步骤(1.3)和(2.6.3)中所述的拉取服务器参数过程,具体包括:
[0105](1.3.1)工作节点向服务器端发送拉取参数请求,等待服务器响应;
[0106](1.3.2)服务器端接收来自某工作节点的拉取参数请求,复制服务器中存储的当前模型参数Θ,并返回给该工作节点;
[0107](1.3.3)工作节点接收服务器端返回的模型参数值Θ,拉取服务器参数完成。
[0108]进一步地,上述子步骤(2.5.3)中所述的推送当前未同步参数梯度值过程,具体包括:
[0109](2.5.3.1)工作节点向服务器端推送当前未同步参数梯度值Σ Δ Θ,等待服务器响应;
[0110](2.5.3.2)服务器端接收来自某工作节点的推送请求,利用接收到的参数梯度值Δ Θ (即工作节点端的当前未同步参数梯度值Σ Λ Θ)更新本地模型参数Θ,并返回成功信号给该工作节点;
[0111](2.5.3.3)工作节点接收服务器端返回的成功信号,推送当前未同步参数梯度值完成。
[0112]进一步地,上述子步骤(2.5.2)和(2.6.2)所述的发送资源请求过程,具体包括:
[0113](2.5.2.1)工作节点向服务器端发送资源请求信号,等待服务器响应;
[0114](2.5.2.2)服务器端接收来自某工作节点的资源请求信号,服务器根据当前资源占用情况,决定是否分配服务器资源;若服务器资源当前占用较低,则返回资源可用信号给该工作节点;否则返回资源不可用;
[0115](2.5.2.3)工作节点接收服务器端返回的资源可用与否信号,发送资源请求完成。
[0116]在本发明的参数同步优化方法中,对服务器资源的监控可同时监控传输带宽占用比、内存占用比、CPU使用率等是否达到某一额定值来判断;也可简化只采用以上几种条件中的一种来判断,如针对传输带宽占用情况判断,可以直接监控到达服务器端的请求包所组成的队列长度,如果队列长度长于某额定值(简单可设置为1,即仅允许I个包进入服务器进行等待),则认为服务器资源此时已被占用,不再分配资源。
[0117]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种适用于分布式机器学习的参数同步优化系统,其特征在于,包括位于参数服务器端的资源监控和分配模块、参数维护模块,位于各工作节点端的服务器资源请求模块、参数同步时间间隔控制模块、未同步时间累计模块、参数计算模块和参数同步模块;其中工作节点端,未同步时间累计模块与工作节点内其他各模块相连,另外服务器资源请求模块和参数计算模块还各自与参数同步时间间隔控制模块和参数同步模块相连,同时服务器端资源监控和分配模块与工作节点端服务器资源请求模块相连,服务器端参数维护模块与工作节点端参数同步模块相连; 所述参数服务器端的资源监控和分配模块,用于负责监控参数服务器的资源使用情况,在接收到来自某工作节点的资源请求后,分析当前资源利用情况,若资源可用则分配服务器资源
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1