CN111445027B - 机器学习模型的训练方法和装置 - Google Patents
机器学习模型的训练方法和装置 Download PDFInfo
- Publication number
- CN111445027B CN111445027B CN201910041301.1A CN201910041301A CN111445027B CN 111445027 B CN111445027 B CN 111445027B CN 201910041301 A CN201910041301 A CN 201910041301A CN 111445027 B CN111445027 B CN 111445027B
- Authority
- CN
- China
- Prior art keywords
- training
- parameter server
- parameter
- results
- server group
- 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
- 238000012549 training Methods 0.000 title claims abstract description 347
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000010801 machine learning Methods 0.000 title claims abstract description 38
- 238000012545 processing Methods 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 14
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种机器学习模型的训练方法和装置,该方法包括:将模型参数和划分为m份的训练数据集下发至(1+a)*m个参数服务器组进行训练,并接收所述参数服务器组的训练结果;其中,所述m为正整数,0<a<1,所述(1+a)*m进一位取整;从而,根据训练次数,对所述训练结果进行处理。本申请实施例提供的机器学习模型的训练方法,通过将模型参数和划分为m份的训练数据集下发给(1+a)*m个参数服务器组进行训练,增加了参数服务器组的数量,当有参数服务器组出现故障而无法训练数据时,会有备用的参数服务器组继续对数据进行运算处理,保证训练过程的正常进行,提高了机器学习模型的训练效率。
Description
技术领域
本发明一般涉及信息技术领域,具体涉及一种机器学习模型的训练方法和装置。
背景技术
在现代社会中,人们越来越多地使用快递来收寄物品。尤其是随着电子商务的蓬勃发展,网上购物的方式得到快速普及和应用。加之大数据时代的到来,快递业务每时每刻都在不断地产生着海量的数据。
如今,借助机器学习和人工智能技术,通过采集大量的样本数据进行模型训练。从而,当有新数据产生时,就能够方便地使用训练得到的模型对新数据进行处理。在模型的训练过程中,参数训练需要耗费很长的时间,因此缩短参数的训练时间,并提高算法运行效率是亟待解决的技术问题。
相关技术中在将训练数据随机划分为一定数目之后,直接下发给相同数目的训练器进行参数训练,并得到训练结果。然而,在参数训练的过程中,训练器会由于庞大的运算数据量而容易发生故障,造成训练速度变慢,进而影响机器学习模型的训练效率。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种机器学习模型的训练方法和装置,通过增加节点的配置数量,当有节点出现故障而无法训练数据时,会有备用节点继续对数据进行运算处理,保证训练过程的正常进行,进而提高机器学习模型的训练效率。
第一方面,本申请提供一种机器学习模型的训练方法,包括:
将模型参数和划分为m份的训练数据集下发至(1+a)*m个参数服务器组进行训练;其中,所述m为正整数,0<a<1,所述(1+a)*m进一位取整;
接收所述参数服务器组的训练结果;
根据训练次数,对所述训练结果进行处理。
第二方面,本申请提供一种机器学习模型的训练装置,包括:
下发模块,用于将模型参数和划分为m份的训练数据集下发至(1+a)*m个参数服务器组进行训练;其中,所述m为正整数,0<a<1,所述(1+a)*m进一位取整;
接收模块,用于接收所述参数服务器组的训练结果;
处理模块,用于根据训练次数,对所述训练结果进行处理。
综上,本申请实施例提供的机器学习模型的训练方法和装置,在训练数据集划分为m份之后,将其与模型参数一起下发至(1+a)*m个参数服务器组进行训练,其中,m为正整数,0<a<1,(1+a)*m进一位取整;由于增加了参数服务器组的数量,当有参数服务器组出现故障而无法训练数据时,会有备用的参数服务器组继续对数据进行运算处理;进而,接收参数服务器组的训练结果,并根据训练次数,对训练结果进行处理;基于此,本申请实施例能够在保证训练过程正常进行的同时,提高机器学习模型的训练效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的一种机器学习模型的训练方法的基本流程示意图;
图2为本申请实施例提供的一种机器学习模型的训练方法的示例;
图3为本申请实施例提供的一种机器学习模型的训练装置;
图4为本申请实施例提供的另一种机器学习模型的训练装置;
图5为本申请实施例提供的又一种机器学习模型的训练装置;
图6为本申请实施例提供的一种计算机***。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本申请实施例提供一种机器学***板电脑(Tablet Computer)、无线手持设备和手机等。
为了便于理解和说明,下面通过图1至图5详细的阐述本申请实施例提供的机器学习模型的训练方法及装置。
请参考图1,其为本申请实施例提供的一种机器学习模型的训练方法的基本流程示意图,该方法包括以下步骤:
S101,将模型参数和划分为m份的训练数据集下发至(1+a)*m个参数服务器组进行训练。
其中,m为正整数,0<a<1,(1+a)*m进一位取整。
举例说明,在训练数据集随机划分为m份之后,将其与模型参数一起下发至(1+a)*m个参数服务器组进行训练,a*m的参数服务器组作为备用参数服务器组。其中,m为大于0的整数,对(1+a)*m以及a*m的计算结果进一位取整。比如当m=1,a=10%时,(1+a)*m的计算结果为1.1,进一位取整后为2,即2个参数服务器组;比如当m=6,a=20%时,(1+a)*m的计算结果为7.2,进一位取整后为8,即8个参数服务器组。由于增加了参数服务器组的数量,当有参数服务器组出现故障而无法训练数据时,备用的参数服务器组会根据出现故障的参数服务器组在宕机时日志中记录的模型参数和训练结果,继续对数据进行运算处理,有效地提高了机器学习模型的训练效率。
需要说明的是,本申请实施例的参数服务器组中还包括主参数服务器和训练参数服务器。其中,主参数服务器具有分发训练参数,并统计各个训练参数服务器反馈的训练结果,以及训练数据的功能,而训练参数服务器则用于根据主参数服务器分发的训练参数进行训练。
举例说明,主参数服务器将模型参数和m份的训练数据集分发至参数服务器组中的(1+b)*n个训练参数服务器进行训练,其中,n为正整数,0<b<1,(1+b)*n进一位取整。比如当n=1,b=10%时,(1+b)*n的计算结果为1.1,进一位取整后为2,即2个训练参数服务器;比如当n=5,b=30%时,(1+b)*n的计算结果为6.5,进一位取整后为7,即7个训练参数服务器。由于增加了训练参数服务器的数量,主参数服务器能够将同等总数量的训练数据集分发给多个训练参数服务器进行训练;对于每个训练参数服务器而言,分发到的训练数据量变小,提高了机器学习模型的训练效率。
在每个参数服务器组中,指定一个参数服务器作为该组中的主参数服务器,即主节点(master),那么其它参数服务器作为训练参数服务器,即从节点(slave)。当主节点由于网络连接不通畅、电源断电以及死机等原因而不能与从节点正常通信,即主节点不能接收从节点的心跳信息,并进行响应时,从(1+b)*n个训练参数服务器中指定或者随机选取一个训练参数服务器作为主参数服务器,以及使用额外配置的备用参数服务器作为主参数服务器。
对于指定一个训练参数服务器作为主参数服务器而言,比如,训练参数服务器的数量为10个,编号分别为训练参数服务器1,训练参数服务器2,…,训练参数服务器10,按照依次递补的顺序,主参数服务器出现故障时,训练参数服务器1递补作为主参数服务器,训练参数服务器1的数据可由其继续训练,或者将数据传递给训练参数服务器2进行训练,而原先的主参数服务器由于不训练数据,因此在该主参数服务器出现故障时不存在数据转移;另外,需要说明的是,原先的主参数服务器在故障解决之后,可以作为训练参数服务器实现训练数据的功能。训练参数服务器1出现故障时,训练参数服务器2递补作为主参数服务器,而训练参数服务器1的数据则传递给训练参数服务器2进行训练,此时,训练参数服务器2的数据包括训练参数服务器1未完成训练的剩余数据和原先分发给训练参数服务器2的训练数据;或者,训练参数服务器2将训练参数服务器1未完成训练的剩余数据和原先分发给训练参数服务器2未完成训练的剩余数据传递给训练参数服务器3进行训练。由于各个训练参数服务器的模型参数都一样,只是具体的训练数据不同。因此,本申请实施例能够将未完成训练的剩余数据传递给没有发生故障的训练参数服务器进行训练,从而保证了训练过程的正常进行。以此类推,训练参数服务器9出现故障时,训练参数服务器10递补作为主参数服务器,而训练参数服务器9的数据则传递给训练参数服务器10进行训练,此时,训练参数服务器10的数据包括训练参数服务器9未完成训练的剩余数据和原先分发给训练参数服务器10的训练数据;或者,训练参数服务器10将训练参数服务器9未完成训练的剩余数据和原先分发给训练参数服务器10未完成训练的剩余数据传递给训练参数服务器1进行训练。
对于随机选取一个训练参数服务器作为主参数服务器而言,比如,训练参数服务器的数量为10个,编号分别为训练参数服务器1,训练参数服务器2,…,训练参数服务器10,主参数服务器出现故障时,从10个训练参数服务器中随机选择参数服务器2作为主参数服务器,而训练参数服务器2的数据可由其继续训练,或者将数据传递给训练参数服务器3进行训练。以此类推,训练参数服务器10的数据可由其继续训练,或者将数据传递给训练参数服务器1进行训练。
举例说明,如图2所示,其为本申请实施例提供的一种机器学习模型的训练方法的示例。首先,数据分发网关将训练数据集随机划分为m份,并将模型参数和m份训练数据集下发给(1+10%)*m个参数服务器组,此时a=10%;比如参数服务器组1、参数服务器组2、…、参数服务器组1.1m-1、参数服务器组1.1m;然后,参数服务器组中主节点对应的主参数服务器又将该模型参数和下发给该参数服务器组的训练数据集分发至参数服务器组内从节点对应的(1+10%)*n个训练参数服务器进行训练,此时b=10%;比如从节点1、从节点2、…、从节点1.1n-1、从节点1.1n;从而,从节点对应的(1+10%)*n个训练参数服务器将训练结果反馈至主节点对应的主参数服务器。
主节点对应的主参数服务器在接收到前90%从节点对应的训练参数服务器的反馈数据之后,根据欧氏距离丢弃训练结果中的异常值,并计算剩余训练结果的平均值,作为模型的训练结果反馈至数据分发网关。其中,对90%从节点对应的训练参数服务器的数目舍一位取整。比如,当从节点对应的训练参数服务器的数目为3时,得到的计算结果为2.7,舍一位取整为2;当从节点对应的训练参数服务器的数目为7时,得到的计算结果为6.3,舍一位取整为6。需要说明的是,为保证训练结果的计算精度和训练效率,本申请实施例中主参数服务器接收前90%训练参数服务器的反馈数据。当然,主参数服务器也能够接收其它比例的训练参数服务器的反馈数据,比如80%、95%,本申请实施例对此不进行限定。
为便于理解,举例说明具体实现过程。比如,将1000个训练数据划分为5份,则每份训练数据集包括200个训练数据,此时m=5;其次,将5个训练数据集下发至6个参数服务器组,其中,5个参数服务器组分别得到1份数据进行训练,1个参数服务器组作为备用参数服务器组,此时a=10%;再次,各个参数服务器组中的主参数服务器将200个训练数据分发至4个训练参数服务器,每个训练参数服务器对50个训练数据进行训练,此时b=20%,n=3;从而,主节点对应的主参数服务器获取前3个从节点对应的训练参数服务器的反馈数据即可。其中,欧氏距离(Euclidean distance)是一个通常采用的距离定义,它表示l维空间中两个点之间的真实距离。
主参数服务器根据欧氏距离丢弃训练结果中的异常值,采用的方法可以包括但不限于K-均值算法和K-中心点算法。为便于理解,本申请实施例中以K-均值算法为例进行说明。由于K-中心点算法为已知的技术,本申请实施例不再赘述。
K-均值算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离很近,其相似度就越大,并将相似的数据划分到同一个聚类中。具体的,K-均值算法首先从c个数据对象中随机选取k个对象作为初始聚类中心,而对于剩余的数据对象,则根据它们与初始聚类中心的距离,分别将它们分配给与其最相似的(初始聚类中心所代表的)聚类;然后,在得到每个新聚类的聚类中心(即该聚类中所有数据对象的平均值)之后,继续根据计算得到的每个新聚类中的数据对象与该聚类中心的距离进行k个聚类的划分;不断重复这一过程,直到聚类准则函数收敛为止;其中,算法采用数据的误差平方和准则函数作为聚类准则函数。
由于K-均值算法和K-中心点算法是聚类算法,即将所有数据划分为k个聚类。而本申请实施例中只需要划分为1个聚类,即k=1。具体的,主节点对应的主参数服务器计算从节点对应的训练参数服务器所反馈的训练结果的平均值,将该平均值作为聚类中心;然后,分别计算每个训练结果与聚类中心的欧氏距离;从而,如果欧氏距离大于预设阈值,比如,该预设阈值为5%,则将该欧氏距离对应的训练结果作为异常值进行丢弃。
需要说明的是,本申请实施例采取的是在参数服务器组的组间实现模型并行,在每个参数服务器的组内实现数据并行,以资源换取时间的方式,通过增加节点的配置数量,当有节点出现故障而无法训练数据时,会有备用节点继续对数据进行运算处理,保证训练过程的正常进行,进而提高机器学习模型的训练效率。
同时,本申请实施例中每一个参数服务器都部署在docker之中,并采用kubernetes管理docker参数服务器,实时监督docker的运行状态。其中,docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口。而kubernetes是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用、部署应用、发布应用、扩展应用以及更新应用,都非常的方便,而且可以做到故障自愈,比如一个主机挂了,可以自动地将这个主机上的服务调度到另外一个主机上接着运行,无需人工干涉,方便快捷。
S102,接收参数服务器组的训练结果。
比如,数据分发网关接收各个参数服务器组的训练结果,该训练结果为各个参数服务器组中主节点对应的主参数服务器在收到从节点对应的训练参数服务器的反馈数据之后,主节点对应的主参数服务器根据欧氏距离丢弃反馈数据中的异常值,并对剩余反馈数据进行计算得到的平均值。
需要说明的是,本申请实施例中的数据分发网关具有下发训练数据集、收集训练结果并做相应处理的功能。当然,具备与本申请实施例中的数据分发网关相同功能的终端也是可以的,本申请实施例对此不进行限定。
S103,根据训练次数,对训练结果进行处理。
具体的,当训练次数等于预设次数时,计算训练结果的平均值并输出;而当训练次数小于预设次数时,将模型参数和划分为m份的训练数据集再次下发至(1+a)*m个参数服务器组进行训练。本申请实施例通过控制训练次数达到预设次数,能够在保证计算精度的基础上充分训练数据。
举例说明,数据分发网关在接收到前90%参数服务器组的反馈数据之后,计算该反馈数据的平均值作为模型的训练结果。其中,对90%参数服务器组的数目舍一位取整。比如,参数服务器组有5个时,得到的计算结果为4.5,那么数据分发网关获取前4个参数服务器组对应的反馈数据即可;参数服务器组有10个时,那么数据分发网关获取前9个参数服务器组对应的反馈数据即可。需要说明的是,为保证训练结果的计算精度和训练效率,本申请实施例中数据分发网关接收前90%参数服务器组的反馈数据。当然,数据分发网关也能够接收其它比例的参数服务器组的反馈数据,比如80%、95%,本申请实施例对此不进行限定。
正常情况下,各个参数服务器组中的训练参数服务器在训练次数达到预设次数之后,才会将数据反馈给参数服务器组中的主参数服务器。但有特殊情况,比如,参数服务器组中的训练参数服务器发生宕机时,会将训练得到的结果直接反馈给主参数服务器,此时训练次数并未达到预设次数;由于主参数服务器不具有判断训练次数的能力,而数据分发网关具有监控参数服务器、判断训练次数的能力;因此,作为一种防范机制,数据分发网关判断参数服务器组的训练次数是否达到训练的要求,以保证数据得到充分地训练。如果训练次数已经达到预设次数,那么数据分发网关停止参数服务器组的训练,并输出训练结果;如果训练次数没有达到预设次数,为保证整个训练过程的有序进行,那么数据分发网关将模型参数和划分的训练数据集再次下发至各参数服务器组进行训练。
需要说明的是,本申请实施例中在将模型参数和训练数据集再次下发至各个参数服务器组进行训练时,参数服务器组中的训练参数服务器还能够根据日志在宕机时记录的模型参数和训练结果,重新在训练参数服务器中进行训练。
由于在机器学习模型的训练过程中,每一个参数服务器都部署在docker之中,而docker本身性能不稳定,容易发生宕机的现象。因此,本申请实施例采用记录日志的方式,各个参数服务器组中的训练参数服务器在模型训练的一开始,就将训练参数服务器的训练结果和训练次数写入日志当中,docker在重启之后即可根据日志进行定位得到宕机时记录的模型参数、训练结果和训练次数,从而能够迅速地恢复到宕机时的训练状态,有效地减少等待时间。
本申请实施例提供的机器学习模型的训练方法,在训练数据集划分为m份之后,将其与模型参数一起下发至(1+a)*m个参数服务器组进行训练,其中,m为正整数,0<a<1,(1+a)*m进一位取整;由于增加了参数服务器组的数量,当有参数服务器组出现故障而无法训练数据时,会有备用的参数服务器组继续对数据进行运算处理;进而,接收参数服务器组的训练结果,并根据训练次数,对训练结果进行处理;基于此,本申请实施例能够在保证训练过程正常进行的同时,提高机器学习模型的训练效率。
基于前述实施例,本申请实施例提供一种机器学习模型的训练装置,该装置可以应用于图1~2对应的实施例提供的机器学习模型的训练方法中。参照图3所示,该机器学习模型训练装置3包括:
下发模块31,用于将模型参数和划分为m份的训练数据集下发至(1+a)*m个参数服务器组进行训练;其中,m为正整数,0<a<1,(1+a)*m进一位取整;
接收模块32,用于接收参数服务器组的训练结果;
处理模块33,用于根据训练次数,对训练结果进行处理。
在本申请的其它实施例中,如图4所示,下发模块31还包括:
分发模块311,用于将模型参数和m份的训练数据集分发至参数服务器组中的(1+b)*n个训练参数服务器进行训练;其中,n为正整数,0<b<1,(1+b)*n进一位取整。
在本申请的其它实施例中,如图5所示,下发模块31还包括:
丢弃模块312,用于根据训练参数服务器反馈的训练结果以及欧氏距离,丢弃训练结果中的异常值;
计算模块313,用于计算剩余训练结果的平均值;
其中,训练结果为异常值和剩余训练结果的集合。
在本申请的其它实施例中,丢弃模块312具体用于计算训练结果的平均值,该平均值作为聚类中心;
分别计算每个训练结果与聚类中心的欧氏距离;
如果欧氏距离大于预设阈值,则将欧氏距离对应的训练结果作为异常值进行丢弃。
在本申请的其它实施例中,处理模块33具体用于当训练次数等于预设次数时,计算训练结果的平均值并输出。
在本申请的其它实施例中,处理模块33还用于当训练次数小于预设次数时,将模型参数和划分为m份的训练数据集再次下发至(1+a)*m个参数服务器组进行训练。
在本申请的其它实施例中,处理模块33还用于根据参数服务器组记录的日志,重新在参数服务器组中进行训练;其中,日志包括参数服务器组在宕机时记录的模型参数和训练结果。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请实施例提供的机器学习模型的训练装置,在训练数据集划分为m份之后,将其与模型参数一起下发至(1+a)*m个参数服务器组进行训练,其中,m为正整数,0<a<1,(1+a)*m进一位取整;由于增加了参数服务器组的数量,当有参数服务器组出现故障而无法训练数据时,会有备用的参数服务器组继续对数据进行运算处理;进而,接收参数服务器组的训练结果,并根据训练次数,对训练结果进行处理;基于此,本申请实施例能够在保证训练过程正常进行的同时,提高机器学习模型的训练效率。
基于前述实施例,本申请实施例提供一种计算机***。请参照图6所示,该计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM603中,还存储有***操作所需的各种程序和数据。CPU 601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本申请的实施例,上文参考流程图1描述的过程可以被实现为计算机软件程序。例如,本申请的实施例1包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序由CPU 601执行,以实现如下步骤:
将模型参数和划分为m份的训练数据集下发至(1+a)*m个参数服务器组进行训练;其中,m为正整数,0<a<1,(1+a)*m进一位取整;
接收参数服务器组的训练结果;
根据训练次数,对训练结果进行处理。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例机器学习模型训练的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括下发模块、接收模块及处理模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的终端中所包含的;也可以是单独存在,而未装配入该终端中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该终端执行时,使得该终端实现如上述实施例中的机器学习模型的训练方法。
例如,终端可以实现如图1中所示的:S101,将模型参数和划分为m份的训练数据集下发至(1+a)*m个参数服务器组进行训练;其中,m为正整数,0<a<1,(1+a)*m进一位取整;S102,接收参数服务器组的训练结果;S103,根据训练次数,对训练结果进行处理。
应当注意,尽管在上文详细描述中提及了用于动作执行的终端的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (5)
1.一种机器学习模型的训练方法,其特征在于,所述方法包括:
将模型参数和划分为m份的训练数据集下发至(1+a)*m个参数服务器组进行训练;其中,a*m个所述参数服务器组作为备用参数服务器组;所述m为正整数,0<a<1,所述(1+a)*m进一位取整;所述参数服务器组中还包括主参数服务器和训练参数服务器;
接收所述参数服务器组的训练结果;
根据训练次数,对所述训练结果进行处理;
所述将模型参数和划分为m份的训练数据集下发至(1+a)*m个参数服务器组进行训练包括:
所述主参数服务器将所述模型参数和下发给所述参数服务器组的训练数据集分发至所述参数服务器组中的(1+b)*n个训练参数服务器进行训练;其中,所述n为正整数,0<b<1,所述(1+b)*n进一位取整;
所述根据训练次数,对所述训练结果进行处理包括:
当所述训练次数等于预设次数时,计算所述训练结果的平均值并输出;当所述训练次数小于所述预设次数时,将所述模型参数和所述划分为m份的训练数据集再次下发至所述(1+a)*m个参数服务器组进行训练;根据所述参数服务器组记录的日志,重新在所述参数服务器组中进行训练;其中,所述日志包括所述参数服务器组在宕机时记录的所述模型参数和训练结果。
2.根据权利要求1所述的一种机器学习模型的训练方法,其特征在于,所述方法还包括:
根据所述训练参数服务器反馈的训练结果以及欧氏距离,丢弃所述训练结果中的异常值;
计算剩余训练结果的平均值;其中,所述训练结果为所述异常值和所述剩余训练结果的集合。
3.根据权利要求2所述的一种机器学习模型的训练方法,其特征在于,所述根据所述训练参数服务器反馈的训练结果以及欧氏距离,丢弃所述训练结果中的异常值,包括:
计算所述训练结果的平均值,所述平均值作为聚类中心;
分别计算每个训练结果与所述聚类中心的欧氏距离;
如果所述欧氏距离大于预设阈值,则将所述欧氏距离对应的训练结果作为异常值进行丢弃。
4.一种机器学习模型的训练装置,其特征在于,所述装置包括:
下发模块,用于将模型参数和划分为m份的训练数据集下发至(1+a)*m个参数服务器组进行训练;其中,a*m个所述参数服务器组作为备用参数服务器组;所述m为正整数,0<a<1,所述(1+a)*m进一位取整;所述参数服务器组中还包括主参数服务器和训练参数服务器;
接收模块,用于接收所述参数服务器组的训练结果;
处理模块,用于根据训练次数,对所述训练结果进行处理;
所述下发模块还包括:
分发模块,用于所述主参数服务器将所述模型参数和下发给所述参数服务器组的训练数据集分发至所述参数服务器组中的(1+b)*n个训练参数服务器进行训练;其中,所述n为正整数,0<b<1,所述(1+b)*n进一位取整;
所述处理模块具体用于,当所述训练次数等于预设次数时,计算所述训练结果的平均值并输出;当所述训练次数小于所述预设次数时,将所述模型参数和所述划分为m份的训练数据集再次下发至所述(1+a)*m个参数服务器组进行训练;根据所述参数服务器组记录的日志,重新在所述参数服务器组中进行训练;其中,所述日志包括所述参数服务器组在宕机时记录的所述模型参数和训练结果。
5.根据权利要求4所述的一种机器学习模型的训练装置,其特征在于,所述下发模块还包括:
丢弃模块,用于根据所述训练参数服务器反馈的训练结果以及欧氏距离,丢弃所述训练结果中的异常值;
计算模块,用于计算剩余训练结果的平均值;其中,所述训练结果为所述异常值和所述剩余训练结果的集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910041301.1A CN111445027B (zh) | 2019-01-16 | 2019-01-16 | 机器学习模型的训练方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910041301.1A CN111445027B (zh) | 2019-01-16 | 2019-01-16 | 机器学习模型的训练方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111445027A CN111445027A (zh) | 2020-07-24 |
CN111445027B true CN111445027B (zh) | 2024-01-16 |
Family
ID=71626888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910041301.1A Active CN111445027B (zh) | 2019-01-16 | 2019-01-16 | 机器学习模型的训练方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111445027B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111641716B (zh) * | 2020-06-01 | 2023-05-02 | 第四范式(北京)技术有限公司 | 参数服务器的自愈方法、参数服务器及参数服务*** |
CN114936117A (zh) * | 2021-09-02 | 2022-08-23 | 华为技术有限公司 | 模型训练的方法、服务器、芯片以及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156810A (zh) * | 2015-04-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通用机器学习算法模型训练方法、***和计算节点 |
CN107025205A (zh) * | 2016-01-30 | 2017-08-08 | 华为技术有限公司 | 一种分布式***中的训练模型的方法及设备 |
CN107819605A (zh) * | 2016-09-14 | 2018-03-20 | 北京百度网讯科技有限公司 | 用于在服务器集群中切换服务器的方法和装置 |
CN108665072A (zh) * | 2018-05-23 | 2018-10-16 | 中国电力科学研究院有限公司 | 一种基于云架构的机器学习算法全过程训练方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10600002B2 (en) * | 2016-08-04 | 2020-03-24 | Loom Systems LTD. | Machine learning techniques for providing enriched root causes based on machine-generated data |
-
2019
- 2019-01-16 CN CN201910041301.1A patent/CN111445027B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156810A (zh) * | 2015-04-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通用机器学习算法模型训练方法、***和计算节点 |
CN107025205A (zh) * | 2016-01-30 | 2017-08-08 | 华为技术有限公司 | 一种分布式***中的训练模型的方法及设备 |
CN107819605A (zh) * | 2016-09-14 | 2018-03-20 | 北京百度网讯科技有限公司 | 用于在服务器集群中切换服务器的方法和装置 |
CN108665072A (zh) * | 2018-05-23 | 2018-10-16 | 中国电力科学研究院有限公司 | 一种基于云架构的机器学习算法全过程训练方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN111445027A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762697B2 (en) | Method and apparatus for scheduling resource for deep learning framework | |
EP3540652B1 (en) | Method, device, chip and system for training neural network model | |
US20190065954A1 (en) | Memory bandwidth management for deep learning applications | |
CN108804039B (zh) | 自适应的数据恢复流控方法、装置、电子设备及存储介质 | |
US20210409341A1 (en) | Cloud resource management using externally-sourced data | |
WO2021068513A1 (zh) | 异常对象识别方法、装置、介质及电子设备 | |
US11379718B2 (en) | Ground truth quality for machine learning models | |
WO2023116067A1 (zh) | 面向5g云边端协同的电力业务分解方法及*** | |
CN111445027B (zh) | 机器学习模型的训练方法和装置 | |
US11886969B2 (en) | Dynamic network bandwidth in distributed deep learning training | |
US11736363B2 (en) | Techniques for analyzing a network and increasing network availability | |
WO2022267085A1 (zh) | 基于人工智能的数据中心数据管理方法及*** | |
CN109542737A (zh) | 平台告警处理方法、装置、电子装置及存储介质 | |
CN107391230B (zh) | 一种确定虚拟机负载的实现方法和装置 | |
WO2023020355A1 (zh) | Ai模型的分布式训练方法和相关设备 | |
CN111611622A (zh) | 基于区块链的文件存储方法和电子设备 | |
CN111935140A (zh) | 异常报文识别方法及装置 | |
CN110782122A (zh) | 数据处理方法、装置及电子设备 | |
CN107016115A (zh) | 数据导出方法、装置、计算机可读存储介质及电子设备 | |
US10915704B2 (en) | Intelligent reporting platform | |
CN112925964A (zh) | 基于云计算服务的大数据采集方法及大数据采集服务*** | |
CN112825525A (zh) | 用于处理事务的方法和装置 | |
CN109558222A (zh) | 批量业务进程监控方法、装置、计算机及可读存储介质 | |
CN114565105A (zh) | 处理数据的方法和深度学习模型的训练方法、装置 | |
CN116796850A (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 |