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等工具都不合适。
技术实现思路
针对现有技术中存在的技术问题,本专利技术的目的在于提供一种插件式分布式跨编程语言机器学习计 ...
【技术保护点】
1.一种插件式分布式机器学习计算框架,其特征在于,包括一个主控制节点、多个服务器节点和多个工作节点;其中,每一工作节点分别与主控制节点、各服务器节点通信连接,各服务器节点分别与主控制节点通信连接;每个服务器节点存储机器学习模型的一部分参数,各服务器节点存储的参数组成该机器学习模型的全部待训练的参数;每一工作节点存储一部分训练数据,工作节点根据本地存储的训练数据从对应服务器获取相关的参数,然后计算所获取参数的更新量后将参数更新量回传给对应服务器;主控制节点记录服务器节点和工作节点的节点信息;每一所述工作节点中设置一核心实例进程和一参数代理进程;所述核心实例进程通过所述参数代理进程与所述服务器节点进行通信,所述核心实例进程和所述参数代理进程之间通过一个与编程语言无关的通道进行数据传输和同步。
【技术特征摘要】
1.一种插件式分布式机器学习计算框架,其特征在于,包括一个主控制节点、多个服务器节点和多个工作节点;其中,每一工作节点分别与主控制节点、各服务器节点通信连接,各服务器节点分别与主控制节点通信连接;每个服务器节点存储机器学习模型的一部分参数,各服务器节点存储的参数组成该机器学习模型的全部待训练的参数;每一工作节点存储一部分训练数据,工作节点根据本地存储的训练数据从对应服务器获取相关的参数,然后计算所获取参数的更新量后将参数更新量回传给对应服务器;主控制节点记录服务器节点和工作节点的节点信息;每一所述工作节点中设置一核心实例进程和一参数代理进程;所述核心实例进程通过所述参数代理进程与所述服务器节点进行通信,所述核心实例进程和所述参数代理进程之间通过一个与编程语言无关的通道进行数据传输和同步。2.如权利要求1所述的插件式分布式机器学习计算框架,其特征在于,所述核心实例进程通过所述通道向所述参数代理进程请求参数,所述参数代理进程查询缓存中是否有所请求的参数,如果有,则将对应的缓存数据通过所述通道返回给所述核心实例进程,如果没有缓存则向对应服务器节点请求相关参数返回给所述核心实例进程,然后所述核心实例进程根据返回的数据训练更新参数并将更新参数结果和下一轮需计算参数的参数请求发送给所述参数代理进程,所述参数代理进程检查该参数请求是否满足一致性的要求,如果满足返回该参数请求对应的参数,否则参数代理进程向服务器节点请求参数。3.如权利要求2所述的插件式分布式机器学习计算框架,其特征在于,所述通道包括一数据通道和两个信号通道;其中,所述数据通道负责核心实例进程和参数代理进程之间的参数数据传输,所述信号通道负责对数据进行同步;所述核心实例进程将更新结果、当前迭代轮次以及请求参数的下标写入数据通道,参数代理进程从数据通道获取更新结果异步与服务器节点同步然后将核心实例进程请求的参数写入通道。4.如权利要求3所述的插件式分布式机器学习计算框架,其特征在于,使用内存文件方式来实现所述通道;使用工作节点的基于内存文件系统作为数据通道,使用工作节点的命名通道FIFO作为信号通道。5.如权利要求1所述的插件式分布式机器学习计算框架,其特征在...
【专利技术属性】
技术研发人员:郑培凯,马超,倪焱,肖臻,
申请(专利权)人:北京大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。