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

文档序号:8395772阅读:来源:国知局
给相应工作节点的服务器资源请求模块,否则向该工作节点回复资源不可用; 所述参数服务器端的参数维护模块,用于负责在服务器端维护算法模型参数,响应来自工作节点的参数更新请求:若请求目标为更新服务器参数,则该模块根据得到的参数梯度计算并更新当前参数;若请求目标为获得服务器参数,则参数服务器端的参数维护模块拷贝当前服务器参数并返回给相应工作节点的参数同步模块; 所述位于各工作节点端的服务器资源请求模块,用于在收到未同步时间累计模块的“达到参数同步时间点”通知时,向资源监控和分配模块请求分配资源,若得到许可则交付参数同步模块进行参数同步,否则将任务交给参数同步时间间隔控制模块进一步进行时间间隔控制; 所述位于各工作节点端的参数同步时间间隔控制模块,用于负责在接收到参数同步模块的通知或接收到来自服务器资源请求模块的通知时,设置合理的参数同步间隔时间,降低对服务器资源的竞争以减轻瓶颈; 所述位于各工作节点端的未同步时间累计模块,用于负责记录上一次设置参数同步间隔到现在为止的时间,一旦该时间达到参数同步时间间隔控制模块规定的参数同步时间间隔后,则通知服务器资源请求模块申请同步资源;在资源申请失败时,如果当前累计未同步时间达到同步时间间隔上限值时,则通知参数同步模块进行强制同步,其中所述当前累计未同步时间为上一次成功同步后到当前的时间; 所述位于各工作节点端的参数计算模块,用于负责根据训练数据在工作节点进行本地参数计算的工作; 所述位于各工作节点端的参数同步模块,用于负责在获得参数服务器的资源许可之后或者接收到未同步时间累计模块的强制同步命令后,和参数服务器之间进行参数同步。
2.如权利要求1所述的适用于分布式机器学习的参数同步优化系统,其特征在于,所述服务器资源包括服务器传输带宽、内存以及CPU。
3.如权利要求1或2所述的适用于分布式机器学习的参数同步优化系统,其特征在于,所述未同步时间和同步时间间隔的时间计量单位为并行随机梯度下降算法的一个完整训练步,即每经过一个完整的训练步,时间计量加1,同步时间间隔即是“经过多少个完整的训练步,再开始进行参数同步”。
4.一种适用于分布式机器学习的参数同步优化方法,其特征在于,包括系统初始化步骤和并行训练步骤,其中: (I)系统初始化步骤:初始化服务器和工作节点的模型参数、训练数据集、配置信息,具体包括下述子步骤: (1.1)向参数服务器输入训练数据,并由参数服务器将训练数据分成多个训练子集;根据用户定义将同步时间间隔上限值maX_interVal初始化为一常量值,该值小于分配给每个工作节点的输入训练数据的总批数;将不同子集和max_interval发送给各个工作节点,转子步骤(1.2); (1.2)参数服务器根据用户定义的神经网络模型结构随机初始化神经网络模型参数Θ,转子步骤(1.3); (1.3)各个工作节点从参数服务器处拉取初始化模型参数Θ作为本地初始化参数,转子步骤(1.4); (1.4)各个工作节点将各自的拉取参数计时器pulICounter、推送参数梯度计时器pushCounter、累计未推送时间间隔accrued_push_interval、累计未拉取时间间隔accrued_pull_interval和当前累计未同步参数梯度值ΣΔ Θ均初始化为0,同时初始化拉取时间间隔pull_interval和推送时间间隔push_interval,其中拉取时间间隔pull_interval和推送时间间隔push_interval均由工作节点随机生成,其值介于I和max_interval之间;进入步骤(2); (2)并行训练步骤:利用模型参数和各个工作节点的输入训练子集进行训练,并按计算好的时间间隔及时与参数服务器进行同步直至训练结束,具体包括下述子步骤: (2.1)工作节点在本地训练子集中查询当前是否有未训练数据,若有则取出一批新的训练数据,计算剩余未训练数据批数remain_batch_size,并转子步骤(2.2);否则结束并行训练步骤; (2.2)工作节点利用子步骤(2.1)中取出的数据和当前参数Θ进行计算,得到参数梯度Δ Θ,转子步骤(2.3); (2.3)工作节点利用子步骤(2.2)得到的ΔΘ更新本地参数Θ ;pulICounter和pushCounter自增I (计时动作),转子步骤(2.4); (2.4)工作节点利用子步骤(2.2)得到的△ Θ累加到Σ Δ Θ,转子步骤(2.5); (2.5)推送参数梯度子步骤:根据参数同步时间间隔的控制,推送参数梯度; (2.6)拉取参数子步骤:根据参数同步时间间隔的控制,拉取参数。
5.如权利要求4所述的适用于分布式机器学习的参数同步优化方法,其特征在于,所述步骤(2.5)具体包括下述子步骤: (2.5.1)判断pushCounter记录的时间是否等于push_interval,若等于则转子步骤(2.5.2),否则结束子步骤(2.5),并转子步骤(2.6); (2.5.2)工作节点向参数服务器节点发送资源请求;如果服务器回复许可,则转子步骤(2.5.3),否则转子步骤(2.5.4); (2.5.3)工作节点向服务器推送子步骤(2.4)中得到的ΣΔ Θ,等待服务器更新参数完毕,将 accrued_push_interval 和 Σ Δ Θ 清零,转子步骤(2.5.5);(2.5.4)将当前 pushCounter 记录时间累加到 accrued_push_interval,若 accrued_push_interval ^ max_interval 或 remain_batch_size ==0,则车专子步骤(2.5.3),否则转子步骤(2.5.5); (2.5.5)重新设置push_interval,push_interval由工作节点随机生成,其值介于I到 max_interval-accrued_push_interval 和 remain_batch_size 的车交小值之间(包含边界值),将pushCounter清零,结束子步骤(2.5),并转子步骤(2.6)。
6.如权利要求5所述的适用于分布式机器学习的参数同步优化方法,其特征在于,所述子步骤(2.5.3)中所述的推送当前未同步参数梯度值过程,具体包括如下子步骤: (2.5.3.1)工作节点向服务器端推送当前未同步参数梯度值ΣΛ Θ,等待服务器响应; (2.5.3.2)服务器端接收来自某工作节点的推送请求,利用接收到的参数梯度值Δ Θ (即工作节点端的当前未同步参数梯度值Σ Λ Θ)更新本地模型参数Θ,并返回成功信号给该工作节点; (2.5.3.3)工作节点接收服务器端返回的成功信号,推送当前未同步参数梯度值完成。
7.如权利要求4或5所述的适用于分布式机器学习的参数同步优化方法,其特征在于,所述步骤(2.6)具体包括下述子步骤: (2.6.1)判断pulICounter记录的时间是否等于pull_interval,若是则转子步骤(2.6.2),否则结束子步骤(2.6),并转子步骤(2.1); (2.6.2)工作节点向参数服务器节点发送资源请求;如果服务器回复许可,则转子步骤(2.6.3),否则转子步骤(2.6.4); (2.6.3)工作节点向参数服务器请求拉取最新参数并等待参数服务器返回该值Θ;将本地参数更新为Θ ;将accrued_pull_interval清零,转子步骤(2.6.5); (2.6.4)将当前pullCounter 记录的时间累加到 accrued_pull_interval,若 accrued_pull_interval ^ max_interval 或 remain_batch_size == 0,则车专子步骤(2.6.3);否则转子步骤(2.6.5); (2.6.5)重新设置pull_interval,pull_interval由工作节点随机生成,其值介于I 到 max_interval-accrued_pull_interval 和 remain_batch_size 的车交小值之间,将pullCounter清零;结束子步骤(2.6),并转子步骤(2.1)。
8.如权利要求4或7所述的适用于分布式机器学习的参数同步优化方法,其特征在于,所述述子步骤(1.3)或(2.6.3)中所述的拉取服务器参数过程,具体包括如下子步骤: (1.3.1)工作节点向服务器端发送拉取参数请求,等待服务器响应; (1.3.2)服务器端接收来自某工作节点的拉取参数请求,复制服务器中存储的当前模型参数Θ,并返回给该工作节点; (1.3.3)工作节点接收服务器端返回的模型参数值Θ,拉取服务器参数完成。
9.如权利要求5或7所述的适用于分布式机器学习的参数同步优化方法,其特征在于,所述子步骤(2.5.2)或(2.6.2)所述的发送资源请求过程,具体包括如下子步骤: (2.5.2.1)工作节点向服务器端发送资源请求信号,等待服务器响应; (2.5.2.2)服务器端接收来自某工作节点的资源请求信号,服务器根据当前资源占用情况,决定是否分配服务器资源;若服务器资源当前占用较低,则返回资源可用信号给该工作节点;否则返回资源不可用; (2.5.2.3)工作节点接收服务器端返回的资源可用与否信号,发送资源请求完成。
【专利摘要】本发明提供了一种适用于分布式机器学习的参数同步优化方法及其系统,使用参数服务器分布式方式实现的机器学习算法,解决现有算法在参数同步过程中的瓶颈:由于网络、参数服务器资源不足而造成的并行机器学习训练的大量时间延迟问题。本发明系统包括参数服务器端的资源监控和分配模块、参数维护模块,各工作节点的服务器资源请求模块、参数同步时间间隔控制模块、未同步时间累计模块、参数计算模块和参数同步模块。本发明通过监控参数服务器资源占用情况,为不同工作节点选取不同同步时间间隔来避免请求突发情况,同时保证选取的时间间隔能够同时满足降低通信频率和确保训练准确率,以有效解决现有分布式机器学习系统在参数同步过程中所面临的瓶颈问题。
【IPC分类】G06F9-50, G06F9-52
【公开号】CN104714852
【申请号】CN201510117746
【发明人】廖小飞, 王思远, 范学鹏, 金海 , 姚琼杰
【申请人】华中科技大学
【公开日】2015年6月17日
【申请日】2015年3月17日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1