一种模型数据更新方法、装置及系统与流程

文档序号:11177855阅读:293来源:国知局
一种模型数据更新方法、装置及系统与流程

本申请涉及互联网技术领域,尤其涉及一种模型数据更新方法、装置及系统。



背景技术:

深度神经网络(deepneuralnetwork,dnn)具有深层结构,可以解决数据量大、数据维度高的问题,还可以提高算法精度。基于dnn网络进行深度学习训练是近年来机器学习领域的热点,在语音识别、图像识别等领域均取得了突破性进展。

目前已有的基于dnn的多机多卡式训练方案实现了数据并行,样本数据会被分发到多个图形处理器(graphicprocessingunit,gpu)上,进行深度网络前向传播的计算,待计算完成后,这多个gpu(以下称为从机)会向主机提交计算结果,主机进行结果汇总并更新当前模型数据(也即各个模型参数的值),然后将更新的模型数据继续分发到多个从机上进行模型训练,以此循环。

在上述迭代训练过程中,在每一轮迭代后,需要在所有从机间同步一次模型数据,也即主机需要将更新的模型数据分别发送到多个从机上,这将会导致主机浪费较多的资源在模型数据的传递上,对主机带宽及系统资源的消耗是极大的。另外,由于主机的带宽有限,在同一时刻,主机只能向一台从机发送更新的模型数据,因此模型数据的分发过程将是一个串行的过程。如果主机将更新的模型数据全部发送给一个从机需要耗时t,则当从机数量为l时,各从机更新完模型参数的总耗时将会为l×t,从机数量越多,这个耗时会越长,如此将会严重限制进行模型训练的效率。



技术实现要素:

本申请提供了模型数据的更新方法、装置及系统,用于节省主机带宽及系统资源、提高模型训练效率。

本申请实施例提供一种模型数据更新方法,包括:

主机确定需要在多个从机中更新的模型数据;

所述主机将确定的模型数据划分为n份;n为大于1的正整数;

所述主机向所述多个从机中的第一从机逐份发送所述n份模型数据,并在所述多个从机中传递所述n份模型数据。

可选地,在所述多个从机中传递所述n份模型数据,具体包括:

由所述第一从机开始,向下一个从机逐份发送所述n份模型数据;

所述第一从机在接收所述第m份模型数据时,将所述第一从机已接收的前m-1份模型数据中还未发送给下一个从机的模型数据发送给所述下一个从机;m为大于1、且小于或等于n的正整数。

可选地,主机确定需要在所述多个从机中更新的模型数据,包括:

所述主机接收所述多个从机分别反馈的模型训练结果;所述模型训练结果是从机在执行完一个迭代周期的模型训练后得到的结果;

根据所述多个从机分别反馈的模型训练结果,确定需要在所述多个从机中更新的模型数据。

可选地,所述模型训练结果为反映模型参数变化的梯度值;所述主机根据以下公式确定需要在所述多个从机中更新的模型数据:

wi‘=wi-ηδwi

其中,wi‘为更新后的第i个模型参数的值,wi为更新前的第i个模型参数的值;δwi为将所述多个从机分别反馈的所述第i个模型参数的梯度值进行累加后的值;η为学习率。

可选地,所述学习率η为预设值;或者,

所述一个迭代周期为第k个迭代周期,根据在前k个迭代周期分别训练出 的所述第i个模型参数的梯度值,确定所述第i个模型参数对应的学习率η,k为正整数。

可选地,根据以下公式确定第i个模型参数对应的学习率η:

其中,γ为常数;j为迭代的周期数;δωi,j为将第i个模型参数的多个梯度值进行累加后的值,所述多个梯度值为在进行第j个迭代周期的训练后得到的梯度值。

本申请实施例提供一种模型数据更新方法,包括:

第一从机在接收第一设备发送的n份模型数据中的第m份模型数据时,将已接收的前m-1份模型数据中还未发送给下一个从机的模型数据发送给所述下一个从机;

其中,所述n份模型数据为主机将确定的需要在多个从机中更新的模型数据划分后得到的;所述第一设备为主机或所述第一从机的上一个从机,m为大于1、且小于或等于n的正整数。

可选地,所述第一从机将已接收的前m-1份模型数据中还未发送给下一个从机的模型数据发送给所述下一个从机,包括:

所述第一从机将已接收的第m-1份模型数据发送给所述下一个从机;其中,若m大于2,所述第一从机在开始接收所述第m份模型数据时,已将前m-2份模型数据发送给所述下一个从机。

本申请实施例提供一种模型数据更新装置,包括:

确定模块,用于确定需要在多个从机中更新的模型数据;

划分模块,用于将所述确定模块确定的模型数据划分为n份;n为大于1的正整数;

发送模块,用于向所述多个从机中的第一从机逐份发送所述n份模型数据,并在所述多个从机中传递所述n份模型数据。

本申请实施例还一种模型数据更新装置,包括:

接收模块,用于接收第一设备发送的n份模型数据中的第m份模型数据;其中,所述n份模型数据为主机将确定的需要在多个从机中更新的模型数据划分后得到的;所述第一设备为主机或所述第一从机的上一个从机,m为大于1、且小于或等于n的正整数;

发送模块,用于在所述接收模块接收所述第m份模型数据时,将已接收的前m-1份模型数据中还未发送给下一个从机的模型数据发送给所述下一个从机。

采用本申请实施例,主机不必将需要更新的模型数据依次串行地发送给多个从机,而是只需向其中一个从机发送模型数据,并且从机在接收模型数据的同时,还可以向其下一个从机发送自己已经接收的模型数据,从而节省了主机带宽资源及系统资源,还节省了模型数据更新时间,提高了模型训练效率。

附图说明

图1为本申请实施例的模型训练系统10结构示意图;

图2为本申请实施例提供的模型数据更新方法流程图;

图3为执行数据并行训练的示意图;

图4为本申请实施例进行模型数据更新的示意图;

图5为在从机的角度介绍的本申请实施例进行模型数据更新的方法流程图;

图6为本申请实施例提供的模型数据更新装置之一60的结构示意图;

图7为本申请实施例提供的模型数据更新装置之二70的结构示意图。

具体实施方式

如图1所示,本申请实施例的模型训练系统10包括主机和多个从机。本申请实施例可以基于多图形处理器(graphicprocessingunit,gpu)训练平台实现数据并行,以支持模型的高效训练。主机将当前用于模型训练的用户数据 划分为多份,为执行并行训练的多个从机(即gpu)分别分配一份用户数据,由这多个从机并行循环执行模型训练。在执行完每一个迭代周期的模型训练后,主机确定需要在这多个从机中更新的模型数据(各个模型参数的值),将确定的模型数据划分为n份,然后主机向这多个从机中的一个从机(该从机可以由主机选择或者预先设定)逐份发送所述n份模型数据,并在所述多个从机中传递所述n份模型数据。第一从机(所述多个从机中除最后一个从机外的一个从机)在接收所述主机或其上一个从机发送的第m份模型数据时,可以将该第一从机已接收的前m-1份模型数据中还未发送给下一个从机的模型数据发送给下一个从机。这样,主机不必将需要更新的模型数据依次串行地发送给多个从机,而是只需向其中一个从机发送模型数据,并且该从机在接收模型数据的同时,还可以向其下一个从机发送自己已经接收的模型数据,相应地,下一个从机在接收模型数据的同时,也可以再向其下一个从机发送已经接收的模型数据,如此流水线式地传输模型数据,从而不仅节省了主机带宽资源及系统资源,还节省了模型数据更新时间,提高了模型训练效率。

下面结合说明书附图对本申请实施例作进一步详细描述。

如图2所示,为本申请实施例提供的模型数据更新方法流程图,包括以下步骤:

s201:在多个从机并行执行完一个迭代周期的模型训练后,主机确定需要在所述多个从机中更新的模型数据。

在本申请实施例中,多个从机并行执行一个迭代周期的模型训练,然后将模型训练结果发送给主机,主机基于这多个从机的模型训练结果确定需要在这多个从机中同步更新的模型数据(各个模型参数的值),然后,这多个从机以共同的模型数据作为起点,再进行下一个迭代周期的训练,直到满足模型输出的条件。

如图3所示,每个从机在模型初始化后,首先进行模型测试的前向传播,经过逐层学习,得到对样本数据的测试结果,计算测试损失(这里的损失用于 表征测试结果与真实结果之间的差异),产生梯度值,然后主机将各从机产生的梯度值进行累加后,进行后向传播,更新模型数据,进入下一个迭代周期的训练,直到满足模型输出条件,比如迭代周期数到达预设的最大迭代周期数,输出的模型的测试准确率达到设定阈值以上。

作为一种应用,训练的模型具体可以为用户信用模型,在本申请实施例训练的用户信用模型中,模型输入层输入的数据可以为每个样本用户的不同特征数据,输出层输出的数据为每个样本用户的信用度。比如,针对任一个样本用户,在输入层输入的该样本用户的特征数据可以包括姓名、年龄、婚姻状况、平均月收入、贷款金额、累计拖欠月数、是否有信用卡、授信额度等,在用户信用模型的中间隐藏层,对该样本用户的各个特征数据进行逐层加工、处理,最终输出的对该样本用户的信用测试结果可以为具体的信用分值,或者为信用良好或信用不良的结果。

在具体实施中,在多个从机并行执行完一个迭代周期的模型训练后,主机接收多个从机分别反馈的模型训练结果;根据这多个从机分别反馈的模型训练结果,确定需要在这多个从机中更新的模型数据。

作为一种实施方式,模型训练结果具体可以为反映模型参数变化的梯度值;主机可以根据以下公式确定需要在所述多个从机中更新的模型数据:

wi‘=wi-ηδwi

其中,wi‘为更新后的第i个模型参数的值,wi为更新前的第i个模型参数的值;δwi为将所述多个从机分别反馈的所述第i个模型参数的梯度值进行累加后的值;η为学习率。

在上述公式中,所述学习率η可以为为预设值;或者,

以201中的一个迭代周期为第k个迭代周期,可以根据在前k个迭代周期分别训练出的所述第i个模型参数的梯度值,确定所述第i个模型参数对应的学习率η,k为正整数。

具体地,根据以下公式确定第i个模型参数对应的学习率η:

其中,γ为常数;j为迭代的周期数;δωi,j为将第i个模型参数的多个梯度值进行累加后的值,所述多个梯度值为在进行第j个迭代周期的训练后得到的梯度值。

s202:主机将确定的模型数据划分为n份;n为大于1的正整数。

s203:主机向所述多个从机中的第一从机逐份发送所述n份模型数据,并在所述多个从机中传递所述n份模型数据。

这里,由第一从机开始,向下一个从机逐份发送所述n份模型数据。第一从机在接收第m份模型数据时,将第一从机已接收的前m-1份模型数据中还未发送给下一个从机的模型数据发送给下一个从机;m为大于1、且小于或等于n的正整数。

这里,第一从机在接收主机发送的第m份模型数据时,将已接收的前m-1份模型数据中还未发送给下一个从机的模型数据发送给下一个从机。若第一从机的数据处理速度与主机保持一致,则主机在向下一个从机发送完第m-1份模型数据后,第一从机已经将之前接收的第m-2份模型数据发送给了第二从机,因此,第一从机在接收主机发送的第m份模型数据时,可以同时将已接收的第m-1份模型数据发送给第二从机。

如图4所示,在执行完每一个迭代周期的模型训练后,主机确定需要在这多个从机中更新的模型数据,并将确定的模型数据划分为n份,然后依次发送给这多个从机中的第一从机,主机在将第一份模型数据发送给第一从机后,在向第一从机发送第二份模型数据时,该第一从机可以将已接收的第一份模型数据发送给第二从机,主机在向第一从机发送第三份模型数据时,该第一从机又可以将已接收的第二份模型数据发送给第二从机,同时,第二从机可以将已接收的第一份模型数据发送给第三从机,如此循环。这样,主机不必将需要更新的模型数据依次串行地发送给各个从机,而是只需向其中一个从机发送模型数 据,并且从机在接收模型数据的同时,还可以向其下一个从机发送自己已经接收的模型数据,从而节省了模型数据更新时间,提高了模型训练效率。

实施例二

如图5所示,在从机的角度介绍本申请实施例进行模型数据更新的方法,包括:

s501:第一从机与其它从机并行执行一个迭代周期的模型训练。

s502:第一从机将模型训练结果发送给主机,以使主机确定需要在多个从机中更新的模型数据,并将确定的模型数据划分为n份,n为大于1的正整数;

s503:第一从机在接收第一设备发送的n份模型数据中的第m份模型数据时,将已接收的前m-1份模型数据中还未发送给下一个从机的模型数据发送给所述下一个从机。

上述第一设备可以为主机,也可以为其它从机(这里称为第三从机),m为大于1、且小于或等于n的正整数。

可选地,若从机的数据处理速度与主机保持一致,则主机在向第一从机发送完第m-1份模型数据后,第一从机已经将之前接收的第m-2份模型数据发送给了下一个从机,因此,第一从机在接收主机发送的第m份模型数据时,可以同时将已接收的第m-1份模型数据发送给下一个从机,相应地,后续从机的处理也是同步进行的。

这样,第一从机在接收主机或其它从机发送的所述第m份模型数据时,将已接收的第m-1份模型数据发送给下一个从机;这里,若m大于2,则第一从机在开始接收所述第m份模型数据时,已将前m-2份模型数据发送给所述下一个从机。

基于同一发明构思,本申请实施例中还提供了一种与模型数据更新方法对应的模型数据更新装置,由于该装置解决问题的原理与本申请实施例的模型数据更新方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

如图6所示,为本申请实施例提供的模型数据更新装置之一60的结构示 意图,包括:

确定模块61,用于确定需要在多个从机中更新的模型数据;

划分模块62,用于将所述确定模块61确定的模型数据划分为n份;n为大于1的正整数;

发送模块63,用于向所述多个从机中的第一从机逐份发送所述n份模型数据,并在所述多个从机中传递所述n份模型数据。

这里,第一从机在接收第m份模型数据时,将所述第一从机已接收的前m-1份模型数据中还未发送给下一个从机的模型数据发送给所述下一个从机;m为大于1、且小于或等于n的正整数。

可选地,所述确定模块61具体用于:

接收所述多个从机分别反馈的模型训练结果;所述模型训练结果是从机在执行完一个迭代周期的模型训练后得到的结果;根据所述多个从机分别反馈的模型训练结果,确定需要在所述多个从机中更新的模型数据。

可选地,所述模型训练结果为反映模型参数变化的梯度值;所述确定模块61具体用于根据以下公式确定需要在所述多个从机中更新的模型数据:

wi‘=wi-ηδwi

其中,wi‘为更新后的第i个模型参数的值,wi为更新前的第i个模型参数的值;δwi为将所述多个从机分别反馈的所述第i个模型参数的梯度值进行累加后的值;η为学习率。

可选地,所述学习率η为预设值;或者,

所述一个迭代周期为第k个迭代周期,所述确定模块61具体用于根据在前k个迭代周期分别训练出的所述第i个模型参数的梯度值,确定所述第i个模型参数对应的学习率η,k为正整数。

可选地,所述确定模块61具体用于根据以下公式确定第i个模型参数对应的学习率η:

其中,γ为常数;j为迭代的周期数;δωi,j为将第i个模型参数的多个梯度值进行累加后的值,所述多个梯度值为在进行第j个迭代周期的训练后得到的梯度值。

如图7所示,为本申请实施例提供的模型数据更新装置之二70的结构示意图,包括:

训练模块71,用于执行一个迭代周期的模型训练;

第一发送模块72,用于将模型训练结果发送给主机,以使所述主机确定需要在多个从机中更新的模型数据,并将确定的模型数据划分为n份,n为大于1的正整数;

接收模块73,用于接收第一设备发送的n份模型数据中的第m份模型数据;其中,所述n份模型数据为主机将确定的需要在多个从机中更新的模型数据划分后得到的;所述第一设备为主机或所述第一从机的上一个从机,m为大于1、且小于或等于n的正整数;

第二发送模块74,用于在所述接收模块73接收所述第m份模型数据时,将已接收的前m-1份模型数据中还未发送给下一个从机的模型数据发送给所述下一个从机。

可选地,所述第二发送模块74具体用于:

将已接收的第m-1份模型数据发送给所述下一个从机;其中,若m大于2,所述第一从机在开始接收所述第m份模型数据时,已将前m-2份模型数据发送给所述下一个从机。

采用上述装置,主机不必将需要更新的模型数据依次串行地发送给多个从机,而是只需向其中一个从机发送模型数据,并且从机在接收模型数据的同时,还可以向其下一个从机发送自己已经接收的模型数据,从而节省了主机带宽资源及系统资源,还节省了模型数据更新时间,提高了模型训练效率。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1