用于优化机器学习模型训练的方法、装置及系统与流程

文档序号:33641537发布日期:2023-03-29 02:13阅读:65来源:国知局
用于优化机器学习模型训练的方法、装置及系统与流程

1.本说明书实施例通常涉及人工智能领域,尤其涉及用于优化机器学习模训练的方法、装置及分布式机器学习模型训练系统。


背景技术:

2.随着人工智能技术发展,机器学习模型被越来越多地应用于各种应用场景,比如,物品分类、信息流推送、人群识别、风险识别等。在一些场景下,用于机器学习模型训练的训练样本数据存储在不同数据节点处,由此该多个不同的数据节点组成分布式机器学习模型训练系统来训练机器学习模型。在分布式机器学习模型训练过程中,多个不同的数据节点会在模型训练过程的不同阶段产生不同的模型状态数据,所生成的模型状态数据需要存储在各个数据节点中,并且由该分布式机器学习模型训练系统中的不同数据节点协同使用,由此造成数据节点的存储空间占用以及各个数据节点之间的数据通信开销。数据节点的存储空间占用大小以及数据通信开销会影响分布式机器学习模型训练系统的系统性能。


技术实现要素:

3.鉴于上述,本说明书实施例提供用于优化机器学习模型训练的方法、装置及分布式机器学习模型训练系统。利用该用于优化机器学习模型训练的方法及装置,可以降低分布式机器学习训练系统的训练节点处的存储空间占用大小以及数据通信开销,由此提升分布式机器学习模型训练系统的系统性能。
4.根据本说明书实施例的一个方面,提供一种用于优化机器学习模型训练的方法,所述方法由参与机器学习模型训练的至少两个分布式训练节点的一个分布式训练节点中的一个成员处理设备执行,所述方法包括:响应于完成本地模型计算得到模型参数的梯度信息,将所述梯度信息切片为第一数目个梯度信息切片,所述第一数目为所述成员处理设备所位于的分布式训练节点中的成员处理设备的设备数目;与所述成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自的梯度信息切片执行数据合并处理,每个分布式训练节点内的成员处理设备被赋予编号,每个编号的成员处理设备得到使用对应编号的梯度信息切片进行数据合并处理后的第一梯度信息切片合并结果;与其它分布式训练节点的具有相同编号的所有其它成员处理设备一起,使用各自的第一梯度信息切片合并结果执行数据合并处理,得到第二梯度信息切片合并结果;以及将所述第二梯度信息切片合并结果存储在为所述成员处理设备分配的存储空间中。
5.可选地,在上述方面的一个示例中,响应于完成本地模型计算得到模型参数的梯度信息,将所述梯度信息切片为第一数目个梯度信息切片可以包括:响应于完成本地模型计算得到模型参数的梯度信息,获取所述成员处理设备所属的分布式训练节点中的各个成员处理设备的可用存储空间;以及根据各个成员处理设备的可用存储空间,将所述梯度信息切片为第一数目个梯度信息切片。
6.可选地,在上述方面的一个示例中,根据各个成员处理设备的可用存储空间,将所
述梯度信息切片为第一数目个梯度信息切片可以包括:根据各个成员处理设备的可用存储空间,将所述梯度信息切片为第一数目个梯度信息切片,所切分出的各个梯度信息切片具有与对应编号的成员处理设备的可用存储空间比例匹配的切片大小。
7.可选地,在上述方面的一个示例中,响应于完成本地模型计算得到模型参数的梯度信息,获取所述成员处理设备所属的分布式训练节点中的各个成员处理设备的可用存储空间可用包括:响应于完成本地模型计算得到模型参数的梯度信息,获取所述成员处理设备所属的分布式训练节点中的各个成员处理设备的可用存储空间和可用处理能力。相应地,根据各个成员处理设备的可用存储空间,将所述梯度信息切片为第一数目个梯度信息切片可以包括:根据各个成员处理设备的可用存储空间和可用处理能力,将所述梯度信息切片为第一数目个梯度信息切片,所切分出的各个梯度信息切片具有与对应编号的成员处理设备的可用存储空间比例以及可用处理能力匹配的切片大小。
8.可选地,在上述方面的一个示例中,所述方法还可以包括:响应于得到所述第二梯度信息切片合并结果,使用所述第二梯度信息切片合并结果更新待训练的机器学习模型的模型参数;以及与所述成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自更新后的模型参数执行模型参数拼接来实现所述机器学习模型的模型参数更新。
9.可选地,在上述方面的一个示例中,所述方法还可以包括:响应于启动本地模型训练过程,与所述成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自存储的所述机器学习模型的部分模型参数执行模型参数拼接来生成完整的机器学习模型。
10.可选地,在上述方面的一个示例中,同一分布式训练节点内的成员处理设备采用第一通信链路链接,以及不同分布式训练节点的相同编号的成员设备之间采用第二通信链路链接,所述第一通信链路的数据传输带宽高于所述第二通信链路的数据传输带宽。
11.可选地,在上述方面的一个示例中,所述成员处理设备包括gpu设备,以及所述存储空间包括显存。
12.根据本说明书的实施例的另一方面,提供一种用于优化机器学习模型训练的装置,所述装置应用于参与机器学习模型训练的至少两个分布式训练节点的一个分布式训练节点中的一个成员处理设备,所述装置包括:数据切片单元,响应于完成本地模型计算得到模型参数的梯度信息,将所述梯度信息切片为第一数目个梯度信息切片,所述第一数目为所述成员处理设备所位于的分布式训练节点中的成员处理设备的设备数目;节点内数据处理单元,与所述成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自的梯度信息切片执行数据合并处理,每个分布式训练节点内的成员处理设备被赋予编号,每个编号的成员处理设备得到使用对应编号的梯度信息切片进行数据合并处理后的第一梯度信息切片合并结果;节点间数据处理单元,与其它分布式训练节点的具有相同编号的所有其它成员处理设备一起,使用各自的第一梯度信息切片合并结果执行数据合并处理,得到第二梯度信息切片合并结果;以及数据存储单元,将所述第二梯度信息切片合并结果存储在为所述成员处理设备分配的存储空间中。
13.可选地,在上述方面的一个示例中,所述数据切片单元包括:可用存储空间获取模块,响应于完成本地模型计算得到模型参数的梯度信息,获取所述成员处理设备所属的分
布式训练节点中的各个成员处理设备的可用存储空间;以及数据切片模块,根据各个成员处理设备的可用存储空间,将所述梯度信息切片为第一数目个梯度信息切片。
14.可选地,在上述方面的一个示例中,所述数据切片模块根据各个成员处理设备的可用存储空间,将所述梯度信息切片为第一数目个梯度信息切片,所切分出的各个梯度信息切片具有与对应编号的成员处理设备的可用存储空间比例匹配的切片大小。
15.可选地,在上述方面的一个示例中,所述数据切片单元还包括:可用处理能力获取模块,获取所述成员处理设备所属的分布式训练节点中的各个成员处理设备的可用处理能力。所述数据切片模块根据各个成员处理设备的可用存储空间和可用处理能力,将所述梯度信息切片为第一数目个梯度信息切片,所切分出的各个梯度信息切片具有与对应编号的成员处理设备的可用存储空间比例以及可用处理能力匹配的切片大小。
16.可选地,在上述方面的一个示例中,所述装置还可以包括:本地模型参数更新单元,响应于得到所述第二梯度信息切片聚合结果,使用所述第二梯度信息切片合并结果更新待训练的机器学习模型的模型参数;以及模型更新单元,与所述成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自更新后的模型参数执行模型参数拼接来实现所述机器学习模型的模型参数更新。
17.可选地,在上述方面的一个示例中,所述装置还可以包括:模型生成单元,响应于启动本地模型训练过程,与所述成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自存储的所述机器学习模型的部分模型参数执行模型参数拼接来生成完整的机器学习模型。
18.根据本说明书的实施例的另一方面,提供一种分布式机器学习模型训练系统,包括:至少两个分布式训练节点,每个训练节点包括存储设备和至少两个成员处理设备,每个成员处理设备包括如上所述的用于优化机器学习模型训练的装置。
19.根据本说明书的实施例的另一方面,提供一种用于优化机器学习模型训练的装置,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器中的计算机程序,所述至少一个处理器执行所述计算机程序来实现如上所述的用于优化机器学习模型训练的方法。
20.根据本说明书的实施例的另一方面,提供一种计算机可读存储介质,其存储有可执行指令,所述指令当被执行时使得处理器执行如上所述的用于优化机器学习模型训练的方法。
21.根据本说明书的实施例的另一方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行来实现如上所述的用于优化机器学习模型训练的方法。
附图说明
22.通过参照下面的附图,可以实现对于本说明书内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
23.图1示出了根据本说明书的实施例的分布式机器学习训练系统的方框示意图。
24.图2示出了根据本说明书的实施例的分布式机器学习模型训练过程的示例流程图。
25.图3示出了根据本说明书的实施例的用于优化机器学习模型训练的方法的示例流
程图。
26.图4示出了根据本说明书的实施例的同一训练节点内的成员处理设备之间的完全gather处理的示例示意图。
27.图5示出了根据本说明书的实施例的同一训练节点内的成员处理设备之间的reduce处理的示例示意图。
28.图6示出了根据本说明书的实施例的不同训练节点的成员处理设备之间的完全reduce处理的示例示意图。
29.图7示出了根据本说明书的实施例的训练节点的成员设备之间的数据传输过程的示例示意图。
30.图8示出了根据本说明书的实施例的模型训练优化装置的示例方框图。
31.图9示出了根据本说明书的实施例的数据切片单元的示例方框图。
32.图10示出了根据本说明书的实施例的基于计算机系统实现的模型训练优化装置的示例示意图。
具体实施方式
33.现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
34.如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
35.在分布式机器学习模型训练过程中,多个不同的训练节点会在模型训练过程的不同阶段产生不同的模型状态数据,所产生的模型状态数据例如可以包括例如在定义模型结构时生成的模型参数、在执行模型的模型计算后进行反向传播时产生的梯度信息、以及在执行模型参数更新时生成的优化器状态数据等。所生成的模型状态数据需要存储在各个训练节点中,以供该分布式机器学习模型训练系统中的不同训练节点后续协同使用。在常规分布式机器学习模型训练方案中,每个训练节点需要存储模型训练过程中所产生的全部模型状态数据,并且在各个训练节点之间或者在训练节点内传输所需的模型状态数据,从而占用训练节点的大量存储空间并且消耗大量的数据通信开销,由此大大降低分布式机器学习模型训练系统的系统性能。
36.鉴于此,本说明书的实施例提供一种用于优化机器学习模型训练的方法、装置及分布式机器学习模型训练系统。利用该用于优化机器学习模型训练的方法及装置,通过将训练节点内的各个成员处理设备所产生的梯度信息切分为多个梯度信息切片,并且同一训
练节点内的各个成员处理设备使用各自的梯度信息切片执行数据合并处理,由此各自得到使用对应的梯度信息切片进行数据合并处理后的第一梯度信息切片合并结果,随后不同训练节点的具有相同编号的成员处理设备使用各自的第一梯度信息切片合并结果再次执行数据合并处理,由此各自得到第二梯度信息切片合并结果并进行本地存储,由此降低分布式机器学习训练系统的训练节点处的存储空间占用大小。此外,在进行模型更新时,每个成员处理设备使用本地存储的第二梯度信息切片合并结果来进行本地模型参数更新,并且与同一训练节点内训练节点的其它成员处理设备一起使用各自的本地模型更新结果来执行模型参数拼接,由此完成本地模型更新。按照这种处理方式,在不同训练节点之间仅仅传输第一梯度信息切片合并结果,而其他模型状态数据在同一训练节点内传输,由此大大降低数据通信开销,进而提升分布式机器学习模型训练系统的系统性能。
37.在本说明书中,术语“机器学习模型”可以指被应用于业务场景中来进行业务预测服务的机器学习模型,比如,用于分类预测、业务风险预测等等的机器学习模型。机器学习模型的示例可以包括但不限于:线性回归模型、逻辑回归模型、神经网络模型、决策树模型、支持向量机等。神经网络模型的示例可以包括但不限于深度神经网络(dnn,deep neural network)模型、卷积神经网络(cnn,convolutional neural network)模型、bp神经网络等。
38.机器学习模型的具体实现形式可以取决于所应用的业务场景。例如,在机器学习模型应用于对用户进行分类的应用场景,则机器学习模型被实现为用户分类模型。相应地,可以根据该机器学习模型来对待分类用户的用户特征数据进行用户分类预测。在机器学习模型应用于对业务系统上发生的业务交易进行业务风险预测的应用场景,则机器学习模型被实现为业务风险预测模型。相应地,可以根据该机器学习模型来对该业务交易的业务交易特征数据进行业务风险预测。
39.下面参照附图描述根据本说明书的实施例的用于优化机器学习模型训练的方法、装置以及分布式机器学习模型训练系统。
40.图1示出了根据本说明书的实施例的分布式机器学习模型训练系统100的方框示意图。
41.如图1所示,分布式机器学习模型训练系统100包括至少两个训练节点110。如图1所示,分布式机器学习模型训练系统100包括4个训练节点110,即,训练节点110-1、110-2、110-3和110-4。要说明的是,在其它实施例中,分布式机器学习模型训练系统100可以包括更多或更少的训练节点110。训练节点110可以通过网络120相互通信来进行数据共享。在一些实施例中,网络120可以是有线网络或无线网络中的任意一种或多种。网络120的示例可以包括但不限于电缆网络、光纤网络、电信网络、企业内部网络、互联网、局域网络(lan)、广域网络(wan)、无线局域网络(wlan)、城域网(man)、公共交换电话网络(pstn)、蓝牙网络、紫蜂网络(zigzee)、近场通讯(nfc)、设备内总线、设备内线路等或其任意组合。在一些实施例中,训练节点110之间可以直接通信,而无需网络120。
42.每个训练节点110可以具有至少两个成员处理设备111和存储设备112。每个训练节点还具有本地训练数据,并且将本地训练数据提供给至少两个成员处理设备111来执行机器学习模型的本地模型训练,例如,每个成员处理设备可以执行机器学习模型前向传播时的模型计算、反向传播时的梯度信息计算、本地模型参数更新等,并将所产生的模型状态数据存储在为该成员处理设备分配的存储设备的存储空间中。
43.在一些实施例中,每个训练节点处的成员处理设备的示例例如可以包括但不限于gpu、gnu或mpu等。各个训练节点处具有的成员处理设备的数目相同,并且每个训练节点处的成员处理设备被分别赋予不同的编号,每个编号的成员处理设备在其分配的存储空间中存储对应的模型状态数据。各个训练节点的相同编号的成员处理设备之间可以构成对应关系。
44.在一些实施例中,同一分布式训练节点内的成员处理设备之间可以采用第一通信链路链接,以及不同分布式训练节点的相同编号的成员设备之间可以采用第二通信链路链接。第一通信链路的数据传输带宽高于第二通信链路的数据传输带宽。例如,在成员处理设备为gpu的情况下,同一分布式训练节点内的成员处理设备之间可以采用高速nvlink链路进行链接。第一通信链路也可以称为内部通信链路,以及第二通信链路也可以称为外部通信链路。
45.图2示出了根据本说明书的实施例的分布式机器学习模型训练过程200的示例流程图。在图2的示例中,分布式机器学习模型训练系统包括2个训练节点node0和node1,以及每个训练节点具有两个gpu设备,例如,两个gpu卡。每个gpu设备存储有待训练的机器学习模型的部分模型参数,并且同一训练节点内的两个gpu设备所存储的模型参数组成机器学习模型的完整模型参数。
46.如图2所示,在210,响应于启动机器学习模型训练过程,同一训练节点内的各个成员处理设备使用各自存储的部分模型参数协同生成待训练的机器学习模型的完整模型。例如,各个训练节点内的两个gpu设备可以将各自的部分模型参数经由内部通信链路传输给其它gpu设备。随后,每个gpu设备将所接收的部分模型参数与所存储的部分模型参数进行模型参数拼接来生成待训练的机器学习模型的完整模型参数,由此得到完整的机器学习模型。
47.在220,各个成员处理设备使用本地训练数据来执行本地模型计算,由此得到用于模型参数更新的梯度信息。
48.在230,各个成员处理设备将所得到的梯度信息存储在为各个成员设备分配的存储设备的存储空间中。
49.接着,在240,各个成员处理设备使用在各自存储空间中存储的梯度信息来执行本地模型参数更新,并且同一训练节点内的各个成员处理设备使用各自的本地模型参数更新结果来协同完成机器学习模型的模型更新。
50.在图2中示出的分布式机器学习模型训练过程中,根据本说明书的实施例的用于优化机器学习模型训练的方法涉及步骤210、230和240。下面将参照附图进行详细描述。
51.图3示出了根据本说明书的实施例的用于优化机器学习模型训练的方法300的示例流程图。在图3的示例中,分布式机器学习模型训练系统包括2个训练节点node0和node1,以及每个训练节点具有两个gpu设备。每个gpu设备存储有待训练的机器学习模型的部分模型参数,并且同一训练节点内的两个gpu设备所存储的模型参数共同组成机器学习模型的完整模型参数。此外,每个训练节点中的各个成员处理设备被赋予不同的编号。如图3中所示,训练节点node0和node1中的两个gpu设备被赋予编号0和编号1,即,node0.gpu0、node0.gpu1、node1.gpu0和node1.gpu1。
52.如图3所示,在310,响应于启动本地模型训练过程,各个成员设备与该成员处理设
备所属的分布式训练节点的所有其它成员处理设备一起,使用各自存储的机器学习模型的部分模型参数执行模型参数拼接来生成完整的机器学习模型。在一些实施例中,模型参数拼接可以采用完全gather处理来实现。
53.图4示出了根据本说明书的实施例的同一训练节点内的成员处理设备之间的完全gather处理的示例示意图。
54.如图4所示,训练节点node0内的node0.gpu0初始存储有部分模型参数p00,以及node0.gpu1初始存储有部分模型参数p01,模型参数p00和p01共同组成机器学习模块的完整模型参数。训练节点node1内的node1.gpu0初始存储有部分模型参数p10,以及node1.gpu1初始存储有部分模型参数p11,模型参数p10和p11共同组成机器学习模块的完整模型参数。
55.响应于启动本地模型训练过程,node0.gpu0将模型参数p00经由内部通信链路传输给node0.gpu1,以及node0.gpu1将模型参数p00经由内部通信链路传输给node0.gpu0。node1.gpu0将模型参数p10经由内部通信链路传输给node1.gpu1,以及node1.gpu1将模型参数p11经由内部通信链路传输给node1.gpu0。
56.随后,各个gpu设备使用所接收的部分模型参数以及所具有的部分模型参数来执行模型参数拼接,以分别得到完整的机器学习模型。例如,node0.gpu0可以将所接收的模型参数p01拼接在所存储的模型参数p00之后,得到待训练的机器学习模型的完整模型参数。node0.gpu1可以将所接收的模型参数p00拼接在所存储的模型参数p01之前,得到待训练的机器学习模型的完整模型参数。node1.gpu0可以将所接收的模型参数p11拼接在所存储的模型参数p10之后,得到待训练的机器学习模型的完整模型参数。node1.gpu1可以将所接收的模型参数p10拼接在所存储的模型参数p11之前,得到待训练的机器学习模型的完整模型参数。在一些实施例中,机器学习模型的每个模型参数在完整模型参数中可以具有唯一的参数位置,各个gpu设备可以将每个模型参数填充在各自的参数位置处来完成模型参数拼接处理。
57.在320,响应于完成本地模型计算得到模型参数的梯度信息,各个成员处理设备将所得到的梯度信息切片为第一数目个梯度信息切片,第一数目为所述成员处理设备所位于的分布式训练节点中的成员处理设备的设备数目。例如,在图3的示例中,每个分布式训练节点中的成员处理设备的设备数目为2,则各个成员处理设备将所得到的梯度信息切片为2个梯度信息切片。
58.在一些实施例中,各个成员处理设备可以将所得到的梯度信息切片等分为第一数目个梯度信息切片。在一些实施例中,在各个成员处理设备完成本地模型计算得到模型参数的梯度信息后,可以获取该成员处理设备所属的分布式训练节点中的所有成员处理设备的可用存储空间。然后,根据各个成员处理设备的可用存储空间,将所得到的梯度信息切片为第一数目个梯度信息切片,所切分出的各个梯度信息切片具有与对应编号的成员处理设备的可用存储空间比例匹配的切片大小。
59.在一些实施例中,响应于各个成员处理设备完成本地模型计算得到模型参数的梯度信息,可以获取该成员处理设备所属的分布式训练节点中的各个成员处理设备的可用存储空间和可用处理能力。随后,根据各个成员处理设备的可用存储空间和可用处理能力,将所得到的梯度信息切片为第一数目个梯度信息切片,所切分出的各个梯度信息切片具有与
对应编号的成员处理设备的可用存储空间比例以及可用处理能力匹配的切片大小。
60.在330,各个成员处理设备与该成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自的梯度信息切片执行数据合并处理。每个编号的成员处理设备得到使用对应编号的梯度信息切片进行数据合并处理后的第一梯度信息切片合并结果。要说明的是,在上述数据合并处理中,各个对应的梯度信息切片中的元素对应合并,从而使得数据合并后的梯度信息切片合并结果所占用的存储空间大小不变。例如,假设一个成员处理设备的对应编号梯度信息切片所占用的存储空间大小为k比特,则经过数据合并后的梯度信息切片合并结果所占用的存储空间大小也为k比特。在一些实施例中,数据合并处理可以利用reduce处理来实现。
61.图5示出了根据本说明书的实施例的同一训练节点内的成员处理设备之间的reduce处理的示例示意图。图5中示出的是node0.gpu0与node0.gpu1一起执行的reduce处理。
62.如图5所示,node0.gpu0将所得到的梯度信息切分为梯度信息切片t00和t01,以及node0.gpu1将所得到的梯度信息切分为梯度信息切片t10和t11。随后,node0.gpu0将梯度信息切片t01同步给node0.gpu1,以及node0.gpu1将梯度信息切片t10同步给node0.gpu0。然后,node0.gpu0对所接收到的梯度信息切片t10和所保留的梯度信息切片t00执行数据合并,得到第一梯度信息切片合并结果t00,即,t00=t00+t10。node0.gpu1对所接收到的梯度信息切片t01和所保留的梯度信息切片t11执行数据合并,得到第一梯度信息切片合并结果t01,即,t01=t01+t11。node0.gpu0处的梯度信息切片t00和第一梯度信息切片合并结果t00所占用的存储空间大小相同。node0.gpu1处的梯度信息切片t11和第一梯度信息切片合并结果t01所占用的存储空间大小相同。要说明的是,图5中示出的仅仅是node0.gpu0的reduce处理。
63.回到图3,在各个成员处理设备得到各自的第一梯度信息切片合并结果后,在340,各个成员处理设备与其它分布式训练节点的具有相同编号的所有其它成员处理设备一起,使用各自的第一梯度信息切片合并结果执行数据合并处理,得到第二梯度信息切片合并结果。要说明的是,在340处的数据合并处理中,不同分布式训练节点的具有相同编号的成员处理设备协同处理,并且每个参与协同处理的成员处理设备都执行相应的数据合并处理,并且所执行的数据合并处理操作完全相同。在本说明书中,340处的这种数据合并处理,也可以称为“完全数据合并处理”。在一些实施例中,340处的上述数据合并处理可以利用“完全reduce处理”来实现。
64.图6示出了根据本说明书的实施例的不同训练节点的成员处理设备之间的完全reduce处理的示例示意图。
65.如图6所示,在node0.gpu0、node0.gpu1、node1.gpu0和node1.gpu1分别得到各自的第一梯度信息切片合并结果t00、t01、t10和t11后,node0.gpu0将第一梯度信息切片合并结果t00同步给node1.gpu0,以及node1.gpu0将第一梯度信息切片合并结果t10同步给node0.gpu0。node0.gpu1将第一梯度信息切片合并结果t01同步给node1.gpu1,以及node1.gpu1将第一梯度信息切片合并结果t11同步给node0.gpu1。随后,各个成员处理设备使用所接收的第一梯度信息切片合并结果与各自得到的第一梯度信息切片合并结果执行数据合并,由此得到第二梯度信息切片合并结果。如果图6中所示,node0.gpu0和
node1.gpu0分别将第一梯度信息切片合并结果t00和第一梯度信息切片合并结果t10中的对应元素相加,得到第二梯度信息切片合并结果t0。node0.gpu1和node1.gpu1分别将第一梯度信息切片合并结果t01和第一梯度信息切片合并结果t11中的对应元素相加,得到第二梯度信息切片合并结果t1。
66.在350,各个成员处理设备将各自得到的第二梯度信息切片合并结果存储在为该成员处理设备分配的存储空间中,由此完成梯度信息存储处理。
67.可选地,在360,响应于得到第二梯度信息切片合并结果,各个成员处理设备使用各自的第二梯度信息切片合并结果在本地更新待训练的机器学习模型的模型参数。
68.在370,各个成员处理设备与该成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自更新后的模型参数执行模型参数拼接来实现机器学习模型的模型参数更新,由此完成机器学习模型的当前模型训练过程。这里,执行机器学习模型的模型参数更新所使用的模型参数拼接过程可以采用图4中示出的模型参数拼接过程,在此不再赘述。
69.如上描述了根据本说明书的实施例的机器学习模型训练过程。图7示出了根据本说明书的实施例的在进行梯度信息存储时训练节点的成员处理设备之间的数据传输过程的示例示意图。
70.如图7所示,在进行梯度信息存储时,经过数据切分后的各个切片数据在同一训练节点内的各个成员处理设备之间经由内部通信链路进行数据传输。跨训练节点的成员处理设备之间的数据传输仅仅是具有相同编号的成员处理设备之间经由外部通信链路传输第一梯度信息切片合并结果。
71.此外,在进行待训练的机器学习模型的完整模型参数生成过程中,需要传输的部分模型参数经由同一训练节点内的各个成员处理设备经由内部通信链路进行数据传输。另外,在进行本地模型更新时,各个成员处理设备使用各自的第二梯度信息切片合并结果来在本地执行本地模型参数更新,并经由内部通信链路向同一训练节点内的其它成员处理设备传输所得到的本地模型参数更新结果,由此实现本地模型更新。在这个处理过程中,仅仅需要经由内部通信链路的节点内部通信,而无需跨训练节点的数据传输,由此可以大大降低跨训练节点之间的数据传输而导致的数据通信开销。
72.利用上述用于优化机器学习模型训练的方法及装置,通过将训练节点内的各个成员处理设备所产生的梯度信息切分为多个梯度信息切片,并且同一训练节点内的各个成员处理设备使用各自的梯度信息切片执行数据合并处理,由此各自得到使用对应的梯度信息切片进行数据合并处理后的第一梯度信息切片合并结果,随后不同训练节点的具有相同编号的成员处理设备使用各自的第一梯度信息切片合并结果来再次执行数据合并,由此各自得到第二梯度信息切片合并结果并进行本地存储,由此降低分布式机器学习训练系统的训练节点处的存储空间占用大小。
73.上面参照附图描述了根据本说明书的实施例的用于优化机器学习模型训练的方法。
74.图8示出了根据本说明书的实施例的模型训练优化装置800的示例方框图。如图8所示,模型训练优化装置800包括模型生成单元810、数据切分单元820、节点内数据处理单元830、节点间数据处理单元840、数据存储单元850、本地模型参数更新单元860和模型更新
单元870。模型训练优化装置800应用于参与分布式机器学习模型训练的分布式训练节点的一个成员处理设备。
75.模型生成单元810被配置为响应于启动本地模型训练过程,与所在的成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自存储的机器学习模型的部分模型参数执行模型参数拼接来生成完整的机器学习模型。模型生成单元810的操作可以参考上面参照图3的310描述的操作。
76.数据切片单元820被配置为响应于完成本地模型计算得到模型参数的梯度信息,将所得到的梯度信息切片为第一数目个梯度信息切片,第一数目为所在的成员处理设备所属的分布式训练节点中的成员处理设备的设备数目。数据切片820的操作可以参考上面参照图3的320描述的操作。
77.节点内数据处理单元830被配置为与所在成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自的梯度信息切片执行数据合并处理,每个分布式训练节点内的成员处理设备被赋予编号,每个编号的成员处理设备得到使用对应编号的梯度信息切片进行数据合并处理后的第一梯度信息切片合并结果。节点内数据处理单元830的操作可以参考上面参照图3的330描述的操作。
78.节点间数据处理单元840被配置为与其它分布式训练节点的具有相同编号的所有其它成员处理设备一起,使用各自的第一梯度信息切片合并结果执行数据合并处理,得到第二梯度信息切片合并结果。节点间数据处理单元840的操作可以参考上面参照图3的340描述的操作。
79.数据存储单元850被配置为将第二梯度信息切片合并结果存储在为所在的成员处理设备分配的存储空间中。数据存储单元850的操作可以参考上面参照图3的350描述的操作。
80.本地模型参数更新单元860被配置为响应于得到第二梯度信息切片合并结果,使用第二梯度信息切片合并结果更新待训练的机器学习模型的模型参数。本地模型参数更新单元860的操作可以参考上面参照图3的360描述的操作。
81.模型更新单元870被配置为与所在成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自更新后的模型参数执行模型参数拼接来实现机器学习模型的模型参数更新。模型更新单元870的操作可以参考上面参照图3的370描述的操作。
82.图9示出了根据本说明书的实施例的数据切片单元900的示例方框图。如图9所示,数据切片单元900包括可用存储空间获取模块910和数据切片模块930。
83.可用存储空间获取模块910被配置为响应于完成本地模型计算得到模型参数的梯度信息,获取所在成员处理设备所属的分布式训练节点中的各个成员处理设备的可用存储空间。
84.数据切片模块930被配置为根据各个成员处理设备的可用存储空间,将梯度信息切片为第一数目个梯度信息切片。
85.在一些实施例中,数据切片模块930可以根据各个成员处理设备的可用存储空间,将梯度信息切片为第一数目个梯度信息切片,所切分出的各个梯度信息切片具有与对应编号的成员处理设备的可用存储空间比例匹配的切片大小。
86.在一些实施例中,数据切片单元900还可以包括可用处理能力获取模块(未示出)。
可用处理能力获取模块被配置为获取所在成员处理设备所属的分布式训练节点中的各个成员处理设备的可用处理能力。相应地,数据切片模块930根据各个成员处理设备的可用存储空间和可用处理能力,将梯度信息切片为第一数目个梯度信息切片,所切分出的各个梯度信息切片具有与对应编号的成员处理设备的可用存储空间比例以及可用处理能力匹配的切片大小。
87.在一些实施例中,模型训练优化装置800可以不包括模型生成单元810,或者不包括本地模型参数更新单元860和模型更新单元870,或者不包括上述三个组件单元。
88.如上参照图1到图9,对根据本说明书实施例的用于优化机器学习模型训练的方法及模型训练优化装置进行了描述。上面的模型训练优化装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。
89.图10示出了根据本说明书的实施例的基于计算机系统实现的模型训练优化装置1000的示例示意图。如图10所示,模型训练优化装置1000可以包括至少一个处理器1010、存储器(例如,非易失性存储器)1020、内存1030和通信接口1040,并且至少一个处理器1010、存储器1020、内存1030和通信接口1040经由总线1060连接在一起。至少一个处理器1010执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
90.在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1010:响应于完成本地模型计算得到模型参数的梯度信息,将梯度信息切片为第一数目个梯度信息切片,第一数目为成员处理设备所属分布式训练节点中的成员处理设备的设备数目;与成员处理设备所属的分布式训练节点的所有其它成员处理设备一起,使用各自的梯度信息切片执行数据合并处理,每个分布式训练节点内的成员处理设备被赋予编号,每个编号的成员处理设备得到使用对应编号的梯度信息切片进行数据合并处理后的第一梯度信息切片合并结果;与其它分布式训练节点的具有相同编号的所有其它成员处理设备一起,使用各自的第一梯度信息切片合并结果执行数据合并处理,得到第二梯度信息切片合并结果;以及将第二梯度信息切片合并结果存储在为成员处理设备分配的存储空间中。
91.应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1010进行本说明书的各个实施例中以上结合图1-图9描述的各种操作和功能。
92.根据一个实施例,提供了一种比如机器可读介质(例如,非暂时性机器可读介质)的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-图9描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
93.在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
94.可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd-rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
95.根据一个实施例,提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序当被处理器执行时,使得处理器执行本说明书的各个实施例中以上结合图1-图9描述的各种操作和功能。
96.本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
97.需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
98.以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
99.上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
100.本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1