CN108280522A - 一种插件式分布式机器学习计算框架及其数据处理方法 - Google Patents

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

Info

Publication number
CN108280522A
CN108280522A CN201810004566.XA CN201810004566A CN108280522A CN 108280522 A CN108280522 A CN 108280522A CN 201810004566 A CN201810004566 A CN 201810004566A CN 108280522 A CN108280522 A CN 108280522A
Authority
CN
China
Prior art keywords
parameter
node
data
channel
server
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.)
Granted
Application number
CN201810004566.XA
Other languages
English (en)
Other versions
CN108280522B (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.)
Peking University
Original Assignee
Peking University
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 Peking University filed Critical Peking University
Priority to CN201810004566.XA priority Critical patent/CN108280522B/zh
Publication of CN108280522A publication Critical patent/CN108280522A/zh
Application granted granted Critical
Publication of CN108280522B publication Critical patent/CN108280522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

一种插件式分布式机器学习计算框架及其数据处理方法
技术领域
本发明涉及一种机器学习计算框架及其数据处理方法,尤其涉及一种插件式分布式跨编程语言机器学习计算框架及其数据处理方法。
背景技术
机器学习已经成为了处理大数据的有效工具。机器学习过程中经常通过增加模型的参数提高模型的精度。然而由于单机的计算能力和内存的限制,分布式系统成为解决超大数据量机器学习问题的手段。
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包括一个主控制节点和多个服务器节点、多个工作节点,其中工作节点只和服务器节点、主控制节点通信,各服务器节点分别与主控制节点通信连接,工作节点之间不通信。每个服务器节点存储机器学习模型的一部分参数,并且在训练的时候只负责更新这一部分参数,所有的服务器节点的参数组成整体的机器学习模型的待训练参数。工作节点存储一部分训练数据,先从服务器节点获取相关的参数,然后计算本地的参数更新量比如梯度,最后将参数更新量回传给服务器节点,完成一轮参数的更新。主控制节点记录服务器节点和工作节点的节点信息,其中包括服务器节点上参数的分配信息、机器学习任务的分配信息以及训练过程中工作节点的日志,所以brook可以高效的执行断点恢复。和现有的系统一样,主控制节点极少失败,所以没有做主控制节点的容错。
在图2中,机器学习模型的机器学习任务被划分到所有的工作节点上,每个工作节点获得一批训练数据,然后从服务器节点获得与这批训练数据相关的模型参数,然后计算这些参数的本地更新。通过哈希算法,每个工作节点将本地更新分别上传给相应的服务器节点。服务器节点将收到的参数更新,具体更新方式可以看作加法模型:A(t+1)=A(t)+Δ(A(t),D),其中A(t)是第t轮参数的状态,D是输入数据,Δ(A(t),D)是通过服务器节点收到的第t轮的更新。。这系列的操作和原始的参数服务器类似。
Brook和参数服务器最大的区别是核心实例进程不直接与服务器节点进行通信,而是每个工作节点启动两个进程,其中一个进程为核心实例进程,另一个进程是参数代理进程。核心实例进程通过参数代理进程与服务器节点进行通信,其中核心实例进程和参数代理进程之间通过一个和编程语言无关的通道进行数据传输和同步。
虽然机器学习算法有很多的形式,但是几乎所有的模型都是寻找一组参数使得这些参数能够最好的表达输入数据D。通常使用迭代算法来解决这类问题,大部分问题可以抽象成加法模型:A(t+1)=A(t)+Δ(A(t),D),其中A(t)是第t轮参数的状态,D是输入数据,Δ(A(t),D)是通过机器学习方法计算出来的第t轮的更新。
本发明中数据和信号的传输流程如图3所示,通过机器学习中逻辑回归的例子来阐述各个组件的工作过程。首先主控制节点初始化整个机器学习任务,包括模型参数初始化、将训练数据划分为数据块、参数与服务器节点对应关系。接着进行循环迭代,在每次迭代过程中主控制节点分配任务到各个工作节点,工作节点的核心实例进程通过通道向参数代理进程请求参数,两者之间通过键值对传递参数,参数代理进程接收到参数请求之后如果已经缓存对应数据,则通过通道返回给核心实例进程,如果没有缓存则向对应服务器节点发送请求获取相应的数据给核心实例进程,然后核心实例进程根据收到的数据计算更新对应参数并将参数更新信息传递给参数代理进程同时将下一轮计算所需参数的参数请求也发送给参数代理进程,参数代理进程根据当前迭代次数检查该参数请求(参数请求中包括迭代次数信息)是否满足一致性的要求,如果满足返回该数据请求所需的参数数据,否则等待,直到服务器节点和参数代理进程同步参数的迭代次数并且满足之后再返回数据。
下面对本发明涉及的组件的设计细节进行详细介绍。
核心实例进程,核心实例进程是由开发者提供的单机的程序。最开始的程序可以是任何语言的,通过修改少量数据交换的代码就可以转换成核心实例进程(核心实例进程一般是由使用者提供)。核心实例进程的主要作用是从通道里面读出参数,计算本地更新然后把更新和请求写入通道。这些细节将在下面讨论,参数代理进程向核心实例进程提供了通信透明的参数更新接口,让核心实例进程看起来像是在和本地的服务器节点进行更新。这样可以容易地将单机程序转换成分布式程序。
参数代理进程,参数代理进程是核心实例进程和服务器节点的中间层。通过参数代理层,brook可以简化核心实例进程中的逻辑。一些复杂的系统任务比如网络通信,消息队列,序列化都由参数代理进程完成。参数代理进程与核心实例进程之间通过通道进行同步数据交换,其中核心实例进程将本地更新和参数请求发送给参数代理进程,参数代理进程将当前缓存的参数请求结果发送给核心实例进程,如果实例进程请求的参数不在参数代理进程的缓存,则参数代理进程会向服务器节点请求相应的参数;参数代理与服务器节点之间通过网络连接进行异步参数更新,参数代理进程将从核心实例中获取的本地更新序列化并压缩之后发送给相应服务器节点,服务器节点接收到参数代理进程的消息,通过解压缩反序列化得到该参数更新,然后更新服务器节点上的参数。通过使用参数代理进程,核心实例进程只需要做核心的机器学习算法,使用任意的编程语言然后和参数代理进程进行数据交互就可以了。
通道,通道由一个数据通道和信号通道组成,其中数据通道负责核心实例进程和参数代理进程之间的参数传输,信号通道负责对数据进行同步,即同步实例进程和参数代理进程之间的数据,参数代理进程之间的参数同步是通过服务器节点进行同步的,服务器节点将参数代理进程发送的更新合并,就完成同步;核心实例进程将本地更新、当前迭代轮次以及请求参数的下标写入数据通道,参数代理进程从数据通道获取本地更新异步与服务器节点同步然后将核心实例进程请求的参数写入通道。使用文件方式来实现通道,因为所有的语言都可以访问文件。同样,通道包括两类文件。对于数据通道,brook中使用基于内存文件系统ramfs(RAM file system),通过使用这个技术,提高了两个数量级的实验效果。考虑到并发性,brook中使用工作节点的命名通道FIFO作为信号通道,写入的信息包括请求信号和同步信号(机器学习中当前迭代轮次作为同步信号,也就是时间戳),核心实例进程将请求信号写入一个命名通道,参数代理进程将数据返回信号写入另一个命名通道。
相比于brook,有两类通常用于跨语言的机器学习框架。第一类是通过使用语言转换器封装原有的API。比如通过转换器python可以调用C++的boost或者SWIG库。相对于brook这种解决方案有明显的缺点。首先,编写语言转换器是比较困难的,甚至需要修改原有的框架。在开源社区中,sparkR在2016年才被发布出来(spark在2010年发布)。所以为每种语言提供一个转换器是不现实的。但是brook中的RWW接口是完全的跨语言的。除了开发的耗费,语言转换器通常会降低执行效率而且降低灵活性。
第二类方法是Hadoop Streaming。这种方法在Java开发者中广泛使用,能发挥Hadoop的优势。但是,从hadoop派生出来的子系统并不适合机器学习任务。这类系统在编程模型和系统性能方面表现比较差。Hadoop Streaming通过标准IO传输数据,这样造成了很大的系统开销。然而在brook系统中,数据仅通过通道进行传递。从而降低了很多输入输出的系统开销。
系统优化
由于需要考虑到通信的数据量以及计算负载等系统问题,实现一个高效的可扩展的分布式计算框架不是一件容易的事情。Brook中主要存在三个优化。
消息压缩,因为分布式机器学习问题中需要很高的带宽,所以必须在参数代理进程和服务器节点之间进行消息压缩。Brook中使用了多种压缩技术,尽可能的减少信息传输。首先,尽量避免发送单条数据,因为TCP/IP包头和序列化都会造成很大的开销。所以将单个条目打包成一组消息的形式。其次,使用(start-key,value-list)的消息形式而不是key-value对的形式,其中,start-key为更新参数的起始下标,value-list为参数更新列表,value-list是一串连续的更新量。假如把所有的参数放到数组中,那么每个参数有一个下标,由于工作节点计算一次之后,不是所有的参数都被更新,所以在传输的时候只传输被更新的参数;原来的做法是传输(下标key,更新量value),但是对于连续的参数更新是低效的,因为要多传输很多key,所以本发明系统将连续的参数更新合并,改用(起始下标start-key,更新列表value-list)。这个优化可以极大的减少消息大小,尤其是在稠密的数据上。另外,由于很多机器学习算法会在不同的迭代的轮次中使用相同的数据,所以接收节点会缓存接收到的key列表。这样在使用相同的数据的时候,发送者只需要发送value的列表就可以了。最后,使用Snappy压缩库压缩序列化之后的消息。
连续存储,很多之前的系统在执行的时候都是使用key-value对存储参数。但是使用这种方法不能充分的使用存储并且也会降低计算效率。在服务器上的操作主要是线性计算。因此在服务器节点使用连续的空间存储参数,空缺的参数用零替代。通过使用这个优化,brook系统可以节省近一半的空间并且可以通过多线程线性代数库(比如OpenBLAS)提升性能。这样做同时也简化了在服务器端用户自定义的更新机制。
灵活的容错机制,在大规模的情景下,容错机制是非常重要的。然而,很多现存的系统只能支持一种容错策略。当这些系统部署在较小的并且较为稳定的集群上时经常会造成很多不必要的开销。Brook提供了多种等级的容错机制。容错等级从L0-L3覆盖了从小型平台比如台式机到实验室集群直到生产集群比如数据中心和云服务。Brook会根据不同的容错等级选择不同的容错机制。
以上包含了本发明优选实施例的说明,这是为了详细说明本发明的技术特征,并不是想要将发明内容限制在实施例所描述的具体形式中,依据本发明内容主旨进行的其他修改和变型也受本专利保护。本发明内容的主旨是由权利要求书所界定,而非有实施例的具体描述所界定。

Claims (9)

1.一种插件式分布式机器学习计算框架,其特征在于,包括一个主控制节点、多个服务器节点和多个工作节点;其中,每一工作节点分别与主控制节点、各服务器节点通信连接,各服务器节点分别与主控制节点通信连接;每个服务器节点存储机器学习模型的一部分参数,各服务器节点存储的参数组成该机器学习模型的全部待训练的参数;每一工作节点存储一部分训练数据,工作节点根据本地存储的训练数据从对应服务器获取相关的参数,然后计算所获取参数的更新量后将参数更新量回传给对应服务器;主控制节点记录服务器节点和工作节点的节点信息;每一所述工作节点中设置一核心实例进程和一参数代理进程;所述核心实例进程通过所述参数代理进程与所述服务器节点进行通信,所述核心实例进程和所述参数代理进程之间通过一个与编程语言无关的通道进行数据传输和同步。
2.如权利要求1所述的插件式分布式机器学习计算框架,其特征在于,所述核心实例进程通过所述通道向所述参数代理进程请求参数,所述参数代理进程查询缓存中是否有所请求的参数,如果有,则将对应的缓存数据通过所述通道返回给所述核心实例进程,如果没有缓存则向对应服务器节点请求相关参数返回给所述核心实例进程,然后所述核心实例进程根据返回的数据训练更新参数并将更新参数结果和下一轮需计算参数的参数请求发送给所述参数代理进程,所述参数代理进程检查该参数请求是否满足一致性的要求,如果满足返回该参数请求对应的参数,否则参数代理进程向服务器节点请求参数。
3.如权利要求2所述的插件式分布式机器学习计算框架,其特征在于,所述通道包括一数据通道和两个信号通道;其中,所述数据通道负责核心实例进程和参数代理进程之间的参数数据传输,所述信号通道负责对数据进行同步;所述核心实例进程将更新结果、当前迭代轮次以及请求参数的下标写入数据通道,参数代理进程从数据通道获取更新结果异步与服务器节点同步然后将核心实例进程请求的参数写入通道。
4.如权利要求3所述的插件式分布式机器学习计算框架,其特征在于,使用内存文件方式来实现所述通道;使用工作节点的基于内存文件系统作为数据通道,使用工作节点的命名通道FIFO作为信号通道。
5.如权利要求1所述的插件式分布式机器学习计算框架,其特征在于,所述参数代理进程将若干条单条数据打包成一组消息的形式发送给所述服务器节点;所述参数代理进程使用(start-key,value-list)的消息形式与所述服务器节点进行通信;其中,start-key为更新参数的起始下标,value-list为参数更新列表。
6.如权利要求1所述的插件式分布式机器学习计算框架,其特征在于,所述服务器节点使用连续的空间存储参数,空缺的参数用零替代。
7.如权利要求1所述的插件式分布式机器学习计算框架,其特征在于,所述主控制节点设有多种等级的容错机制;所述主控制节点根据不同的容错等级选择不同的容错机制。
8.一种基于权利要求1所述插件式分布式机器学习计算框架的数据处理方法,其步骤包括:
1)初始迭代时,主控制节点将机器学习模型的待训练参数划分到各服务器节点,各服务器节点存储的参数组成该机器学习模型的全部待训练参数;主控制节点将该机器学习模型的机器学习任务和训练数据划分到各工作节点上;工作节点从对应服务器获取相关的参数,然后工作节点利用本地存储的训练数据计算所获取参数的更新量后将参数更新量回传给对应服务器节点;服务器节点根据收到的参数更新量更新该服务器节点上的参数;
2)后续每一次迭代过程中,工作节点的核心实例进程通过通道向参数代理进程请求训练所需参数,所述参数代理进程查询缓存中是否有所请求的数据,如果有,则将对应的缓存数据通过所述通道返回给所述核心实例进程,如果没有缓存则向对应服务器节点请求相关参数返回给所述核心实例进程,然后所述核心实例进程训练更新参数并将更新参数结果和下一轮需计算参数的参数请求发送给所述参数代理进程,所述参数代理进程检查该参数请求是否满足一致性的要求,如果满足返回该参数请求对应的数据,否则等待参数代理进程向服务器节点获取相关参数数据。
9.如权利要求8所述的方法,其特征在于,所述通道包括一数据通道和两个信号通道;其中,所述数据通道负责核心实例进程和参数代理进程之间的数据传输,所述信号通道负责对数据进行同步;所述核心实例进程将更新结果、当前迭代轮次以及请求参数的下标写入数据通道,参数代理进程从数据通道获取更新结果异步与服务器节点同步然后将核心实例进程请求的参数写入通道。
CN201810004566.XA 2018-01-03 2018-01-03 一种插件式分布式机器学习计算框架及其数据处理方法 Active CN108280522B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810004566.XA CN108280522B (zh) 2018-01-03 2018-01-03 一种插件式分布式机器学习计算框架及其数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810004566.XA CN108280522B (zh) 2018-01-03 2018-01-03 一种插件式分布式机器学习计算框架及其数据处理方法

Publications (2)

Publication Number Publication Date
CN108280522A true CN108280522A (zh) 2018-07-13
CN108280522B CN108280522B (zh) 2021-08-20

Family

ID=62803113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810004566.XA Active CN108280522B (zh) 2018-01-03 2018-01-03 一种插件式分布式机器学习计算框架及其数据处理方法

Country Status (1)

Country Link
CN (1) CN108280522B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144729A (zh) * 2018-08-27 2019-01-04 联想(北京)有限公司 分布式系统的数据处理方法和分布式系统
CN109445953A (zh) * 2018-08-30 2019-03-08 北京大学 一种面向大规模机器学习系统的机器学习模型训练方法
CN110033095A (zh) * 2019-03-04 2019-07-19 北京大学 一种高可用分布式机器学习计算框架的容错方法和系统
CN110471767A (zh) * 2019-08-09 2019-11-19 上海寒武纪信息科技有限公司 一种设备的调度方法
CN110490316A (zh) * 2019-08-21 2019-11-22 腾讯科技(深圳)有限公司 基于神经网络模型训练系统的训练处理方法、训练系统
CN110689137A (zh) * 2019-09-24 2020-01-14 网易传媒科技(北京)有限公司 参数确定方法、系统、介质和电子设备
CN110837896A (zh) * 2019-11-22 2020-02-25 中国联合网络通信集团有限公司 机器学习模型的存储和调用方法、装置
CN111695689A (zh) * 2020-06-15 2020-09-22 中国人民解放军国防科技大学 一种自然语言处理方法、装置、设备及可读存储介质
WO2020210979A1 (zh) * 2019-04-16 2020-10-22 华为技术有限公司 基于区块链网络的联合学习方法和联合学习设备
CN112016693A (zh) * 2019-05-30 2020-12-01 中兴通讯股份有限公司 机器学习引擎实现方法及装置、终端设备、存储介质
CN112651510A (zh) * 2019-10-12 2021-04-13 华为技术有限公司 模型更新方法、工作节点及模型更新系统
CN112882999A (zh) * 2021-01-31 2021-06-01 云知声智能科技股份有限公司 基于分布式缓存亲和性调度的训练加速方法、装置及系统
CN113177034A (zh) * 2021-05-06 2021-07-27 南京大学 一种跨平台统一的分布式图数据处理方法
CN113556247A (zh) * 2021-06-25 2021-10-26 深圳技术大学 多层参数分布式数据传输方法、装置及可读介质
WO2022089560A1 (zh) * 2020-10-29 2022-05-05 第四范式(北京)技术有限公司 一种模型参数的存储方法和系统以及一种参数服务器集群
EP4145359A4 (en) * 2020-04-28 2023-10-18 Datang Mobile Communications Equipment Co., Ltd. METHOD AND DEVICE FOR TRANSMITTING MACHINE LEARNING MODEL PARAMETERS

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831012A (zh) * 2011-06-16 2012-12-19 日立(中国)研究开发有限公司 多节点分布式系统中的任务调度装置和任务调度方法
US20150381478A1 (en) * 2014-06-27 2015-12-31 Futurewei Technologies, Inc. Proxy for port to service instance mapping
US20160072908A1 (en) * 2014-09-09 2016-03-10 James Dinan Technologies for proxy-based multi-threaded message passing communication
CN106815644A (zh) * 2017-01-26 2017-06-09 北京航空航天大学 机器学习方法和从节点
CN107025205A (zh) * 2016-01-30 2017-08-08 华为技术有限公司 一种分布式系统中的训练模型的方法及设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831012A (zh) * 2011-06-16 2012-12-19 日立(中国)研究开发有限公司 多节点分布式系统中的任务调度装置和任务调度方法
US20150381478A1 (en) * 2014-06-27 2015-12-31 Futurewei Technologies, Inc. Proxy for port to service instance mapping
US20160072908A1 (en) * 2014-09-09 2016-03-10 James Dinan Technologies for proxy-based multi-threaded message passing communication
CN106537367A (zh) * 2014-09-09 2017-03-22 英特尔公司 用于基于代理的多线程消息传递通信的技术
CN107025205A (zh) * 2016-01-30 2017-08-08 华为技术有限公司 一种分布式系统中的训练模型的方法及设备
CN106815644A (zh) * 2017-01-26 2017-06-09 北京航空航天大学 机器学习方法和从节点

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
唐黎哲等: "以LDA为例的大规模分布式机器学习系统分析", 《计算机应用》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144729A (zh) * 2018-08-27 2019-01-04 联想(北京)有限公司 分布式系统的数据处理方法和分布式系统
CN109445953A (zh) * 2018-08-30 2019-03-08 北京大学 一种面向大规模机器学习系统的机器学习模型训练方法
CN110033095A (zh) * 2019-03-04 2019-07-19 北京大学 一种高可用分布式机器学习计算框架的容错方法和系统
WO2020210979A1 (zh) * 2019-04-16 2020-10-22 华为技术有限公司 基于区块链网络的联合学习方法和联合学习设备
CN112016693A (zh) * 2019-05-30 2020-12-01 中兴通讯股份有限公司 机器学习引擎实现方法及装置、终端设备、存储介质
CN110471767A (zh) * 2019-08-09 2019-11-19 上海寒武纪信息科技有限公司 一种设备的调度方法
CN110471767B (zh) * 2019-08-09 2021-09-03 上海寒武纪信息科技有限公司 一种设备的调度方法
CN110490316A (zh) * 2019-08-21 2019-11-22 腾讯科技(深圳)有限公司 基于神经网络模型训练系统的训练处理方法、训练系统
CN110490316B (zh) * 2019-08-21 2023-01-06 腾讯科技(深圳)有限公司 基于神经网络模型训练系统的训练处理方法、训练系统
CN110689137A (zh) * 2019-09-24 2020-01-14 网易传媒科技(北京)有限公司 参数确定方法、系统、介质和电子设备
CN112651510A (zh) * 2019-10-12 2021-04-13 华为技术有限公司 模型更新方法、工作节点及模型更新系统
WO2021068926A1 (zh) * 2019-10-12 2021-04-15 华为技术有限公司 模型更新方法、工作节点及模型更新系统
CN110837896A (zh) * 2019-11-22 2020-02-25 中国联合网络通信集团有限公司 机器学习模型的存储和调用方法、装置
EP4145359A4 (en) * 2020-04-28 2023-10-18 Datang Mobile Communications Equipment Co., Ltd. METHOD AND DEVICE FOR TRANSMITTING MACHINE LEARNING MODEL PARAMETERS
CN111695689A (zh) * 2020-06-15 2020-09-22 中国人民解放军国防科技大学 一种自然语言处理方法、装置、设备及可读存储介质
WO2022089560A1 (zh) * 2020-10-29 2022-05-05 第四范式(北京)技术有限公司 一种模型参数的存储方法和系统以及一种参数服务器集群
CN112882999A (zh) * 2021-01-31 2021-06-01 云知声智能科技股份有限公司 基于分布式缓存亲和性调度的训练加速方法、装置及系统
CN113177034A (zh) * 2021-05-06 2021-07-27 南京大学 一种跨平台统一的分布式图数据处理方法
CN113177034B (zh) * 2021-05-06 2023-07-18 南京大学 一种跨平台统一的分布式图数据处理方法
CN113556247A (zh) * 2021-06-25 2021-10-26 深圳技术大学 多层参数分布式数据传输方法、装置及可读介质

Also Published As

Publication number Publication date
CN108280522B (zh) 2021-08-20

Similar Documents

Publication Publication Date Title
CN108280522A (zh) 一种插件式分布式机器学习计算框架及其数据处理方法
To et al. A survey of state management in big data processing systems
CN109101627B (zh) 异构数据库同步方法及装置
Mehdi et al. I {Can’t} Believe {It’s} Not Causal! Scalable Causal Consistency with No Slowdown Cascades
Li et al. Scaling distributed machine learning with the parameter server
CN102663117B (zh) 面向数据库与Hadoop混合平台的OLAP查询处理方法
EP2932370B1 (en) System and method for performing a transaction in a massively parallel processing database
JP5387757B2 (ja) 並列データ処理システム、並列データ処理方法及びプログラム
CN111597015B (zh) 事务处理方法、装置、计算机设备及存储介质
CN111338766A (zh) 事务处理方法、装置、计算机设备及存储介质
CN113535656B (zh) 数据访问方法、装置、设备及存储介质
CN106569896B (zh) 一种数据分发及并行处理方法和系统
CN108933813A (zh) 在顺序保留数据流消耗期间防止读取器饥饿
CN112230894A (zh) 一种基于Flink的流批一体化指标设计方法
WO2017113865A1 (zh) 一种大数据增量计算方法和装置
CN115083538B (zh) 一种药物数据的处理系统、运行方法及数据处理方法
CN116302574A (zh) 一种基于MapReduce的并发处理方法
Costan From big data to fast data: Efficient stream data management
CN114925075A (zh) 一种多源时空监测信息实时动态融合方法
Vilaça et al. On the expressiveness and trade-offs of large scale tuple stores
CN106649669A (zh) 一种基于远程字典服务器的数据存储方法及系统
Li et al. Research and implementation of a distributed transaction processing middleware
CN107660281A (zh) 同步分布式计算运行时间的系统和方法
Tian et al. Horae: causal consistency model based on hot data governance
Militone et al. Combining fault-tolerant persistence and low-latency streaming access to binary data for AI models

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