CN107169513B - 控制数据使用顺序的分布式机器学习系统及其方法 - Google Patents

控制数据使用顺序的分布式机器学习系统及其方法 Download PDF

Info

Publication number
CN107169513B
CN107169513B CN201710310856.2A CN201710310856A CN107169513B CN 107169513 B CN107169513 B CN 107169513B CN 201710310856 A CN201710310856 A CN 201710310856A CN 107169513 B CN107169513 B CN 107169513B
Authority
CN
China
Prior art keywords
training
data
order
node apparatus
module
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
CN201710310856.2A
Other languages
English (en)
Other versions
CN107169513A (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.)
4Paradigm Beijing Technology Co Ltd
Original Assignee
4Paradigm Beijing 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 4Paradigm Beijing Technology Co Ltd filed Critical 4Paradigm Beijing Technology Co Ltd
Priority to CN201710310856.2A priority Critical patent/CN107169513B/zh
Publication of CN107169513A publication Critical patent/CN107169513A/zh
Application granted granted Critical
Publication of CN107169513B publication Critical patent/CN107169513B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques

Abstract

提供了一种控制数据使用顺序的分布式机器学习系统及其方法。所述分布式机器学习系统,包括:多个节点装置,其中,每个节点装置用于执行机器学习分布式训练处理并向服务器提供通过执行机器学习分布式训练处理所获得的训练结果,以及服务器,用于收集由所述多个节点装置提供的训练结果,并基于收集到的训练结果来得到机器学习模型,其中,与所有数据对应的一轮迭代过程被划分为多个保序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同保序训练阶段使用同样的数据来执行机器学习分布式训练处理,并按照保序训练阶段向服务器提供训练结果。相应地,能够在保持训练系统通用性的同时,通过数据保序使用而改善模型收敛过程。

Description

控制数据使用顺序的分布式机器学习系统及其方法
技术领域
本发明的示例性实施例总体说来涉及人工智能领域,更具体地说,涉及一种在机器学习模型的训练过程中控制数据使用顺序的分布式机器学习系统以及一种利用所述分布式机器学习系统在机器学习模型的训练过程中控制数据使用顺序的方法。
背景技术
在机器学习模型的训练过程中,数据(例如,训练样本)需要被多次使用,通常,每一次使用全部数据的过程可称为一轮迭代过程,机器学习模型会随着迭代过程增加而不断收敛到一个较好的结果。
在当前的分布式机器学习系统中,为了加快收敛速度,并不考虑每一轮迭代过程中数据被使用的顺序,也就是说,数据一般都是按照打乱的顺序来使用,这里,除了数据自身的顺序常常被打乱(例如,洗牌(shuffle))之外,分布式设计本身也会带来一定的顺序随机效果。
然而,数据乱序使用会在某种程度上影响机器学习模型的收敛稳定性,相应地,现有技术中存在针对分类问题,基于流形判断分析的全局保序学习机,然而,由于分布式机器学习系统中,网络传输和处理延迟本身都会带来数据顺序随机的问题,因此难以在分布式机器学习模型的训练过程中有效地控制数据的全局使用顺序。
发明内容
本发明的示例性实施例旨在克服现有的分布式机器学习系统难以在模型的训练过程中有效地控制数据的全局使用顺序的缺陷。
根据本发明的示例性实施例,提供一种在机器学习模型的训练过程中控制数据使用顺序的分布式机器学习系统,包括:多个节点装置,其中,每个节点装置用于执行机器学习分布式训练处理并向服务器提供通过执行机器学习分布式训练处理所获得的训练结果,以及服务器,用于收集由所述多个节点装置提供的训练结果,并基于收集到的训练结果来得到机器学习模型,其中,与所有数据对应的一轮迭代过程被划分为多个保序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同保序训练阶段使用同样的数据来执行机器学习分布式训练处理,并按照保序训练阶段向服务器提供训练结果。
可选地,在所述分布式机器学习系统中,每个节点装置包括:存储模块,用于存储至少一个数据块,其中,每个数据块包括预定数量的数据;训练模块,用于使用数据块来执行机器学习分布式训练处理;数据管理模块,用于针对相同保序训练阶段,从存储模块读取同样的数据块以提供给训练模块使用;结果提供模块,用于按照保序训练阶段向服务器提供训练结果。
可选地,所述分布式机器学习系统还包括:数据管理服务器,用于从所述多个节点装置的数据管理模块分别接收指示数据块被使用的使用报告,基于接收到的使用报告来产生用于在所述多个节点装置之中的卡顿节点装置与空闲节点装置之间调度数据块的使用的调度信号,并将产生的调度信号发送到卡顿节点装置的数据管理模块和/或空闲节点装置的数据管理模块。
可选地,在所述分布式机器学习系统中,所有数据被分布地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供卡顿节点装置的未使用的数据块,使得空闲节点装置的数据管理模块将所述未使用的数据块提供给空闲节点装置的训练模块使用。
可选地,在所述分布式机器学习系统中,所有数据被重复地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供指示卡顿节点装置的未使用的数据块的标识符,使得空闲节点装置的数据管理模块将所述标识符所指示的未使用的数据块提供给空闲节点装置的训练模块使用。
根据本发明的另一示例性实施例,提供一种在机器学习模型的训练过程中控制数据使用顺序的分布式机器学习系统,包括:多个节点装置,其中,每个节点装置用于选择性地按照保序模式或乱序模式来执行机器学习分布式训练处理并向服务器提供通过执行机器学习分布式训练处理所获得的训练结果,以及服务器,用于收集由所述多个节点装置提供的训练结果,并基于收集到的训练结果来得到机器学习模型,其中,在保序模式下,与所有数据对应的一轮迭代过程被划分为多个保序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同保序训练阶段使用同样的数据来执行机器学习分布式训练处理,并按照保序训练阶段向服务器提供训练结果;在乱序模式下,与所有数据对应的一轮迭代过程被划分为多个乱序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同乱序训练阶段使用不同的数据来执行机器学习分布式训练处理,并按照乱序训练阶段向服务器提供训练结果;或者,在乱序模式下,与所有数据对应的一轮迭代过程不按照阶段来划分,所述多个节点装置在执行每一轮迭代过程时,按照不同顺序使用数据来执行机器学习分布式训练处理,并按照迭代过程向服务器提供训练结果。
可选地,在所述分布式机器学习系统中,每个节点装置包括:存储模块,用于存储至少一个数据块,其中,每个数据块包括预定数量的数据;训练模块,用于使用数据块来执行机器学习分布式训练处理;数据管理模块,用于从存储模块数据块以提供给训练模块使用;结果提供模块,用于向服务器提供训练结果,其中,在保序模式下,数据管理模块针对相同保序训练阶段,从存储模块读取同样的数据块以提供给训练模块使用,并且,结果提供模块按照保序训练阶段向服务器提供训练结果;在乱序模式下,数据管理模块针对相同乱序训练阶段,从存储模块读取不同的数据块以提供给训练模块使用,并且,结果提供模块按照乱序训练阶段向服务器提供训练结果;或者,在乱序模式下,数据管理模块针对每一轮迭代过程,按照不同顺序从存储模块读取数据块以提供给训练模块使用,并且,结果提供模块按照迭代过程向服务器提供训练结果。
可选地,所述分布式机器学习系统还包括:数据管理服务器,用于从所述多个节点装置的数据管理模块分别接收指示数据块被使用的使用报告,基于接收到的使用报告来产生用于在所述多个节点装置之中的卡顿节点装置与空闲节点装置之间调度数据块的使用的调度信号,并将产生的调度信号发送到卡顿节点装置的数据管理模块和/或空闲节点装置的数据管理模块。
可选地,在所述分布式机器学习系统中,所有数据被分布地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供卡顿节点装置的未使用的数据块,使得空闲节点装置的数据管理模块将所述未使用的数据块提供给空闲节点装置的训练模块使用。
可选地,在所述分布式机器学习系统中,所有数据被重复地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供指示卡顿节点装置的未使用的数据块的标识符,使得空闲节点装置的数据管理模块将所述标识符所指示的未使用的数据块提供给空闲节点装置的训练模块使用。
可选地,在所述分布式机器学习系统中,存储模块存储能够并行访问的至少一个数据分片,其中,每个数据分片容纳至少一个数据块。
根据本发明的另一示例性实施例,提供一种利用分布式机器学习系统在机器学习模型的训练过程中控制数据使用顺序的方法,其中,所述分布式机器学习系统包括多个节点装置和服务器,所述方法包括:由所述多个节点装置之中的每个节点装置执行机器学习分布式训练处理并向服务器提供通过执行机器学习分布式训练处理所获得的训练结果;以及由服务器收集由所述多个节点装置提供的训练结果,并基于收集到的训练结果来得到机器学习模型,其中,与所有数据对应的一轮迭代过程被划分为多个保序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同保序训练阶段使用同样的数据来执行机器学习分布式训练处理,并按照保序训练阶段向服务器提供训练结果。
可选地,在所述方法中,每个节点装置包括:存储模块,用于存储至少一个数据块,其中,每个数据块包括预定数量的数据;训练模块,用于使用数据块来执行机器学习分布式训练处理;数据管理模块,用于针对相同保序训练阶段,从存储模块读取同样的数据块以提供给训练模块使用;结果提供模块,用于按照保序训练阶段向服务器提供训练结果。
可选地,在所述方法中,所述系统还包括数据管理服务器,并且,所述方法还包括:由数据管理服务器从所述多个节点装置的数据管理模块分别接收指示数据块被使用的使用报告,基于接收到的使用报告来产生用于在所述多个节点装置之中的卡顿节点装置与空闲节点装置之间调度数据块的使用的调度信号,并将产生的调度信号发送到卡顿节点装置的数据管理模块和/或空闲节点装置的数据管理模块。
可选地,在所述方法中,所有数据被分布地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供卡顿节点装置的未使用的数据块,使得空闲节点装置的数据管理模块将所述未使用的数据块提供给空闲节点装置的训练模块使用。
可选地,在所述方法中,所有数据被重复地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供指示卡顿节点装置的未使用的数据块的标识符,使得空闲节点装置的数据管理模块将所述标识符所指示的未使用的数据块提供给空闲节点装置的训练模块使用。
根据本发明的另一示例性实施例,提供一种利用分布式机器学习系统在机器学习模型的训练过程中控制数据使用顺序的方法,其中,所述分布式机器学习系统包括多个节点装置和服务器,所述方法包括:由所述多个节点装置之中的每个节点装置选择性地按照保序模式或乱序模式来执行机器学习分布式训练处理并向服务器提供通过执行机器学习分布式训练处理所获得的训练结果;以及由服务器收集由所述多个节点装置提供的训练结果,并基于收集到的训练结果来得到机器学习模型,其中,在保序模式下,与所有数据对应的一轮迭代过程被划分为多个保序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同保序训练阶段使用同样的数据来执行机器学习分布式训练处理,并按照保序训练阶段向服务器提供训练结果;在乱序模式下,与所有数据对应的一轮迭代过程被划分为多个乱序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同乱序训练阶段使用不同的数据来执行机器学习分布式训练处理,并按照乱序训练阶段向服务器提供训练结果;或者,在乱序模式下,与所有数据对应的一轮迭代过程不按照阶段来划分,所述多个节点装置在执行每一轮迭代过程时,按照不同顺序使用数据来执行机器学习分布式训练处理,并按照迭代过程向服务器提供训练结果。
可选地,在所述方法中,每个节点装置包括:存储模块,用于存储至少一个数据块,其中,每个数据块包括预定数量的数据;训练模块,用于使用数据块来执行机器学习分布式训练处理;数据管理模块,用于从存储模块数据块以提供给训练模块使用;结果提供模块,用于向服务器提供训练结果,其中,在保序模式下,数据管理模块针对相同保序训练阶段,从存储模块读取同样的数据块以提供给训练模块使用,并且,结果提供模块按照保序训练阶段向服务器提供训练结果;在乱序模式下,数据管理模块针对相同乱序训练阶段,从存储模块读取不同的数据块以提供给训练模块使用,并且,结果提供模块按照乱序训练阶段向服务器提供训练结果;或者,在乱序模式下,数据管理模块针对每一轮迭代过程,按照不同顺序从存储模块读取数据块以提供给训练模块使用,并且,结果提供模块按照迭代过程向服务器提供训练结果。
可选地,在所述方法中,所述系统还包括数据管理服务器,并且,所述方法还包括:由数据管理服务器从所述多个节点装置的数据管理模块分别接收指示数据块被使用的使用报告,基于接收到的使用报告来产生用于在所述多个节点装置之中的卡顿节点装置与空闲节点装置之间调度数据块的使用的调度信号,并将产生的调度信号发送到卡顿节点装置的数据管理模块和/或空闲节点装置的数据管理模块。
可选地,在所述方法中,所有数据被分布地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供卡顿节点装置的未使用的数据块,使得空闲节点装置的数据管理模块将所述未使用的数据块提供给空闲节点装置的训练模块使用。
可选地,在所述方法中,所有数据被重复地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供指示卡顿节点装置的未使用的数据块的标识符,使得空闲节点装置的数据管理模块将所述标识符所指示的未使用的数据块提供给空闲节点装置的训练模块使用。
可选地,在所述方法中,存储模块存储能够并行访问的至少一个数据分片,其中,每个数据分片容纳至少一个数据块。
在根据本发明示例性实施例的分布式机器学习系统及其方法中,按照保序训练阶段对迭代过程进行划分,并且,针对各个迭代过程的对应保序训练阶段,使用相同的数据来进行模型训练,从而在一定程度上实现了数据使用的全局保序,并且保持了机器学习模型训练的独立性,可以看出,根据本发明示例性实施例的分布式机器学习系统及其方法能够在保持训练系统通用性的同时,通过数据保序使用而改善模型收敛过程。
附图说明
从下面结合附图对本发明实施例的详细描述中,本发明的这些和/或其他方面和优点将变得更加清楚并更容易理解,其中:
图1示出根据本发明的示例性实施例的在机器学习模型的训练过程中控制数据使用顺序的分布式机器学习系统的框图;
图2示出根据本发明的示例性实施例的由分布式机器学习系统在机器学习模型的训练过程中控制数据使用顺序的方法的流程图;
图3示出根据本发明的示例性实施例的分布式机器学习系统中的节点装置的结构的框图;
图4示出根据本发明的另一示例性实施例的由分布式机器学习系统在机器学习模型的训练过程中控制数据使用顺序的方法的流程图;
图5示出根据本发明的另一示例性实施例的由分布式机器学习系统在机器学习模型的训练过程中控制数据使用顺序的方法的流程图;
图6示出根据本发明的另一示例性实施例的在机器学习模型的训练过程中控制数据使用顺序的分布式机器学习系统的框图;
图7示出根据本发明的示例性实施例的在节点装置中存储数据的示意图;以及
图8示出根据本发明的另一示例性实施例的在节点装置中存储数据的示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明的示例性实施例作进一步详细说明。
机器学习是人工智能研究发展到一定阶段的必然产物,其致力于通过计算的手段,利用经验来改善系统自身的性能。在计算机系统中,“经验”通常以“数据”形式存在,通过机器学习算法,可从数据中产生“模型”,也就是说,将经验数据提供给机器学习算法,就能基于这些经验数据产生模型,在面对新的情况时,模型会提供相应的判断,即,预测结果。机器学习可被实现为“有监督学习”、“无监督学习”或“半监督学习”的形式,应注意,本发明的示例性实施例对具体机器学习算法并不进行特定限制。此外,还应注意,在训练机器学习模型的过程中,还可利用统计算法、业务规则和/或专家知识等,以进一步提高机器学习的效果。
具体说来,本发明的示例性实施例涉及分布式机器学习系统,该分布式机器学习系统可由服务器和多个节点装置组成,其中,多个节点装置分布地执行机器学习模型训练,各个节点装置可将各自的训练运算结果提供给服务器,以便服务器得到最终的机器学习模型。应注意,这里所说的节点装置和服务器均由其所执行的操作来限定,既可指示物理实体,也可指示虚拟实体,例如,节点装置可指示实际的计算机器,也可指示部署在该计算机器上的逻辑实体,同样,服务器既可指示实际的计算机器,也可作为一个或多个逻辑实体而与节点装置部署在同样或不同的计算机器上,甚至可以直接由某些节点装置来充当。
图1示出根据本发明的示例性实施例的在机器学习模型的训练过程中控制数据使用顺序的分布式机器学习系统的框图。具体说来,图1所示的分布式机器学习系统可包括服务器2000和多个节点装置1000(例如,1000-1、1000-2、…、1000-n(其中,n为大于1的整数))。
具体说来,每个节点装置1000用于执行机器学习分布式训练处理并向服务器2000提供通过执行机器学习分布式训练处理所获得的训练结果。这里,每个节点装置1000可针对各自被分配的一部分数据来执行机器学习训练处理。
根据本发明的示例性实施例,与所有数据对应的一轮迭代过程被划分为多个保序训练阶段,所述多个节点装置1000在执行每一轮迭代过程时,针对相同保序训练阶段使用同样的数据来执行机器学习分布式训练处理,并按照保序训练阶段向服务器2000提供训练结果。
如之前所述,为了训练机器学习模型,需要针对所有数据进行多轮迭代过程以逐渐收敛。这里,可将迭代过程划分为多个保序训练阶段,相应地,在每个保序训练阶段中,需完成一部分数据的训练处理。例如,可将一轮迭代过程划分为N(N为大于1的整数)个保序训练阶段,对于每一轮迭代过程的第i个保序训练阶段而言,其使用固定的数据来进行机器学习模型训练,这里,i=1,2,…,N。这些固定的数据由所述多个节点装置1000分散处理,每个节点装置1000在处理完自己的数据之后,可将相应的训练结果更新到服务器2000,这里,节点装置1000可分别或统一地向服务器2000提供各自的训练结果。
可以看出,根据本发明的示例性实施例,通过在每一轮迭代过程的对应保序训练阶段中均配置同样的数据来进行训练,可使得多轮迭代过程的全局数据使用顺序在一定程度上保持稳定。由此,可在分布式机器学习系统中实现一定程度的数据使用全局保序,而对于每一保序训练阶段内部的数据使用顺序,本发明的示例性实施例不做特别限定。
相应地,服务器2000用于收集由所述多个节点装置1000提供的训练结果,并基于收集到的训练结果来得到机器学习模型。这里,作为示例,服务器2000可指示本领域技术人员已知的分布式机器学习系统中的参数服务器。这里,多个节点装置1000可分别在每一轮迭代过程中按照保序训练阶段向服务器2000提供训练结果,相应地,服务器2000可在每个保序训练阶段完成相应的参数更新,并在多轮迭代过程之后得到最终的机器学习模型。
图2示出根据本发明的示例性实施例的由分布式机器学习系统在机器学习模型的训练过程中控制数据使用顺序的方法的流程图。所述方法涉及的步骤可由图1所示的分布式机器学习系统中的节点装置1000和/或服务器2000来执行,例如,可由节点装置1000和/或服务器2000根据预先设定的配置来执行。
参照图2,在步骤S110,将与所有数据对应的一轮迭代过程划分为多个保序训练阶段,这里,在每个保序训练阶段,将使用固定的数据来进行模型训练。也就是说,每一轮迭代过程的对应保序训练阶段将使用同样的数据来进行模型训练。可选地,在步骤S110之前,可在步骤S100针对所有数据执行随机化处理,以打乱原始的数据顺序。
在步骤S120,准备开始新一轮的迭代过程。例如,服务器2000和/或多个节点装置1000可分别完成相应的初始化,并实施相应的配置。
接下来,在步骤S130,可由多个节点装置1000按照保序训练阶段来使用数据进行机器学习分布式训练处理。具体说来,针对当前保序训练阶段,多个节点装置1000分别使用与当前保序训练阶段相应的固定数据之中的一部分来执行模型训练。
在完成当前保序训练阶段的数据训练之后,在步骤S140,由多个节点装置1000向服务器2000提供通过执行机器学习分布式训练处理所获得的训练结果。这里,多个节点装置1000可分别或统一地向服务器2000提供训练结果。服务器2000可基于在步骤S140获得的训练结果来完成模型的参数更新等处理。
接下来,在步骤S150,确定当前保序训练阶段是否为最后的保序训练阶段。如果在步骤S150确定当前完成的保序训练阶段已经是最后的保序训练阶段,则在步骤S170,确定当前迭代过程是否已经是最后一轮迭代过程,如果是最后一轮迭代过程,则服务器2000可相应地得到训练完毕的机器学习模型。如果后续还有迭代过程,则所述方法返回步骤S120以继续下一轮的模型训练。
如果在步骤S150确定当前完成的保序训练阶段并非最后的保序训练阶段,则在步骤S160,所述多个节点装置1000开始准备下一保序训练阶段的模型训练处理。然后,所述方法返回步骤S130以针对下一保序训练阶段来执行相关数据的模型训练处理。这里,所述多个节点装置1000分别使用与所述下一保序训练阶段相应的固定数据之中的一部分来执行模型训练。
图3示出根据本发明的示例性实施例的分布式机器学习系统中的节点装置的结构的框图。参照图3,节点装置可包括存储模块1100、数据管理模块1200、训练模块1300和结果提供模块1400。
具体说来,存储模块1100用于存储至少一个数据块,其中,每个数据块包括预定数量的数据。这里,存储模块1100以数据块为单位来存储数据,相应地,后续对数据的读取、使用和处理等也可基于数据块来进行。作为示例,存储模块1100可将数据块存储在数据分片中,这里,数据分片可指示文件、内存片段等。
训练模块1300用于使用数据块来执行机器学习分布式训练处理。具体说来,在分布式机器学习系统中,每个节点装置1000的训练模块1300仅负责处理一部分数据,各个节点装置1000可并行地分别进行处理,从而提高整个系统的处理速度。作为示例,训练模块1300可利用多个编程来针对不同的数据块同时执行模型训练。
数据管理模块1200用于针对相同保序训练阶段,从存储模块1100读取同样的数据块以提供给训练模块1300使用。根据本发明的示例性实施例,数据管理模块1200用于在各个节点装置1000中控制每一保序训练阶段中将使用的固定数据,从而在一定程度上实现数据的全局保序使用,也就是说,从迭代过程整体看来,数据并非无序地被使用,而是保持了以保序训练阶段为单位的数据一致性。具体说来,针对每个保序训练阶段,数据管理模块1200从存储模块1100读取相应的指定数据块,并把读取的数据块提供给训练模块1300。
结果提供模块1400用于按照保序训练阶段向服务器2000提供训练结果。如上所述,在分布式机器学习系统中,由服务器2000(例如,参数服务器)负责收集各个节点装置1000的训练结果。相应地,结果提供模块1400可在每个保序训练阶段的训练运算完成之后,立即将得到的训练结果发送到服务器2000;或者,结果提供模块1400可在每个保序训练阶段的训练运算完成之后,根据用于同步训练结果的指示信号将训练结果发送到服务器2000。
以上结合图1到图3描述了根据本发明示例性实施例在机器学习模型的训练过程中控制数据保序使用的示例。进一步地,可考虑不同类型的机器学习模型对数据保序使用的不同需求,将根据本发明示例性实施例的模型训练方案设计为可选择性地保序使用数据或乱序使用数据。这里,可通过专门的配置来确定数据的使用顺序,从而保持了机器学习模型训练过程的独立性而不需要在训练过程中附加特殊的加载或处理。
具体说来,在图1所示的分布式机器学习系统中,每个节点装置1000用于选择性地按照保序模式或乱序模式来执行机器学习分布式训练处理并向服务器2000提供通过执行机器学习分布式训练处理所获得的训练结果,服务器2000收集由所述多个节点装置1000提供的训练结果,并基于收集到的训练结果来得到机器学习模型。具体说来,在保序模式下,与所有数据对应的一轮迭代过程被划分为多个保序训练阶段,所述多个节点装置1000在执行每一轮迭代过程时,针对相同保序训练阶段使用同样的数据来执行机器学习分布式训练处理,并按照保序训练阶段向服务器2000提供训练结果;在乱序模式下,与所有数据对应的一轮迭代过程被划分为多个乱序训练阶段,所述多个节点装置1000在执行每一轮迭代过程时,针对相同乱序训练阶段使用不同的数据来执行机器学习分布式训练处理,并按照乱序训练阶段向服务器2000提供训练结果;或者,在乱序模式下,与所有数据对应的一轮迭代过程不按照阶段来划分,所述多个节点装置1000在执行每一轮迭代过程时,按照不同顺序使用数据来执行机器学习分布式训练处理,并按照迭代过程向服务器2000提供训练结果。
相应地,在图3所示的节点装置1000中,存储模块1100用于存储至少一个数据块,其中,每个数据块包括预定数量的数据;训练模块1300用于使用数据块来执行机器学习分布式训练处理;数据管理模块1200用于从存储模块数据块以提供给训练模块使用;结果提供模块1400用于向服务器2000提供训练结果,其中,在保序模式下,数据管理模块1200针对相同保序训练阶段,从存储模块1100读取同样的数据块以提供给训练模块1300使用,并且,结果提供模块1400按照保序训练阶段向服务器2000提供训练结果;在乱序模式下,数据管理模块1200针对相同乱序训练阶段,从存储模块1100读取不同的数据块以提供给训练模块1300使用,并且,结果提供模块1400按照乱序训练阶段向服务器2000提供训练结果;或者,在乱序模式下,数据管理模块1200针对每一轮迭代过程,按照不同顺序从存储模块1100读取数据块以提供给训练模块1300使用,并且,结果提供模块1400按照迭代过程向服务器提供训练结果。
图4示出根据本发明的另一示例性实施例的由分布式机器学习系统在机器学习模型的训练过程中控制数据使用顺序的方法的流程图。在图4所示的方法中,数据在每轮迭代过程中使用的顺序不具有任何程度上的一致性,而乱序训练阶段的划分仅仅是为了节点装置1000设置能够阶段性地向服务器2000提供训练结果。所述方法涉及的步骤可由图1所示的分布式机器学习系统中的节点装置1000和/或服务器2000来执行,例如,可由节点装置1000和/或服务器2000根据预先设定的配置来执行。
参照图4,在步骤S111,将与所有数据对应的一轮迭代过程划分为多个乱序训练阶段,这里,在不同迭代过程的对应乱序训练阶段,可使用不同的数据来进行模型训练。也就是说,各个迭代过程中数据的整体使用顺序完全相同,即,在数据无序使用的情况下来进行模型训练。可选地,在步骤S111之前,可在步骤S100针对所有数据执行随机化处理,以打乱原始的数据顺序。
在步骤S120,准备开始新一轮的迭代过程。例如,服务器2000和/或多个节点装置1000可分别完成相应的初始化,并实施相应的配置。
接下来,在步骤S131,可由多个节点装置1000按照乱序训练阶段来使用数据进行机器学习分布式训练处理。具体说来,针对当前乱序训练阶段,多个节点装置1000分别使用一部分数据来执行模型训练,这里,各个节点装置1000处理的数据具有随机性或其他方式的乱序性,也就是说,不同迭代过程中的对应乱序训练阶段可使用不同的数据。
在完成当前乱序训练阶段的数据训练之后,在步骤S140,由多个节点装置1000向服务器2000提供通过执行机器学习分布式训练处理所获得的训练结果。这里,多个节点装置1000可分别或统一地向服务器2000提供训练结果。服务器2000可基于在步骤S140获得的训练结果来完成模型的参数更新等处理。
接下来,在步骤S150,确定当前乱序训练阶段是否为最后的乱序训练阶段。如果在步骤S150确定当前完成的乱序训练阶段已经是最后的乱序训练阶段,则在步骤S170,确定当前迭代过程是否已经是最后一轮迭代过程,如果是最后一轮迭代过程,则服务器2000可相应地得到训练完毕的机器学习模型。如果后续还有迭代过程,则所述方法返回步骤S120以继续下一轮的模型训练。
如果在步骤S150确定当前完成的乱序训练阶段并非最后的乱序训练阶段,则在步骤S161,所述多个节点装置1000开始准备下一乱序训练阶段的模型训练处理。然后,所述方法返回步骤S131以针对下一乱序训练阶段来执行相关数据的模型训练处理。这里,所述多个节点装置1000继续使用一部分乱序数据来执行模型训练。
图5示出根据本发明的另一示例性实施例的由分布式机器学习系统在机器学习模型的训练过程中控制数据使用顺序的方法的流程图。在图5所示的方法中,迭代过程不会划分为任何训练阶段,并且,数据在每轮迭代过程中将按照不同的顺序来使用,相应地,在每一轮迭代过程的训练完成之后,节点装置1000向服务器2000提供训练结果。所述方法涉及的步骤可由图1所示的分布式机器学习系统中的节点装置1000和/或服务器2000来执行,例如,可由节点装置1000和/或服务器2000根据预先设定的配置来执行。
参照图5,在步骤S120,准备开始新一轮的迭代过程。例如,服务器2000和多个节点装置1000可分别完成相应的初始化,并实施相应的配置。可选地,在步骤S120之前,可在步骤S100针对所有数据执行随机化处理,以打乱原始的数据顺序。
接下来,在步骤S132,可由多个节点装置1000按照不同的顺序来使用数据进行机器学习分布式训练处理。具体说来,针对当前迭代过程,多个节点装置1000分别使用一部分数据来执行模型训练,这里,各个节点装置1000处理的数据具有随机性或其他方式的乱序性。在完成当前迭代过程的数据训练之后,在步骤S140,由多个节点装置1000向服务器2000提供通过执行机器学习分布式训练处理所获得的训练结果。这里,多个节点装置1000可分别或统一地向服务器2000提供训练结果。
服务器2000可基于在步骤S140获得的训练结果来完成模型的参数更新等处理。接下来,在步骤S170,确定当前迭代过程是否已经是最后一轮迭代过程,如果是最后一轮迭代过程,则服务器2000可相应地得到训练完毕的机器学习模型。如果后续还有迭代过程,则所述方法返回步骤S120以继续下一轮的模型训练。
以上参照图2、图4和图5描述了根据本发明示例性实施例在机器学习模型的训练过程中按照保序或乱序来使用数据的示例,然而应注意,这里的保序或乱序使用方式可抽象为相应的配置项,相应地,节点装置1000或服务器2000可按照期望的配置来选择性地按照保序或乱序方式来使用数据进行模型训练。
根据本发明的示例性实施例,可进一步协调多个节点装置1000之间的数据使用。图6示出根据本发明的另一示例性实施例的在机器学习模型的训练过程中控制数据使用顺序的分布式机器学习系统的框图。
在图6所示的分布式机器学习系统中,多个节点装置1000和服务器2000可按照保序和/或乱序方式来使用数据以完成分布式机器学习模型训练。其中,每个节点装置1000包括数据管理模块1200,例如,该数据管理模块1200可按照配置的方式读取存储的数据以进行后续的模型训练处理。
此外,所述分布式机器学习系统还包括数据管理服务器3000,用于从所述多个节点装置1000的数据管理模块1200分别接收指示数据块被使用的使用报告,基于接收到的使用报告来产生用于在所述多个节点装置1000之中的卡顿节点装置与空闲节点装置之间调度数据块的使用的调度信号,并将产生的调度信号发送到卡顿节点装置的数据管理模块和/或空闲节点装置的数据管理模块。
具体说来,在分布式机器学习系统中,每个节点装置1000针对各自的数据执行相应的训练处理。然而,每个节点装置1000实际的处理速度却并非完全一致,常常在执行分布式运算时,有些节点装置1000已经完成了自己全部的数据处理而成为了空闲节点装置,但有些节点装置1000却仍停留在某个数据的处理而成为卡顿节点装置。这种处理速度的不一致既会体现在某个训练阶段,也会体现在整个迭代过程。
为此,根据本发明的示例性实施例,可在分布式机器学习系统中额外设置数据管理服务器3000,该数据管理服务器3000由其所执行的操作来限定,既可指示物理实体,也可指示虚拟实体,例如,数据管理服务器3000可指示实际的计算机器,也可指示部署在该计算机器上的逻辑实体。
相应地,每个节点装置1000的数据管理模块1200可用于向数据管理服务器3000汇报所述每个节点装置1000的数据使用进展情况。例如,每当数据块在节点装置1000中被使用时,该节点装置1000的数据管理模块1200可向数据管理服务器3000发送指示该数据块已经被使用的使用报告,数据管理服务器3000在接收到来自各个节点装置1000的使用报告时,可获知哪些数据块已经被使用从而完成了训练运算。另一方面,数据管理服务器3000可基于接收到的使用报告来确定哪些数据尚未使用,例如,负责处理这些数据的节点装置1000出现了卡顿情况。为此,数据管理服务器3000可产生用于在卡顿节点装置与空闲节点装置之间调度数据块的使用的调度信号,该调度信号可用于指示由空闲节点装置来处理原本应该由卡顿节点装置处理的数据。
作为示例,在调度信号指示数据块的实际传输的情况下,数据管理服务器3000可将调度信号发送到卡顿节点装置的数据管理模块;或者,数据管理服务器3000可将调度信号发送到空闲节点装置的数据管理模块;或者,数据管理服务器3000可将调度信号发送到卡顿节点装置和空闲节点装置两者的数据管理模块。这里,调度信号可包括将被传输的未使用数据的标识符以及相关的卡顿节点装置和/或空闲节点装置的标识符等信息。接收到调度信号的相应节点装置的数据管理模块可相应地完成数据块从卡顿节点到空闲节点的传输,使得原本该由卡顿节点处理的数据块改为由空闲节点处理。节点装置1000的数据管理模块1200中可设置有专门负责传送未使用数据块的线程,以专门监听来自其他节点装置的未使用数据块或将未使用数据块发送到指定的其他节点装置。
例如,在根据本发明示例性实施例的分布式机器学习系统中,所有数据被分布地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供卡顿节点装置的未使用的数据块,使得空闲节点装置的数据管理模块将所述未使用的数据块提供给空闲节点装置的训练模块使用。
图7示出根据本发明的示例性实施例的在节点装置1000中存储数据的示意图。参照图7,作为示例,分布式机器学习系统可包括3个节点装置1000-1、1000-2和1000-3,并且,每轮迭代过程共有180个数据样本需要处理,这180个数据样本形成18个数据块(每个数据块包括10个数据样本),分别存储在上述三个节点装置的存储模块中。作为示例,存储模块可存储能够并行访问的至少一个(例如,2个)数据分片,其中,每个数据分片容纳至少一个(例如,3个)数据块。假设该迭代过程被划分为3个保序训练阶段,每个保序训练阶段需要处理固定的数据。例如,在第一保序训练阶段,各节点装置1000需要处理第一数据分片中的第一个数据块以及第二数据分片中的第一个数据块;在第二保序训练阶段,各节点装置1000需要处理第一数据分片中的第二个数据块以及第二数据分片中的第二个数据块;在第三保序训练阶段,各节点装置1000需要处理第一数据分片中的第三个数据块以及第二数据分片中的第三个数据块。这里,由于存储模块中的各个数据分片可以被并行访问,因此上述处理方式可提高处理速度。
假设节点装置1000-1已经处理完第一保序训练阶段应处理的2个数据块而节点装置1000-2卡顿在其应该处理的2个数据块之中的1个数据块(例如,第一数据分片中的第一个数据块),由于当每个数据块被使用时,相应的节点装置1000可经过其数据管理模块1200向数据管理服务器3000汇报该数据块的使用情况,因此,数据管理服务器3000可形成用于将节点装置1000-2的第二数据分片中的第一个数据块(即,未使用的数据块)传输到节点装置1000-1来进行处理的调度信号,并把该调度信号发送到相应的节点装置1000-1和/或节点装置1000-2。这里,数据管理服务器3000通过调度信号在节点装置1000-1与节点装置1000-2之间传输数据块的具体方式不受限制,本领域技术人员可在调度信号中额外包括任何适当的节点装置标识符并将调度信号发送到相应的节点装置。
此外,应理解,以上虽然以保序训练阶段为例描述了数据块的调度,但本发明的示例性实施例并不受限于此,而是可以同样地应用于乱序训练阶段或整个迭代过程。
作为另一示例,在调度信号仅指示数据块标识符的传输(而不需要传输数据块)的情况下,数据管理服务器3000可将调度信号发送到卡顿节点装置的数据管理模块;或者,数据管理服务器3000可将调度信号发送到空闲节点装置的数据管理模块;或者,数据管理服务器3000可将调度信号发送到卡顿节点装置和空闲节点装置两者的数据管理模块。这里,调度信号可包括将被传输的未使用数据的标识符以及相关的节点装置的标识符等信息。相应节点装置1000的数据管理模块1200可根据接收到的调度信号来启动/停止对相应数据块的处理,使得原本该由卡顿节点处理的数据块改为由空闲节点处理。
例如,在根据本发明示例性实施例的分布式机器学习系统中,所有数据被重复地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供指示卡顿节点装置的未使用的数据块的标识符,使得空闲节点装置的数据管理模块将所述标识符所指示的未使用的数据块提供给空闲节点装置的训练模块使用。
图8示出根据本发明的另一示例性实施例的在节点装置1000中存储数据的示意图。参照图8,作为示例,分布式机器学习系统可包括3个节点装置1000-1、1000-2和1000-3,并且,每轮迭代过程共有180个数据样本需要处理,这180个数据样本形成18个数据块(每个数据块包括10个数据样本),重复地存储在上述三个节点装置的存储模块中,使得每个节点装置都存储了全部的180个数据样本。作为示例,存储模块可存储能够并行访问的至少一个(例如,6个)数据分片,其中,每个数据分片容纳至少一个(例如,3个)数据块。假设该迭代过程被划分为3个保序训练阶段,每个保序训练阶段需要处理固定的数据。例如,在第一保序训练阶段,节点装置1000-1需要处理第一数据分片中的第一个数据块以及第二数据分片中的第一个数据块;节点装置1000-2需要处理第三数据分片中的第一个数据块以及第四数据分片中的第一个数据块;节点装置1000-3需要处理第五数据分片中的第一个数据块以及第六数据分片中的第一个数据块。在第二保序训练阶段,节点装置1000-1需要处理第一数据分片中的第二个数据块以及第二数据分片中的第二个数据块;节点装置1000-2需要处理第三数据分片中的第二个数据块以及第四数据分片中的第二个数据块;节点装置1000-3需要处理第五数据分片中的第二个数据块以及第六数据分片中的第二个数据块。在第一保序训练阶段,节点装置1000-1需要处理第一数据分片中的第三个数据块以及第二数据分片中的第三个数据块;节点装置1000-2需要处理第三数据分片中的第三个数据块以及第四数据分片中的第三个数据块;节点装置1000-3需要处理第五数据分片中的第三个数据块以及第六数据分片中的第三个数据块。同样地,由于存储模块中的各个数据分片可以被并行访问,因此上述处理方式可提高处理速度。
假设节点装置1000-1已经处理完第一保序训练阶段应处理的2个数据块而节点装置1000-2卡顿在其应该处理的2个数据块之中的1个数据块(例如,第三数据分片中的第一个数据块),由于当每个数据块被使用时,相应的节点装置1000可经过其数据管理模块1200向数据管理服务器3000汇报该数据块的使用情况。因此,数据管理服务器3000可形成用于通知节点装置1000-1来处理节点装置1000-2的第四数据分片中的第二个数据块(即,未使用的数据块)的调度信号,并把该调度信号发送到相应的节点装置1000-1和节点装置1000-2。例如,所述调度信号可包括所述未使用的数据块的标识符,相应地,在接收到该调度信号时,节点装置1000-1的数据管理模块1200可将与所述标识符相应的数据块从第四数据分片取出以提供给其训练模块1300,而节点装置1000-2的数据管理模块1200将取消对所述数据块的处理。这里,数据管理服务器3000通过调度信号在节点装置1000-1与节点装置1000-2之间传输数据块的标识符的具体方式不受限制,本领域技术人员可在调度信号中额外包括任何适当的调度信息并将调度信号发送到相应的节点装置。
此外,应理解,以上虽然以保序训练阶段为例描述了数据块的调度,但本发明的示例性实施例并不受限于此,而是可以同样地应用于乱序训练阶段或整个迭代过程。
如上所述,取决于数据块在各节点装置1000的存储情况,调度信号可用于将数据块从卡顿节点装置传送到空闲节点装置,也可用于将数据块的处理主体从卡顿节点装置转换为空闲节点装置,进一步提高了分布式机器学习系统的整体性能。
应理解,根据本发明示例性实施例的分布式机器学习系统中的装置或模块可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些装置或模块可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的单元或模块。当所述装置或模块以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读介质中,使得处理器可通过读取并运行相应的程序代码或者代码段来执行相应的操作。此外,这些装置或模块所实现的一个或多个功能也可由物理实体设备(例如,处理器、客户端或服务器等)中的组件来统一执行。
应注意,根据本发明示例性实施例的分布式机器学习系统可完全依赖计算机程序的运行来实现相应的功能,即,各个装置与计算机程序的功能架构中与各步骤相应,使得整个系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。
以上已经描述了本发明的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,并且本发明也不限于所披露的各示例性实施例。在不偏离本发明的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本发明的保护范围应该以权利要求的范围为准。

Claims (22)

1.一种在机器学习模型的训练过程中控制数据使用顺序的分布式机器学习系统,包括:
多个节点装置,其中,每个节点装置用于针对各自被分配的一部分数据来执行机器学习分布式训练处理并向服务器提供通过执行机器学习分布式训练处理所获得的训练结果,以及
服务器,用于收集由所述多个节点装置提供的训练结果,并基于收集到的训练结果来得到机器学习模型,
其中,与所有数据对应的一轮迭代过程被划分为多个保序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同保序训练阶段使用同样的数据来执行机器学习分布式训练处理,并且所述多个节点装置在执行每一轮迭代过程时,按照保序训练阶段向服务器提供训练结果;
其中,每个节点装置包括:数据管理模块,用于按照配置的方式读取数据,具体地,针对相同保序训练阶段读取同样的数据以供节点装置执行机器学习分布式训练处理;每个节点装置还包括:结果提供模块,用于在每个保序训练阶段的训练运算完成之后,立即将得到的训练结果发送到服务器或者根据用于同步训练结果的指示信号将训练结果发送到服务器。
2.如权利要求1所述的分布式机器学习系统,其中,每个节点装置包括:
存储模块,用于存储至少一个数据块,其中,每个数据块包括预定数量的数据;
训练模块,用于使用数据块来执行机器学习分布式训练处理;
数据管理模块,用于针对相同保序训练阶段,从存储模块读取同样的数据块以提供给训练模块使用;
结果提供模块,用于按照保序训练阶段向服务器提供训练结果。
3.如权利要求2所述的分布式机器学习系统,还包括:
数据管理服务器,用于从所述多个节点装置的数据管理模块分别接收指示数据块被使用的使用报告,基于接收到的使用报告来产生用于在所述多个节点装置之中的卡顿节点装置与空闲节点装置之间调度数据块的使用的调度信号,并将产生的调度信号发送到卡顿节点装置的数据管理模块和/或空闲节点装置的数据管理模块。
4.如权利要求3所述的分布式机器学习系统,其中,所有数据被分布地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供卡顿节点装置的未使用的数据块,使得空闲节点装置的数据管理模块将所述未使用的数据块提供给空闲节点装置的训练模块使用。
5.如权利要求3所述的分布式机器学习系统,其中,所有数据被重复地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供指示卡顿节点装置的未使用的数据块的标识符,使得空闲节点装置的数据管理模块将所述标识符所指示的未使用的数据块提供给空闲节点装置的训练模块使用。
6.一种在机器学习模型的训练过程中控制数据使用顺序的分布式机器学习系统,包括:
多个节点装置,其中,每个节点装置用于针对各自被分配的一部分数据选择性地按照保序模式或乱序模式来执行机器学习分布式训练处理并向服务器提供通过执行机器学习分布式训练处理所获得的训练结果,以及
服务器,用于收集由所述多个节点装置提供的训练结果,并基于收集到的训练结果来得到机器学习模型,
其中,在保序模式下,与所有数据对应的一轮迭代过程被划分为多个保序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同保序训练阶段使用同样的数据来执行机器学习分布式训练处理,并且所述多个节点装置在执行每一轮迭代过程时,按照保序训练阶段向服务器提供训练结果;
在乱序模式下,与所有数据对应的一轮迭代过程被划分为多个乱序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同乱序训练阶段使用不同的数据来执行机器学习分布式训练处理,并按照乱序训练阶段向服务器提供训练结果;或者,在乱序模式下,与所有数据对应的一轮迭代过程不按照阶段来划分,所述多个节点装置在执行每一轮迭代过程时,按照不同顺序使用数据来执行机器学习分布式训练处理,并按照迭代过程向服务器提供训练结果;
其中,每个节点装置包括:数据管理模块,用于按照配置的方式读取数据,具体地,在保序模式下,针对相同保序训练阶段读取同样的数据以供节点装置执行机器学习分布式训练处理,以及在乱序模式下,针对相同乱序训练阶段读取不同的数据以供节点装置执行机器学习分布式训练处理,或者,针对每一轮迭代过程,按照不同顺序读取数据块以提供节点装置执行机器学习分布式训练处理,
以及每个节点装置还包括:结果提供模块,用于在保序模式下,在每个保序训练阶段的训练运算完成之后,立即将得到的训练结果发送到服务器或者根据用于同步训练结果的指示信号将训练结果发送到服务器。
7.如权利要求6所述的分布式机器学习系统,其中,每个节点装置包括:
存储模块,用于存储至少一个数据块,其中,每个数据块包括预定数量的数据;
训练模块,用于使用数据块来执行机器学习分布式训练处理;
数据管理模块,用于从存储模块读取数据块以提供给训练模块使用;
结果提供模块,用于向服务器提供训练结果,
其中,在保序模式下,数据管理模块针对相同保序训练阶段,从存储模块读取同样的数据块以提供给训练模块使用,并且,结果提供模块按照保序训练阶段向服务器提供训练结果;
在乱序模式下,数据管理模块针对相同乱序训练阶段,从存储模块读取不同的数据块以提供给训练模块使用,并且,结果提供模块按照乱序训练阶段向服务器提供训练结果;或者,在乱序模式下,数据管理模块针对每一轮迭代过程,按照不同顺序从存储模块读取数据块以提供给训练模块使用,并且,结果提供模块按照迭代过程向服务器提供训练结果。
8.如权利要求7所述的分布式机器学习系统,还包括:
数据管理服务器,用于从所述多个节点装置的数据管理模块分别接收指示数据块被使用的使用报告,基于接收到的使用报告来产生用于在所述多个节点装置之中的卡顿节点装置与空闲节点装置之间调度数据块的使用的调度信号,并将产生的调度信号发送到卡顿节点装置的数据管理模块和/或空闲节点装置的数据管理模块。
9.如权利要求8所述的分布式机器学习系统,其中,所有数据被分布地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供卡顿节点装置的未使用的数据块,使得空闲节点装置的数据管理模块将所述未使用的数据块提供给空闲节点装置的训练模块使用。
10.如权利要求8所述的分布式机器学习系统,其中,所有数据被重复地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供指示卡顿节点装置的未使用的数据块的标识符,使得空闲节点装置的数据管理模块将所述标识符所指示的未使用的数据块提供给空闲节点装置的训练模块使用。
11.如权利要求7所述的分布式机器学习系统,其中,存储模块存储能够并行访问的至少一个数据分片,其中,每个数据分片容纳至少一个数据块。
12.一种利用分布式机器学习系统在机器学习模型的训练过程中控制数据使用顺序的方法,其中,所述分布式机器学习系统包括多个节点装置和服务器,所述方法包括:
由所述多个节点装置之中的每个节点装置针对各自被分配的一部分数据来执行机器学习分布式训练处理并向服务器提供通过执行机器学习分布式训练处理所获得的训练结果;以及
由服务器收集由所述多个节点装置提供的训练结果,并基于收集到的训练结果来得到机器学习模型,
其中,与所有数据对应的一轮迭代过程被划分为多个保序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同保序训练阶段使用同样的数据来执行机器学习分布式训练处理,并且所述多个节点装置在执行每一轮迭代过程时,按照保序训练阶段向服务器提供训练结果;
其中,由每个节点装置中的数据管理模块按照配置的方式读取数据,具体地,针对相同保序训练阶段读取同样的数据以供节点装置执行机器学习分布式训练处理,以及每个节点装置中的结果提供模块在每个保序训练阶段的训练运算完成之后,立即将得到的训练结果发送到服务器或者根据用于同步训练结果的指示信号将训练结果发送到服务器。
13.如权利要求12所述的方法,其中,每个节点装置包括:
存储模块,用于存储至少一个数据块,其中,每个数据块包括预定数量的数据;
训练模块,用于使用数据块来执行机器学习分布式训练处理;
数据管理模块,用于针对相同保序训练阶段,从存储模块读取同样的数据块以提供给训练模块使用;
结果提供模块,用于按照保序训练阶段向服务器提供训练结果。
14.如权利要求12所述的方法,其中,所述系统还包括数据管理服务器,并且,所述方法还包括:
由数据管理服务器从所述多个节点装置的数据管理模块分别接收指示数据块被使用的使用报告,基于接收到的使用报告来产生用于在所述多个节点装置之中的卡顿节点装置与空闲节点装置之间调度数据块的使用的调度信号,并将产生的调度信号发送到卡顿节点装置的数据管理模块和/或空闲节点装置的数据管理模块。
15.如权利要求14所述的方法,其中,所有数据被分布地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供卡顿节点装置的未使用的数据块,使得空闲节点装置的数据管理模块将所述未使用的数据块提供给空闲节点装置的训练模块使用。
16.如权利要求14所述的方法,其中,所有数据被重复地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供指示卡顿节点装置的未使用的数据块的标识符,使得空闲节点装置的数据管理模块将所述标识符所指示的未使用的数据块提供给空闲节点装置的训练模块使用。
17.一种利用分布式机器学习系统在机器学习模型的训练过程中控制数据使用顺序的方法,其中,所述分布式机器学习系统包括多个节点装置和服务器,所述方法包括:
由所述多个节点装置之中的每个节点装置针对各自被分配的一部分数据选择性地按照保序模式或乱序模式来执行机器学习分布式训练处理并向服务器提供通过执行机器学习分布式训练处理所获得的训练结果;以及
由服务器收集由所述多个节点装置提供的训练结果,并基于收集到的训练结果来得到机器学习模型,
其中,在保序模式下,与所有数据对应的一轮迭代过程被划分为多个保序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同保序训练阶段使用同样的数据来执行机器学习分布式训练处理,并且所述多个节点装置在执行每一轮迭代过程时,按照保序训练阶段向服务器提供训练结果;
在乱序模式下,与所有数据对应的一轮迭代过程被划分为多个乱序训练阶段,所述多个节点装置在执行每一轮迭代过程时,针对相同乱序训练阶段使用不同的数据来执行机器学习分布式训练处理,并按照乱序训练阶段向服务器提供训练结果;或者,在乱序模式下,与所有数据对应的一轮迭代过程不按照阶段来划分,所述多个节点装置在执行每一轮迭代过程时,按照不同顺序使用数据来执行机器学习分布式训练处理,并按照迭代过程向服务器提供训练结果;
其中,由每个节点装置中的数据管理模块按照配置的方式读取数据,具体地,在保序模式下,针对相同保序训练阶段读取同样的数据以供节点装置执行机器学习分布式训练处理,以及在乱序模式下,针对相同乱序训练阶段读取不同的数据以供节点装置执行机器学习分布式训练处理,或者,针对每一轮迭代过程,按照不同顺序读取数据块以提供节点装置执行机器学习分布式训练处理,
以及每个节点装置中的结果提供模块在保序模式下,在每个保序训练阶段的训练运算完成之后,立即将得到的训练结果发送到服务器或者根据用于同步训练结果的指示信号将训练结果发送到服务器。
18.如权利要求17所述的方法,其中,每个节点装置包括:
存储模块,用于存储至少一个数据块,其中,每个数据块包括预定数量的数据;
训练模块,用于使用数据块来执行机器学习分布式训练处理;
数据管理模块,用于从存储模块读取数据块以提供给训练模块使用;
结果提供模块,用于向服务器提供训练结果,
其中,在保序模式下,数据管理模块针对相同保序训练阶段,从存储模块读取同样的数据块以提供给训练模块使用,并且,结果提供模块按照保序训练阶段向服务器提供训练结果;
在乱序模式下,数据管理模块针对相同乱序训练阶段,从存储模块读取不同的数据块以提供给训练模块使用,并且,结果提供模块按照乱序训练阶段向服务器提供训练结果;或者,在乱序模式下,数据管理模块针对每一轮迭代过程,按照不同顺序从存储模块读取数据块以提供给训练模块使用,并且,结果提供模块按照迭代过程向服务器提供训练结果。
19.如权利要求18所述的方法,其中,所述系统还包括数据管理服务器,并且,所述方法还包括:
由数据管理服务器从所述多个节点装置的数据管理模块分别接收指示数据块被使用的使用报告,基于接收到的使用报告来产生用于在所述多个节点装置之中的卡顿节点装置与空闲节点装置之间调度数据块的使用的调度信号,并将产生的调度信号发送到卡顿节点装置的数据管理模块和/或空闲节点装置的数据管理模块。
20.如权利要求19所述的方法,其中,所有数据被分布地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供卡顿节点装置的未使用的数据块,使得空闲节点装置的数据管理模块将所述未使用的数据块提供给空闲节点装置的训练模块使用。
21.如权利要求19所述的方法,其中,所有数据被重复地存储在所述多个节点装置中,并且,所述调度信号用于控制向空闲节点装置的数据管理模块提供指示卡顿节点装置的未使用的数据块的标识符,使得空闲节点装置的数据管理模块将所述标识符所指示的未使用的数据块提供给空闲节点装置的训练模块使用。
22.如权利要求18所述的方法,其中,存储模块存储能够并行访问的至少一个数据分片,其中,每个数据分片容纳至少一个数据块。
CN201710310856.2A 2017-05-05 2017-05-05 控制数据使用顺序的分布式机器学习系统及其方法 Active CN107169513B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710310856.2A CN107169513B (zh) 2017-05-05 2017-05-05 控制数据使用顺序的分布式机器学习系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710310856.2A CN107169513B (zh) 2017-05-05 2017-05-05 控制数据使用顺序的分布式机器学习系统及其方法

Publications (2)

Publication Number Publication Date
CN107169513A CN107169513A (zh) 2017-09-15
CN107169513B true CN107169513B (zh) 2019-10-18

Family

ID=59812755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710310856.2A Active CN107169513B (zh) 2017-05-05 2017-05-05 控制数据使用顺序的分布式机器学习系统及其方法

Country Status (1)

Country Link
CN (1) CN107169513B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109948632B (zh) * 2017-12-19 2021-03-26 杭州海康威视数字技术股份有限公司 数据训练方法、装置及系统、计算机设备
CN109858629A (zh) * 2018-12-26 2019-06-07 南京邮电大学 基于层级调度的分布式深度学习系统及学习方法
CN115345318A (zh) * 2019-08-16 2022-11-15 第四范式(北京)技术有限公司 用于执行多机器学习任务的分布式系统及其方法
WO2021035719A1 (zh) * 2019-08-30 2021-03-04 Oppo广东移动通信有限公司 信号传输方法、装置及系统
CN112651510A (zh) * 2019-10-12 2021-04-13 华为技术有限公司 模型更新方法、工作节点及模型更新系统
CN112333234B (zh) * 2020-09-23 2021-09-24 清华大学 分布式机器学习训练方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764835A (zh) * 2008-12-25 2010-06-30 华为技术有限公司 基于MapReduce编程架构的任务分配方法及装置
CN104615498A (zh) * 2015-01-22 2015-05-13 北京仿真中心 一种基于任务迁移的集群系统动态负载均衡方法
CN105446979A (zh) * 2014-06-27 2016-03-30 华为技术有限公司 数据挖掘方法和节点

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737126B (zh) * 2012-06-19 2014-03-12 合肥工业大学 云计算环境下的分类规则挖掘方法
US20150170053A1 (en) * 2013-12-13 2015-06-18 Microsoft Corporation Personalized machine learning models
US10289962B2 (en) * 2014-06-06 2019-05-14 Google Llc Training distilled machine learning models
US20160063394A1 (en) * 2014-08-27 2016-03-03 Microsoft Corporation Computing Device Classifier Improvement Through N-Dimensional Stratified Input Sampling
CN104598972A (zh) * 2015-01-22 2015-05-06 清华大学 一种大规模数据回归神经网络快速训练方法
CN106156810B (zh) * 2015-04-26 2019-12-03 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点
CN105912500B (zh) * 2016-03-30 2017-11-14 百度在线网络技术(北京)有限公司 机器学习模型生成方法和装置
CN106548210B (zh) * 2016-10-31 2021-02-05 腾讯科技(深圳)有限公司 基于机器学习模型训练的信贷用户分类方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764835A (zh) * 2008-12-25 2010-06-30 华为技术有限公司 基于MapReduce编程架构的任务分配方法及装置
CN105446979A (zh) * 2014-06-27 2016-03-30 华为技术有限公司 数据挖掘方法和节点
CN104615498A (zh) * 2015-01-22 2015-05-13 北京仿真中心 一种基于任务迁移的集群系统动态负载均衡方法

Also Published As

Publication number Publication date
CN107169513A (zh) 2017-09-15

Similar Documents

Publication Publication Date Title
CN107169513B (zh) 控制数据使用顺序的分布式机器学习系统及其方法
CN104541247B (zh) 用于调整云计算系统的系统和方法
US9658895B2 (en) System and method for configuring boot-time parameters of nodes of a cloud computing system
US9152532B2 (en) System and method for configuring a cloud computing system with a synthetic test workload
TWI534709B (zh) 用於進行虛擬機器分支和平行執行的電腦實施方法、電腦系統及電腦可讀取儲存媒體
US9262231B2 (en) System and method for modifying a hardware configuration of a cloud computing system
US8887056B2 (en) System and method for configuring cloud computing systems
CN110389909A (zh) 使用深度神经网络优化固态驱动器的性能的系统和方法
US20200219028A1 (en) Systems, methods, and media for distributing database queries across a metered virtual network
US20140047342A1 (en) System and method for allocating a cluster of nodes for a cloud computing system based on hardware characteristics
US20140047095A1 (en) System and method for tuning a cloud computing system
CN110704186A (zh) 基于混合分布架构的计算资源分配方法、装置和存储介质
CN107943555A (zh) 一种云计算环境下的大数据存储和处理平台及处理方法
US20140047079A1 (en) System and method for emulating a desired network configuration in a cloud computing system
CN110472747A (zh) 用于执行多机器学习任务的分布式系统及其方法
KR101916294B1 (ko) 클라우드 데이터 센터 분석을 위한 기술
CN109783161A (zh) iOS系统中应用程序的运行信息确定方法、装置
CN108733496A (zh) 事件处理方法和装置
CN110413388A (zh) 基于业务系统的多任务处理方法、装置、设备及存储介质
WO2022160628A1 (zh) 命令处理装置、方法、电子设备以及计算机可读存储介质
CN116089477B (zh) 分布式训练方法及系统
CN107209492B (zh) 可编程逻辑控制器设定文件生成辅助装置
CN107180525A (zh) 一种物理设备的蓝牙控制方法、装置、系统和相关设备
TWI619074B (zh) 用於資料處理裝置之可配置執行緒排序
US11803999B2 (en) Job scheduling using reinforcement learning

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