CN112949853B - 深度学习模型的训练方法、系统、装置及设备 - Google Patents
深度学习模型的训练方法、系统、装置及设备 Download PDFInfo
- Publication number
- CN112949853B CN112949853B CN202110204892.7A CN202110204892A CN112949853B CN 112949853 B CN112949853 B CN 112949853B CN 202110204892 A CN202110204892 A CN 202110204892A CN 112949853 B CN112949853 B CN 112949853B
- Authority
- CN
- China
- Prior art keywords
- node
- sub
- training
- model
- sequence
- 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 198
- 238000013136 deep learning model Methods 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title claims abstract description 106
- 230000008569 process Effects 0.000 claims abstract description 62
- 238000013507 mapping Methods 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 208000022119 inability to concentrate Diseases 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Machine Translation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种深度学习模型的训练方法、系统、装置及设备,方法包括:一次训练过程中,获取每个节点中子模型组成深度学习模型的次序;获取次序中首个子模型所在节点,作为首个节点;利用首个节点中的样本数据集合,按照次序依次启动每个节点,通过每个节点对各自的子模型进行训练;依照次序,分别通过每个所述节点将训练得到的子模型传递给下一个节点,其中,次序中的最后一个节点将训练得到的子模型传递给首个节点;执行下一次训练过程,直至每个节点中的样本数据集合训练完毕。用以解决深度学习模型训练时由于大量数据无法共享,导致训练得到的深度学习模型准确度降低的问题。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种深度学习模型的训练方法、系统、装置及设备。
背景技术
随着人工智能技术(英文全称Artificial Intelligence,中文简称AI)的飞速发展,深度学习模型在各行各业中被广泛应用,深度识别模型的识别准确度是能够在各行业中被应用的前提。
在训练过程中,采用大量、可信的样本数据集合,是能够提高深度学习模型识别准确度的关键。
相关技术中,深度学习模型训练时,需要收集各样本数据到一个训练样本数据集合中,存在样本数据分布中心化的现象。但在银行、保险等数据敏感领域中,多个机构往往无法进行数据共享,这就导致无法集中更多的样本数据,使得训练得到的模型的准确度降低。
发明内容
本申请提供了一种深度学习模型的训练方法、系统、装置及设备,用以解决深度学习模型训练时由于大量数据无法共享,导致训练得到的深度学习模型准确度降低的问题。
第一方面,提供了一种深度学习模型的训练方法,包括:
一次训练过程中,获取每个节点中子模型组成所述深度学习模型的次序,其中,所述子模型为对所述深度学习模型划分得到,每个所述节点各自对应一个所述子模型;
获取所述次序中首个子模型所在所述节点,作为首个节点;
利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练;
依照所述次序,分别通过每个所述节点将训练得到的所述子模型传递给下一个所述节点,其中,所述次序中的最后一个节点将训练得到的所述子模型传递给所述首个节点;
执行下一次所述训练过程,直至每个所述节点中的样本数据集合训练完毕。
可选地,所述子模型为按照参与训练的所述节点的个数,对所述深度学习模型划分获得。
可选地,所述利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练,包括:
通过所述首个节点,将所述首个节点中的样本数据集合,输入到所述首个子模型,获得所述首个子模型输出的特征数据,并将所述特征数据输出给所述次序中的下一个节点;
执行所述特征数据的传递过程:通过第i个节点,将第i-1个节点输出的所述特征数据,输入到所述第i个节点的所述子模型,对所述第i个节点的所述子模型进行训练,获得所述第i个节点的子模型输出的特征数据,所述i大于1且小于参与训练的所述节点的总数;
判断所述第i个节点是否为所述次序中的最后一个节点;
若不是,更新i等于i+1后,返回执行所述特征数据的传递过程;
若是,按照所述次序获得每个所述子模型的参数。
可选地,所述按照所述次序获得每个所述子模型的参数之前,所述方法还包括:
从所述次序的最后一个节点开始,获取所述节点训练后的所述子模型的梯度,按照所述梯度更新所述节点的所述子模型后,按照所述次序将所述梯度回传到上一个节点;重复该过程,直至回传到所述次序的第一个节点,获取所述第一个节点的所述子模型的梯度,按照所述梯度更新所述第一个节点中所述子模型的参数。
可选地,所述执行下一次所述训练过程,直至每个所述节点中的样本数据集合训练完毕之后,所述方法还包括:
确定一次迭代过程完毕,并更新迭代总次数;
判断更新后的所述迭代总次数是否超过设定值,若是,通过所述节点按照所述次序所限定的环的顺序,依次传递每个所述节点上的子模型的参数,直至每个所述节点上获得所述深度学习模型各所述子模型的参数为止。
可选地,所述利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练的过程中,所述方法还包括:
在任意一个所述节点对自身的所述子模型训练结束后,释放训练过程中所占用的资源。
可选地,所述获取每个节点中子模型组成所述深度学习模型的次序,包括:
根据每个所述节点当前保存的子模型的标识与节点的标识之间的映射关系,获得每个所述节点中子模型组成所述深度学习模型的次序,其中,所述子模型的标识用于指示所述子模型在组成所述深度学习模型时的次序;
所述依照所述次序,分别通过每个所述节点将训练得到的所述子模型传递给下一个所述节点之后,所述方法还包括:
根据每个所述节点各自当前所对应的所述子模型,更新所述映射关系。
第二方面,提供了一种深度学习模型的训练系统,包括节点组以及触发节点,所述节点组中包括至少两个参与训练的节点;
所述触发节点,用于对所述深度学习模型进行划分得到各子模型,并将每个所述子模型分配给所述节点组中的各节点,其中,所述节点组中的每个所述节点各自对应一个所述子模型;
所述节点组,用于在一次训练过程中,获取每个节点中子模型组成所述深度学习模型的次序;获取所述次序中首个子模型所在所述节点,作为首个节点;利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练;依照所述次序,分别通过每个所述节点将训练得到的所述子模型传递给下一个所述节点;执行下一次所述训练过程,直至每个所述节点中的样本数据集合训练完毕。
第三方面,提供了一种深度学习模型的训练装置,包括:
第一获取模块,用于一次训练过程中,获取每个节点中子模型组成所述深度学习模型的次序,其中,所述子模型为对所述深度学习模型划分得到,每个所述节点各自对应一个所述子模型;
第二获取模块,用于获取所述次序中首个子模型所在所述节点,作为首个节点;
训练模块,用于利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练;
传输模块,用于依照所述次序,分别通过每个所述节点将训练得到的所述子模型传递给下一个所述节点;
循环模块,用于执行下一次所述训练过程,直至每个所述节点中的样本数据集合训练完毕。
第四方面,提供了一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的深度学习模型的训练方法。
第五方面,提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的深度学习模型的训练方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,通过将深度学习模型划分为多个子模型,给参与训练的每个节点各分配一个子模型,在一次训练过程中按照每个节点中子模型组成该深度学习模型的次序,确定首个节点,利用首个节点中的样本数据集合,按照该次序依次启动每个节点,对每个节点中各自模型进行训练,之后,按照该次序,各节点将训练得到的子模型传递给相邻的下一个节点,以更新各节点上的子模型,使得组成深度学习模型的各子模型对应的节点变更,以执行下一次训练过程,直至每个节点的样本数据集合均训练完毕。在该训练过程中,参与训练的每个节点之间无需交互样本数据集合,保证了样本数据集合的安全性,并且,能够利用参与训练的各节点的资源对深度学习模型进行分布式训练,避免了长时间占用某一个节点的大量资源,影响节点效率的问题,并且利用多个节点的资源进行训练,在一定程度上提升了训练效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中深度学习模型的训练系统架构示意图;
图2为本申请实施例中深度学习模型的训练方法示意图;
图3为本申请实施例中对子模型进行训练的过程示意图;
图4为本申请实施例中迭代次数控制过程示意图;
图5A为本申请实施例中5个节点的连接关系示意图;
图5B为本申请实施例中利用5个节点进行训练的方法流程示意图;
图6为本申请实施例中深度学习模型的训练装置结构示意图;
图7为本申请实施例中电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中,提供一种深度学习模型的训练方法,该方法可以应用于深度学习模型的训练系统中,该系统的架构如图1所示,主要包括节点组10和触发节点11。
节点组10中包括至少两个参与训练的节点101。
其中,触发节点11以及节点组10中包括的各节点101,具体可以是指服务器,当然也可以是其他具备训练深度学习模型所需资源、且保存有用于训练该深度学习模型的部分样本数据集合的设备。
具体地,触发节点11,用于对深度学习模型进行划分得到各子模型,并将每个子模型分配给节点组10中的各节点101,其中,节点组10中的每个节点101各自对应一个子模型。以及,用于将节点组10中各节点101的标识以及各子模型的标识的初始的映射关系,分配给节点组10中的各节点101。
其中,节点的标识用于唯一指示节点组中的该节点,可以是节点的设备码、网络访问地址等。
子模型的标识用于唯一标识该子模型在组成深度学习模型时的次序,例如,子模型的标识为1,表示该子模型为深度学习模型的第一个子模型,子模型的标识为2,表示该子模型为深度学习模型的第二个子模型,以此类推。
节点组10,用于利用分布于各节点的样本数据集合,对分布于各节点的该深度学习模型的子模型进行训练,并在训练结束后,对分布于各节点的训练得到的子模型进行重组,得到训练后的深度学习模型。
需要说明的是,其中触发节点11可以是一个独立的设备,也可以是集成在节点组10中的某一个节点101中,应用中根据需要可以灵活设定,此处并不限定触发节点11的具体设定方式。
基于该系统架构,本申请实施例中提出了一种深度学习模型的训练方法,如图2所示,该深度学习模型的训练过程主要包括:
步骤201,一次训练过程中,获取每个节点中子模型组成深度学习模型的次序,其中,该子模型为对该深度学习模型划分得到,每个节点各自对应一个子模型。
其中,节点中配置的子模型,为按照参与训练的节点的个数,对深度学习模型划分获得。
也就是说,参与训练的节点的个数,与深度学习模型划分得到的子模型的个数相同。例如,在获取到用于训练深度学习模型的样本数据分布于10个服务器时,将深度学习模型划分为10个子模型,
可以采用横向按层切分的方式对深度学习模型进行划分,得到能够组成该深度学习模型的各子模型。
例如,将神经网络模型横向按层切分,每层神经网络作为单独的子模型,将神经网络每两层间的连边参数、激活函数值和误差传播值作为单独的子模型。或者,将神经网络模型的每两层神经网络以及该两层神经网络之间的连边参数、激活函数值和误差传播值,作为一个子模型,等。
具体地,可以根据已经配置的子模型的标识,确定子模型组成深度学习模型的次序。
在每个节点中保存有节点组中各节点的标识与子模型的标识之间的映射关系,在每次更新节点上的子模型后,同步更新该节点上所保存的节点的标识与子模型的标识之间的映射关系。
基于此,获取每个节点中子模型组成所述深度学习模型的次序,包括:根据每个节点当前保存的子模型的标识与节点的标识之间的映射关系,获得每个节点中子模型组成深度学习模型的次序,其中,子模型的标识用于指示该子模型在组成深度学习模型时的次序。
步骤202,获取该次序中首个子模型所在节点,作为首个节点。
在利用节点组中的各节点采用一个样本数据集合进行分布式训练时,节点组中的各节点按照次序依次进行训练,该次序是各节点中的子模型组成该深度学习模型的顺序。
例如,假设节点1上的子模型为神经网络模型排在首位的子模型,则该节点1即为首个节点。
也就是说,按照该次序排列的各节点后,将排序后各节点的子模型顺次连接,即可得到该深度学习模型。
具体地,节点组中的每个节点查询各自所保存的映射关系,以确定各节点的次序,以及节点在该次序中的上一节点和下一节点,以及确定节点是否为该次序中的首个节点或最后节点。
步骤203,利用该首个节点中的样本数据集合,按照该次序依次启动每个节点,通过每个节点对各自的子模型进行训练。
也就是说,利用首个节点中的样本数据集合,对分布于各节点中的子模型进行训练。
节点组中的每个节点中各自保存有样本数据集合,不同节点中所保存的样本数据集合不相同。
在训练过程中,每次利用一个节点中的样本数据集合,对分布于各节点中的子模型进行训练,该样本数据集合所在的节点,即为深度训练模型的首个子模型所在的节点。
步骤204,依照该次序,分别通过每个节点将训练得到的子模型传递给下一个节点,其中,该次序中的最后一个节点将训练得到的子模型传递给该次序中的首个节点。
具体地,该次序中的第一个节点将训练后的子模型1,传递给该次序中的第二个节点;该次序中的第二个节点将训练后的子模型2,传递给该次序中的第三个节点;以此类推,直至该次序中的最后一个节点将训练后的最后一个子模型,传递给第一个节点。
也就是说,将该次序中的首个节点和最后节点相连接,形成闭环,按照该闭环依次向下传递各自训练所得到的子模型。
具体地,在传递子模型后,各节点所对应的子模型发生变化,则更新各节点上的节点的标识与子模型的标识之间的映射关系。例如,初始的映射关系为节点标识1映射到子模型的标识1,节点标识2映射到子模型的标识2,依次类推。在一次训练过程结束时,更新各节点的映射关系为节点标识2映射到子模型的标识1,节点标识3映射到子模型的标识2,以此类推,节点标识1映射到最后一个子模型的标识。
步骤205,执行下一次训练过程,直至每个节点中的样本数据集合训练完毕。
一次训练过程中,利用一个节点的样本数据集合进行训练,节点组中有N个节点,则重复执行步骤201至步骤204N次,即每个节点的样本数据集合均已对分布于各节点的子模型进行训练,至此可获得最终能够应用的深度学习模型。
一个具体实施例中,如图3所示,对于步骤203的具体实施过程包括:
步骤301,通过该次序中的首个节点,将首个节点中的样本数据集合,输入到首个子模型,获得该首个子模型输出的特征数据,并将该特征数据输出给次序中的下一个节点;
步骤302,执行特征数据的传递过程:通过第i个节点,将第i-1个节点输出的特征数据,输入到第i个节点的子模型,对第i个节点的子模型进行训练,获得第i个节点的子模型输出的特征数据,i大于1且小于参与训练的节点的总数;
步骤303,判断第i个节点是否为该次序中的最后一个节点;若不是,执行步骤304,若是,执行步骤305;
步骤304,更新i等于i+1后,返回执行步骤302;
步骤305,按照该次序获得每个子模型的参数。
该方式中,首个节点中的子模型利用样本数据集合进行计算,提取到该样本数据集合中特征数据,非首个节点均利用前一节点所提取的特征数据进行训练,保证了各节点中的子模型训练所使用的数据,与对完整的深度学习模型进行训练时输入该子模型的数据一致,保证训练得到的各子模型所组成完整的深度学习模型,能够正常使用。
一个具体实施例中,在一次训练过程中,在该次序中的最后一个节点利用上一个节点输出的特征数据对子模型进行训练之后,按照该次序获得每个子模型的参数之前,还包括:从该次序的最后一个节点开始,获取该节点训练后的子模型的梯度,按照该梯度更新该节点的子模型后,按照该次序将该梯度回传到上一个节点;重复该过程,直至回传到该次序的第一个节点,获取该第一个节点的子模型的梯度,按照该梯度更新第一个节点中子模型的参数。
例如,次序中的第j个节点,从第j+1个节点获取第j+1个子模型训练后各参数的梯度,根据该梯度计算获得第j个子模型训练后各参数的梯度,其中,j的取值大于或等于1,小于参与训练的节点总数。
该方式中,通过将每个子模型训练所得到的梯度反向传播,以对本次训练过程中所得到的每个子模型的参数进行调整,使得一次训练过程所得到的各子模型的参数更加准确。
一个具体实施例中,定义每个节点中的样本数据集合各训练一遍分布于各节点的子模型,作为一次迭代过程。为了进一步提高深度学习模型的识别准确度,可以通过至少两次迭代过程,以利用各节点的样本数据集合反复对分布于深度学习模型进行训练。
具体地,如图4所示,在每个节点中的样本数据集合训练完毕之后,还包括:
步骤401,确定一次迭代过程完毕,并更新迭代总次数;
步骤402,判断更新后的迭代总次数是否超过设定值,若是,执行步骤403,否则,执行步骤404;
步骤403,通过节点按照次序所限定的环的顺序,依次传递每个节点上的子模型的参数,直至每个节点上获得深度学习模型各子模型的参数为止;
步骤404,执行下一次迭代过程。
该过程中,通过限制迭代总次数不超过设定值,使得能够利用各节点的样本数据集合对深度学习模型进行多次反复训练,并且能够控制训练的总时长,以平衡深度学习模型的识别准确度和训练效率。
一个具体实施例中,为了提高参与训练的各节点的资源利用率,降低深度模型训练所占用的资源,在每次的训练过程中,利用首个节点中的样本数据集合,按照次序依次启动每个节点,通过每个节点对各自的子模型进行训练的过程中,还包括:在任意一个节点对自身的子模型训练结束后,释放训练过程中所占用的资源。使得能够提高各节点的资源利用率,在尽可能少占用资源的情况下,完成深度学习模型的分布式训练。相对于深度学习模型集中在一个设备上进行训练的方式,降低了资源占用率以及降低了资源占用时长。
以下通过举例对本申请实施例所提供的深度学习模型的训练过程进行说明。
如图5A和图5B所示,假设需要利用5个节点中保存的样本数据集合对深度学习模型进行训练,具体训练过程如下:
步骤501,确定待训练的深度学习模型,该深度学习模型中各参数设置为初始值;
步骤502,确定参与训练的节点的总数为5,将深度学习模型按照该节点的总数横向按层切分获得5个子模型,并将该5个子模型分配给参与训练的各节点,其中一个节点分配一个子模型;
步骤503,获得节点中的子模型组成深度学习模型的次序,作为5个节点的次序,例如一个节点中的子模型在组成深度学习模型时排序为3,则用于训练该子模型的节点在各节点中排序为3;
步骤504,通过该次序中首个节点申请计算资源,将存储在该首个节点中的样本数据集合输入到第一个子模型,通过前向传播过程对第一个子模型进行训练,得到该第一个子模型输出的特征数据,该首个节点在训练结束后,释放训练所占用的资源;
步骤505,通过该首个节点将提取到的特征数据传输给该次序中的第二个节点,通过第二个节点将该特征数据输入到第二个子模型,通过前项传播过程对第二个子模型进行训练,得到该第二个子模型输出的特征数据,该第二个子模型在训练结束后,释放训练所占用的资源;
步骤506,该次序中的第三、第四及第五个节点,依次执行与第二个节点类似的前向传播过程;
步骤507,按照该次序进行梯度回传,即该次序中的第五个节点获得训练得到的第五个子模型的梯度,更新该第五个子模型的参数后,将该梯度传递到第四个节点,第四个节点根据第五个节点传递的该梯度,获得训练得到的第四个子模型的梯度,更新第四个子模型的参数后,将该梯度传递到第三个节点,依次类推,直至第一个节点获得第一个子模型的梯度,并更新第一个子模型的参数为止;
步骤508,判断是否每个节点的样本数据集合都被训练完毕,若不是,执行步骤509,若是,执行步骤510;
步骤509,按照该次序,各节点将各自的子模型传递给下一个节点,最后一个节点将子模型传递给第一个节点,至此每个节点所要训练的子模型发生变化,即该次序中第二个节点用于训练第一个子模型,第三个节点用于训练第二个子模型,以此类推,第一个节点用于训练最后一个子模型;返回执行步骤503;
步骤510,一次迭代过程结束,迭代总次数增加1;
步骤511,判断迭代总次数是否大于设定值,若不是,返回执行步骤503,若是,执行步骤512;
步骤512,按照各节点的当前次序,将首个节点和最后一个节点连接形成环,按照该环的顺序,各节点依次传递各自所训练得到的子模型的参数,直至每个节点均获得完整的深度学习模型的参数。
本申请实施例中,提供了利用分布式样本数据和分布式深度学习模型进行训练的方法。该方法中,通过将深度学习模型划分为多个子模型,给参与训练的每个节点各分配一个子模型,在一次训练过程中按照每个节点中子模型组成该深度学习模型的次序,确定首个节点,利用首个节点中的样本数据集合,按照该次序依次启动每个节点,对每个节点中各自模型进行训练,之后,按照该次序,各节点将训练得到的子模型传递给相邻的下一个节点,以更新各节点上的子模型,使得组成深度学习模型的各子模型对应的节点变更,以执行下一次训练过程,直至每个节点的样本数据集合均训练完毕。
在该训练过程中,参与训练的每个节点之间无需交互样本数据集合,保证了样本数据集合的安全性,并且,能够利用参与训练的各节点的资源对深度学习模型进行分布式训练,避免了长时间占用某一个节点的大量资源,影响节点效率的问题,并且利用多个节点的资源进行训练,在一定程度上提升了训练效率。
该方式结合大量的样本数据对深度学习模型进行训练,使得训练得到的模型识别准确度得到保障,为加速AI解决方案在实际应用场景中落地起到重要作用。
相对于利用单个设备的计算资源,对深度学习模型进行训练的方式,以及相对于数据并行方式,能够避免训练长时间占用设备资源,导致训练成本高、训练时间长的问题,也能够避免单个设备资源不足导致无法完成训练的问题。这里所描述的数据并行,是指在不同的设备上保存有同一个模型的多个副本,每个设备分配到不同的数据,将每个设备训练得到的结果按照某种方式合并。
基于同一构思,本申请实施例中提供了一种深度学习模型的训练装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图6所示,该装置主要包括:
第一获取模块601,用于一次训练过程中,获取每个节点中子模型组成所述深度学习模型的次序,其中,所述子模型为对所述深度学习模型划分得到,每个所述节点各自对应一个所述子模型;
第二获取模块602,用于获取所述次序中首个子模型所在所述节点,作为首个节点;
训练模块603,用于利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练;
传输模块604,用于依照所述次序,分别通过每个所述节点将训练得到的所述子模型传递给下一个所述节点;
循环模块605,用于执行下一次所述训练过程,直至每个所述节点中的样本数据集合训练完毕。
基于同一构思,本申请实施例中还提供了一种电子设备,如图7所示,该电子设备主要包括:处理器701、存储器702和通信总线703,其中,处理器701和存储器702通过通信总线703完成相互间的通信。其中,存储器702中存储有可被至处理器701执行的程序,处理器701执行存储器702中存储的程序,实现如下步骤:
一次训练过程中,获取每个节点中子模型组成所述深度学习模型的次序,其中,所述子模型为对所述深度学习模型划分得到,每个所述节点各自对应一个所述子模型;
获取所述次序中首个子模型所在所述节点,作为首个节点;
利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练;
依照所述次序,分别通过每个所述节点将训练得到的所述子模型传递给下一个所述节点,其中,所述次序中的最后一个节点将训练得到的所述子模型传递给所述首个节点;
执行下一次所述训练过程,直至每个所述节点中的样本数据集合训练完毕。
上述电子设备中提到的通信总线703可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线703可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器702可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器701的存储装置。
上述的处理器701可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的深度学习模型的训练方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种深度学习模型的训练方法,其特征在于,包括:
一次训练过程中,获取每个节点中子模型组成所述深度学习模型的次序,其中,所述子模型为对所述深度学习模型划分得到,每个所述节点各自对应一个所述子模型,所述节点为服务器;
获取所述次序中首个子模型所在所述节点,作为首个节点;
利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练,包括通过所述首个节点,将所述首个节点中的样本数据集合,输入到所述首个子模型,获得所述首个子模型输出的特征数据,并将所述特征数据输出给所述次序中的下一个节点;执行所述特征数据的传递过程:通过第i个节点,将第i-1个节点输出的所述特征数据,输入到所述第i个节点的所述子模型,对所述第i个节点的所述子模型进行训练,获得所述第i个节点的子模型输出的特征数据,所述i大于1且小于参与训练的所述节点的总数;判断所述第i个节点是否为所述次序中的最后一个节点;若不是,更新i等于i+1后,返回执行所述特征数据的传递过程;若是,按照所述次序获得每个所述子模型的参数;
依照所述次序,分别通过每个所述节点将训练得到的所述子模型传递给下一个所述节点,其中,所述次序中的最后一个节点将训练得到的所述子模型传递给所述首个节点;
执行下一次所述训练过程,直至每个所述节点中的样本数据集合训练完毕。
2.根据权利要求1所述的深度学习模型的训练方法,其特征在于,所述子模型为按照参与训练的所述节点的个数,对所述深度学习模型划分获得。
3.根据权利要求1所述的深度学习模型的训练方法,其特征在于,所述按照所述次序获得每个所述子模型的参数之前,所述方法还包括:
从所述次序的最后一个节点开始,获取所述节点训练后的所述子模型的梯度,按照所述梯度更新所述节点的所述子模型后,按照所述次序将所述梯度回传到上一个节点;重复该过程,直至回传到所述次序的第一个节点,获取所述第一个节点的所述子模型的梯度,按照所述梯度更新所述第一个节点中所述子模型的参数。
4.根据权利要求1至3任一项所述的深度学习模型的训练方法,其特征在于,所述执行下一次所述训练过程,直至每个所述节点中的样本数据集合训练完毕之后,所述方法还包括:
确定一次迭代过程完毕,并更新迭代总次数;
判断更新后的所述迭代总次数是否超过设定值,若是,通过所述节点按照所述次序所限定的环的顺序,依次传递每个所述节点上的子模型的参数,直至每个所述节点上获得所述深度学习模型各所述子模型的参数为止。
5.根据权利要求1至3任一项所述的深度学习模型的训练方法,其特征在于,所述利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练的过程中,所述方法还包括:
在任意一个所述节点对自身的所述子模型训练结束后,释放训练过程中所占用的资源。
6.根据权利要求1至3任一项所述的深度学习模型的训练方法,其特征在于,所述获取每个节点中子模型组成所述深度学习模型的次序,包括:
根据每个所述节点当前保存的子模型的标识与节点的标识之间的映射关系,获得每个所述节点中子模型组成所述深度学习模型的次序,其中,所述子模型的标识用于指示所述子模型在组成所述深度学习模型时的次序;
所述依照所述次序,分别通过每个所述节点将训练得到的所述子模型传递给下一个所述节点之后,所述方法还包括:
根据每个所述节点各自当前所对应的所述子模型,更新所述映射关系。
7.一种深度学习模型的训练系统,其特征在于,包括节点组以及触发节点,所述节点组中包括至少两个参与训练的节点;
所述触发节点,用于对所述深度学习模型进行划分得到各子模型,并将每个所述子模型分配给所述节点组中的各节点,其中,所述节点组中的每个所述节点各自对应一个所述子模型;
所述节点组,用于在一次训练过程中,获取每个节点中子模型组成所述深度学习模型的次序;获取所述次序中首个子模型所在所述节点,作为首个节点;利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练;依照所述次序,分别通过每个所述节点将训练得到的所述子模型传递给下一个所述节点;执行下一次所述训练过程,直至每个所述节点中的样本数据集合训练完毕,其中,利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练,包括通过所述首个节点,将所述首个节点中的样本数据集合,输入到所述首个子模型,获得所述首个子模型输出的特征数据,并将所述特征数据输出给所述次序中的下一个节点;执行所述特征数据的传递过程:通过第i个节点,将第i-1个节点输出的所述特征数据,输入到所述第i个节点的所述子模型,对所述第i个节点的所述子模型进行训练,获得所述第i个节点的子模型输出的特征数据,所述i大于1且小于参与训练的所述节点的总数;判断所述第i个节点是否为所述次序中的最后一个节点;若不是,更新i等于i+1后,返回执行所述特征数据的传递过程;若是,按照所述次序获得每个所述子模型的参数。
8.一种深度学习模型的训练装置,其特征在于,包括:
第一获取模块,用于一次训练过程中,获取每个节点中子模型组成所述深度学习模型的次序,其中,所述子模型为对所述深度学习模型划分得到,每个所述节点各自对应一个所述子模型;
第二获取模块,用于获取所述次序中首个子模型所在所述节点,作为首个节点;
训练模块,用于利用所述首个节点中的样本数据集合,按照所述次序依次启动每个所述节点,通过每个所述节点对各自的所述子模型进行训练,包括通过所述首个节点,将所述首个节点中的样本数据集合,输入到所述首个子模型,获得所述首个子模型输出的特征数据,并将所述特征数据输出给所述次序中的下一个节点;执行所述特征数据的传递过程:通过第i个节点,将第i-1个节点输出的所述特征数据,输入到所述第i个节点的所述子模型,对所述第i个节点的所述子模型进行训练,获得所述第i个节点的子模型输出的特征数据,所述i大于1且小于参与训练的所述节点的总数;判断所述第i个节点是否为所述次序中的最后一个节点;若不是,更新i等于i+1后,返回执行所述特征数据的传递过程;若是,按照所述次序获得每个所述子模型的参数;
传输模块,用于依照所述次序,分别通过每个所述节点将训练得到的所述子模型传递给下一个所述节点;
循环模块,用于执行下一次所述训练过程,直至每个所述节点中的样本数据集合训练完毕。
9.一种电子设备,其特征在于,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1至6任一项所述的深度学习模型的训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110204892.7A CN112949853B (zh) | 2021-02-23 | 2021-02-23 | 深度学习模型的训练方法、系统、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110204892.7A CN112949853B (zh) | 2021-02-23 | 2021-02-23 | 深度学习模型的训练方法、系统、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112949853A CN112949853A (zh) | 2021-06-11 |
CN112949853B true CN112949853B (zh) | 2024-04-05 |
Family
ID=76245775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110204892.7A Active CN112949853B (zh) | 2021-02-23 | 2021-02-23 | 深度学习模型的训练方法、系统、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112949853B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114004358B (zh) * | 2021-12-29 | 2022-06-14 | 粤港澳大湾区数字经济研究院(福田) | 一种深度学习模型训练方法 |
WO2024148578A1 (zh) * | 2023-01-12 | 2024-07-18 | 华为技术有限公司 | 模型训练方法及装置 |
CN117992223A (zh) * | 2024-01-31 | 2024-05-07 | 三六零数字安全科技集团有限公司 | 模型训练方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110135573A (zh) * | 2018-02-02 | 2019-08-16 | 阿里巴巴集团控股有限公司 | 一种深度学习模型的训练方法、计算设备以及系统 |
WO2020147142A1 (zh) * | 2019-01-16 | 2020-07-23 | 华为技术有限公司 | 一种深度学习模型的训练方法、系统 |
CN112329073A (zh) * | 2021-01-05 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 分布式数据处理方法、装置、计算机设备及存储介质 |
-
2021
- 2021-02-23 CN CN202110204892.7A patent/CN112949853B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110135573A (zh) * | 2018-02-02 | 2019-08-16 | 阿里巴巴集团控股有限公司 | 一种深度学习模型的训练方法、计算设备以及系统 |
WO2020147142A1 (zh) * | 2019-01-16 | 2020-07-23 | 华为技术有限公司 | 一种深度学习模型的训练方法、系统 |
CN111788585A (zh) * | 2019-01-16 | 2020-10-16 | 华为技术有限公司 | 一种深度学习模型的训练方法、系统 |
CN112329073A (zh) * | 2021-01-05 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 分布式数据处理方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
深度学习加速技术研究;杨旭瑜;张铮;张为华;;计算机系统应用;20160915(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112949853A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112949853B (zh) | 深度学习模型的训练方法、系统、装置及设备 | |
CN108122032B (zh) | 一种神经网络模型训练方法、装置、芯片和系统 | |
Hart et al. | Embedding and approximation theorems for echo state networks | |
WO2018099085A1 (zh) | 一种神经网络模型的训练方法、装置及芯片 | |
US10754709B2 (en) | Scalable task scheduling systems and methods for cyclic interdependent tasks using semantic analysis | |
CN107783840B (zh) | 一种分布式多层深度学习资源分配方法和装置 | |
CN109491784B (zh) | 降低内存占用量的方法、装置、电子设备、可读存储介质 | |
CN110554958B (zh) | 图数据库测试方法、系统、设备和存储介质 | |
WO2018176385A1 (en) | System and method for network slicing for service-oriented networks | |
CN115186821B (zh) | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 | |
WO2020228378A1 (zh) | 一种确定数据库的配置参数的方法及装置 | |
CN112416369B (zh) | 一种面向异构混合环境的智能化部署方法 | |
CN114327844A (zh) | 内存分配方法、相关设备及计算机可读存储介质 | |
WO2020107264A1 (zh) | 神经网络架构搜索的方法与装置 | |
CN113673688A (zh) | 权重生成方法、数据处理方法及装置、电子设备、介质 | |
CN109214515A (zh) | 一种深度神经网络推理方法及计算设备 | |
CN117785490B (zh) | 一种图神经网络模型的训练架构、方法、系统及服务器 | |
CN111612155A (zh) | 一种分布式机器学习系统及适用于其的通信调度方法 | |
KR20210064817A (ko) | 상이한 딥러닝 모델 간의 전이 학습방법 | |
CN114492742A (zh) | 神经网络结构搜索、模型发布方法、电子设备和存储介质 | |
US12014296B2 (en) | Test and training data | |
CN113448876B (zh) | 一种业务测试方法、装置、计算机设备及存储介质 | |
CN112036446B (zh) | 目标识别特征融合的方法、系统、介质及装置 | |
CN114880223A (zh) | 基于分桶实验的应用发布方法、装置、电子设备及介质 | |
CN114298331A (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 |