CN107944566B - 一种机器学习方法、主节点、工作节点及*** - Google Patents

一种机器学习方法、主节点、工作节点及*** Download PDF

Info

Publication number
CN107944566B
CN107944566B CN201711214868.1A CN201711214868A CN107944566B CN 107944566 B CN107944566 B CN 107944566B CN 201711214868 A CN201711214868 A CN 201711214868A CN 107944566 B CN107944566 B CN 107944566B
Authority
CN
China
Prior art keywords
training
parameter
node
global
result
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.)
Active
Application number
CN201711214868.1A
Other languages
English (en)
Other versions
CN107944566A (zh
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 Cloudbrain Technology Co ltd
Original Assignee
Hangzhou Cloudbrain Technology Co ltd
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 Cloudbrain Technology Co ltd filed Critical Hangzhou Cloudbrain Technology Co ltd
Priority to CN201711214868.1A priority Critical patent/CN107944566B/zh
Priority to PCT/CN2017/114228 priority patent/WO2019104713A1/zh
Publication of CN107944566A publication Critical patent/CN107944566A/zh
Application granted granted Critical
Publication of CN107944566B publication Critical patent/CN107944566B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供了一种机器学习方法、主节点、工作节点及分布式机器学习***,用于减少机器学习的同步开销。分布式机器学习***的主节点开启参数训练进程,确定加入所述参数训练进程的工作节点,发送所述参数训练进程对应的时间信息至所述工作节点,其中,所述时间信息包括所述参数训练进程的结束时间;所述工作节点在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,获得所述主节点发送的与所述参数训练进程对应的时间信息;在所述时间信息指示的时间范围内进行参数训练,所述主节点在接收参加所述参数训练进程的各工作节点反馈的训练子结果后,基于获得的训练子结果,更新全局参数。

Description

一种机器学习方法、主节点、工作节点及***
技术领域
本发明涉及计算机通信技术领域,尤其涉及一种机器学习方法、主节点、工作节点及分布式机器学习***。
背景技术
随着大数据时代的到来,大数据处理技术逐步发展。随着输入训练数据和数据模型的增大,单个节点进行机器学习训练存在内存限制以及时间限制等问题,所以分布式机器学习应运而生。分布式机器学习***包括主节点和多个工作节点,其核心目标是主节点把计算任务拆解成多个小的任务,分配到多个工作节点的处理器上做计算。也就是说,不同的工作节点对应同一个训练模型,每个工作节点分配到不同的数据进行参数训练后,将训练子结果反馈到主节点,主节点将所有工作节点的训练子结果进行合并,得到最终的训练结果。
现有技术中,通常采用参数平均的方式进行子训练结果的合并,训练的过程具体是:主节点基于训练模型配置全局参数,并将全局参数分发到各个工作节点。在每个工作节点,基于该全局参数以及对应的数据进行参数训练,获得该工作节点训练得到的工作节点的参数,并将工作节点的参数反馈至主节点。主节点在接收到全部工作节点反馈的工作节点的参数后,进行加权平均处理,得道的平均值即为更新后的全局参数。
由于在现有技术中,在当轮参数训练进程中,主节点需要等待参与训练的所有工作节点反馈训练子结果,才能确定最终的更新参数。工作节点中有的工作节点处理能力强,在较短的时间内完成自己的训练任务,而有的工作节点处理能力弱,需要较长时间才能完成训练任务。此外,一旦一个工作节点由于某些原因产生较大延迟,先完成训练的工作节点需要等待其他工作节点均完成训练后,才能进行下一轮训练,导致其空余时间长,造成较大的同步开销。
发明内容
本发明实施例提供了一种机器学习方法、主节点、工作节点及分布式机器学习***,用于降低分布式机器学习的同步开销。
第一方面,本发明提供了一种机器学习方法,应用于分布式机器学习***的主节点,所述主节点对应设置有工作节点,所述方法包括:
开启参数训练进程,确定加入所述参数训练进程的工作节点;
发送所述参数训练进程对应的时间信息至所述工作节点,其中,所述时间信息包括所述参数训练进程的结束时间,以使所述工作节点在所述结束时间前将训练子结果发送至所述主节点
在所述结束时间接收各工作节点反馈的训练子结果,基于获得的训练子结果,更新全局参数。
可选的,所述确定加入所述参数训练进程的工作节点,包括:
获取申请加入所述参数训练进程的工作节点的资源占用信息;
在所述资源占用信息满足预设条件时,确定所述申请加入所述参数训练进程的工作节点为加入所述参数训练进程的工作节点。
可选的,在所述发送所述参数训练进程对应的时间信息至所述工作节点时,所述方法还包括:
获取所述工作节点存储的第一全局参数的第一标识信息;
基于所述第一标识信息与本地存储的全局参数的第二标识信息,确定所述第一全局参数与所述全局参数的第一差异部分;
发送所述第一差异部分至所述工作节点,以使得所述工作节点基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,并基于所述全局参数进行参数训练。
可选的,所述训练子结果为参加所述参数训练进程的工作节点基于所述全局参数进行参数训练获得训练结果参数后发送的所述训练结果参数与所述全局参数的第二差异部分。
可选的,在所述更新所述全局参数之后,所述方法还包括:
判断更新后的全局参数是否达到收敛;
如果否,在预设时间间隔后重新开启参数训练进程。
第二方面,本发明提供了一种机器学习方法,应用于分布式机器学习***的工作节点,所述工作节点对应设置有主节点,所述方法包括:
在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,获得所述主节点发送的与所述参数训练进程对应的时间信息,其中,所述时间信息包括所述参数训练进程的结束时间;
在所述时间信息指示的时间范围内进行参数训练;如果在所述结束时间之前还未完成训练,在所述结束时间结束训练,获得训练子结果,将所述训练子结果反馈至所述主节点;如果在所述结束时间之前完成训练,且完成训练的时间距所述结束时间的时间间隔大于预设值,控制所述工作节点重复进行训练,基于重复训练得到的子结果,确定所述训练子结果,将所述训练子结果反馈至所述主节点。
可选的,所述方法还包括:
发送申请加入所述参数训练进程的申请信息至所述主节点,所述申请信息包括所述工作节点的资源占用信息。
可选的,所述在所述时间信息指示的时间范围内进行参数训练,包括:
在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,发送存储的第一全局参数的第一标识信息至所述主节点;
接收所述主节点发送的第一差异部分,基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,其中,所述第一差异部分为所述主节点基于所述第一标识信息与所述主节点本地存储的全局参数的第二标识信息确定的所述第一全局参数与所述全局参数的第一差异部分;
在所述时间信息指示的时间范围内,基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点。
可选的,所述基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点,包括:
基于所述全局参数进行参数训练,获得训练结果参数;
确定所述训练结果参数与所述全局参数的第二差异部分,所述第二差异部分为所述训练子结果;
将所述第二差异部分发送至所述主节点。
可选的,所述将所述第二差异部分发送至所述主节点,包括:
判断所述第二差异部分的数据量是否大于预设阈值;
如果是,将所述第二差异部分发送至所述主节点。
可选的,所述基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点,包括:
确定与所述全局参数对应的全局训练模型以及与所述工作节点对应的个性化模型;
将所述全局训练模型与所述个性化模型进行复合,获得复合模型;
基于所述复合模型进行参数训练,获得与所述全局训练模型对应的训练子结果以及与所述个性化模型对应的训练子结果;
将与所述全局训练模型对应的训练子结果反馈至所述主节点,将与所述个性化模型对应的训练子结果保存在本地存储。
第三方面,本发明实施例提供一种分布式机器学习***的主节点,所述主节点对应设置有工作节点,所述主节点包括:
第一确定模块,用于开启参数训练进程,确定加入所述参数训练进程的工作节点;
发送模块,用于发送所述参数训练进程对应的时间信息至所述工作节点,其中,所述时间信息包括所述参数训练进程的结束时间,以使所述工作节点在所述结束时间前将训练子结果发送至所述主节点;
更新模块,用于在所述结束时间接收各工作节点反馈的训练子结果,基于获得的训练子结果,更新全局参数。
可选的,所述第一确定模块用于:
获取申请加入所述参数训练进程的工作节点的资源占用信息;
在所述资源占用信息满足预设条件时,确定所述申请加入所述参数训练进程的工作节点为加入所述参数训练进程的工作节点。
可选的,所述发送模块还用于:
获取所述工作节点存储的第一全局参数的第一标识信息;
基于所述第一标识信息与本地存储的全局参数的第二标识信息,确定所述第一全局参数与所述全局参数的第一差异部分;
发送所述第一差异部分至所述工作节点,以使得所述工作节点基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,并基于所述全局参数进行参数训练。
可选的,所述训练子结果为参加所述参数训练进程的工作节点基于所述全局参数进行参数训练获得训练结果参数后发送的所述训练结果参数与所述全局参数的第二差异部分。
可选的,所述工作节点还包括:
训练模块,用于在所述更新所述全局参数之后,判断更新后的全局参数是否达到收敛;如果否,在预设时间间隔后重新开启参数训练进程。
第四方面,本发明实施例提供一种分布式机器学习***的工作节点,所述工作节点对应设置有主节点,所述工作节点包括:
接收模块,用于在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,接收所述主节点发送的与所述参数训练进程对应的时间信息,所述时间信息包括所述参数训练进程的结束时间;
训练模块,用于在所述时间信息指示的时间范围内进行参数训练,如果在所述结束时间之前还未完成训练,在所述结束时间结束训练,获得训练子结果,将所述训练子结果反馈至所述主节点;如果在所述结束时间之前完成训练,且完成训练的时间距所述结束时间的时间间隔大于预设值,控制所述工作节点重复进行训练,基于重复训练得到的子结果,确定所述训练子结果,将所述训练子结果反馈至所述主节点。
可选的,所述工作节点还包括:
申请模块,用于发送申请加入所述参数训练进程的申请信息至所述主节点,所述申请信息包括所述工作节点的资源占用信息。
可选的,所述训练模块用于:
在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,发送存储的第一全局参数的第一标识信息至所述主节点;
接收所述主节点发送的第一差异部分,基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,其中,所述第一差异部分为所述主节点基于所述第一标识信息与所述主节点本地存储的全局参数的第二标识信息确定的所述第一全局参数与所述全局参数的第一差异部分;
在所述时间信息指示的时间范围内,基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点。
可选的,所述训练模块用于:
基于所述全局参数进行参数训练,获得训练结果参数;
确定所述训练结果参数与所述全局参数的第二差异部分,所述第二差异部分为所述训练子结果;
将所述第二差异部分发送至所述主节点。
可选的,所述训练模块用于:
判断所述第二差异部分的数据量是否大于预设阈值;
如果是,将所述第二差异部分发送至所述主节点。
可选的,所述训练模块用于:
确定与所述全局参数对应的全局训练模型以及与所述工作节点对应的个性化模型;
将所述全局训练模型与所述个性化模型进行复合,获得复合模型;
基于所述复合模型进行参数训练,获得与所述全局训练模型对应的训练子结果以及与所述个性化模型对应的训练子结果;
将与所述全局训练模型对应的训练子结果反馈至所述主节点,将与所述个性化模型对应的训练子结果保存在本地存储。
第五方面,一种分布式机器学习***,所述分布式机器学习***包括主节点和工作节点,包括:
所述主节点开启参数训练进程,确定加入所述参数训练进程的工作节点,发送所述参数训练进程对应的时间信息至所述工作节点,其中,所述时间信息包括所述参数训练进程的结束时间;
所述工作节点在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,获得所述主节点发送的与所述参数训练进程对应的时间信息;在所述时间信息指示的时间范围内进行参数训练;如果在所述结束时间之前还未完成训练,在所述结束时间结束训练,获得训练子结果,将所述训练子结果反馈至所述主节点;如果在所述结束时间之前完成训练,且完成训练的时间距所述结束时间的时间间隔大于预设值,控制所述工作节点重复进行训练,基于重复训练得到的子结果,确定所述训练子结果,将所述训练子结果反馈至所述主节点;
所述主节点在接收参加所述参数训练进程的各工作节点反馈的训练子结果后,基于获得的训练子结果,更新全局参数。
可选的,所述工作节点在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,发送存储的第一全局参数的第一标识信息至所述主节点;
所述主节点基于所述第一标识信息与本地存储的全局参数的第二标识信息,确定所述第一全局参数与所述全局参数的第一差异部分,发送所述第一差异部分至所述工作节点;
所述工作节点接收到所述第一差异部分后,基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点。
可选的,所述主节点确定加入所述参数训练进程的工作节点,包括:
获取申请加入所述参数训练进程的工作节点的资源占用信息;
在所述资源占用信息满足预设条件时,确定所述申请加入所述参数训练进程的工作节点为加入所述参数训练进程的工作节点。
可选的,所述主节点在更新所述全局参数之后,所述方法还包括:
判断更新后的全局参数是否达到收敛;
如果否,在预设时间间隔后重新开启参数训练进程。
可选的,所述工作节点还用于:
发送申请加入所述参数训练进程的申请信息至所述主节点,所述申请信息包括所述工作节点的资源占用信息。
可选的,所述工作节点基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点,包括:
获得所述主节点发送的与所述参数训练进程对应的时间信息,其中,所述时间信息包括所述参数训练进程的结束时间;
如果在所述结束时间之前还未完成训练,在所述结束时间结束训练,获得训练子结果,将所述训练子结果反馈至所述主节点;
如果在所述结束时间之前完成训练,且完成训练的时间距所述结束时间的时间间隔大于预设值,控制所述工作节点重复进行训练,基于重复训练得到的子结果,确定所述训练子结果,将所述训练子结果反馈至所述主节点。
可选的,所述工作节点基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点,包括:
基于所述全局参数进行参数训练,获得训练结果参数;
确定所述训练结果参数与所述全局参数的第二差异部分,所述第二差异部分为所述训练子结果;
将所述第二差异部分发送至所述主节点。
可选的,所述工作节点将所述第二差异部分发送至所述主节点,包括:
判断所述第二差异部分的数据量是否大于预设阈值;
如果是,将所述第二差异部分发送至所述主节点。
可选的,所述工作节点基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点,包括:
确定与所述全局参数对应的全局训练模型以及与所述工作节点对应的个性化模型;
将所述全局训练模型与所述个性化模型进行复合,获得复合模型;
基于所述复合模型进行参数训练,获得与所述全局训练模型对应的训练子结果以及与所述个性化模型对应的训练子结果;
将与所述全局训练模型对应的训练子结果反馈至所述主节点,将与所述个性化模型对应的训练子结果保存在本地存储。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明实施例的技术方案中,分布式机器学习***的主节点在开启参数训练进程后,确定加入参数训练进程的工作节点,主节点还需要设置一个参数训练进程结束的时间,并将结束时间发送至参加参数训练进程的各工作节点。进而,工作节点在接收到结束时间后,在结束时间停止训练,将在结束时间对应得到的训练子结果反馈至主节点。通过这样的方式,由于限定了每次参数训练的结束时间,可以有效控制每个工作节点训练结束的时间,进而有效减少了各工作节点训练时间不同步导致的同步开销。
附图说明
图1为本发明第一实施例中的一种机器学习***的结构示意图;
图2为本发明第一实施例中的一种机器学习***进行机器学习时的时序图;
图3为本发明第二实施例中的主节点对应的机器学习方法的流程图;
图4为本发明第三实施例中的工作点对应的机器学习方法的流程图;
图5为本发明第四实施例中的主节点的示意图;
图6为本发明第五实施例中的工作节点的示意图。
具体实施方式
本发明实施例提供了一种机器学习方法、主节点、工作节点及分布式机器学习***,用于降低分布式机器学习的同步开销。该分布式机器学习***包括主节点和工作节点,所述主节点开启参数训练进程,确定加入所述参数训练进程的工作节点,发送所述参数训练进程对应的时间信息至所述工作节点,其中,所述时间信息包括所述参数训练进程的结束时间;所述工作节点在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,获得所述主节点发送的与所述参数训练进程对应的时间信息;在所述时间信息指示的时间范围内进行参数训练;如果在所述结束时间之前还未完成训练,在所述结束时间结束训练,获得训练子结果,将所述训练子结果反馈至所述主节点;如果在所述结束时间之前完成训练,且完成训练的时间距所述结束时间的时间间隔大于预设值,控制所述工作节点重复进行训练,基于重复训练得到的子结果,确定所述训练子结果,将所述训练子结果反馈至所述主节点;所述主节点在接收参加所述参数训练进程的各工作节点反馈的训练子结果后,基于获得的训练子结果,更新全局参数。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例
请参考图1,本发明第一实施例提供一种机器学习***,该机器学习***包括主节点和多个工作节点,主节点和工作节点通信连接,包括:
所述主节点开启参数训练进程,确定加入所述参数训练进程的工作节点,发送所述参数训练进程对应的时间信息至所述工作节点,其中,所述时间信息包括所述参数训练进程的结束时间;
所述工作节点在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,获得所述主节点发送的与所述参数训练进程对应的时间信息;在所述时间信息指示的时间范围内进行参数训练;如果在所述结束时间之前还未完成训练,在所述结束时间结束训练,获得训练子结果,将所述训练子结果反馈至所述主节点;如果在所述结束时间之前完成训练,且完成训练的时间距所述结束时间的时间间隔大于预设值,控制所述工作节点重复进行训练,基于重复训练得到的子结果,确定所述训练子结果,将所述训练子结果反馈至所述主节点;
进一步,所述工作节点在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,发送存储的第一全局参数的第一标识信息至所述主节点;
所述主节点基于所述第一标识信息与本地存储的全局参数的第二标识信息,确定所述第一全局参数与所述全局参数的第一差异部分,发送所述第一差异部分至所述工作节点;
所述工作节点接收到所述第一差异部分后,基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点;
所述主节点在接收参加所述参数训练进程的各工作节点反馈的训练子结果后,基于获得的训练子结果,更新所述全局参数。
具体的,在本实施例中,主节点开启参数训练进程后,会发送对应的通知信息至与之连接的工作节点,工作节点接收到通知后,发送申请加入参数训练进程的申请信息至主节点,主节点确定加入该训练进程的工作节点,并向对应的工作节点发送确定加入参数训练进程的通知。
工作节点在接收到主节点确定该工作节点加入参数训练进程的通知后,发送存储的第一全局参数的第一标识信息至主节点,主节点通过对比第一标识信息与本地存储的全局参数的第二标识,确定第一全局参数与全局参数的第一差异部分,将第一差异部分发送至对应的工作节点。工作节点接收到第一差异部分,还原出全局参数。
比如:主节点确定工作节点A参加参数训练,主节点当前最新的全局参数版本号为V811,当然,主节点中还保存有之前各版本的全局参数,包括V810、V809、V808等版本的全局参数。工作节点A发送的保存的第一全局参数的版本号为V810,表明工作节点A中保存的全局参数的版本与主节点保存的全局参数版本相差不大,主节点确定V811版本的全局参数与V810版本的全局参数中的差异部分DA,将差异部分DA发送至工作节点A,工作节点A可基于本地存储的V810版本的全局参数与差异部分DA,还原得到主节点中最新版本的全局参数,即V811版本的全局参数。
最后,工作节点基于全局参数进行参数训练,获得训练子结果,将训练子结果反馈至主节点。主节点在接收参加参数训练进程的各工作节点反馈的训练子结果后,基于获得的训练子结果,更新全局参数。通过这样的方式,主节点传输的数据量可大大减少,可以有效减少机器学习的通信开销。
进一步,工作节点在申请加入所述参数训练进程的申请信息至主节点时,所述申请信息包括所述工作节点的资源占用信息;
进而,所述主节点获取申请加入所述参数训练进程的工作节点的资源占用信息;在所述资源占用信息满足预设条件时,确定所述申请加入所述参数训练进程的工作节点为加入所述参数训练进程的工作节点。
具体的,在本实施例中,主节点根据申请加入参数训练进程的工作节点的资源占用情况确定是否通过其申请。具体的,工作节点发送的资源占用信息可以包括:内存占用率、剩余电量等信息,当然,也可以是其他信息,在此,本申请不做限制。如果工作节点发送的资源占用信息包含两项及以上时,可以采用加权平均的方式确定一个综合资源占用信息,比如:工作节点发送的内存占用率为50%,剩余电量为60%,综合资源占用信息为α*50%+β*60%。进而,主节点根据综合资源占用信息来确定该工作节点是否满足参加参数训练进程的要求。下面本实施例以资源占用信息为内存占用率为例进行详细阐述。
主节点开启参数训练进程,等待工作节点加入训练,主节点收到A、B、C、D四个工作节点申请加入参数训练,A节点发送的内存占用率为20%,B节点发送的内存占用率为28%,C节点发送的内存占用率为25%,D节点发送的内存占用率为50%。主节点允许工作节点加入参数训练进程的预设条件是工作节点的内存占用率需小于30%,进而,主节点根据A、B、C、D四个工作节点的内存占用率,确定A、B、C三个节点满足要求,进而确定A、B、C三个工作节点为参加参数训练进程的工作节点。
进一步,在本实施例中,为了能减少机器学习的同步开销,所述主节点在所述发送所述第一差异部分至所述工作节点时,还包括:
发送所述参数训练进程对应的时间信息至所述工作节点,其中,所述时间信息包括所述参数训练进程的结束时间,以使所述工作节点在所述结束时间前将训练子结果发送至所述主节点。
所述工作节点基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点,包括:
获得所述主节点发送的与所述参数训练进程对应的时间信息,其中,所述时间信息包括所述参数训练进程的结束时间;
如果在所述结束时间之前还未完成训练,在所述结束时间结束训练,获得训练子结果,将所述训练子结果反馈至所述主节点;
如果在所述结束时间之前完成训练,且完成训练的时间距所述结束时间的时间间隔大于预设值,控制所述工作节点重复进行训练,基于重复训练得到的子结果,确定所述训练子结果,将所述训练子结果反馈至所述主节点。
由此,为了减少同步开销,在本实施例中,主节点还需要设置一个参数训练进程结束的时间,并将结束时间发送至参加参数训练进程的各工作节点。进而,工作节点在接收到结束时间后,如果工作节点处理能力弱,或因为其他原因发生延时,即使没有完成训练,都会在结束时间停止训练,将在结束时间对应得到的训练子结果反馈至主节点。而对于处理能力较强,提前完成训练任务的工作节点,如果完成训练的时间距离结束时间的间隔大于预设值,表明该工作节点还有较长的空余时间,可以控制该工作节点进行多轮重复训练,综合多轮训练得到的结果,确定该工作节点的训练子结果,并将该训练子结果反馈至主节点。在具体实施过程,预设值可根据实际需要进行设定,在此本申请不做限制。
比如:节点D在1:38AM参加参数训练进程,在被告知本轮参数训练进程将于2:00AM结束时,计算出剩余训练时间为22分钟。假设,由于节点D的处理器处理速度较慢,一轮训练所需时间为30分钟。因此,节点D仅在22/30既73.3%的数据上进行训练,以保证能够在本训练进程结束前将结果发至主节点。又假设,节点A计算出剩余训练时间为55分钟。由于节点A的处理器处理速度较快,一轮训练所需时间为16分钟。因此,在本训练进程结束前,节点A可以对其拥有的数据进行55/16既3.44次的训练。
通过这样的方式,由于限定了每次参数训练的结束时间,可以有效控制每个工作节点训练结束的时间,进而有效减少了各工作节点训练时间不同步导致的同步开销。
进一步,为了进一步减少通信开销,在本实施例中,所述工作节点基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点,包括:
基于所述全局参数进行参数训练,获得训练结果参数;
确定所述训练结果参数与所述全局参数的第二差异部分,所述第二差异部分为所述训练子结果;
将所述第二差异部分发送至所述主节点。
进一步,所述工作节点将所述第二差异部分发送至所述主节点,包括:
判断所述第二差异部分的数据量是否大于预设阈值;
如果是,将所述第二差异部分发送至所述主节点。
具体的,在本实施例中,在工作节点基于全局参数训练完成后,获得训练结果参数,为了能进一步减少通信开销,工作节点在将训练结果参数上传至主节点时,仅需要上传与全局参数差异的部分,所以,工作节点训练获得的训练结果参数与全局参数的第二差异部分,将第二差异部分作为该工作节点的训练子结果,上传至主节点。
在工作节点将训练子结果上传至主节点时,还可以采用L1约束。具体的,需要判断该工作节点训练获得的训练结果参数与全局参数的第二差异部分的数据量是否大于预设阈值,预设阈值可根据实际需要进行设置,在此,本申请不做限制。在第二差异部分的数据量大于预设阈值时,表明该工作节点训练出的训练结果参数与全局参数的差异较大,可用于全局参数的更新。所以,在工作节点训练获得的训练结果参数与全局参数的第二差异部分的数据量大于预设阈值时,才将自己对应的训练获得的训练结果参数与全局参数的第二差异部分上传至主节点。由于机器学习***中,参与参数训练进程的工作节点仅需要在训练获得的训练结果参数与全局参数的第二差异部分的数据量大于预设阈值时才将第二差异部分上传至主节点,所以上传至主节点的数据量减少,有效减少了通信开销。
进一步,在本实施例中,所述工作节点将训练子结果反馈至所述主节点,包括:
确定与所述全局参数对应的全局训练模型以及与所述工作节点对应的个性化模型;
将所述全局训练模型与所述个性化模型进行复合,获得复合模型;
基于所述复合模型进行参数训练,获得与所述全局训练模型对应的训练子结果以及与所述个性化模型对应的训练子结果;
将与所述全局训练模型对应的训练子结果反馈至所述主节点,将与所述个性化模型对应的训练子结果保存在本地存储。
在现有技术中,分布式机器学习***进行参数训练的前提是数据是随机的分布在各个工作节点上,也就是数据独立同分布。这在强耦合的分布式环境中符合各个工作节点的数据独立分布,例如数据中心。但是,在很多分布式环境中,数据独立同分布的前提无法满足,例如上千万部智能手机构成的分布式环境。在这样一个松耦合的分布式环境中,每个手机会对应一些私有的数据,例如用户的使用习惯和交互行为,这些数据的分布千差万别,无法满足独立同分布的前提。
同时,在松耦合的分布式计算场景下,例如上千万部智能手机构成的分布式环境,参与计算的节点数量巨大(千万级以上),彼此间的数据分布也差别巨大,而且由于隐私和传输带宽的限制而无法同步数据。现有的分布式机器学习***大多是为强耦合的分布式计算环境设计,例如公司的数据中心,实际中支持的计算节点在千这个量级,每个工作节点的数据也是独立同分布的,所以不适合松耦合的分布式计算环境。
所以,在本实施例中,在工作节点进行参数训练时,首先需要确定训练的模型。工作节点可以根据主节点的指示确定与全局参数对应的全局训练模型,进一步,还需要确定本地对应的个性化模型。即,每个工作节点使用本地数据除了训练全局模型外,还同时训练一个本地的个性化模型,来刻画本地数据分布的差异性部分。个性化模型可以依据计算节点的计算资源、内存资源、存储资源的约束,选择合适的模型,可以不同于全局训练模型。
比如:参与参数训练的工作节点A,在收到第一差异部分
Figure GDA0002719444180000171
后,将当前拥有的全局参数
Figure GDA0002719444180000172
与第一差异部分
Figure GDA0002719444180000173
相加,得到当前最新的全局参数(即全局参数)
Figure GDA0002719444180000174
进而,将全局参数Wt和本地的个性化模型
Figure GDA0002719444180000175
复合,得到复合模型
Figure GDA0002719444180000176
然后,用该工作节点上所有数据对复合模型进行训练。采用复合模型进行训练具有全局模型的全局观,可以保证训练更快速的收敛。并且,由于加入了个性化模型,在数据分布极度不均匀的情况下能够更快速的收敛。
在训练结束后,获得与全局训练模型对应的训练子结果
Figure GDA0002719444180000177
以及与个性化模型对应的训练子结果
Figure GDA0002719444180000178
并且,上传时,仅将全局训练模型对应的训练子结果
Figure GDA0002719444180000179
上传至主节点,与个性化模型对应的训练子结果保存在本地即可,在节省通信开销的基础上,同时也加快参数训练的收敛速度。
最后,所述主节点在接收参加所述参数训练进程的各工作节点反馈的训练子结果后,基于获得的训练子结果,更新所述全局参数。在更新所述全局参数之后,还需判断更新后的全局参数是否达到收敛;如果否,在预设时间间隔后重新开启参数训练进程。
具体的,在本实施例中,主节点等待当前参数训练进程结束后,获得参与参数训练进程的各个工作节点反馈的训练子结果,即对应的第二差异部分
Figure GDA00027194441800001710
再将各个工作节点上传的第二差异部分
Figure GDA00027194441800001711
进行加权平均,再用获取的各个工作节点上传的第二差异部分
Figure GDA00027194441800001712
的均值对全局参数值Wt进行正式更新,更新后的全局参数为
Figure GDA00027194441800001713
在更新全局参数后,还需要判断更新后的全局参数Wt+1是否达到收敛,具体的,在进行收敛判断时,需要判断更新后的全局参数Wt+1与更新前的全局参数Wt的偏差值是否小于预定值,如果偏差值小于预定值,表明当轮参数训练进程的结果已经达到收敛,如果偏差值大于或等于预定值,表明当轮参数训练进程的结果还未达到收敛,主节点可根据需要在预设时间间隔后开启下一轮参数训练进程,对全局参数进行进一步的更新。
为了更好地理解本实施例中的方案,下面以一个完整的实施例对本实施例中的机器学习***进行详细阐述。机器学习***进行机器学习的时序如图2所示。
首先,在参数训练开始前,主节点基于模型配置随机初始化网络模型参数,并存放在主节点上,作为全局参数值,进而主节点每隔固定时间段开启一个参数训练进程,等待工作节点加入进行训练。各工作节点向主节点发出请求,请求中携带工作节点的资源信息(如:计算能力、内存、存储、电量资源),同时告知主节点该工作节点当前拥有的全局参数的版本号。主节点根据训练需要,以及各工作节点资源信息,选择工作节点加入训练。主节点根据被选中的工作节点的全局参数版本号,仅将全局参数的差异部分发送到该工作节点,以减少通讯量,同时将当前训练进程的结束时间发送至工作节点。
进而,参与训练的工作节点,在收到全局参数的变化值后,将当前拥有的全局参数与全局参数的差异部分相加,得到当前最新的全局参数。参与训练的工作节点,继而将全局参数对应的训练和本地的个性化模型复合,得到复合训练模型。其后用该节点上所有数据对复合模型进行训练,并保证将训练子结果在主节点训练进程结束前返回主节点。
在进行参数训练时,如果有的工作节点训练速度较慢,不能完成所有数据的训练,则在训练进程结束前终止,将对应的训练子结果发送至主节点。如果有的工作节点训练速度较快,则可以将该节点数据训练多轮,将多轮训练子结果综合值发送至主节点。训练结果的更新分两部分,一部分是本地个性化模型的更新,这部分更新不需要上传,在节省通讯开销的基础上,同时加快模型的收敛速度。另一部分更新是对全局模型的更新,需要上传至主节点,这里采用的L1约束后的更新值,具有较低的通讯开销。
最后,主节点等待当前训练进程结束后,再将各个工作节点上传的训练子结果进行加权平均,用均值对全局参数值进行正式更新。如果训练结果没有达到收敛,则主节点开始一个新的训练进程。
请参见图3,本发明的第二实施例提供了一种机器学习方法,应用于分布式机器学习***的主节点,所述主节点对应设置有工作节点,所述方法包括:
S301:开启参数训练进程,确定加入所述参数训练进程的工作节点;
S302:发送所述参数训练进程对应的时间信息至所述工作节点;
S303:在所述结束时间接收各工作节点反馈的训练子结果,基于获得的训练子结果,更新全局参数。
进一步,主节点确定加入所述参数训练进程的工作节点,包括:
获取申请加入所述参数训练进程的工作节点的资源占用信息;
在所述资源占用信息满足预设条件时,确定所述申请加入所述参数训练进程的工作节点为加入所述参数训练进程的工作节点。
进一步,在所述发送所述参数训练进程对应的时间信息至所述工作节点时,所述方法还包括:
获取所述工作节点存储的第一全局参数的第一标识信息;
基于所述第一标识信息与本地存储的全局参数的第二标识信息,确定所述第一全局参数与所述全局参数的第一差异部分;
发送所述第一差异部分至所述工作节点,以使得所述工作节点基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,并基于所述全局参数进行参数训练。
主节点接收参加所述参数训练进程的各工作节点反馈的训练子结果;基于获得的训练子结果,更新所述全局参数。
其中,所述训练子结果为参加所述参数训练进程的工作节点基于所述全局参数进行参数训练获得训练结果参数后发送的所述训练结果参数与所述全局参数的第二差异部分。
进一步,在所述更新所述全局参数之后,所述方法还包括:
判断更新后的全局参数是否达到收敛;
如果否,在预设时间间隔后重新开启参数训练进程。
具体的,在本实施例中的主节点进行机器学习的方法在第一实施例中已经完整地描述,可参见第一实施例,在此,本申请不做赘述。
请参见图4,本发明的第三实施例提供了一种机器学习方法,应用于分布式机器学习***的工作节点,所述工作节点对应设置有主节点,所述方法包括:
S401:在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,获得所述主节点发送的与所述参数训练进程对应的时间信息;
S402:在所述时间信息指示的时间范围内进行参数训练。
其中,工作节点需要发送申请加入所述参数训练进程的申请信息至所述主节点,所述申请信息包括所述工作节点的资源占用信息。
进而,所述在所述时间信息指示的时间范围内进行参数训练,包括:
在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,发送存储的第一全局参数的第一标识信息至所述主节点;
接收所述主节点发送的第一差异部分,基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,其中,所述第一差异部分为所述主节点基于所述第一标识信息与所述主节点本地存储的全局参数的第二标识信息确定的所述第一全局参数与所述全局参数的第一差异部分;
在所述时间信息指示的时间范围内,基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点。
进而,工作节点基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点,包括:
基于所述全局参数进行参数训练,获得训练结果参数;
确定所述训练结果参数与所述全局参数的第二差异部分,所述第二差异部分为所述训练子结果;
将所述第二差异部分发送至所述主节点。
进而,工作节点将所述第二差异部分发送至所述主节点,包括:
判断所述第二差异部分的数据量是否大于预设阈值;
如果是,将所述第二差异部分发送至所述主节点。
进而,工作节点基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点,包括:
确定与所述全局参数对应的全局训练模型以及与所述工作节点对应的个性化模型;
将所述全局训练模型与所述个性化模型进行复合,获得复合模型;
基于所述复合模型进行参数训练,获得与所述全局训练模型对应的训练子结果以及与所述个性化模型对应的训练子结果;
将与所述全局训练模型对应的训练子结果反馈至所述主节点,将与所述个性化模型对应的训练子结果保存在本地存储。
具体的,在本实施例中的工作节点进行机器学习的方法在第一实施例中已经完整地描述,可参见第一实施例,在此,本申请不做赘述。
请参见图5,本发明的第四实施例提供一种分布式机器学习***的主节点,所述主节点对应设置有工作节点,所述主节点包括:
第一确定模块501,用于开启参数训练进程,确定加入所述参数训练进程的工作节点;
发送模块502,用于发送所述参数训练进程对应的时间信息至所述工作节点,其中,所述时间信息包括所述参数训练进程的结束时间,以使所述工作节点在所述结束时间前将训练子结果发送至所述主节点;
更新模块503,用于在所述结束时间接收各工作节点反馈的训练子结果,基于获得的训练子结果,更新全局参数。
其中,所述发送模块还用于:
获取所述工作节点存储的第一全局参数的第一标识信息;
基于所述第一标识信息与本地存储的全局参数的第二标识信息,确定所述第一全局参数与所述全局参数的第一差异部分;
发送所述第一差异部分至所述工作节点,以使得所述工作节点基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,并基于所述全局参数进行参数训练。
其中,所述训练子结果为参加所述参数训练进程的工作节点基于所述全局参数进行参数训练获得训练结果参数后发送的所述训练结果参数与所述全局参数的第二差异部分。
其中,所述主节点还包括:
训练模块,用于在所述更新所述全局参数之后,判断更新后的全局参数是否达到收敛;如果否,在预设时间间隔后重新开启参数训练进程。
请参见图6,本发明的第五实施例提供一种分布式机器学习***的工作节点,所述工作节点对应设置有主节点,所述工作节点包括:
接收模块601,用于在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,接收所述主节点发送的与所述参数训练进程对应的时间信息,所述时间信息包括所述参数训练进程的结束时间;
训练模块602,用于在所述时间信息指示的时间范围内进行参数训练,如果在所述结束时间之前还未完成训练,在所述结束时间结束训练,获得训练子结果,将所述训练子结果反馈至所述主节点;如果在所述结束时间之前完成训练,且完成训练的时间距所述结束时间的时间间隔大于预设值,控制所述工作节点重复进行训练,基于重复训练得到的子结果,确定所述训练子结果,将所述训练子结果反馈至所述主节点。
其中,所述工作节点还包括:
申请模块,用于发送申请加入所述参数训练进程的申请信息至所述主节点,所述申请信息包括所述工作节点的资源占用信息。
可选的,所述训练模块用于:
在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,发送存储的第一全局参数的第一标识信息至所述主节点;
接收所述主节点发送的第一差异部分,基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,其中,所述第一差异部分为所述主节点基于所述第一标识信息与所述主节点本地存储的全局参数的第二标识信息确定的所述第一全局参数与所述全局参数的第一差异部分;
在所述时间信息指示的时间范围内,基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点。
其中,所述训练模块用于:
基于所述全局参数进行参数训练,获得训练结果参数;
确定所述训练结果参数与所述全局参数的第二差异部分,所述第二差异部分为所述训练子结果;
将所述第二差异部分发送至所述主节点。
其中,所述训练模块用于:
判断所述第二差异部分的数据量是否大于预设阈值;
如果是,将所述第二差异部分发送至所述主节点。
其中,所述训练模块用于:
确定与所述全局参数对应的全局训练模型以及与所述工作节点对应的个性化模型;
将所述全局训练模型与所述个性化模型进行复合,获得复合模型;
基于所述复合模型进行参数训练,获得与所述全局训练模型对应的训练子结果以及与所述个性化模型对应的训练子结果;
将与所述全局训练模型对应的训练子结果反馈至所述主节点,将与所述个性化模型对应的训练子结果保存在本地存储。
在本发明实施例的技术方案中,分布式机器学习***的主节点在开启参数训练进程后,确定加入参数训练进程的工作节点,主节点还需要设置一个参数训练进程结束的时间,并将结束时间发送至参加参数训练进程的各工作节点。进而,工作节点在接收到结束时间后,在结束时间停止训练,将在结束时间对应得到的训练子结果反馈至主节点。通过这样的方式,由于限定了每次参数训练的结束时间,可以有效控制每个工作节点训练结束的时间,进而有效减少了各工作节点训练时间不同步导致的同步开销。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1.一种机器学习方法,应用于分布式机器学习***的主节点,所述主节点对应设置有工作节点,其特征在于,所述方法包括:
开启参数训练进程,确定加入所述参数训练进程的工作节点;
发送所述参数训练进程对应的时间信息至所述工作节点,其中,所述时间信息包括所述参数训练进程的结束时间,以使所述工作节点在所述结束时间前将训练子结果发送至所述主节点;其中,所述将训练子结果发送至所述主节点,具体包括:确定与全局参数对应的全局训练模型以及与所述工作节点对应的个性化模型;将所述全局训练模型与所述个性化模型进行复合,获得复合模型;基于所述复合模型进行参数训练,获得与所述全局训练模型对应的训练子结果以及与所述个性化模型对应的训练子结果;将与所述全局训练模型对应的训练子结果反馈至所述主节点,将所述个性化模型对应的训练子结果保存在本地;
在所述结束时间接收各工作节点反馈的所述全局训练模型对应的训练子结果,基于获得的所述全局训练模型对应的训练子结果,更新全局参数。
2.如权利要求1所述的方法,其特征在于,所述确定加入所述参数训练进程的工作节点,包括:
获取申请加入所述参数训练进程的工作节点的资源占用信息;
在所述资源占用信息满足预设条件时,确定所述申请加入所述参数训练进程的工作节点为加入所述参数训练进程的工作节点。
3.如权利要求1所述的方法,其特征在于,在所述发送所述参数训练进程对应的时间信息至所述工作节点时,所述方法还包括:
获取所述工作节点存储的第一全局参数的第一标识信息;
基于所述第一标识信息与本地存储的全局参数的第二标识信息,确定所述第一全局参数与所述全局参数的第一差异部分;
发送所述第一差异部分至所述工作节点,以使得所述工作节点基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,并基于所述全局参数进行参数训练。
4.如权利要求3所述的方法,其特征在于,所述训练子结果为参加所述参数训练进程的工作节点基于所述全局参数进行参数训练获得训练结果参数后发送的所述训练结果参数与所述全局参数的第二差异部分。
5.如权利要求1所述的方法,其特征在于,在所述更新全局参数之后,所述方法还包括:
判断更新后的全局参数是否达到收敛;
如果否,在预设时间间隔后重新开启参数训练进程。
6.一种机器学习方法,应用于分布式机器学习***的工作节点,所述工作节点对应设置有主节点,其特征在于,所述方法包括:
在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,获得所述主节点发送的与所述参数训练进程对应的时间信息,其中,所述时间信息包括所述参数训练进程的结束时间;
在所述时间信息指示的时间范围内,确定与全局参数对应的全局训练模型以及与所述工作节点对应的个性化模型;将所述全局训练模型与所述个性化模型进行复合,获得复合模型;基于所述复合模型进行参数训练;
如果在所述结束时间之前还未完成训练,在所述结束时间结束训练,获得训练子结果,将所述训练子结果反馈至所述主节点;
如果在所述结束时间之前完成训练,且完成训练的时间距所述结束时间的时间间隔大于预设值,控制所述工作节点重复进行训练,基于重复训练得到的子结果,确定所述训练子结果,将所述训练子结果反馈至所述主节点;
其中,基于所述复合模型进行参数训练,包括:
基于所述复合模型进行参数训练,获得与所述全局训练模型对应的训练子结果以及与所述个性化模型对应的训练子结果;
所述获得训练子结果,将所述训练子结果反馈至所述主节点,包括:
将与所述全局训练模型对应的训练子结果反馈至所述主节点,将与所述个性化模型对应的训练子结果保存在本地存储。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
发送申请加入所述参数训练进程的申请信息至所述主节点,所述申请信息包括所述工作节点的资源占用信息。
8.如权利要求6所述的方法,其特征在于,所述在所述时间信息指示的时间范围内进行参数训练,包括:
在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,发送存储的第一全局参数的第一标识信息至所述主节点;
接收所述主节点发送的第一差异部分,基于所述第一差异部分和所述第一全局参数,还原出所述全局参数,其中,所述第一差异部分为所述主节点基于所述第一标识信息与所述主节点本地存储的全局参数的第二标识信息确定的所述第一全局参数与所述全局参数的第一差异部分;
在所述时间信息指示的时间范围内,基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点。
9.如权利要求8所述的方法,其特征在于,所述基于所述全局参数进行参数训练,获得训练子结果,将训练子结果反馈至所述主节点,包括:
基于所述全局参数进行参数训练,获得训练结果参数;
确定所述训练结果参数与所述全局参数的第二差异部分,所述第二差异部分为所述训练子结果;
将所述第二差异部分发送至所述主节点。
10.如权利要求9所述的方法,其特征在于,所述将所述第二差异部分发送至所述主节点,包括:
判断所述第二差异部分的数据量是否大于预设阈值;
如果是,将所述第二差异部分发送至所述主节点。
11.一种分布式机器学习***的主节点,所述主节点对应设置有工作节点,其特征在于,所述主节点包括:
第一确定模块,用于开启参数训练进程,确定加入所述参数训练进程的工作节点;
发送模块,用于发送所述参数训练进程对应的时间信息至所述工作节点,其中,所述时间信息包括所述参数训练进程的结束时间,以使所述工作节点在所述结束时间前将训练子结果发送至所述主节点;其中,所述将训练子结果发送至所述主节点,具体包括:确定与全局参数对应的全局训练模型以及与所述工作节点对应的个性化模型;将所述全局训练模型与所述个性化模型进行复合,获得复合模型;基于所述复合模型进行参数训练,获得与所述全局训练模型对应的训练子结果以及与所述个性化模型对应的训练子结果;将与所述全局训练模型对应的训练子结果反馈至所述主节点,将所述个性化模型对应的训练子结果保存在本地;
更新模块,用于在所述结束时间接收各工作节点反馈的所述全局训练模型对应的训练子结果,基于获得的所述全局训练模型对应的训练子结果,更新全局参数。
12.一种分布式机器学习***的工作节点,所述工作节点对应设置有主节点,其特征在于,所述工作节点包括:
接收模块,用于在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,接收所述主节点发送的与所述参数训练进程对应的时间信息,所述时间信息包括所述参数训练进程的结束时间;
训练模块,用于在所述时间信息指示的时间范围内,确定与全局参数对应的全局训练模型以及与所述工作节点对应的个性化模型;将所述全局训练模型与所述个性化模型进行复合,获得复合模型;基于所述复合模型进行参数训练;如果在所述结束时间之前还未完成训练,在所述结束时间结束训练,获得训练子结果,将所述训练子结果反馈至所述主节点;如果在所述结束时间之前完成训练,且完成训练的时间距所述结束时间的时间间隔大于预设值,控制所述工作节点重复进行训练,基于重复训练得到的子结果,确定所述训练子结果,将所述训练子结果反馈至所述主节点;
其中,基于所述复合模型进行参数训练,包括:
基于所述复合模型进行参数训练,获得与所述全局训练模型对应的训练子结果以及与所述个性化模型对应的训练子结果;
所述获得训练子结果,将所述训练子结果反馈至所述主节点,包括:
将与所述全局训练模型对应的训练子结果反馈至所述主节点,将与所述个性化模型对应的训练子结果保存在本地存储。
13.一种分布式机器学习***,所述分布式机器学习***包括主节点和工作节点,其特征在于,包括:
所述主节点开启参数训练进程,确定加入所述参数训练进程的工作节点,发送所述参数训练进程对应的时间信息至所述工作节点,其中,所述时间信息包括所述参数训练进程的结束时间;
所述工作节点在接收到所述主节点确定所述工作节点加入参数训练进程的通知后,获得所述主节点发送的与所述参数训练进程对应的时间信息;在所述时间信息指示的时间范围内,确定与全局参数对应的全局训练模型以及与所述工作节点对应的个性化模型;将所述全局训练模型与所述个性化模型进行复合,获得复合模型;基于所述复合模型进行参数训练;如果在所述结束时间之前还未完成训练,在所述结束时间结束训练,获得训练子结果,将所述训练子结果反馈至所述主节点;如果在所述结束时间之前完成训练,且完成训练的时间距所述结束时间的时间间隔大于预设值,控制所述工作节点重复进行训练,基于重复训练得到的子结果,确定所述训练子结果,将所述训练子结果反馈至所述主节点;其中,基于所述复合模型进行参数训练,包括:基于所述复合模型进行参数训练,获得与所述全局训练模型对应的训练子结果以及与所述个性化模型对应的训练子结果;所述获得训练子结果,将所述训练子结果反馈至所述主节点,包括:将与所述全局训练模型对应的训练子结果反馈至所述主节点,将与所述个性化模型对应的训练子结果保存在本地存储;
所述主节点在接收参加所述参数训练进程的各工作节点反馈的所述全局训练模型对应的训练子结果后,基于获得的所述全局训练模型对应的训练子结果,更新全局参数。
CN201711214868.1A 2017-11-28 2017-11-28 一种机器学习方法、主节点、工作节点及*** Active CN107944566B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711214868.1A CN107944566B (zh) 2017-11-28 2017-11-28 一种机器学习方法、主节点、工作节点及***
PCT/CN2017/114228 WO2019104713A1 (zh) 2017-11-28 2017-12-01 一种机器学习方法、主节点、工作节点及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711214868.1A CN107944566B (zh) 2017-11-28 2017-11-28 一种机器学习方法、主节点、工作节点及***

Publications (2)

Publication Number Publication Date
CN107944566A CN107944566A (zh) 2018-04-20
CN107944566B true CN107944566B (zh) 2020-12-22

Family

ID=61949319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711214868.1A Active CN107944566B (zh) 2017-11-28 2017-11-28 一种机器学习方法、主节点、工作节点及***

Country Status (2)

Country Link
CN (1) CN107944566B (zh)
WO (1) WO2019104713A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829441B (zh) * 2018-05-14 2022-10-18 中山大学 一种分布式深度学习的参数更新优化***
CN108924187B (zh) * 2018-06-07 2020-05-08 北京百度网讯科技有限公司 基于机器学习的任务处理方法、装置和终端设备
CN109558909B (zh) * 2018-12-05 2020-10-23 清华大学深圳研究生院 基于数据分布的机器深度学习方法
WO2020139181A1 (en) * 2018-12-28 2020-07-02 Telefonaktiebolaget Lm Ericsson (Publ) A wireless device, a network node and methods therein for updating a first instance of a machine learning model
CN110333987B (zh) * 2019-07-04 2020-06-02 湖南大学 设备体检报告生成方法、装置、计算机设备和存储介质
CN110502576A (zh) * 2019-08-12 2019-11-26 北京迈格威科技有限公司 数据整合方法、分布式计算节点及分布式深度学习训练***
CN110502544A (zh) * 2019-08-12 2019-11-26 北京迈格威科技有限公司 数据整合方法、分布式计算节点及分布式深度学习训练***
CN110852445A (zh) * 2019-10-28 2020-02-28 广州文远知行科技有限公司 分布式机器学习训练方法、装置、计算机设备和存储介质
CN110990870A (zh) * 2019-11-29 2020-04-10 上海能塔智能科技有限公司 运维、使用模型库的处理方法、装置、设备与介质
CN115734244A (zh) * 2021-08-30 2023-03-03 华为技术有限公司 一种通信方法及装置
CN114997337B (zh) * 2022-07-18 2023-01-13 浪潮电子信息产业股份有限公司 信息融合、数据通信方法、装置及电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714852A (zh) * 2015-03-17 2015-06-17 华中科技大学 一种适用于分布式机器学习的参数同步优化方法及其***
CN107025205A (zh) * 2016-01-30 2017-08-08 华为技术有限公司 一种分布式***中的训练模型的方法及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9633315B2 (en) * 2012-04-27 2017-04-25 Excalibur Ip, Llc Method and system for distributed machine learning
CN105956021B (zh) * 2016-04-22 2019-05-21 华中科技大学 一种适用于分布式机器学习的自动化任务并行的方法及其***
CN106779093A (zh) * 2017-01-06 2017-05-31 中国科学院上海高等研究院 基于滑动窗口采样的分布式机器学习训练方法及其***
CN106815644B (zh) * 2017-01-26 2019-05-03 北京航空航天大学 机器学习方法和***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714852A (zh) * 2015-03-17 2015-06-17 华中科技大学 一种适用于分布式机器学习的参数同步优化方法及其***
CN107025205A (zh) * 2016-01-30 2017-08-08 华为技术有限公司 一种分布式***中的训练模型的方法及设备

Also Published As

Publication number Publication date
CN107944566A (zh) 2018-04-20
WO2019104713A1 (zh) 2019-06-06

Similar Documents

Publication Publication Date Title
CN107944566B (zh) 一种机器学习方法、主节点、工作节点及***
CN106781663B (zh) 用于处理停车位预约信息的***和方法
CN103235835B (zh) 用于数据库集群的查询实现方法和装置
JP2014523568A (ja) 効率的な状態調整
CN110765744A (zh) 多人协同文档编辑方法及***
CN112163042B (zh) 多变数据同步方法、装置、电子装置及存储介质
CN108009642A (zh) 分布式机器学习方法和***
CN110855737B (zh) 一种一致性级别可控的自适应数据同步方法和***
CN103780686A (zh) 一种云组织内自定义申请审批流程的方法及***
CN103731465A (zh) 分布式***及其事务处理方法
CN114356578A (zh) 自然语言处理模型的并行计算方法、装置、设备及介质
CN114285695B (zh) 通信方法、装置、设备、***和存储介质
CN103634385A (zh) 一种数据同步***、方法及服务器
CN111597035B (zh) 基于多线程的仿真引擎时间推进方法及***
CN111124708B (zh) 面向微服务的批推理方法、服务器和计算机可读存储介质
CN110233791B (zh) 数据去重方法和装置
CN103761106A (zh) 流程的控制方法及流程引擎
CN104065684A (zh) 信息处理方法、电子设备和终端设备
CN116108042A (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
CN113434500A (zh) 表连接方法、装置、分布式数据库***、服务器及介质
CN109429215B (zh) 数据传输方法、相关设备和计算机可读存储介质
US20230214261A1 (en) Computing power sharing-related exception reporting and handling methods and devices, storage medium, and terminal apparatus
CN115361382A (zh) 基于数据群组的数据处理方法、装置、设备和存储介质
CN114915516A (zh) 一种通信方法及装置
CN113312169B (zh) 一种计算资源的分配方法及装置

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
GR01 Patent grant
GR01 Patent grant