CN110929884A - 一种基于列划分的分布式机器学习优化的分类方法及装置 - Google Patents

一种基于列划分的分布式机器学习优化的分类方法及装置 Download PDF

Info

Publication number
CN110929884A
CN110929884A CN201911156466.XA CN201911156466A CN110929884A CN 110929884 A CN110929884 A CN 110929884A CN 201911156466 A CN201911156466 A CN 201911156466A CN 110929884 A CN110929884 A CN 110929884A
Authority
CN
China
Prior art keywords
data
node
model
computing
machine learning
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
CN201911156466.XA
Other languages
English (en)
Other versions
CN110929884B (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 CN201911156466.XA priority Critical patent/CN110929884B/zh
Publication of CN110929884A publication Critical patent/CN110929884A/zh
Application granted granted Critical
Publication of CN110929884B publication Critical patent/CN110929884B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公布了一种列划分的分布式机器学习优化的分类方法和装置,采用基于列划分的分布式随机梯度下降SGD方法,称为ColumnSGD,对多维度序列数据进行分类;所述多维度序列数据包括基因序列数据;所述ColumnSGD方法包括:建立分布式机器学习系统的容错机制、建立基于列划分的分布式SGD模型,通过采用将行划分数据转换为列划分数据的高效算法,并基于梯度编码提出模型掉队者问题的解决方法,实现高效分类。本发明通过采用基于列划分的结构,利用列式划分特性、分布式特性,计算模型梯度;能减少分布式机器学习系统的通讯开销及存储开销,提高计算速度,从而提高分类的效率。

Description

一种基于列划分的分布式机器学习优化的分类方法及装置
技术领域
本发明属于分布式机器学习优化和多维数据分类技术领域,提供一种基于列划分的分布式随机梯度下降执行学习优化的分类方法及装置,可应用于利用广义线性模型、因子机模型,多层感知机等模型进行多维数据分类问题,能够减少通信开销和内存开销,提高分类方法的性能。
背景技术
机器学习(Machine Learning)是一种常用的数据挖掘方法,能够从海量数据中挖掘有价值的信息。随着大数据时代的到来,大量的高维数据不断出现,这些数据动辄可以达到几千万、甚至上亿维度。由于计算复杂度高,导致单机训练可能消耗无法接受的时长,并且存储量大,导致单机无法满足存储需求,分布式机器学习系统便应用而生。其中,随机梯度下降算法(SGD)是分布式机器学习中最常见的一种机器学习优化算法。
在现有的分布式机器学习的计算机系统如Spark MLlib,Petuum,MXNet,TensorFlow对于SGD均有实现(①X.Meng et al.,“Mllib:Machine learning in apachespark,”CoRR,vol.abs/1505.06807,2015.②E.P.Xing et al.,“Petuum:A new platformfor distributed machine learning on big data,”IEEE Trans.Big Data,vol.1,no.2,2015.③Chen et al.,“Mxnet:A flexible and efficient machine learning libraryfor heterogeneous distributed systems,”CoRR,vol.abs/1512.01274,2015.
④W.Wangetal.,“Singa:Puttingdeeplearninginthehandsofmultimediausers,”in ACM Multimedia,2015,pp.25–34.)。这些学习系统在实现SGD算法时采用一种基于行数据划分的方法(RowSGD):将训练数据按行划分给不同的计算节点,将模型存储在主节点/参数服务器。在训练模型时,每个计算节点从主节点获取模型,并且从本地采样小批量的数据从而计算梯度,最后主节点汇总所有计算节点的梯度,并且对模型参数进行更新。RowSGD算法的伪代码如下。
Figure BDA0002284939040000021
其中,T是迭代轮数,η是学习率,w0是初始模型,X是训练数据,K是计算节点的个数。
这些技术的缺陷在于:尽管RowSGD做法在小模型上表现良好,但是当模型达到千万甚至上亿维度时,RowSGD会在模型存储和模型通信都有较大的性能问题。
分布式机器学习系统Petuum、MXNet使用行结构进行计算,为了减轻主节点与计算节点之间通讯的开销,这两个分布式机器学习系统使用多个参数服务器来代替单个节点来存储模型。但是从性能来说,虽然参数服务器可以减缓主节点的压力,但对于整个系统而言,通讯成本与模型本身的大小有关,主节点的通讯开销被分担到其他更多的机器上,但是对于系统整体的通讯成本并没有降低。深度学习系统SINGA在训练神经网络模型时,基于垂直结构对数据进行列划分。除了SINGA的研究,Ordentlic也在word2vec模型中提出过基于列进行分区的方式可以有效减少通信成本。但是,采用这种方式,每个计算节点都需要存储整个数据集,导致整个系统的内存开销依然较大。
发明内容
为解决现有分类方法中存在的主节点通讯与内存开销过大、系统整体通讯开销过大等问题,本发明提供提出一种基于列划分的分布式机器学习优化的分类方法和装置,该基于列划分的分布式机器学习优化方法称之为基于列划分的分布式随机梯度下降(ColumnSGD)模型,针对分类方法中的大模型(广义线性模型、因子机模型,多层感知机等模型)计算与数据存储的情况,可以应用于多维度数据的分类,包括基因序列分类等应用,能够减少通信开销和内存开销,提高分类方法的性能。本发明中提出的分类方法采用的列式计算结构中,每个计算节点仅需要存储对应维度的模型,而不需要存储整个模型,降低了对于内存的消耗。
不同于RowSGD的系统,本发明提供的ColumnSGD将用户指定的用于数据挖掘过程中用于训练数据挖掘模型的数据按照列进行切分(即根据数据集本身格式定义的特征维度数量,采用均衡分配的原则,将每一条数据进行拆分,把每一条数据包含的维度以及维度对应数据,根据数量均衡分配的原则给不同节点),而不是按行切分(即根据数据的总量,将数据不作任何拆分均衡分配给不同的节点)。此外,ColumnSGD进一步的将维度对应的分类模型(根据用户的场景需求选择机器学习模型,包括逻辑回归、支持向量机、因子分解机、多层感知机等)。也按照列进行切分,并且将模型和数据相对应的维度存在同样的节点上。这种基于列划分的存储方式完全避免了在分布式环境中交换模型和梯度的通信开销。此外,ColumnSGD还避免了在主节点上存储全量模型---在ColumnSGD中,每个计算节点负责存储一部分模型。
本发明的技术方案是:
一种基于列划分的分布式机器学习优化的分类方法,采用基于列划分的分布式SGD执行方式(ColumnSGD)进行分类,可以应用于多维度数据的分类,包括基因序列分类等应用。具体可针对用于基因序列分类的数据,建立基因序列分类模型,采用基于列划分的分布式随机梯度下降方法,使得学习该分类模型的分布式机器学习系统中主节点的通讯开销、存储开销降低以及系统的通讯开销降低,提高分类模型的收敛速度,将上述给予列划分的分布式机器学习优化方法应用于基因序列分类,可以提高基因分类的处理的效率。
本发明的方法包括:建立分布式机器学习系统的容错机制、建立基于列划分的分布式SGD模型,通过采用将行划分数据转换为列划分数据的高效算法,并基于梯度编码提出模型掉队者问题的解决方法,实现高效分类;包括如下步骤:
1)建立包括一个主节点和多个计算节点的分布式机器学习系统,系统具有随机梯度下降框架下的容错机制,容错机制包括对以下情况的处理;
第一步:若检查发现单个任务失败,则重启单个任务;
第二步:若发现计算节点宕机,则需要重新启动一个新的计算节点并且重新加载数据;
第三步:若主节点宕机,则必须重新启动任务,因为主节点负责做调度任务。
2)建立基于列划分的分布式SGD模型,将多维度数据,如用作基因序列分类的医疗数据,由于人的基因包含30亿个碱基对顺序组成,这样的医疗数据往往维度都是高达上百万、上千万维度的。将基因序列分类的数据(一般是含有或部分含有类别标签的有监督的数据,一般是向量形式表示)和基于列划分的分布式SGD模型(如基于逻辑回归模型)使用相同的划分策略(基于块(block)的列式分发方法)进行列式划分,得到拆分成多个维度的多条数据如对拥有2个维度的基因序列数据,假设一条数据包括(维度1数据,维度2数据),则将其划分为(维度1数据)与(维度2数据)),经过拆分后的数据集合称为工作集;基因序列的工作集在特征的维度进行并行;
基于块(block)的列式分发方法具体执行如下操作:
第一步:主节点将基于行划分存储的多维度数据或模型组织成一个以块(block)为单位的基因序列数据块与模型块的顺序队列,每个块的大小用户可指定。
在基因序列分类具体实施时,使用的模型是逻辑回归模型,存放逻辑回归模型中不同维度参数、并以块结构组织存放这些参数的存储单位叫做模型块,如基因序列分类的数据若包含2个维度,则(维度1模型参数,维度2模型参数)构成模型块。在初始化时,逻辑回归模型由用户传入,若用户不传入模型,则系统将为用户初始化一个所有参数都为0的逻辑回归模型。
第二步:当一个计算节点空闲时,主节点从队列中取出一个数据块,并将数据块的id发给该计算节点。该计算节点读取该数据块,然后分成K份工作集。每个工作集包含这个数据块中的一个列划分。
第三步:该计算节点将K份工作集和该数据块的id一起发送给对应的计算节点。其中,计算节点与工作集的对应是根据哈希散列函数进行对应选择的,哈希散列函数的设计可以由用户自己设定。
例如:如果当前基因序列数据具有100维特征,分布式机器学习中有10个计算节点,我们将它们用0-9进行编号。根据平分的方式,每个计算节点对应包含10个维度的工作集,用户可以自行选择散列函数来确定,如用户选择随机数mod10(即用一个随机数对10取余),得到的数即为工作集对应指定的计算节点的编号。这里“对应的计算节点”即计算出的编号所对应的节点。
为了更好地减少网络开销和序列化开销,本发明进一步使用压缩稀疏行格式(Compressed Sparse Row format)格式来压缩数据。
3)主节点首先发指令给所有的计算节点,加载各自的列划分的数据,并且初始化相应的模型,进行迭代计算;如上述第三步中针对基因序列数据,使用逻辑回归模型,对应有100维特征与10个计算节点,每个计算节点包含了10个维度的模型参数,相应的模型即为逻辑回归模型中这10个维度所对应的逻辑回归模型的参数。包括如下步骤:
第一步:每个计算节点使用本地的数据块和模型块来计算统计量。
具体地,本地的数据块与模型块,对应的即是通过步骤3)将数据按照列划分以块为单位进行组织的数据,以及步骤3)中工作节点中包含的维度的参数组成的模型块。例如,同上述步骤3)中的基因序列数据,每个计算节点包含10个维度的模型参数,这10个维度所对应的逻辑回归模型的参数按照块组织起来称为模型块。而按照列划分的10个维度对应的数据叫对应数据块。
在基因序列分类问题中,模型块指的是逻辑回归模型中的部分模型,如上述拥有2个维度的基因序列,假设数据一共有4条,基因序列根据2个维度拆分成2个数据块,对应的数据可分别用向量表示为
Figure BDA0002284939040000051
Figure BDA0002284939040000053
对应模型具有对应2个维度的参数,即维度1对应参数
Figure BDA0002284939040000052
维度2对应参数
Figure BDA0002284939040000061
则模型被拆分为分别包含参数1与参数2的两个模型块。不同的模型可能有不同形式的统计量。统计量是机器学习中用来描述数据特征中的相关指标,利用统计量可以对模型进行相应更新。比如,在基因序列分类中,使用逻辑回归模型,对应的统计量就是向量的内积,而在更复杂的模型比如因子分解机,统计量会更加复杂。
第二步:主节点从计算节点汇合所有的统计量,并且广播给所有的计算节点。其中,汇合操作是将计算节点的统计量(向量)进行求和。具体地,在上述提到过两分类的二维数据的基因序列分类问题中,逻辑回归模型的参数1分配给计算节点1,参数2分配给计算节点2。根据公式
Figure BDA0002284939040000062
利用第1步提到的拆分过程,计算节点1、计算节点2可以分别计算出统计量
Figure BDA0002284939040000063
主节点通过
Figure BDA0002284939040000064
Figure BDA0002284939040000065
汇合统计量。
第三步:主节点用备份计算对系统中的掉队者进行处理。其中,掉队者指未在规定时间完成计算任务的计算节点。备份计算是指多个计算节点同时计算同一份统计量。例如假设有K个计算节点,数据被划分为K份。那么为了支持S-备份的计算(S远远小于K),我们首先将计算节点划分为K/(S+1)组。在每一组内部,所有的节点都作为其他节点的备份---每一个计算节点存储S+1份数据和模型划分。每个计算节点利用本地的S+1份数据和模型,采用SGD方法来计算得到统计量。然后,主节点从较快的计算节点中收集统计信息,直到主节点可以正确恢复算法所需要的信息,这里的信息指的是第二步中提到的汇合量
Figure BDA0002284939040000066
最后,主节点杀掉所有的计算任务,并将统计信息广播出去。
第四步:每个计算节点用它的本地数据块和从主节点收到的统计量来更新基于列划分的分布式SGD模型(在基因序列分类具体实施中采用逻辑回归模型)。模型的更新方法可以是SGD或者其他的变种方法,比如Adam等等。在基因序列分类中,使用逻辑回归模型,利用上述提及的点积作为统计量,使用网格搜索算法选择逻辑回归模型的最佳的逻辑回归模型学习率来进行梯度更新,并用梯度更新使用的逻辑回归模型。
4)完成一轮迭代,需要重复步骤3)中的迭代计算,直到达到停止条件(一般是误差小于特定值或达到特定迭代轮数,如在逻辑回归模型下计算的交叉熵损失函数值<0.1或迭代达到10000次)。
经过上述步骤1)-4)的整个过程,即得到了模型最终参数,由此得到训练好的序列分类模型(如基因序列分类模型)。
使用基因序列分类模型对基因序列进行分类时,按照以下步骤进行:
5)将需要分类的基因序列(称之为测试集)输入分布式机器学习系统的计算节点中;
6)计算节点将输入的基因序列填入训练好的基因序列分类模型中,按照机器学习的基本理论和算法对模型进行运算,计算出该基因序列属于某一类别的概率(如类别1:0.6、类别2:0.4);
7)根据最终的类别概率确定该基因序列所属的类别(如上例中基因序列属于概率最大的类别1)。
通过上述步骤,实现了基于列划分的基因序列分类。
本发明还提供了一种基于列划分的分布式机器学习优化的分类装置,包括:由一个主节点和多个计算节点组成的分布式学习系统、主节点工作模块与计算节点工作模块。
其中,主节点工作模块包括以下子模块:
模型参数调整模块,用于根据网格搜索算法选择逻辑回归模型的最佳的逻辑回归模型学习率;
数据划分模块,用于将基于行划分的基因序列数据组织成以数据块块为单位的数据队列;
指令发送模块,用于向计算节点发送数据块的块id以及数据计算指令,此处提及的数据计算指由计算节点计算得到的用于计算梯度的统计量;
全局参数接收模块,用于接收所有计算节点计算出的对应列的统计量;
学习模块,根据算法对从所有计算节点收到的局部梯度进行汇总计算,得到新用于计算逻辑回归模型梯度的全局变量;
更新参数发送模块,用于将上述更新得到的全局变量发送至各个计算节点,便于计算节点计算梯度与更新逻辑回归模型参数;
系统更新模块,采用备份计算的算法对计算节点中的掉队者处理。即令同一组内的计算节点互为备份,保存相同数据集、做相同的运算,并将运算结果发送给主节点。在主节点完成数据收集之后,杀掉所有计算任务,将统计信息广播出去。
计算节点工作模块包括以下子模块:
指令接收模块,用于接收当前主节点发送的指令获取;
计算结构更新模块,用于将分布式机器学习系统原本的按行划分的计算结构改造为按列列分的计算结构;
计算模块,用于计算梯度的统计量;
全局参数接收模块,用于接收由主节点汇总统计量得到的用于更新梯度的全局变量;
学习与更新模块,用于根据主节点发送的全局变量计算梯度与利用梯度更新逻辑回归模型参数。
与现有技术相比,本发明的有益效果是:
本发明提供一种列划分的分布式机器学习优化的分类方法和装置,采用基于列划分的结构,利用列式划分特性、分布式特性,计算模型梯度。在相同的数据与模型下,本发明的方法能减少分布式机器学习系统的通讯开销以及系统中主节点的存储开销,进而在训练时收敛速度快于基于行式计算的方法,将上述基于列划分的随机梯度下降方法运用于基因序列分类,可提高分类的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是分布式机器学习系统的系统架构示意图。
图2是本发明所涉及的主节点工作流程图。
图3是本发明计算节点的工作流程图。
图4是本发明所提出的根据列式计算结构计算梯度并对模型进行更新的实例示意图。
图5是本发明提出的ColumnSGD使用备份的示意图。
图6是本发明中中主节点、计算节点的内部结构图。
图7是本发明中主节点一实例的分布式机器学习系统的结构示意图。
图8是本发明中主节点另一实例的分布式机器学习系统的结构示意图。
图9是本发明所提交的计算节点的一实例的分布式机器学习系统的结构示意图。
图10是使用ColumnSGD对数据处理的一个具体实例。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明实施例提供的分布式机器学习算法可应用于图1所示系统,用户通过调用接口将计算任务发送给主节点master,主节点master通过与多个计算节点worker通信组成分布式机器学习系统。主节点master将数据组织与封装成数据块,并将数据块的块id发送给计算节点,并且发送工作指令给计算节点并对计算节点各个worker进行监控。计算节点worker接收到数据块与工作指令后,把数据块按列划分成不同数据集,根据主节点的随机数种子的对应规则,将数据集与块id一起发送给相应计算节点。所有计算节点对当前拥有的数据集进行点积计算,并将点积的计算结果返回主节点master。主节点master根据所有计算节点的计算结果,更新全局变量并将全局变量向所有计算节点进行广播。各计算节点收到全局变量以后根据全局变量完成对模型中相应维度进行参数更新。
本发明实施例提供的系统计算步骤如下所示。
本发明中,如图2所示,针对主节点的工作,具体包括如下步骤:
步骤101,根据网络搜索算法选择最佳学习率、批尺寸。
在基因序列分类中,通过估计函数的参数并且通过交叉验证的方法,主节点可以获得基因序列分类所使用的逻辑回归模型的最佳学习率。在确定学习率的情况下确定基因序列分类学习中逻辑回归模型使用的批尺寸。
具体地,在初始时设置批尺寸为1,通过上述算法选取最佳学习率,在逻辑回归模型使用最佳学习率的情况下,令基因序列数据的批尺寸持续下降并且观察逻辑回归模型的收敛情况,选择适合当前学习率的最佳基因序列数据的批尺寸。
步骤103,将基因序列数据集划分成以块为单位的队列。
主节点将原本以行划分的基因训练数据(分为两部分,用于训练模型的叫做训练集,用于测试模型效果的叫做测试集),基因序列训练数据集连接成以数据块为单位的队列,其中,块的大小可以由用户设定。
步骤105,向计算节点发送数据块id。
完成基因序列的数据块的划分以后,主节点会向系统中空闲的计算节点发送待处理数据块对应的块id,并且下发计算指令。
步骤107,根据所有计算节点返回的统计量信息,将统计量汇合为全局变量,并发送给计算节点。
对于逻辑回归模型的全局变量的更新,在一具体的实施例中,以基因序列分类的逻辑回归模型开始第c轮迭代训练为例,以分布式系统中存在一个主节点m和n个worker,假设数据集包含数据点有x个维度。主节点计算更新全局参数的具体实现方式表示如下:
for c=0 to C:
Figure BDA0002284939040000101
//汇总所有工作节点的统计量并全局变量
Figure BDA0002284939040000102
发送全局变量更新给所有计算节点
其中,
Figure BDA0002284939040000103
表示的是主节点上保存的全局参数,C保存的是最大迭代次数,
Figure BDA0002284939040000104
表示的是计算节点上各自维护的统计量。计算节点根据分配到的工作集更新各自对应的统计量。主节点汇聚所有计算节点更新的统计量,并通过求和公式
Figure BDA0002284939040000105
求得全局变量。
步骤109,完成数据收集后,主节点杀掉所有计算任务,并将统计信息广播。避免掉队者的影响。
对于掉队者的处理,采用备份计算的方法,具体实现步骤如下:对于n个计算节点,数据集对应计算节点个数被划分为n个部分。为了确保备份计算,选择远小于n的数字S,首先把计算节点分为
Figure BDA0002284939040000106
组,并且在基因序列的数据集不相交的情况下为每组指派(S+1)个数据分区。相应地,每一个计算节点需要处理被指派的(S+1)个数据分区。在每一个分组内部,所有的计算节点都根据逻辑回归模型的划分存储相同的(S+1)个数据分区。在每一轮迭代中,同一工作组内所有计算节点的计算任务是相同的。针对每一个工作组,主节点会收集非掉队者发回的数据和它们对应的计算节点的ID。在收到正确的数据结果之前,主节点会等待工作组完成计算以此计算上述
Figure BDA0002284939040000111
这个全局变量。当计算完成时,最后,主节点会杀掉所有的计算任务,并将统计信息传递给系统中的其他计算节点。
如图3所示,为本申请另一实例提供的一种分布式机器学习方法,该方法可应用于本发明中提到的计算节点,具体包括以下步骤:
步骤201,从主节点处获取基因序列的数据块ID对应获取数据块;
当本计算节点空闲的时候,主节点块标识符给本节点获取数据块,从而用于局部梯度的计算。
步骤203,根据两阶段索引算法,将基因序列数据块拆分成对应不同维度的工作集,并将工作集与当前的块标id发送给相应的计算节点。
在本发明中,每个计算节点收到的基因序列的工作集被以哈希图的格式存储。哈希图的键是当前工作集对应的数据块的块标识符。在每个工作集中,一个数据点被它当前的偏移量标识。在对数据点进行采样的时候,每一个计算节点需要先根据一个主节点传递的随机数种子来划分工作集的键。利用同一个随机数种子来进行划分的方法保证了不同计算节点在划分工作集时彼此的规则是相同的。在具体的工作集中,每一个计算节点进一步地用同样的随机数种子来标识不同数据的偏移。这种操作确保了不同的计算节点可以并行定位到某一行数据。
对于计算节点基于块式结构的列分派过程可以描述为以下过程:
Figure BDA0002284939040000112
Figure BDA0002284939040000121
其中,b指的是数据块队列中的一个数据块,K指的是工作集的数量,与计算节点的数量是一致的,r指代工作集中的第r行数据。
步骤205,根据当前工作集计算数据量,并发送给管理节点。
对于数据量的计算,在一具体的实施例中,以开始第c轮迭代为例,以分布式系统中存在n个计算节点为例,假设基因序列数据集包含数据点含有x个维度特征,根据当前节点拥有的工作集,计算数据量的具体过程如下所示意:
Figure BDA0002284939040000122
其中,C是总的迭代次数,
Figure BDA0002284939040000123
表示的是基因序列第j维度的数据量,x表示当前数据集的总长度,z表示当前数据位于的位置。计算节点在计算列对应的局部梯度时,将节点中存储的参数变量与不同数据点在相应列的取值相乘并相加,将计算的结果返回给当前的主节点。
步骤207,根据所述管理节点节点发回的全局变量,更新模型参数。
对于基因序列分类问题的逻辑回归模型参数更新,在一具体的实施例中,以开始第c轮迭代为例,假设分布式系统中存在n个样本点、基因序列数据集包含数据点含有x个维度,根据当前节点拥有的工作集,更新模型参数的具体过程如下所示意:
for c in C:
for i in x:
Figure BDA0002284939040000124
//更新基因序列分类的逻辑回归模型的第i维参数
其中,η表示逻辑回归模型的学习率,yj表示第j个数据点的标签,
Figure BDA0002284939040000131
表示维度j所求得的统计量。每个计算节点收到主节点传回的全局变量,即上述的
Figure BDA0002284939040000132
之后,计算节点根据上述公式对当前对应维度的模型参数进行更新。
步骤209,落后节点处理。
每一回收集到主节点需要的统计信息以后,主节点杀掉所有计算任务。避免系统出现落后者。
通过本发明提供的基于列式计算结构的分布式机器学习的随机梯度下降算法的实现,节省了主节点的内存开销与通讯开销,提高了分布式机器学习系统的性能。
本发明提供一种列划分ColumnSGD的分布式机器学习优化的分类方法和装置,建立分类模型,采用基于列划分ColumnSGD的结构,利用列式划分特性、分布式特性,计算模型梯度,应用于基因序列分类,可提高分类的效率。
在本发明提出的ColumnSGD中,有一个主节点和多个计算节点。ColumnSGD将训练数据和模型使用相同的划分策略进行列式划分。在此情况下,数据和模型相对应的维度是对应放置的。因此我们可以在特征的维度进行并行。
以下算法伪代码展示了ColumnSGD中SGD的执行过程。
Figure BDA0002284939040000141
具体地,主节点首先发指令给所有的计算节点,让他们加载各自的列划分的数据,并且初始化各自的模型,然后迭代开始:
第一步(第5行,14-16行)每个计算节点使用本地的数据块和模型块来计算统计量。不同的模型可能有不同形式的统计量。比如,在逻辑回归中统计量就是向量的内积,而在更复杂的模型比如因子分解机,统计量会更加复杂。
第二步(第6,7行):主节点从计算节点汇合所有的统计量并且将他们广播给所有的计算节点。这个汇合操作通常是两个向量进行求和。
第三步:每个计算节点用它的本地数据块和从主节点收到的统计量来更新模型。模型的更新方法可以是SGD或者他的变种方法,比如Adam等等。
我们进一步的通过将RowSGD与ColumnSGD对比,从理论上分析ColumnSGD的复杂度。因为RowSGD和ColumnSGD的计算开销类似,这里我们只分析他们的存储和通信开销。
假设有一个主节点和K个计算节点。SGD的批量大小是B,模型的维度是m,并且数据的稀疏度是ρ(也就是0的比例)。所以训练数据的大小是S=N+Nm(1-ρ).
RowSGD的分析:在RowSGD中,训练数据按照行切分,每个计算节点存储一块。主节点存储全量模型并且调度所有的计算节点。在执行SGD时,每个计算节点需要处理
Figure BDA0002284939040000151
个数据点。因此,在这
Figure BDA0002284939040000152
个数据点中,有mφ1个非零维度,其中
Figure BDA0002284939040000153
Figure BDA0002284939040000154
主节点需要从所有计算节点收集梯度,在期望上,在B个数据点中,非零维度的个数是mφ2,其中φ2=1-ρB.
RowSGD的存储开销:主节点需要存储整个模型,并且需要维护存储梯度的临时空间。因此,主节点的存储开销是m+mφ2.每个计算节点需要存储一块行式训练数据和一些存储梯度和模型的稀疏向量,因此存储的开销是
Figure BDA0002284939040000155
RowSGD的通信开销:每个计算节点将梯度发送给主节点并且将需要的模型从主节点拉回,因此需要的通信开销是2mφ1.另一方面,主节点从所有的计算节点收取梯度和发送模型,因此它的通信开销是2Kmφ1.
ColumnSGD的分析:ColumnSGD将数据和模型都按照列划分。主节点负责从计算节点汇总和发送所有的统计信息。
ColumnSGD的存储开销:主节点需要有临时空间来收集统计信息,因此它的存储开销是B。在另一方面,计算节点需要存储一部分训练数据和对应的模型。同时计算节点也需要一些临时空间来存储计算出来的统计信息和从模型拉去的统计信息。因此它的存储开销是
Figure BDA0002284939040000156
ColumnSGD的通信开销:主节点从所有的计算节点汇合统计信息并行将汇总的统计信息广播回去,因此主节点的通信开销是2BK,计算节点的通信开销是2B。
表1 RowSGD和ColumnSGD在存储和通信上的开销结果比较
Figure BDA0002284939040000157
表1
表1表明:1)RowSGD中计算节点和ColumnSGD中计算节点的存储开销类似,但是ColumnSGD中的主节点比RowSGD的主节点更加轻量级,因为模型被拆开放到了计算节点上。
2)ColumnSGD中的通信开销只与批量大小有关,但是RowSGD的通信开销则与模型大小,数据稀疏度以及批量大小都有关系。
本发明第二方面提出了一个高效地将行划分数据转换为列划分数据的分布式执行方案。
由于在真实世界中,很多数据都是行存储的,而ColumnSGD假设数据是按照列划分在各个计算节点上的。因为我们提出一个基于block的列式分发方案。
图4展示了基于块的列式分发的工作流程。
第一步:主节点将基于行划分存储的数据组织成一个以块(block)为单位的队列,每个块的大小是用户指定的。
第二步:当一个计算节点空闲时,主节点从队列中取出一个块,并将块的id发给该计算节点。这个计算节点读取该数据块,然后将他分成K份工作集。每个工作集包含这个块中的一个列划分。
第三步:这个计算节点将这些工作集和块的id一起发送给对应的计算节点。为了更好地减少网络开销和序列化开销,我们进一步的使用CSR格式来压缩数据。以下算法详细描述了这一过程。
Figure BDA0002284939040000161
本发明第三方面基于梯度编码理论,解决掉队者问题的解决方案。
掉队者指的是分布式任务中运行较慢的计算节点。掉队者问题会影响整个系统的性能,尤其是在BSP的协议下。ColumnSGD天生执行在BSP架构下,因此我们也为ColumnSGD提出一套解决掉队者问题的方案。
我们使用梯度编码理论来解决ColumnSGD中的掉队者问题,基本想法是用备份计算。具体的,假设有K个计算节点,数据被划分为K份。那么为了支持S-备份的计算(S远远小于K),我们首先将计算节点划分为K/(S+1)组。在每一组内部,所有的节点都作为其他节点的备份---每一个极端节点存储S+1份数据和模型划分。当运行SGD时,每个计算节点利用本地的S+1份数据和模型来计算统计量。然后主节点从较快的计算节点中收集统计信息,直到它能正确恢复算法所需要的信息。最后,主节点杀掉所有的计算任务,并将统计信息广播出去。
图5展示了ColumnSGD使用1-备份的情况。其中,图(a)展示了ColumnSGD在没有备份计算的情况下,每个计算节点只负责一个数据分区和模型分区。图(b)展示了ColumnSGD在1-备份的情况。我们可以看到,这K个计算节点被划分成了K/2组。例如,在第一组中计算节点1和计算节点2互为备份。如果计算节点1成为了掉队者,主节点依然可以通过计算节点2恢复出所需要的统计信息。
总的来说,为了容忍S个掉队者,理论上我们需要S-备份,在这种情况下,内存和计算都会提高S倍。但是,通信开销是不变的,只能批量大小有关。
本发明第四方面提出了在ColumnSGD框架下系统的容错机制。
在ColumnSGD的框架下,系统出错有三种情况:(1)第一种是单个任务失败。在这种情况下,ColumnSGD不需要重新加载数据或者模型,只需要重新启动一个新的任务。(2)第二种是计算节点宕机。在这种情况下,我们需要重新启动一个新的计算节点并且重新加载数据。在这种情况下,我们不对模型做容错,因为SGD本身有很强的容错性。(3)第三种情况是主节点宕机。在这种情况下,我们必须重新启动任务,因为主节点负责做调度任务。
基于上述内容,本发明提供一种基于列示计算结构的分布式机器学习的SGD算法和系统,用以解决在主流分布式机器学习系统如Spark Mlib等中针对体量较大的模型出现的内存开销过大、通讯开销过大的问题。
为了解决上述技术问题,本发明实施例第一方面公开了一种分布式机器学习方法,主要针对主节点的工作,包括:
根据网格搜索算法选择模型对应最佳的学习率和批尺寸;
将基于行划分的数据组织成成以块为单位的队列,其中,块的大小是用户指定的;
向空闲计算节点发送已完成划分数据块的块id;
根据所有计算节点返回的局部梯度信息,计算与更新参数,发送给计算节点。
主节点完成数据收集后,杀死所有计算任务,有效防止落后者问题带来的影响。
本发明实施例第五方面公布了一种分布式机器学习方法,主要针对计算节点的工作,包括:
从主节点处获取数据块;
将数据块拆分成基于列划分的工作集,并且将工作集与当前的块id通过边收边发的方式一起发送给相应的计算节点;
根据当前节点的工作集计算局部梯度,并将局部梯度发送给主节点;
根据所述主节点发回的全局变量,计算维度对应的梯度,并且根据梯度更新模型参数。
本发明实施例第六方面公布了一种节点设备,包括处理器、存储介质、网络模块以及内存,所述存储器存储多条指令以及计算所用数据,所述指令由所述处理器加载并执行;
上述分布式机器学习方法和系统中所涉及的主节点设备与计算节点设备,均为上述的节点设备。
以下是节点设备在整个系统下的使用情况:主节点通过处理器处理,将数据组织成以块为单位的队列,并通过网络接口中将数据块id发送给计算节点设备。计算节点设备通过处理器将基于行划分的计算结构改造成基于列划分的计算结构,并通过网络接口将改为列式结构的数据集以及块id发送给对应的计算节点,为了节约内存开销与通讯开销,计算节点采用边收边发的方式,以块为基本单位进行数据发送。计算节点通过处理器计算出一组可用于主节点生成全局变量的数据并通过输出模块将这组数据发送给主节点。主节点通过网络接口接收各个计算节点计算的数据,通过处理器计算出全局变量,然后将全局变量通过网络接口传递给系统中的所有计算节点。计算节点通过网络接口获得主节点发送的全局变量,相应地,通过处理器计算出负责维度的梯度;每个计算节点从对应的存储器中取出保存的对应维度的模型参数,并根据计算出的梯度对模型参数进行调整,从而更新模型。
图1所示的系统当中的主节点与计算节点内部结构如图6所示,节点包含通过系统总线连接的处理器、存储介质、内存和网络接口。其中,节点的存储介质存储有操作系统、数据库和一种分布式机器学习系统。数据库用于存储本地数据,如计算节点worker存储从主节点master处收到的全局变量。节点的处理器用于提供计算和控制能力,支持整个分布式机器学习系统的运行。节点的内存为存储介质中的分布式机器学习系统提供运行环境。节点的网络接口用于与其他节点通过网络链接通信,比如计算节点worker向主节点master发送自己对应负责更新的部分点积、主节点master向计算节点worker发送全局变量等。
优选的,请参阅图7,在一个实施例中,提供了一种分布式机器学习系统,包括模型参数调整模块11、数据划分模块13、指令发送模块15、全局参数接收模块17和系统更新模块19。模型参数调整模块11用于根据实际情况选择模型的学习率和批尺寸。数据划分模块13用于将数据以块为单位进行封装并排列成队列。指令发送模块15用于向计算节点发送数据块的块id以及局部梯度计算指令。全局参数接收模块17用于接收所有计算节点计算出的对应列的局部梯度。系统更新模块19用于更新系统中的节点。
优选的,请参阅图8,该分布式机器学习系统还包括学习模块18。学习模块主要通过收集到的各个计算节点更新的部分点积和来推算全局变量
Figure BDA0002284939040000191
Figure BDA0002284939040000192
其中1,2,…,z指的是数据块中的数据列。计算出的向量
Figure BDA0002284939040000193
可以被用于更新模型参数。
优选的,请参阅图9,在一个实施例中,提供了一种分布式机器学习系统,包括指令接收模块21、计算结构更新模块23、计算模块25、全局参数接收模块27、学习与更新模块29。指令接收模块21用于接收主节点发送的参数更新指令、请求接收数据块指令。计算结构更新模块23用于将分布式机器学习系统中的行式计算结构改造为列式计算结构。计算模块25用于对当前节点对应的工作集计算上述提到的局部梯度;全局参数接收模块27用来接收主节点根据部分向量和计算出的全局变量;学习与更新模块29用于根据上述27模块中接收到的全局变量计算当前计算节点对应的维度的参数更新。
优选的,请参考图1,在一个实施例中,提供了主节点master与计算节点worker协同工作把数据从行式计算结构改造为列式计算结构的具体过程。整个系统的工作步骤如图所示:
步骤301,主节点master将基于行划分存储的数据组织成以块为单位的队列;
步骤303,主节点master根据计算节点worker的工作状况(是否空闲),把数据块id指派给不同的空闲计算节点worker;
步骤305,计算节点worker对数据块利用两阶段索引算法将数据块拆分成数据集并对应分发给各个相应计算节点。
具体地,计算节点把数据点拆分成多个数据集,利用主节点发送的随机数种子计算数据与计算节点的对应关系,将数据集发送给对应计算节点。两阶段索引算法指的是,将数据块发送给其他计算节点时,首先附上原数据的块标识符来标识它的来源;其次,在每一个工作集中,一条具体数据被它对应的偏移量标识,偏移量的键同样用主节点发送的随机数种子来生成。数据集以哈希图的形式存储。为了避免内存开销增长与节省通讯开销,本发明设计了一种基于块式结构的数据分派策略。相比于传统的以行为基本分派单位,数据将以块为单位进行拆分,并以块为单位进行洗牌操作。通过边处理边分派的模式节约了内存开销,并通过以块为单位统一进行分派的模式节约了通讯开销。
优选的,请参阅图10,在一个实施例中,提供了针对逻辑回归模型使用本发明提供的列示计算结构实行SGD算法调整模型时,系统内部的具体执行过程。其中,worker1、worker2表示本系统中唯二的两个计算节点,数据点的数据存储维度为2。原本的四个数据点
Figure BDA0002284939040000201
在经过两阶段索引算法以后,分别指派参数
Figure BDA0002284939040000202
给计算节点worker1,指派参数
Figure BDA0002284939040000203
Figure BDA0002284939040000204
给计算节点worker2。整个模型更新的完成步骤如图所示:
步骤401,计算节点worker1和worker2分别求出部分点积和
Figure BDA0002284939040000211
其中
Figure BDA0002284939040000212
其中,
Figure BDA0002284939040000213
Figure BDA0002284939040000214
其中i表示数据点的具体选择。
步骤403,计算节点worker1、worker2分别把计算的
Figure BDA0002284939040000215
返回给主节点master;
步骤405,主节点master利用公式
Figure BDA0002284939040000216
计算出全局变量
Figure BDA0002284939040000217
步骤407,计算节点worker1、worker2从master上拉取全局变量
Figure BDA0002284939040000218
步骤409,计算节点worker1、worker2分别利用
Figure BDA0002284939040000219
更新自己对应维度的参数,其中,
Figure BDA00022849390400002110

Claims (10)

1.一种基于列划分的分布式机器学习优化的分类方法,采用基于列划分的分布式随机梯度下降SGD方法,称为ColumnSGD,对多维度序列数据进行分类;所述多维度序列数据包括基因序列数据;所述ColumnSGD方法包括:建立分布式机器学习系统的容错机制、建立基于列划分的分布式SGD模型,通过采用将行划分数据转换为列划分数据的高效算法,并基于梯度编码提出模型掉队者问题的解决方法,实现高效分类;包括如下步骤:
1)建立包括一个主节点和多个计算节点的分布式机器学习系统,该系统具有随机梯度下降的容错机制;
2)建立基于列划分的分布式SGD模型;将多维度数据和基于列划分的分布式SGD模型使用相同的划分策略进行列式划分,得到拆分成多个维度的多条数据;所述划分策略采用基于块的列式分发方法,具体执行如下操作:
第一步:主节点将基于行划分存储的多维度数据或模型组织成一个以块为单位的序列数据块与模型块的顺序队列,每个块的大小可指定;
第二步:当一个计算节点空闲时,主节点从顺序队列中取出一个数据块,计算节点读取该数据块,分成K份工作集;每个工作集包含数据块中的一个列划分;
第三步:该计算节点将K份工作集和该数据块的id一起发送给对应的计算节点;
3)主节点发指令给所有的计算节点,加载各自的列划分的数据,并初始化建立基于列划分的分布式SGD模型,进行迭代计算;包括如下步骤:
第一步:每个计算节点使用本地的数据块和模型块来计算统计量;
第二步:主节点从计算节点汇合所有的统计量,并广播给所有的计算节点;
第三步:主节点通过备份计算对系统中的掉队者进行处理;所述掉队者为未在设定时间完成计算任务的计算节点;所述备份计算是指多个计算节点同时计算同一统计量;
第四步:每个计算节点根据本地数据块和从主节点收到的统计量更新模型;
4)完成一轮迭代,重复步骤3)中的迭代计算,直到达到停止条件,即得到模型参数和训练好的序列分类模型;
5)使用训练好的序列分类模型对多维度序列数据进行分类;
通过上述步骤,实现基于列划分的分布式机器学习优化的序列分类。
2.如权利要求1所述基于列划分的分布式机器学习优化的分类方法,其特征是,根据用于基因序列分类的多维度数据,建立基因序列分类模型,采用所述基于列划分的分布式机器学习优化的分类方法对建立基因序列分类模型进行训练,得到训练好的基因序列分类模型;再利用基因序列分类模型对基因序列进行分类;包括如下步骤:
将待分类的基因序列测试集数据输入分布式机器学习系统的计算节点中;
计算节点将输入的基因序列填入训练好的基因序列分类模型中,计算得到基因序列的类别概率;
根据计算得到的类别概率,确定该基因序列所属的类别为概率最大的类别;
通过上述步骤,实现基于列划分的分布式机器学习优化的基因序列分类。
3.如权利要求2所述基于列划分的分布式机器学习优化的分类方法,其特征是,具体使用逻辑回归模型,利用点积作为统计量,使用梯度更新方法更新所述逻辑回归模型。
4.如权利要求1所述基于列划分的分布式机器学习优化的分类方法,其特征是,步骤1)所述容错机制包括对以下情况的处理:
若检查发现单个任务失败,则重启单个任务;
若发现计算节点宕机,则重新启动一个新的计算节点并且重新加载数据;
若主节点宕机,则重新启动任务。
5.如权利要求1所述基于列划分的分布式机器学习优化的分类方法,其特征是,步骤2)进行列式划分得到拆分成多个维度的多条数据,进一步使用压缩稀疏行格式压缩数据。
6.如权利要求1所述基于列划分的分布式机器学习优化的分类方法,其特征是,步骤3)第二步中,汇合所有的统计量具体是将计算节点的统计量进行向量求和。
7.如权利要求1所述基于列划分的分布式机器学习优化的分类方法,其特征是,步骤3)第三步中,将计算节点划分为K/(S+1)组,其中K为计算节点的数量;S为备份的数量,在每一组内部,所有的计算节点均作为其他计算节点的备份,每一个计算节点存储S+1份数据划分和模型划分。
8.如权利要求1所述基于列划分的分布式机器学习优化的分类方法,其特征是,步骤3)第四步中,采用包括SGD和Adam更新模型。
9.一种基于列划分的分布式机器学习优化的分类装置,包括:由一个主节点和多个计算节点组成的分布式学习系统、主节点工作模块与计算节点工作模块;
其中,主节点工作模块包括以下子模块:
模型参数调整模块,用于根据网格搜索算法选择逻辑回归模型的最佳的逻辑回归模型学习率;
数据划分模块,用于将基于行划分的序列数据组织成以数据块为单位的数据队列;
指令发送模块,用于向计算节点发送数据块的块id以及数据计算指令,此处提及的数据计算指由计算节点计算得到的用于计算梯度的统计量;
全局参数接收模块,用于接收所有计算节点计算出的对应列的统计量;
学习模块,根据算法对从所有计算节点收到的局部梯度进行汇总计算,得到新用于计算逻辑回归模型梯度的全局变量;
更新参数发送模块,用于将上述更新得到的全局变量发送至各个计算节点,便于计算节点计算梯度与更新逻辑回归模型参数;
系统更新模块,采用备份计算的算法对计算节点中的掉队者处理,即令同一组内的计算节点互为备份,保存相同数据集、进行运算并将运算结果发送给主节点;在主节点完成数据收集之后,杀掉所有计算任务,将统计信息广播出去。
计算节点工作模块包括以下子模块:
指令接收模块,用于接收当前主节点发送的指令获取;
计算结构更新模块,用于将分布式机器学习系统原本的按行划分的计算结构改造为按列列分的计算结构;
计算模块,用于计算梯度的统计量;
全局参数接收模块,用于接收由主节点汇总统计量得到的用于更新梯度的全局变量;
学习与更新模块,用于根据主节点发送的全局变量计算梯度与利用梯度更新逻辑回归模型参数。
10.如权利要求9所述一种基于列划分的分布式机器学习优化的分类装置,其特征是,所述基于行划分的序列数据具体为基于行划分的基因序列数据,所述分类装置用于基因序列分类。
CN201911156466.XA 2019-11-22 2019-11-22 一种基于列划分的分布式机器学习优化的分类方法及装置 Active CN110929884B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911156466.XA CN110929884B (zh) 2019-11-22 2019-11-22 一种基于列划分的分布式机器学习优化的分类方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911156466.XA CN110929884B (zh) 2019-11-22 2019-11-22 一种基于列划分的分布式机器学习优化的分类方法及装置

Publications (2)

Publication Number Publication Date
CN110929884A true CN110929884A (zh) 2020-03-27
CN110929884B CN110929884B (zh) 2023-05-16

Family

ID=69850731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911156466.XA Active CN110929884B (zh) 2019-11-22 2019-11-22 一种基于列划分的分布式机器学习优化的分类方法及装置

Country Status (1)

Country Link
CN (1) CN110929884B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111444026A (zh) * 2020-04-20 2020-07-24 北京工业大学 一种云环境下的深度学习训练资源配置预测方法
CN111814968A (zh) * 2020-09-14 2020-10-23 北京达佳互联信息技术有限公司 用于机器学习模型的分布式训练的方法和装置
CN112101266A (zh) * 2020-09-25 2020-12-18 重庆电政信息科技有限公司 基于多arm的动作识别模型分布式推理方法
CN112862111A (zh) * 2021-04-26 2021-05-28 之江实验室 一种加速分布式机器学习梯度汇聚的方法和装置
CN113608722A (zh) * 2021-07-31 2021-11-05 云南电网有限责任公司信息中心 一种基于分布式技术的算法封装方法
CN114398949A (zh) * 2021-12-13 2022-04-26 鹏城实验室 一种脉冲神经网络模型的训练方法、存储介质及计算设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130290223A1 (en) * 2012-04-27 2013-10-31 Yahoo! Inc. Method and system for distributed machine learning
CN105843555A (zh) * 2016-03-18 2016-08-10 南京邮电大学 分布式存储中基于随机梯度下降的谱哈希方法
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统
WO2017139534A1 (en) * 2016-02-12 2017-08-17 Google Inc. Systems and methods for robust large-scale machine learning
CN107609652A (zh) * 2017-08-30 2018-01-19 第四范式(北京)技术有限公司 执行机器学习的分布式系统及其方法
US20180219842A1 (en) * 2017-01-31 2018-08-02 Hewlett Packard Enterprise Development Lp Performing Privacy-Preserving Multi-Party Analytics on Vertically Partitioned Local Data
CN108829517A (zh) * 2018-05-31 2018-11-16 中国科学院计算技术研究所 一种用于在集群环境下进行机器学习的训练方法和系统
CN109032671A (zh) * 2018-06-25 2018-12-18 电子科技大学 一种基于数据并行策略的分布式深度学习方法及系统
US20190019104A1 (en) * 2017-07-12 2019-01-17 Sap Se Distributed Machine Learning On Heterogeneous Data Platforms
CN109754060A (zh) * 2017-11-06 2019-05-14 阿里巴巴集团控股有限公司 一种神经网络机器学习模型的训练方法及装置
CN110321223A (zh) * 2019-07-03 2019-10-11 湖南大学 Coflow协同作业流调度感知的数据流划分方法与装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130290223A1 (en) * 2012-04-27 2013-10-31 Yahoo! Inc. Method and system for distributed machine learning
WO2017139534A1 (en) * 2016-02-12 2017-08-17 Google Inc. Systems and methods for robust large-scale machine learning
CN108475349A (zh) * 2016-02-12 2018-08-31 谷歌有限责任公司 用于稳健的大规模机器学习的系统和方法
CN105843555A (zh) * 2016-03-18 2016-08-10 南京邮电大学 分布式存储中基于随机梯度下降的谱哈希方法
US20180219842A1 (en) * 2017-01-31 2018-08-02 Hewlett Packard Enterprise Development Lp Performing Privacy-Preserving Multi-Party Analytics on Vertically Partitioned Local Data
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统
US20190019104A1 (en) * 2017-07-12 2019-01-17 Sap Se Distributed Machine Learning On Heterogeneous Data Platforms
CN107609652A (zh) * 2017-08-30 2018-01-19 第四范式(北京)技术有限公司 执行机器学习的分布式系统及其方法
CN109754060A (zh) * 2017-11-06 2019-05-14 阿里巴巴集团控股有限公司 一种神经网络机器学习模型的训练方法及装置
CN108829517A (zh) * 2018-05-31 2018-11-16 中国科学院计算技术研究所 一种用于在集群环境下进行机器学习的训练方法和系统
CN109032671A (zh) * 2018-06-25 2018-12-18 电子科技大学 一种基于数据并行策略的分布式深度学习方法及系统
CN110321223A (zh) * 2019-07-03 2019-10-11 湖南大学 Coflow协同作业流调度感知的数据流划分方法与装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
RASHISH TANDON: "Gradient Coding: Avoiding Stragglers in Distributed Learning", 《PROCEEDINGS OF THE 34TH INTERNATIONAL CONFERENCE ON MACHINE LEARNING》 *
卓金武: "《MATLAB 数学建模方法与实践》", 31 July 2018 *
天禧68: "数据与模型并行", 《简书,HTTPS://WWW.JIANSHU.COM/P/9C3242152850》 *
郝卫东: "《云计算及其实践教程》", 31 July 2014 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111444026A (zh) * 2020-04-20 2020-07-24 北京工业大学 一种云环境下的深度学习训练资源配置预测方法
CN111814968A (zh) * 2020-09-14 2020-10-23 北京达佳互联信息技术有限公司 用于机器学习模型的分布式训练的方法和装置
CN111814968B (zh) * 2020-09-14 2021-01-12 北京达佳互联信息技术有限公司 用于机器学习模型的分布式训练的方法和装置
CN112101266A (zh) * 2020-09-25 2020-12-18 重庆电政信息科技有限公司 基于多arm的动作识别模型分布式推理方法
CN112101266B (zh) * 2020-09-25 2024-09-17 重庆电政信息科技有限公司 基于多arm的动作识别模型分布式推理方法
CN112862111A (zh) * 2021-04-26 2021-05-28 之江实验室 一种加速分布式机器学习梯度汇聚的方法和装置
CN113608722A (zh) * 2021-07-31 2021-11-05 云南电网有限责任公司信息中心 一种基于分布式技术的算法封装方法
CN114398949A (zh) * 2021-12-13 2022-04-26 鹏城实验室 一种脉冲神经网络模型的训练方法、存储介质及计算设备

Also Published As

Publication number Publication date
CN110929884B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
CN110929884B (zh) 一种基于列划分的分布式机器学习优化的分类方法及装置
Rajput et al. DETOX: A redundancy-based framework for faster and more robust gradient aggregation
Korkmaz et al. Chain fl: Decentralized federated machine learning via blockchain
US9558036B1 (en) Evolving parallel system to automatically improve the performance of multiple concurrent tasks on large datasets
Yu et al. Double quantization for communication-efficient distributed optimization
US10496375B2 (en) Random number generator in a parallel processing database
Jiang et al. Dimboost: Boosting gradient boosting decision tree to higher dimensions
CN110225074B (zh) 一种基于设备地址域的通讯报文分发系统及分发方法
CN104036029B (zh) 大数据一致性对比方法和系统
CN109739919B (zh) 一种用于电力系统的前置机和采集系统
CN112052404B (zh) 多源异构关系网络的群体发现方法、系统、设备及介质
US10977280B2 (en) Systems and methods for memory optimization interest-driven business intelligence systems
CN108986872B (zh) 用于大数据电子病历约简的多粒度属性权重Spark方法
CN103164261A (zh) 多中心数据任务处理方法、装置及系统
WO2014052942A1 (en) Random number generator in a parallel processing database
US8880481B1 (en) Inverse distribution function operations in a parallel relational database
Gu et al. Chronos: An elastic parallel framework for stream benchmark generation and simulation
JPWO2008056670A1 (ja) 資源情報提供システム、方法、資源情報提供装置、およびプログラム
CN107273339A (zh) 一种任务处理方法及装置
CN111428140B (zh) 高并发数据检索方法、装置、设备及存储介质
CN106452829B (zh) 一种基于bcc-knn的云计算中心智能运维方法及系统
CN112799852B (zh) 逻辑节点的多维sbp分布式签名决策系统及其方法
US20220100726A1 (en) Real time data aggregation and analysis
Ji et al. An apache spark implementation of block power method for computing dominant eigenvalues and eigenvectors of large-scale matrices
CN110851282B (zh) 一种基于内存网格的分布式数据计算方法及系统

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