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

一种插件式分布式机器学习计算框架及其数据处理方法技术

技术编号:18445741 阅读:20 留言:0更新日期:2018-07-14 10:43
本发明专利技术公开了一种插件式分布式机器学习计算框架及其数据处理方法。本发明专利技术包括一个主控制节点、多个服务器节点和多个工作节点;每个服务器节点存储机器学习模型的一部分参数,各服务器节点存储的参数组成该机器学习模型的全部待训练的参数;每一工作节点存储一部分训练数据,工作节点根据存储的训练数据从对应服务器获取相关的参数,然后计算参数的更新量后将参数更新量回传给对应服务器;每一工作节点中设置一核心实例进程和一参数代理进程;核心实例进程通过参数代理进程与服务器节点进行通信,核心实例进程和参数代理进程之间通过一个与编程语言无关的通道进行数据传输和同步。本发明专利技术易于将任意语言编写的单机机器学习程序扩展成分布式程序。

A plug-in distributed machine learning computational framework and its data processing method

The invention discloses a plug-in distributed machine learning computing framework and a data processing method thereof. The invention includes a master control node, multiple server nodes and multiple work nodes; each server node stores part of the parameters of the machine learning model. The parameters stored by each server node form all the parameters to be trained for the learning model of the machine; each working node stores a part of the training data, the work section. The point is based on the stored training data to obtain the relevant parameters from the corresponding server, and then the parameter updates are returned to the corresponding server after the update of the parameters; a core instance process and a parameter agent process are set in each work node; the core instance process communicates with the server node through the parameter agent process. The core instance process and the parameter agent process carry out data transmission and synchronization through a channel independent of programming language. The invention is easy to extend the component program of a single machine learning program written in any language.

【技术实现步骤摘要】
一种插件式分布式机器学习计算框架及其数据处理方法
本专利技术涉及一种机器学习计算框架及其数据处理方法,尤其涉及一种插件式分布式跨编程语言机器学习计算框架及其数据处理方法。
技术介绍
机器学习已经成为了处理大数据的有效工具。机器学习过程中经常通过增加模型的参数提高模型的精度。然而由于单机的计算能力和内存的限制,分布式系统成为解决超大数据量机器学习问题的手段。Hadoop和Spark这些数据流框架已经极大的简化了大规模数据处理。基于这些框架的分布式机器学习库在工业界和学术界广泛使用,但是大多数框架都采用迭代式MapReduce流程,使用任务同步和比较粗粒度的计算和通信。在面对大规模稀疏逻辑回归问题,大规模主题模型以及深度学习问题的时候,这些衍生框架是低效而且不准确的。目前参数服务器模式已经成为高效解决机器学习超大模型的方法。参数服务器模式中,工作节点用来分担计算任务,服务器节点维护全局的模型参数。相对于迭代的MapReduce模型,参数服务器可以异步地细粒度地进行计算和通信,可以最大化CPU的使用率,减少通信。实验证明前面所述的这些框架能够有效的解决分布式机器学习的应用。但是几乎所有的框架都要求使用该框架重写原有的代码。例如:一方面很多的开发者已经熟悉了原有的工具比如Matlab,R,Numpy等,对于这些人来说学习一个新的框架需要花费很长的周期。另一方面,很多专业的机器学习开发者更喜欢用效率高的C++和GPGPU,对于这些开发者来说Spark等工具都不合适。
技术实现思路
针对现有技术中存在的技术问题,本专利技术的目的在于提供一种插件式分布式跨编程语言机器学习计算框架及其数据处理方法。本专利技术开发了一个新的框架Brook,这个框架通过服务器节点技术让用户容易地将单机的代码转化成分布式的,并且创新性地提出了参数代理模块使得该框架兼容所有编程语言。本专利技术的目标是让用户能够很容易的把单机机器学习程序扩展成分布式程序,并且兼容所有的编程语言以及GPGPU,同时保证容错机制,还能比现有的框架高效。本专利技术的技术方案为:一种插件式分布式机器学习计算框架,其特征在于,包括一个主控制节点、多个服务器节点和多个工作节点;其中,每一工作节点分别与主控制节点、各服务器节点通信连接,各服务器节点分别与主控制节点通信连接;每个服务器节点存储机器学习模型的一部分参数,各服务器节点存储的参数组成该机器学习模型的全部待训练的参数;每一工作节点存储一部分训练数据,工作节点根据本地存储的训练数据从对应服务器获取相关的参数,然后计算所获取参数的更新量后将参数更新量回传给对应服务器;主控制节点记录服务器节点和工作节点的节点信息;每一所述工作节点中设置一核心实例进程和一参数代理进程;所述核心实例进程通过所述参数代理进程与所述服务器节点进行通信,所述核心实例进程和所述参数代理进程之间通过一个与编程语言无关的通道进行数据传输和同步。进一步的,所述核心实例进程通过所述通道向所述参数代理进程请求参数,所述参数代理进程查询缓存中是否有所请求的参数,如果有,则将对应的缓存数据通过所述通道返回给所述核心实例进程,如果没有缓存则向对应服务器节点请求相关参数返回给所述核心实例进程,然后所述核心实例进程根据返回的数据训练更新参数并将更新参数结果和下一轮需计算参数的参数请求发送给所述参数代理进程,所述参数代理进程检查该参数请求是否满足一致性的要求,如果满足返回该参数请求对应的参数,否则参数代理进程向服务器节点请求参数。进一步的,所述通道包括一数据通道和两个信号通道;其中,所述数据通道负责核心实例进程和参数代理进程之间的参数数据传输,所述信号通道负责对数据进行同步;所述核心实例进程将更新结果、当前迭代轮次以及请求参数的下标写入数据通道,参数代理进程从数据通道获取更新结果异步与服务器节点同步然后将核心实例进程请求的参数写入通道。进一步的,使用文件方式来实现所述通道;使用工作节点的基于内存文件系统作为数据通道,使用工作节点的命名通道FIFO作为信号通道。进一步的,所述参数代理进程将若干条单条数据打包成一组消息的形式发送给所述服务器节点;所述参数代理进程使用(start-key,value-list)的消息形式与所述服务器节点进行通信;其中,start-key为更新参数的起始下标,value-list为参数更新列表。进一步的,所述服务器节点使用连续的空间存储参数,空缺的参数用零替代。进一步的,所述主控制节点设有多种等级的容错机制;所述主控制节点根据不同的容错等级选择不同的容错机制。一种插件式分布式机器学习计算框架的数据处理方法,其步骤包括:1)初始迭代时,主控制节点将机器学习模型的待训练参数划分到各服务器节点,各服务器节点存储的参数组成该机器学习模型的全部待训练参数;主控制节点将该机器学习模型的机器学习任务和训练数据划分到各工作节点上;工作节点从对应服务器获取相关的参数,然后工作节点利用本地存储的训练数据计算所获取参数的更新量后将参数更新量回传给对应服务器节点;服务器节点根据收到的参数更新量更新该服务器节点上的参数;2)后续每一次迭代过程中,工作节点的核心实例进程通过通道向参数代理进程请求训练所需参数,所述参数代理进程查询缓存中是否有所请求的数据,如果有,则将对应的缓存数据通过所述通道返回给所述核心实例进程,如果没有缓存则向对应服务器节点请求相关参数返回给所述核心实例进程,然后所述核心实例进程训练更新参数并将更新参数结果和下一轮需计算参数的参数请求发送给所述参数代理进程,所述参数代理进程检查该参数请求是否满足一致性的要求,如果满足返回该参数请求对应的数据,否则等待参数代理进程向服务器节点获取相关参数数据。进一步的,所述通道包括一数据通道和两个信号通道;其中,所述数据通道负责核心实例进程和参数代理进程之间的数据传输,所述信号通道负责对数据进行同步;所述核心实例进程将更新结果、当前迭代轮次以及请求参数的下标写入数据通道,参数代理进程从数据通道获取更新结果异步与服务器节点同步然后将核心实例进程请求的参数写入通道。与现有技术相比,本专利技术的积极效果为:本专利技术提供一个新的分布式机器学习系统-Brook。Brook采用服务器节点的设计,这样可以简化分布式计算任务。本专利技术系统添加了一个新的组件参数代理。通过把服务器节点上的参数映射到本地的内存中,参数代理可以使得底层的数据通信对上层服务透明。通过上面这种方法,brook系统提供了一套非常简单的跨平台的接口-RWW。用户可以通过增加几行简单的代码就可以把任何编程语言的单机程序转换成分布式执行的程序。为了提高系统的高效性和可扩展性,本专利技术最小化网络信息传输开销,最大化CPU计算能力和内存使用效率。附图说明图1是传统的服务器工作原理图;图2是本专利技术提出的系统原理图;其中,代理、通道和实例都在工作节点上运行。图3是本专利技术中数据和信号的传输流程图。具体实施方式为了便于本领域技术人员理解本专利技术的
技术实现思路
,下面结合附图对本
技术实现思路
进一步阐释。本专利技术的Brook包括一个主控制节点和多个服务器节点、多个工作节点,其中工作节点只和服务器节点、主控制节点通信,各服务器节点分别与主控制节点通信连接,工作节点之间不通信。每个服务器节点存储机器学习模型的一部分参数,并且本文档来自技高网
...

【技术保护点】
1.一种插件式分布式机器学习计算框架,其特征在于,包括一个主控制节点、多个服务器节点和多个工作节点;其中,每一工作节点分别与主控制节点、各服务器节点通信连接,各服务器节点分别与主控制节点通信连接;每个服务器节点存储机器学习模型的一部分参数,各服务器节点存储的参数组成该机器学习模型的全部待训练的参数;每一工作节点存储一部分训练数据,工作节点根据本地存储的训练数据从对应服务器获取相关的参数,然后计算所获取参数的更新量后将参数更新量回传给对应服务器;主控制节点记录服务器节点和工作节点的节点信息;每一所述工作节点中设置一核心实例进程和一参数代理进程;所述核心实例进程通过所述参数代理进程与所述服务器节点进行通信,所述核心实例进程和所述参数代理进程之间通过一个与编程语言无关的通道进行数据传输和同步。

【技术特征摘要】
1.一种插件式分布式机器学习计算框架,其特征在于,包括一个主控制节点、多个服务器节点和多个工作节点;其中,每一工作节点分别与主控制节点、各服务器节点通信连接,各服务器节点分别与主控制节点通信连接;每个服务器节点存储机器学习模型的一部分参数,各服务器节点存储的参数组成该机器学习模型的全部待训练的参数;每一工作节点存储一部分训练数据,工作节点根据本地存储的训练数据从对应服务器获取相关的参数,然后计算所获取参数的更新量后将参数更新量回传给对应服务器;主控制节点记录服务器节点和工作节点的节点信息;每一所述工作节点中设置一核心实例进程和一参数代理进程;所述核心实例进程通过所述参数代理进程与所述服务器节点进行通信,所述核心实例进程和所述参数代理进程之间通过一个与编程语言无关的通道进行数据传输和同步。2.如权利要求1所述的插件式分布式机器学习计算框架,其特征在于,所述核心实例进程通过所述通道向所述参数代理进程请求参数,所述参数代理进程查询缓存中是否有所请求的参数,如果有,则将对应的缓存数据通过所述通道返回给所述核心实例进程,如果没有缓存则向对应服务器节点请求相关参数返回给所述核心实例进程,然后所述核心实例进程根据返回的数据训练更新参数并将更新参数结果和下一轮需计算参数的参数请求发送给所述参数代理进程,所述参数代理进程检查该参数请求是否满足一致性的要求,如果满足返回该参数请求对应的参数,否则参数代理进程向服务器节点请求参数。3.如权利要求2所述的插件式分布式机器学习计算框架,其特征在于,所述通道包括一数据通道和两个信号通道;其中,所述数据通道负责核心实例进程和参数代理进程之间的参数数据传输,所述信号通道负责对数据进行同步;所述核心实例进程将更新结果、当前迭代轮次以及请求参数的下标写入数据通道,参数代理进程从数据通道获取更新结果异步与服务器节点同步然后将核心实例进程请求的参数写入通道。4.如权利要求3所述的插件式分布式机器学习计算框架,其特征在于,使用内存文件方式来实现所述通道;使用工作节点的基于内存文件系统作为数据通道,使用工作节点的命名通道FIFO作为信号通道。5.如权利要求1所述的插件式分布式机器学习计算框架,其特征在...

【专利技术属性】
技术研发人员:郑培凯马超倪焱肖臻
申请(专利权)人:北京大学
类型:发明
国别省市:北京,11

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

1