当前位置: 首页 > 专利查询>北京大学专利>正文

一种高可用分布式机器学习计算框架的容错方法和系统技术方案

技术编号:21659572 阅读:65 留言:0更新日期:2019-07-20 05:51
本发明专利技术涉及一种高可用分布式机器学习计算框架的容错方法和系统。该方法建立分布式机器学习框架,包括多个Master节点、多个Server节点、多个Agent节点,其中Agent节点和Server节点、Master节点通信,每个Server节点存储一部分参数,每个Agent节点存储一部分训练数据,计算本地的参数更新量;Master节点记录其它节点的信息及机器学习任务相关的信息;Master节点组成高可用的Master集群,通过分布式一致性哈希算法和参数备份实现Server节点的高可用,通过重新启动进行Agent节点的故障恢复。本发明专利技术能够提高分布式机器学习系统的高可用性,能够灵活高效地进行故障恢复。

A Fault Tolerant Method and System for High Availability Distributed Machine Learning Computing Framework

【技术实现步骤摘要】
一种高可用分布式机器学习计算框架的容错方法和系统
本专利技术涉及分布式系统以及机器学习领域,具体为一种高可用分布式机器学习计算框架的容错方法和系统。
技术介绍
机器学习,尤其是深度学习已经在语音识别、图像识别和自然语言处理领域获得了巨大的成功。由于模型的训练过程中涉及到海量的训练数据,最终得到规模庞大的模型,因此机器学习平台通常都是分布式平台,部署数十个甚至上千个节点。随着机器规模的增大,在模型训练过程中难以避免机器故障问题,因此提供一个高可用的机器学习系统是工业生产中必须面对的问题,即提供一个容错性好的机器学习系统。其中,MXNet(https://github.com/apache/incubator-mxnet)和Tensorflow(https://github.com/tensorflow/tensorflow)是应用最为广泛的分布式机器学习系统。在容错方面,MXNet和Tensorflow系统均使用检查点机制保证基本的容错,即当发生机器故障的时候,系统回退到最新的检查点,然后继续进行模型训练。检查点技术的优势在于系统鲁棒性好,逻辑实现简单,但是该方法存在的明显缺点则是系统恢复时间长,当系统规模扩展到一定规模之后系统恢复的代价比较大。
技术实现思路
为了提高分布式机器学习系统的高可用性,降低故障恢复时间,本专利技术提供一种灵活高效的故障恢复方法,即针对不同类别的服务器节点提供不同的故障恢复策略。本专利技术采用的技术方案如下:一种高可用分布式机器学习计算框架的容错方法,包括以下步骤:建立分布式机器学习框架,包括至少两个Master节点、多个Server节点、多个Agent节点,其中Agent节点只和Server节点、Master节点通信,Agent节点之间不通信;每个Server节点存储一部分参数,所有的Server节点的参数组成整体的参数;每个Agent节点存储一部分训练数据,计算本地的参数更新量;Master节点记录Server节点和Agent节点的信息以及和机器学习任务相关的信息;采用所述至少两个Master节点组成高可用的Master集群;采用分布式一致性哈希算法和参数备份的方式实现所述Server节点的高可用;采用重新启动的方式进行所述Agent节点的故障恢复。进一步地,所述高可用的Master集群包含至少两个保持同步状态的Master节点,当其他节点和某个Master节点通信失败时,选择和另一个Master节点通信。进一步地,Master节点定期和Server节点以及Agent节点发送和接收心跳信息来检测故障并了解整个集群的状态信息以及任务的执行情况,如果某个Master节点出现故障,则Server节点和Agent节点切换到另一个Master节点上并发出警报,然后修复出现故障的Master节点。进一步地,采用Zookeeper开源软件搭建高可用的Master集群;Master节点与Zookeeper节点是分离的,Server节点和Agent节点只需要和Master节点进行系统控制信号的交互,由Master节点来完成和Zookeeper集群系统状态的同步。进一步地,所述采用分布式一致性哈希算法和参数备份的方式实现所述Server节点的高可用,包括:采用一致性哈希算法将Server节点映射到一个环上,每个节点都保存逆时针的前序Server节点的参数,从而达到每个参数保存两份的目的;Master节点通过接收Server节点的心跳信息来检测Server节点是否出现故障;如果某个Server节点出现故障,Master节点启动故障修复策略,发出参数同步的控制信号,将出现故障的Server节点所负责的参数调整到其它Server节点,然后把更改后集群的状态信息分发给所有的Server节点和Agent节点。进一步地,出现故障的Server节点修复后,或者是新引入一个Server节点后,Master节点按照一致性哈希算法把这个Server节点加入到环上。进一步地,所述Server节点在实现更新协议时,考虑Agent节点可能出现的故障。进一步地,Server节点和Agent节点中保存Master节点的列表,以便向Master节点同步状态;每个Server节点保存Server节点的列表,以便根据前序Server节点的地址和端口完成参数的同步和备份;每个Agent节点保存参数的划分信息,以便完成与Server节点的通信。一种高可用分布式机器学习系统,包括至少两个Master节点、多个Server节点、多个Agent节点,其中Agent节点只和Server节点、Master节点通信,Agent节点之间不通信;每个Server节点存储一部分参数,所有的Server节点的参数组成整体的参数;每个Agent节点存储一部分训练数据,计算本地的参数更新量;Master节点记录Server节点和Agent节点的信息以及和机器学习任务相关的信息;所述至少两个Master节点组成高可用的Master集群;所述Server节点采用分布式一致性哈希算法和参数备份的方式实现高可用;所述Agent节点采用重新启动的方式进行的故障恢复。一种采用上面所述高可用分布式机器学习系统的机器学习任务处理方法,包括以下步骤:1)Master节点接收到用户提交的机器学习任务信息,Master节点启动相应数量的Server节点和Agent节点,并等待Server节点和Agent节点的注册信息;2)Master节点接收到所有节点的注册信息之后,将集群状态信息写入Zookeeper集群,完成Master节点之间的同步,然后Master节点将集群状态信息分发给所有的Server节点和Agent节点;3)机器学习任务启动,Agent节点计算参数的更新,Server节点完成参数的合并;4)机器学习任务结束,Server节点将训练得到的参数输出到文件;5)Server节点和Agent节点发送结束信号到Master节点并退出。本专利技术相较于现有系统的明显优势包括:不存在Master节点的单点故障问题,即Master集群能够提供高可用服务;Server节点能够延迟备份参数;Server节点和Agent节点单点故障不影响整个任务的执行;本专利技术具有更加完善的故障检测机制,能够及时发现节点故障。附图说明图1是本专利技术的系统结构图。图片中的长虚线表示集群的控制信号,当上方的Master节点发生故障之后,所有节点切换到下方的Master节点;黑色实线表示Server节点之间的参数备份和同步;短虚线表示Agent节点和Server节点之间的参数更新。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本专利技术做进一步详细说明。本专利技术所提出的容错设计依托于现有的“插件式”分布式机器学习框架。该机器学习框架包括一个Master节点(主节点)、多个Server节点(参数服务器节点)、多个Agent节点(代理节点),其中Agent节点只和Server节点、Master节点通信,Agent节点之间不通信。每个Server节点存储一部分参数,并且在训练的时候只更新这一部分参数,所有的Server节点的参数组成整体的参数。每个Agent节点存储一部分训练数据,计本文档来自技高网...

【技术保护点】
1.一种高可用分布式机器学习计算框架的容错方法,其特征在于,包括以下步骤:建立分布式机器学习框架,包括至少两个Master节点、多个Server节点、多个Agent节点,其中Agent节点只和Server节点、Master节点通信,Agent节点之间不通信;每个Server节点存储一部分参数,所有的Server节点的参数组成整体的参数;每个Agent节点存储一部分训练数据,计算本地的参数更新量;Master节点记录Server节点和Agent节点的信息以及和机器学习任务相关的信息;采用所述至少两个Master节点组成高可用的Master集群;采用分布式一致性哈希算法和参数备份的方式实现所述Server节点的高可用;采用重新启动的方式进行所述Agent节点的故障恢复。

【技术特征摘要】
1.一种高可用分布式机器学习计算框架的容错方法,其特征在于,包括以下步骤:建立分布式机器学习框架,包括至少两个Master节点、多个Server节点、多个Agent节点,其中Agent节点只和Server节点、Master节点通信,Agent节点之间不通信;每个Server节点存储一部分参数,所有的Server节点的参数组成整体的参数;每个Agent节点存储一部分训练数据,计算本地的参数更新量;Master节点记录Server节点和Agent节点的信息以及和机器学习任务相关的信息;采用所述至少两个Master节点组成高可用的Master集群;采用分布式一致性哈希算法和参数备份的方式实现所述Server节点的高可用;采用重新启动的方式进行所述Agent节点的故障恢复。2.根据权利要求1所述的方法,其特征在于,所述高可用的Master集群包含至少两个保持同步状态的Master节点,当其他节点和某个Master节点通信失败时,选择和另一个Master节点通信。3.根据权利要求1所述的方法,其特征在于,Master节点定期和Server节点以及Agent节点发送和接收心跳信息来检测故障并了解整个集群的状态信息以及任务的执行情况,如果某个Master节点出现故障,则Server节点和Agent节点切换到另一个Master节点上并发出警报,然后修复出现故障的Master节点。4.根据权利要求1所述的方法,其特征在于,采用Zookeeper开源软件搭建高可用的Master集群;Master节点与Zookeeper节点是分离的,Server节点和Agent节点只需要和Master节点进行系统控制信号的交互,由Master节点来完成和Zookeeper集群系统状态的同步。5.根据权利要求1所述的方法,其特征在于,所述采用分布式一致性哈希算法和参数备份的方式实现所述Server节点的高可用,包括:采用一致性哈希算法将Server节点映射到一个环上,每个节点都保存逆时针的前序Server节点的参数,从而达到每个参数保存两份的目的;Master节点通过接收Server节点的心跳信息来检测Server节点是否出现故障;如果某个Server节点出现故障,Master节点启动故障修复策略,发出参数同步的控制信号,将出现故障的Server节点所负责的参数调整到其它Server节点,然后把...

【专利技术属性】
技术研发人员:郑培凯李真张晨滨宋煦肖臻
申请(专利权)人:北京大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1