CN106156810B - 通用机器学习算法模型训练方法、系统和计算节点 - Google Patents
通用机器学习算法模型训练方法、系统和计算节点 Download PDFInfo
- Publication number
- CN106156810B CN106156810B CN201510206401.7A CN201510206401A CN106156810B CN 106156810 B CN106156810 B CN 106156810B CN 201510206401 A CN201510206401 A CN 201510206401A CN 106156810 B CN106156810 B CN 106156810B
- Authority
- CN
- China
- Prior art keywords
- model
- calculate node
- parameter
- copy
- division
- 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
Links
Landscapes
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种通用机器学习算法模型训练方法、系统和计算节点,在初始化时,将所述机器学习算法模型划分为m个模型分区,将每个模型分区副本配置到一个对应的计算节点,计算节点根据配置的模型分区副本,获取输入数据对模型分区副本进行计算;计算节点将计算得到的模型参数信息上传到对应的参数服务器,参数服务器根据得到的模型参数信息计算模型参数,计算节点从参数服务器获取模型参数更新本地的模型参数。本发明的系统包括配置设备、计算节点和参数服务器,计算节点包括输入输出单元、计算单元和同步单元。本发明与具体机器学习算法无关,计算效率高。
Description
技术领域
本发明属于人工智能技术领域,尤其涉及一种通用机器学习算法模型训练方法、运行该方法的系统和计算节点。
背景技术
机器学习是人工智能的一个分支,而在很多时候,几乎成为人工智能的代名词。简单来说,机器学习就是通过机器学习算法模型,使得机器能从大量历史数据中学习规律,从而对新的样本做智能识别或对未来做预测。
机器学习的一般过程是从输入数据(输入数据)中计算出机器学习算法模型参数,根据计算得到的模型参数形成机器算法模型,并对新的样本做智能识别或对未来做预测。在训练模型参数时,如果输入数据较少,可以由单个计算装置处理完成,并且计算得到的模型参数无需交换。但是在很多现实应用中,输入数据非常大,必须由多台计算装置同时处理才能在合理的时间内完成计算,因此必须互相交换模型参数,而交换模型参数有参数服务器来收集参数进行汇总和分发。如何在工程上利用大规模的并行计算平台来实现海量数据训练,是从事机器学习技术研发首先要解决的问题。
传统的大数据平台如Hadoop,由于数据处理的延迟太高,显然不适合需要频繁迭代的深度学习等机器学习算法。例如,现有成熟的DNN训练技术大都是采用随机梯度法(SGD)方法训练的,这种方法本身不可能在多个计算机之间并行。即使是采用GPU进行传统的DNN模型进行训练,其训练时间也是非常漫长的,一般训练几千小时的声学模型就需要几个月的时间。而随着互联网服务的深入,海量数据训练越来越重要,DNN这种缓慢的训练速度必然不能满足互联网服务应用的需要。近年来Google搭建的DistBelief、微软的Minerva、Twitter的Factorbird加快了模型训练速度,然而他们都是为一种特定机器学习算法而设计的,不能运行其它算法,例如只能用于深度学习或者矩阵分解,不具有通用性。Google的DistBelief只支持CPU服务器用于训练,不支持GPU服务器,对于计算密度非常高的,服务器的通信成本相对于计算量的比例很高,训练一个模型需要上万个CPU芯片内核运行数周乃至数月。微软的Minerva支持GPU,但是其编程模型和接口是只为深度学习而设计的,即只能表示由层与层之间的连接组合而成的深度学习模型,不能表示其他常见机器学习模型,例如逻辑回归、语义主题模型、支持向量机和矩阵分解等。Twitter的Factorbird的矩阵分解模型的参数是稀疏的,存储为键值对,因此密集参数模型的存储、网络传输和模型计算效率非常低。同时一家公司内同时应用多种机器学习算法就不得不重复开发,造成开发运维人员资源浪费。
同时现有技术的参数服务器相对于整个集群是集中式的,参数服务器要同时负责所有模型副本的整个模型的参数更新,因此模型参数传输是同步阻塞的,传输时无法计算,处于空闲等待状态。这对于参数个数高达上百亿的模型来说,无论是网络传输效率还是参数服务器的计算效率来说都是不具有可扩展性的。
发明内容
本发明的目的是提供一种通用机器学习算法模型训练方法、系统和计算节点,以解决现有技术的训练方法及系统只能对特定机器学习算法进行训练,并且计算效率不高的技术问题。
为了实现上述目的,本发明技术方案如下:
一种通用机器学习算法模型训练方法,在初始化时,将所述机器学习算法模型划分为m个模型分区,再将划分为m个模型分区的机器学习算法模型复制为n个模型副本,使得每个模型分区对应有n个模型分区副本,将每个模型分区副本配置到一个对应的计算节点,同一模型副本的各模型分区对应的计算节点按照模型分区在模型副本中的位置结构分步骤进行计算,模型分区计算节点之间根据数据输出和输入关系形成有向无环图,相同模型分区对应的计算节点对应至少一个参数服务器;并将原始输入数据划分为至少n份,将每份原始输入数据分别分发到各个模型副本的计算节点进行计算;
所述训练方法包括步骤:
计算节点根据配置的模型分区副本,获取输入数据对模型分区副本进行计算;
计算节点将计算得到的模型参数信息上传到对应的参数服务器,参数服务器根据得到的模型参数信息计算模型参数,计算节点从参数服务器获取模型参数更新本地的模型参数。
其中,当计算节点处于所述有向无环图的最前端时,所述计算节点获取的输入数据为分配的原始输入数据;当计算节点处于所述有向无环图的其他位置时,所述输入数据为该计算节点前面步骤计算节点计算得到的中间数据。
进一步地,所述计算节点获取的每份原始输入数据还被划分为至少一批,计算节点每一次处理一批输入数据;
则所述计算节点将计算得到的模型参数信息上传到对应的参数服务器,具体包括步骤:
所述计算节点分别对输入的每一批输入数据进行计算,每处理一批输入数据为一次迭代计算;
每隔设定的第一迭代次数阈值,所述计算节点向对应的参数服务器传输本地计算得到的模型参数信息;
所述计算节点从参数服务器获取模型参数更新本地的模型参数,具体包括步骤:
每隔设定的第二迭代次数阈值,所述计算节点从对应的参数服务器获取模型参数更新本地的模型参数。
本发明中,不同计算步骤前一步骤输出结果异步发送后续步骤,前一步骤开始输出结果的传输后,不等待输出结果完成传输和后续步骤的处理即可开始下一迭代。从而不同模型分区计算节点的计算与数据传输时间重叠,提高了计算并行性和计算效率。
本发明所述计算节点将计算得到的模型参数信息上传到对应的参数服务器,还包括步骤:
采用设定的过滤方法对上传的参数信息进行过滤,过滤掉已经学习到的模型参数信息,传输更加高效。
本发明还提出了一种通用机器学习算法模型训练方法,应用于对机器学习算法模型进行训练的计算节点,在初始化时,将所述机器学习算法模型划分为m个模型分区,再将划分为m个模型分区的机器学习算法模型复制为n个模型副本,使得每个模型分区对应有n个模型分区副本,将每个模型分区副本配置到一个对应的计算节点,同一模型副本的各模型分区对应的计算节点按照模型分区在模型副本中的位置结构分步骤进行计算,模型分区计算节点之间根据数据输出和输入关系形成有向无环图,相同模型分区对应的计算节点对应至少一个参数服务器;并将原始输入数据划分为至少n份,将每份原始输入数据分别分发到各个模型副本的计算节点进行计算;
所述训练方法包括步骤:
根据配置的模型分区副本,获取输入数据对自身配置的模型分区副本进行计算;
将计算得到的模型参数信息上传到对应的参数服务器;
从对应的参数服务器获取模型参数更新本地的模型参数。
本发明还提出了一种通用机器学习算法模型训练系统,所述训练系统包括配置设备、计算节点和参数服务器,其中:
所述配置设备用于接收机器学习算法模型和输入数据,将接收的机器学习算法模型划分为m个模型分区,再将划分为m个模型分区的机器学习算法模型复制为n个模型副本,使得每个模型分区对应有n个模型分区副本,将每个模型分区副本配置到一个对应的计算节点,同一模型副本的各模型分区对应的计算节点按照模型分区在模型副本中的位置结构分步骤进行计算,模型分区计算节点之间根据数据输出和输入关系形成有向无环图,相同模型分区对应的计算节点对应至少一个参数服务器;还将原始输入数据分成至少n份,将每份原始输入数据分别分发到各个模型副本的计算节点进行计算;
所述计算节点用于根据配置的模型分区副本,获取输入数据对模型分区副本进行计算,将计算得到的模型参数信息上传到对应的参数服务器,并从参数服务器获取模型参数更新本地的模型参数;
所述参数服务器用于根据接收的模型参数信息计算出当前模型参数,并响应计算节点的请求,下发当前模型参数。
本发明还提出了一种通用机器学习算法模型训练计算节点,所述计算节点被配置于对所述机器学习算法模型的一个模型分区副本进行训练,其中所述机器学习算法模型被划分为m个模型分区,划分为m个模型分区的机器学习算法模型被复制为n个模型副本,使得每个模型分区对应有n个模型分区副本,每个模型分区副本被配置到一个对应的计算节点,同一模型副本的各模型分区对应的计算节点按照模型分区在模型副本中的位置结构分步骤进行计算,模型分区计算节点之间根据数据输出和输入关系形成有向无环图,相同模型分区对应的计算节点对应至少一个参数服务器;并且所述机器学习算法模型的原始输入数据被划分为至少n份,将每份原始输入数据分别分发到各个模型副本的计算节点进行计算;
所述计算节点包括输入输出单元、计算单元和同步单元,其中:
所述输入输出单元,用于获取输入数据,将输入数据进行缓存并发送到计算单元进行计算,并接收计算单元计算得到的模型参数信息发送给对应的参数服务器,以及接收计算单元计算得到的中间数据发送给后续步骤计算节点;
所述计算单元,用于根据配置的模型分区副本,采用输入数据对模型分区副本进行计算;
所述同步单元,用于向对应的参数服务器请求当前的模型参数,更新本地的模型参数。
本发明提出的机器学习算法模型的训练方法、系统和计算节点,将整个机器学习算法模型分解为多个较小的模型分区,为每个模型分区复制多个模型分区副本分别用于输入数据的并行性计算,最多可以运行上万台计算节点,CPU内核数达到数十万,用于训练千亿级样本和数百亿维度的特征,模型参数个数可以达到百亿级。现有技术需要数周到数月训练的模型,本发明只需要数小时到数天即可完成模型训练。其中,参数服务器与实际负责模型训练的计算节点一样是按照模型参数进行分区的,即每个模型分区的参数服务器只负责更新该模型分区的计算节点计算出的模型参数,并和跟该模型分区有数据依赖关系的其他分区的参数服务器交换彼此依赖的那些模型部分的更新。因此,本发明可以支持参数个数多达百亿级的大型模型的训练,而且整个模型的训练迭代时间只等于最慢的模型分区的训练迭代时间加上与依赖参数交换时间。所有参数服务器之间的模型参数传输都是异步网络通信,网络通信时间与计算时间完全重叠,参数服务器几乎总是处于计算状态,而不会空闲地等待数据到达,平均等待时间占总的训练时间的比例不到2%。本发明的计算同时支持CPU和GPU服务器计算和传输模型参数,而且编程模型和接口是通用的,模型参数既可以是密集的,也可以是稀疏的,参数存储是通用的,只要是基于迭代式参数更新的模型均可以通过参数服务器框架进行训练。本发明是通用的分布式训练框架,与具体机器学习算法无关。
现有技术的参数传输是全量的,传输和参数更新计算的数据量过大。本发明的参数信息处理技术可以随着训练时间的增加过滤掉越来越多的不包含模型已经学习到信息的参数信息,最多可以过滤掉超过97%以上的参数信息,从而极大地节省模型参数信息网络传输和更新所需的时间。例如梯度绝对值大于设定的阈值、随机抽样、模型参数信息缓存和压缩等。本发明的参数信息过滤压缩技术按照比之前的模型新增信息量的标准过滤掉冗余的参数信息,避免了不必要的传输和计算。
附图说明
图1为本发明机器学习算法模型的训练方法流程图;
图2为本发明实施例模型分区结构示意图;
图3为本发明机器学习算法模型训练系统结构示意图;
图4为本发明机器学习算法模型训练计算节点结构示意图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
本实施例的通用机器学习算法模型训练方法及系统适用于所有机器学习算法的训练,特别是对于海量输入数据的机器学习算法训练,例如用来训练输入数据达到数百万的语音识别声学模型。本发明将机器算法模型划分为多个模型分区,通过计算集群分布式并行计算来得到模型参数,其中计算集群可以是一个或多个物理设备,如包括一个或多个中央处理器(CPU)的服务器计算机、桌面计算机等形式,或包括一个或多个图像处理单元(GPU)的服务器计算机。
如图1所示,对于需要进行训练的机器学习算法模型,将其划分为m个模型分区,再将划分为m个模型分区的机器学习算法模型复制为n个模型副本,使得每个模型分区对应有n个模型分区副本,将每个模型分区副本配置到一个对应的计算节点。每一列模型分区副本是相同的模型分区,每个模型分区副本对应一个计算节点,每一列的计算节点组成一个计算节点组;每一行的m个模型分区副本对应一个完整的机器学习算法模型副本(简称模型副本)。
面向大数据的机器学习,采用分布式计算是行之有效的方法。本实施例将机器学习算法模型拆分为m个模型分区(partiton),每个模型分区对应各自的模型参数,采用对应的一个计算节点来进行迭代计算。例如输入的机器学习算法模型是人工神经网络,假设该神经网络具有m层,则经过拆分,每一层对应一个模型分区,由一个计算节点进行计算。又如,维度很高的矩阵分解算法的模型分区,假设矩阵维度为A*B,其分解后的因子矩阵的维度为A*K和K*B,将原始高维度矩阵拆分为m个维度为(A/m)*B,左边因子矩阵拆分为m个维度为(A/m)*K的子矩阵,右边因子矩阵分解为p个维度为K*(B/p)的子矩阵,原始矩阵和左边因子矩阵的m个子矩阵由m个计算节点进行计算,右边因子矩阵由p个参数服务器进行计算,m个计算节点通过p个参数服务器共享和更新右边因子矩阵。
同时将每个模型分区复制为n个模型分区副本,每个模型分区副本都对应一个计算节点,这样每个模型分区就有n个计算节点来进行模型并行计算,而机器学习算法模型有n*m个计算节点来进行计算。也相当于将机器学习算法模型复制为n个模型副本,然后按照相同的方式将每个模型副本分割为多个模型分区。不同模型副本在不同的输入数据上进行数据并行计算。本实施例中n、m均大于等于1。
需要说明的是,本实施例中的计算节点包括至少一台物理计算设备,对于比较复杂的模型分区,还可以将该模型分区继续划分为更小的模型分区,每个更小的模型分区对应一个计算设备。例如可以将partition1划分为partition11、partition12、partition13,分别对应各自的计算设备,三个计算设备分别对不同的更小的模型分区进行计算。容易理解的是,当partition1划分为多个更小的模型分区后,图2中第一列partition1对应的计算节点的计算设备数量将增加,如果partition1对应的模型分区划分为3个更小的模型分区,则第一列的计算设备数量将变为3n。
本技术领域技术人员可以按照本发明的方法对模型分区进行进一步的细分,通过更多的计算设备来分布式地进行模型训练,以下不再赘述。
通过上述配置,每一行的计算节点可以完成一整个模型副本对于原始输入数据的训练,并且同时具有n行计算节点进行并行的计算,每一行的计算节点可以单独完成一份原始输入数据的训练。因此,在本实施例中将原始输入数据分为至少n份(原始输入数据是用来训练的训练样本),分别分发到各个模型副本对应的m个模型分区计算节点来分布式计算模型参数。本实施例每份输入数据之间可以有部分数据重叠,也可以不重叠,根据实际情况而定,本发明对此不作限制。每个模型副本的计算节点对应一份输入数据,通过每个模型副本对应的m个模型分区计算节点来分布式计算对应的模型参数,从而对海量的输入数据进行分布式计算。在一份输入数据计算完成后,如果有多余的输入数据,则继续分发进行计算。
如图2所示,本实施例通用机器学习算法模型训练方法的训练过程包括如下步骤:
步骤S1、计算节点根据配置的模型分区副本,获取输入数据对模型分区副本进行计算。
同一模型副本的各模型分区对应的计算节点按照模型分区在模型副本中的位置结构分步骤进行计算,每一模型分区对应一个步骤。根据模型分区之间的内部联系,模型分区之间根据数据输出和输入关系形成有向无环图,例如根据神经网络的层和层之间的连接先后顺序进行排列,每一步骤计算后的中间数据输出到后续的步骤,后续的步骤可以是零个、一个或多个,后续步骤的输入数据是前面步骤输出的中间数据,后续步骤内部缓存前面步骤输出的中间数据,前面步骤完成中间数据的输出传输后,不等待后续步骤的处理即可开始下一迭代。如图1所示,模型副本1对应的原始输入数据分发给模型副本1partition1,partition1迭代计算完成后发给下一个模型分区来进行迭代计算。partition1~partition m分别表示一个完整的计算的不同步骤,先完成步骤输出的中间数据传输给后续步骤,模型分区之间根据机器学习算法模型的内部结构组成一个完整的计算,不同步骤之间依据机器学习算法模型的位置结构依次迭代计算。
例如partition1迭代计算完成后传输给partition2,partition2迭代计算完成后传输给partition3,以此类推。本发明并不限于模型分区之间这样的线性排列关系,模型分区之间按照中间数据输入和输出关系形成有向无环图。可见在一个模型副本的多个模型分区副本中,不仅具有直接获取原始输入数据进行计算的计算节点,即位于有向无环图最前端的计算节点,也有接收其他计算节点输出的中间数据进行计算的计算节点,即有向无环图中的其他计算节点,共同完成一个完整的机器学习算法模型的训练过程。
进一步地,模型分区计算节点在迭代计算时,还可以将每份输入数据随机打乱顺序后或保留原始顺序并按照计算过程中不超过一个计算节点内存为标准分为至少一批,分批进行迭代计算。模型分区计算节点在计算时,每次迭代处理一批输入数据,在当前批次输入数据计算完成后,计算结果通过异步网络通信发送给下一个模型分区计算节点进行计算,而模型分区计算节点本身则进行下一批输入数据的计算。
容易理解的是,现有技术的计算之间存在依赖,后续步骤计算需要等待最慢的较早步骤计算完成。而本实施例不同计算步骤前一步骤输出结果异步发送后续步骤,前一步骤开始输出结果的传输后,不等待输出结果完成传输和后续步骤的处理即可开始下一迭代。从而不同模型分区计算节点的计算与数据传输时间重叠,提高了计算并行性和计算效率。
步骤S2、计算节点将计算得到的模型参数信息上传到对应的参数服务器,参数服务器根据得到的模型参数信息计算模型参数,计算节点从参数服务器获取模型参数更新本地的模型参数。
每个模型分区计算节点对输入数据进行迭代计算,每隔一定迭代次数(如第一迭代次数阈值),向参数服务器传输本地计算得到的模型参数信息。模型参数信息是表示模型参数的信息,例如是模型参数的差值,或模型参数的梯度值。
本实施例在向参数服务器传输本地计算得到的模型参数信息时,还可以根据设定的参数信息处理方法,例如梯度绝对值大于设定的阈值、随机抽样、模型参数信息缓存和压缩等,过滤掉模型已经学习到的模型参数信息,选择将全部或部分的模型参数信息高效地传输给参数服务器。
本发明的参数服务器为至少一台服务器,或者是一个服务器集群,但是相同的模型分区即一个计算节点组对应至少一个参数服务器。优选地,如图1所示,为相同模型分区副本分别设置有一个参数服务器。例如模型副本1对应有模型副本1 partition1~模型副本1 partition m,模型副本1partition1~模型副本n partition 1对应一个参数服务器1;模型副本2对应有模型副本2partition1~模型副本2 partition m,模型副本1partition2~模型副本n partition 2对应一个参数服务器2。各参数服务器分别接收对应的partition计算节点上传的模型参数信息,根据设定的算法计算出模型参数。例如,基于随机梯度降更新算法的参数服务器计算过程是:Wnew=Wold-a*gradient,其中Wnew是新参数,Wold是旧参数,a是学习速率,gradient是参数梯度。
需要说明的是,对机器学习算法模型进行模型分区后,当模型分区之间有一部分边缘重叠时,例如神经网络一层矩阵拆分的多个子矩阵之间有重叠,则模型分区计算节点间需要交换模型参数信息,因此相同模型分区(计算节点组)对应的参数服务器并不唯一,即相同模型分区可能对应多个参数服务器,不同模型分区(计算节点组)对应参数服务器的交集可能不为空。
例如在图1中,每一列为一个计算节点组,每个计算节点组都通过网络接入到对应的参数服务器,所接入的参数服务器为至少一个,不同计算节点组之间通过参数服务器交换共享的一部分参数,计算节点组与参数服务器之间的连接根据模型分区之间的内部结构关系决定。
本实施例模型分区计算节点还每隔一定的迭代次数(如第二迭代次数阈值),向参数服务器请求最新的模型参数,得到最新的模型参数后更新本地的模型参数。
本实施例每个模型分区计算节点与参数服务器的交换相互独立,彼此异步并行,网络通信时间与计算时间完全重叠,参数服务器几乎总是处于计算状态,而不会空闲地等待数据到达,平均等待时间占总的训练时间的比例不到2%,从而消除了不同模型分区计算之间的等待,最大程度地提高了并行性和计算效率。
需要说明的是,本实施例每个模型分区计算节点在迭代计算时,分批对输入数据进行计算,直到达到终止条件为止。关于迭代计算的终止条件,根据具体的机器学习算法模型而定,例如分类算法在作为验证集的一部分输入数据上的分类准确率连续多次迭代不再降低,或者迭代次数超过设定的最大值,这里不再赘述。
通过上述步骤的分布式计算方法,计算得到输入的机器学习算法模型的各模型分区模型参数。然后还需要对所得的模型参数进行汇总,得到整个模型的模型参数,本发明主要是提出模型的训练方法,关于模型参数的汇总这里不再赘述。例如同时用多个分类模型副本预测分类概率进行平均,从而将多个模型副本作为一个模型使用,或者用多模型副本的输出训练单个模型,使单个模型的输出能够模拟多个模型副本的输出。整个训练过程可以理解为模型副本利用参数服务器不断地交换模型分区计算节点计算得到的模型参数信息,并根据模型参数信息计算出模型参数,再交由模型分区计算节点进行训练,直到终止条件达到。整个过程可以实现为分布式计算框架,只需要根据接口接入不同的输入数据和机器学习算法模型就可以自动大规模异步并行机器学习,避免重复开发公共模块,提高研发效率。
图3示出了本发明一个实施例通用机器学习算法模型训练系统,包括配置设备、计算节点和参数服务器。
其中配置设备用于接收机器学习算法模型和原始输入数据,将接收的机器学习算法模型划分为m个模型分区,再将划分为m个模型分区的机器学习算法模型复制为n个模型副本,使得每个模型分区对应有n个模型分区副本,将每个模型分区副本配置到一个对应的计算节点,同一模型副本的各模型分区对应的计算节点按照模型分区在模型副本中的位置结构分步骤进行计算,模型分区计算节点之间根据数据输出和输入关系形成有向无环图,相同模型分区对应的计算节点对应至少一个参数服务器;还将接收的原始输入数据分成至少n份,将每份原始输入数据分别分发到各个模型副本的计算节点进行计算。本实施例的配置设备可以是单独的一台计算机终端,也可以是任意计算节点或参数服务器的物理设备,主要用来进行配置管理,本发明不限于何种形式。
而计算节点用于根据配置的模型分区副本,获取输入数据对模型分区副本进行计算,将计算得到的模型参数信息上传到对应的参数服务器,并从参数服务器获取模型参数更新本地的模型参数。如上所述,计算节点的输入数据为原始输入数据,或其他计算节点输出的中间数据。
相应地,参数服务器根据接收的模型参数信息计算出当前模型参数,并响应计算节点的请求,下发当前模型参数。
如图3所示,模型副本1-模型副本n对应有各自的计算节点1-计算节点m,每个计算节点对应一个模型分区。例如第一列的所有的计算节点1对应模型分区partition1,组成一个计算节点组,对应一个或多个参数服务器;所有的计算节点2对应模型分区partition2,组成一个计算节点组,对应一个或多个参数服务器,以此类推。同一个模型分区计算节点组内所有计算节点与参数服务器之间的连接是相同的,不同模型分区计算节点组与参数服务器之间的连接可以是不同的。配置设备将模型分区和原始输入数据下发到各个模型副本的计算节点进行计算,相同的模型分区计算节点通过相同的一个或多个参数服务器交换模型参数。各模型副本的计算节点分布式地对输入数据进行计算,计算节点间的计算与模型参数传输相互独立。
进一步地,配置设备还用于将每份输入数据分为至少一批,计算节点每一次处理一批输入数据,每处理一批输入数据为一次迭代计算。计算节点每隔设定的第一迭代次数阈值,向对应的参数服务器传输本地计算得到的模型参数信息;每隔设定的第二迭代次数阈值,从对应的参数服务器获取模型参数更新本地的模型参数。
计算节点将计算得到的模型参数信息上传到对应的参数服务器时,还用于采用设定的过滤方法对上传的参数信息进行过滤,过滤掉已经学习到的模型参数信息。
每个计算节点包括至少一台计算设备,如果一台计算设备的资源不足以计算一个模型分区副本或者计算效率显著低于其它计算节点,还将模型分区副本划分为更小的模型分区,每个更小的模型分区对应一台计算设备,用于进一步进行分布式扩展。
如图4所示,本实施例计算节点包括输入输出单元、计算单元和同步单元,其中:
输入输出单元,用于获取输入数据,将输入数据进行缓存并发送到计算单元进行计算,并接收计算单元计算得到的模型参数信息发送给对应的参数服务器,以及接收计算单元计算得到的中间数据发送给后续步骤计算节点;
计算单元,用于根据配置的模型分区副本,采用输入数据对模型分区副本进行计算;
同步单元,用于向对应的参数服务器请求当前的模型参数,更新本地的模型参数。
其中,当计算节点所处于有向无环图的前端时,输入输出单元获取的输入数据为分配的原始输入数据;当计算节点处于所述有向无环图的其他位置时,输入数据为该计算节点前面步骤计算节点计算得到的中间数据。
其中,计算节点获取的每份原始输入数据还被划分为至少一批,计算节点分别对输入的每一批输入数据进行计算,每处理一批输入数据为一次迭代计算;
则输入输出单元每隔设定的第一迭代次数阈值,向对应的参数服务器传输本地计算得到的模型参数信息;同步单元每隔设定的第二迭代次数阈值,从对应的参数服务器获取模型参数更新本地的模型参数。
进一步地,输入输出单元将计算得到的模型参数信息上传到对应的参数服务器时,还用于采用设定的过滤方法对上传的参数信息进行过滤,过滤掉已经学习到的模型参数信息。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (6)
1.一种通用机器学习算法模型训练方法,其特征在于,在初始化时,将所述机器学习算法模型划分为m个模型分区,再将划分为m个模型分区的机器学习算法模型复制为n个模型副本,使得每个模型分区对应有n个模型分区副本,将每个模型分区副本配置到一个对应的计算节点,同一模型副本的各模型分区对应的计算节点按照模型分区在模型副本中的位置结构分步骤进行计算,模型分区计算节点之间根据数据输出和输入关系形成有向无环图,相同模型分区对应的计算节点对应至少一个参数服务器;并将原始输入数据划分为至少n份,将每份原始输入数据分别分发到各个模型副本的计算节点进行计算;
所述训练方法包括步骤:
计算节点根据配置的模型分区副本,获取输入数据对模型分区副本进行计算;
计算节点将计算得到的模型参数信息上传到对应的参数服务器,参数服务器根据得到的模型参数信息计算模型参数,计算节点从参数服务器获取模型参数更新本地的模型参数;
所述计算节点获取的每份原始输入数据还被划分为至少一批,计算节点每一次处理一批输入数据;
则所述计算节点将计算得到的模型参数信息上传到对应的参数服务器,具体包括步骤:
所述计算节点分别对输入的每一批输入数据进行计算,每处理一批输入数据为一次迭代计算;
每隔设定的第一迭代次数阈值,所述计算节点向对应的参数服务器传输本地计算得到的模型参数信息;
所述计算节点从参数服务器获取模型参数更新本地的模型参数,具体包括步骤:
每隔设定的第二迭代次数阈值,所述计算节点从对应的参数服务器获取模型参数更新本地的模型参数。
2.根据权利要求1所述的训练方法,其特征在于,当计算节点处于所述有向无环图的最前端时,所述计算节点获取的输入数据为分配的原始输入数据;当计算节点处于所述有向无环图的其他位置时,所述输入数据为该计算节点前面步骤计算节点计算得到的中间数据。
3.根据权利要求1所述的训练方法,其特征在于,所述计算节点将计算得到的模型参数信息上传到对应的参数服务器,还包括步骤:
采用设定的过滤方法对上传的参数信息进行过滤,过滤掉已经学习到的模型参数信息。
4.一种通用机器学习算法模型训练系统,其特征在于,所述训练系统包括配置设备、计算节点和参数服务器,其中:
所述配置设备用于接收机器学习算法模型和输入数据,将接收的机器学习算法模型划分为m个模型分区,再将划分为m个模型分区的机器学习算法模型复制为n个模型副本,使得每个模型分区对应有n个模型分区副本,将每个模型分区副本配置到一个对应的计算节点,同一模型副本的各模型分区对应的计算节点按照模型分区在模型副本中的位置结构分步骤进行计算,模型分区计算节点之间根据数据输出和输入关系形成有向无环图,相同模型分区对应的计算节点对应至少一个参数服务器;还将原始输入数据分成至少n份,将每份原始输入数据分别分发到各个模型副本的计算节点进行计算;
所述计算节点用于根据配置的模型分区副本,获取输入数据对模型分区副本进行计算,将计算得到的模型参数信息上传到对应的参数服务器,并从参数服务器获取模型参数更新本地的模型参数;
所述参数服务器用于根据接收的模型参数信息计算出当前模型参数,并响应计算节点的请求,下发当前模型参数;
所述配置设备还将每份原始输入数据划分为至少一批,则所述计算节点分别对输入的每一批输入数据进行计算,每处理一批输入数据为一次迭代计算,同时还执行如下操作:
每隔设定的第一迭代次数阈值,向对应的参数服务器传输本地计算得到的模型参数信息;
每隔设定的第二迭代次数阈值,从对应的参数服务器获取模型参数更新本地的模型参数。
5.根据权利要求4所述的训练系统,其特征在于,当计算节点处于所述有向无环图的最前端时,所述计算节点获取的输入数据为分配的原始输入数据;当计算节点处于所述有向无环图的其他位置时,所述输入数据为该计算节点前面步骤计算节点计算得到的中间数据。
6.根据权利要求4所述的训练系统,其特征在于,所述计算节点将计算得到的模型参数信息上传到对应的参数服务器时,还用于采用设定的过滤方法对上传的参数信息进行过滤,过滤掉已经学习到的模型参数信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510206401.7A CN106156810B (zh) | 2015-04-26 | 2015-04-26 | 通用机器学习算法模型训练方法、系统和计算节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510206401.7A CN106156810B (zh) | 2015-04-26 | 2015-04-26 | 通用机器学习算法模型训练方法、系统和计算节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106156810A CN106156810A (zh) | 2016-11-23 |
CN106156810B true CN106156810B (zh) | 2019-12-03 |
Family
ID=57347953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510206401.7A Active CN106156810B (zh) | 2015-04-26 | 2015-04-26 | 通用机器学习算法模型训练方法、系统和计算节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106156810B (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE202017007517U1 (de) * | 2016-08-11 | 2022-05-03 | Twitter, Inc. | Aggregatmerkmale für maschinelles Lernen |
CN108154237B (zh) * | 2016-12-06 | 2022-04-05 | 华为技术有限公司 | 一种数据处理系统及方法 |
CN106815644B (zh) * | 2017-01-26 | 2019-05-03 | 北京航空航天大学 | 机器学习方法和系统 |
EP3376441B1 (en) * | 2017-03-15 | 2021-07-14 | Siemens Aktiengesellschaft | A method for execution of a machine learning model on memory restricted industrial device |
US20180314971A1 (en) * | 2017-04-26 | 2018-11-01 | Midea Group Co., Ltd. | Training Machine Learning Models On A Large-Scale Distributed System Using A Job Server |
CN107169513B (zh) * | 2017-05-05 | 2019-10-18 | 第四范式(北京)技术有限公司 | 控制数据使用顺序的分布式机器学习系统及其方法 |
CN108289115B (zh) * | 2017-05-10 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及系统 |
CN107679625B (zh) * | 2017-08-30 | 2019-09-17 | 第四范式(北京)技术有限公司 | 针对数据记录执行机器学习的分布式系统及其方法 |
CN111597187B (zh) * | 2017-08-30 | 2023-09-01 | 第四范式(北京)技术有限公司 | 用于执行机器学习的分布式系统及其方法 |
CN111079942B (zh) * | 2017-08-30 | 2023-03-24 | 第四范式(北京)技术有限公司 | 执行机器学习的分布式系统及其方法 |
CN109447274B (zh) * | 2017-08-30 | 2021-02-09 | 第四范式(北京)技术有限公司 | 用于执行机器学习的分布式系统及其方法 |
CN111652380B (zh) * | 2017-10-31 | 2023-12-22 | 第四范式(北京)技术有限公司 | 针对机器学习算法进行算法参数调优的方法及系统 |
CN109754105B (zh) * | 2017-11-07 | 2024-01-05 | 华为技术有限公司 | 一种预测方法及终端、服务器 |
CN107908476B (zh) * | 2017-11-11 | 2020-06-23 | 许继集团有限公司 | 基于分布式集群的数据处理方法与装置 |
JP7074777B2 (ja) | 2017-11-20 | 2022-05-24 | シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド | タスク並列処理方法、装置、システム、記憶媒体およびコンピュータ機器 |
CN109814986B (zh) * | 2017-11-20 | 2021-01-05 | 上海寒武纪信息科技有限公司 | 任务并行处理方法、存储介质、计算机设备、装置和系统 |
US11488054B2 (en) * | 2017-12-06 | 2022-11-01 | Google Llc | Systems and methods for distributed on-device learning with data-correlated availability |
CN108491928B (zh) * | 2018-03-29 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 模型参数发送方法、装置、服务器及存储介质 |
US11334329B2 (en) * | 2018-06-08 | 2022-05-17 | Shanghai Cambricon Information Technology Co., Ltd. | General machine learning model, and model file generation and parsing method |
CN110750591A (zh) * | 2018-07-04 | 2020-02-04 | 全球智能股份有限公司 | 人工智能知识管理系统与其形成分布式记录的方法 |
CN109102075A (zh) * | 2018-07-26 | 2018-12-28 | 联想(北京)有限公司 | 一种分布式训练中的梯度更新方法及相关设备 |
CN110928481A (zh) * | 2018-09-19 | 2020-03-27 | 中国银联股份有限公司 | 分布式深度神经网络及其参数的存储方法 |
CN109343978B (zh) * | 2018-09-27 | 2020-10-20 | 苏州浪潮智能科技有限公司 | 一种深度学习分布式框架用的数据交换方法与装置 |
CN109600255A (zh) * | 2018-12-04 | 2019-04-09 | 中山大学 | 一种去中心化的参数服务器优化算法 |
CN109726466B (zh) * | 2018-12-26 | 2020-05-12 | 北京华大九天软件有限公司 | 一种基于机器学习训练模型的器件缓冲方法 |
CN111445027B (zh) * | 2019-01-16 | 2024-01-16 | 顺丰科技有限公司 | 机器学习模型的训练方法和装置 |
CN109871958B (zh) * | 2019-02-01 | 2023-07-28 | 东软医疗系统股份有限公司 | 训练模型的方法、装置及设备 |
WO2020210979A1 (zh) * | 2019-04-16 | 2020-10-22 | 华为技术有限公司 | 基于区块链网络的联合学习方法和联合学习设备 |
CN110188766B (zh) * | 2019-04-17 | 2023-06-30 | 平安科技(深圳)有限公司 | 基于卷积神经网络的图像主目标检测方法及装置 |
CN112148470B (zh) * | 2019-06-28 | 2022-11-04 | 富联精密电子(天津)有限公司 | 参数同步方法、计算机装置及可读存储介质 |
CN110633798B (zh) * | 2019-09-12 | 2023-04-07 | 北京金山数字娱乐科技有限公司 | 一种分布式训练中参数更新方法及装置 |
CN110689137B (zh) * | 2019-09-24 | 2022-11-25 | 网易传媒科技(北京)有限公司 | 参数确定方法、系统、介质和电子设备 |
CN111125621A (zh) * | 2019-11-22 | 2020-05-08 | 清华大学 | 一种加速分布式矩阵分解系统训练的方法及装置 |
CN110889492B (zh) * | 2019-11-25 | 2022-03-08 | 北京百度网讯科技有限公司 | 用于训练深度学习模型的方法和装置 |
CN112905442A (zh) * | 2019-12-04 | 2021-06-04 | 阿里巴巴集团控股有限公司 | 随机模型的生成方法、装置及设备 |
CN111967590B (zh) * | 2020-10-23 | 2021-02-02 | 之江实验室 | 面向推荐系统矩阵分解方法的异构多xpu机器学习系统 |
CN112598118B (zh) * | 2021-03-03 | 2021-06-25 | 成都晓多科技有限公司 | 有监督学习的标注异常处理方法、装置、存储介质及设备 |
CN113312211B (zh) * | 2021-05-28 | 2023-05-30 | 北京航空航天大学 | 一种确保分布式学习系统的高可用性方法 |
CN117917660A (zh) * | 2022-10-20 | 2024-04-23 | 华为技术有限公司 | 数据处理方法、终端设备及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298569A (zh) * | 2010-06-24 | 2011-12-28 | 微软公司 | 在线学习算法的并行化 |
CN102708088A (zh) * | 2012-05-08 | 2012-10-03 | 北京理工大学 | 面向海量数据高性能计算的cpu/gpu协同处理方法 |
CN102831139A (zh) * | 2011-03-25 | 2012-12-19 | 微软公司 | 用于查询计划优化以及数据并行编程模型的共同范围分区 |
CN103078941A (zh) * | 2012-12-31 | 2013-05-01 | 中金数据系统有限公司 | 一种分布式计算系统的任务调度方法及系统 |
CN103745225A (zh) * | 2013-12-27 | 2014-04-23 | 北京集奥聚合网络技术有限公司 | 分布式ctr预测模型训练的方法和系统 |
US8768870B1 (en) * | 2012-05-22 | 2014-07-01 | Google Inc. | Training a model using parameter server shards |
CN104036451A (zh) * | 2014-06-20 | 2014-09-10 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
-
2015
- 2015-04-26 CN CN201510206401.7A patent/CN106156810B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298569A (zh) * | 2010-06-24 | 2011-12-28 | 微软公司 | 在线学习算法的并行化 |
CN102831139A (zh) * | 2011-03-25 | 2012-12-19 | 微软公司 | 用于查询计划优化以及数据并行编程模型的共同范围分区 |
CN102708088A (zh) * | 2012-05-08 | 2012-10-03 | 北京理工大学 | 面向海量数据高性能计算的cpu/gpu协同处理方法 |
US8768870B1 (en) * | 2012-05-22 | 2014-07-01 | Google Inc. | Training a model using parameter server shards |
CN103078941A (zh) * | 2012-12-31 | 2013-05-01 | 中金数据系统有限公司 | 一种分布式计算系统的任务调度方法及系统 |
CN103745225A (zh) * | 2013-12-27 | 2014-04-23 | 北京集奥聚合网络技术有限公司 | 分布式ctr预测模型训练的方法和系统 |
CN104036451A (zh) * | 2014-06-20 | 2014-09-10 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106156810A (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106156810B (zh) | 通用机器学习算法模型训练方法、系统和计算节点 | |
CN114756383B (zh) | 一种分布式计算方法、系统、设备及存储介质 | |
Zou et al. | Mariana: Tencent deep learning platform and its applications | |
CN109754060A (zh) | 一种神经网络机器学习模型的训练方法及装置 | |
JP6784780B2 (ja) | 大規模再生可能エネルギーのデータについて確率モデルを構築する方法 | |
CN106547882A (zh) | 一种智能电网中营销大数据的实时处理方法及系统 | |
CN105426344A (zh) | 基于Spark的分布式大规模矩阵乘法的矩阵计算方法 | |
CN108446770B (zh) | 一种基于采样的分布式机器学习慢节点处理系统及方法 | |
CN106874478A (zh) | 基于Spark的并行化随机标签子集多标签文本分类方法 | |
Ordentlich et al. | Network-efficient distributed word2vec training system for large vocabularies | |
CN105184368A (zh) | 一种分布式极限学习机优化集成框架方法系统及方法 | |
Xu et al. | Short-term traffic flow prediction model of wavelet neural network based on mind evolutionary algorithm | |
Khumoyun et al. | Spark based distributed deep learning framework for big data applications | |
CN111241301A (zh) | 一种面向知识图谱表示学习的分布式框架构建方法 | |
CN113297127A (zh) | 一种大规模分布式训练集群的参数更新方法、平台系统 | |
Haihong et al. | Spark-based machine learning pipeline construction method | |
Shu et al. | Design of deep learning accelerated algorithm for online recognition of industrial products defects | |
CN111612155A (zh) | 一种分布式机器学习系统及适用于其的通信调度方法 | |
CN111368060A (zh) | 对话机器人的自学习方法、装置、系统、电子设备及介质 | |
Tsai et al. | Communication scheduling optimization for distributed deep learning systems | |
CN116303219A (zh) | 一种网格文件的获取方法、装置及电子设备 | |
Ho et al. | Adaptive communication for distributed deep learning on commodity GPU cluster | |
CN110175680A (zh) | 利用分布式异步更新在线机器学习的物联网数据分析方法 | |
CN115345306A (zh) | 深度神经网络调度方法及调度器 | |
CN108536824A (zh) | 一种数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |