模型训练及任务处理方法、装置、系统、设备及存储介质与流程

文档序号:33371346发布日期:2023-03-08 02:22阅读:23来源:国知局
模型训练及任务处理方法、装置、系统、设备及存储介质与流程

1.本发明实施例涉及计算机技术,尤其涉及一种模型训练及任务处理方法、装置、系统、设备和存储介质。


背景技术:

2.联邦学习(federated learning)是一种新兴的人工智能基础技术,是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算节点之间开展高效率的机器学习。根据参与方之间的连接,联邦学习可以分为中心化和去中心化两种形式。传统的联邦学习通常采用参数服务器的中心化形式,即存在一个中心服务器,本地设备使用自己所拥有的数据进行本地训练,再由中心服务器对模型进行聚合。去中心化形式是指不存在中心服务器,设备与设备之间进行通信和训练。联邦学习允许在通信过程中,本地设备无需将自身数据传到中心服务器或其他节点,而只需要传递训练好的模型,从此来降低数据泄露的风险。
3.传统的联邦学习,无论是中心化形式或是去中心化形式,仅仅训练一个全局模型作为部署。在高度数据异构性的情况下,一个全局模型往往不能适用于不同的数据分布,导致本地设备部署的模型对自身数据的推理准确性不高。为了解决联邦学习的这种局限性,个性化联邦学习允许本地设备拥有不同的个性化模型,而不是共享相同的全局模型。
4.一种个性化联邦学习的方法是对模型做个性化的分层,将全局模型层划分为共享层和个性化层,对于共享层,与其他设备交换进行训练,对于个性化层,模型仅在本地进行训练,不与其他设备交换。在实现本发明的过程中,发明人发现,这种基于模型分层做个性化联邦学习的方法,对于不同的模型结构鲁棒性较差,且由于需要针对具体模型设计具体的个性化层和共享层,推广性差。


技术实现要素:

5.本发明实施例提供一种模型训练及任务处理方法、装置、系统、设备和存储介质,能够降低训练的计算复杂度,对不同的模型结构鲁棒性好,训练方法推广性好。
6.第一方面,本发明实施例提供一种模型训练方法,所述模型训练方法应用于分布式集群中的本地设备,所述分布式集群中还包括其他设备,所述模型训练方法包括:
7.获取所述其他设备上一轮训练得到的目标任务处理模型;
8.根据所述其他设备上一轮训练得到的目标任务处理模型和所述本地设备上一轮训练得到的目标任务处理模型确定所述本地设备本轮训练的初始任务处理模型;
9.确定所述初始任务处理模型的各个模型参数处的当前梯度,并确定所述本地设备本轮训练的掩码向量;
10.基于所述掩码向量从所述各个模型参数中确定出所述本地设备本轮训练需要更新的模型参数,得到目标参数;
11.根据所述初始任务处理模型的所述目标参数处的当前梯度更新所述目标参数,得
到所述本地设备本轮训练的目标任务处理模型。
12.第二方面,本发明实施例提供一种任务处理方法,包括:
13.获取目标任务的当前特征信息;
14.将所述当前特征信息输入如本发明实施例所述的模型训练方法训练得到的本地目标模型,以利用所述本地目标模型基于所述当前特征信息处理所述目标任务,从而得到所述目标任务的处理结果。
15.第三方面,本发明实施例提供一种模型训练装置,所述模型训练装置应用于分布式集群中的本地设备,所述分布式集群中还包括其他设备,所述模型训练装置包括:
16.模型获取模块,用于获取所述其他设备上一轮训练得到的目标任务处理模型;
17.模型确定模块,用于根据所述其他设备上一轮训练得到的目标任务处理模型和所述本地设备上一轮训练得到的目标任务处理模型确定所述本地设备本轮训练的初始任务处理模型;
18.梯度确定模块,用于确定所述初始任务处理模型的各个模型参数处的当前梯度;
19.掩码确定模块,用于确定所述本地设备本轮训练的掩码向量;
20.参数确定模块,用于基于所述掩码向量从所述各个模型参数中确定出所述本地设备本轮训练需要更新的模型参数,得到目标参数;
21.参数更新模块,用于根据所述初始任务处理模型的所述目标参数处的当前梯度更新所述目标参数,得到所述本地设备本轮训练的目标任务处理模型。
22.第四方面,本发明实施例提供一种任务处理装置,包括:
23.特征获取模块,用于获取目标任务的当前特征信息;
24.任务处理模块,用于将所述当前特征信息输入如本发明实施例所述的模型训练方法训练得到的本地目标模型,以利用所述本地目标模型基于所述当前特征信息处理所述目标任务,从而得到所述目标任务的处理结果。
25.第五方面,本发明实施例提供一种模型训练系统,所述模型训练系统包括分布式集群,所述分布式集群中包括其他设备以及用于执行如本发明实施例任一项所述的模型训练方法的本地设备。
26.第六方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明实施例任一所述的模型训练方法,或者所述处理器执行所述程序时实现如本发明实施例所述的任务处理方法。
27.第七方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例任一所述的模型训练方法,或者该程序被处理器执行时实现如本发明实施例所述的任务处理方法。
28.本发明实施例中,可以获取其他设备上一轮训练得到的目标任务处理模型;根据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型确定本地设备本轮训练的初始任务处理模型;确定初始任务处理模型的各个模型参数处的当前梯度,并确定本地设备本轮训练的掩码向量;基于掩码向量从所述各个模型参数中确定出本地设备本轮训练需要更新的模型参数,得到目标参数;根据初始任务处理模型的目标参数处的当前梯度更新目标参数,得到本地设备本轮训练的目标任务处理模型。
即本发明实施例中,通过掩码向量确定本地设备本轮需要训练的参数,通过掩码向量实现了模型的个性化,因而不需要对模型分层设计和训练,对不同的模型结构鲁棒性好,训练方法推广性好。
29.进一步地,基于掩码向量从各个参数中确定出本轮需要训练的参数,在每轮训练的过程中,只有部分参数参与,一定程度能降低训练的计算复杂度,在梯度后向传播时,只有部分梯度(本轮参与训练的参数对应的梯度)需要后传,能进一步降低训练的计算复杂度。
30.另外,本发明实施例采用去中心化的训练方案,不依赖中心服务器,集群稳定性好,容许分布式集群中的各个设备部署个性化模型,突破了全局单模型部署的约束,能够提高本地设备部署的模型对自身数据的推理准确性。
31.此外,本地设备本轮训练的初始任务处理模型依据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型得到,相当于热启动训练过程,可以提升模型训练速度。
附图说明
32.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
33.图1是本发明实施例提供的模型训练方法的一个流程示意图;
34.图2是本发明实施例提供的确定掩码向量的方法的一个流程示意图;
35.图3是本发明实施例提供的确定掩码向量的方法的另一流程示意图;
36.图4是本发明实施例提供的确定掩码向量的一个方法示例图;
37.图5是本发明实施例提供的模型训练方法的另一流程示意图;
38.图6是本发明实施例提供的模型训练装置的一个结构示意图;
39.图7是本发明实施例提供的任务处理装置的一个结构示意图;
40.图8是本发明实施例提供的模型训练系统的一个结构示意图;
41.图9是本发明实施例提供的电子设备的一个结构示意图。
具体实施方式
42.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
43.在介绍本发明实施例的模型训练方法之前,先介绍一下中心化的联邦学习方法和去中心化的联邦学习方法。
44.中心化的联邦学习方法可以包括如下步骤:
45.(1)中心服务器分发同一个全局模型给多个节点设备;
46.(2)节点设备使用自身数据对接收到的模型进行训练;
47.(3)节点设备将训练好的模型上传到中心服务器;
48.(4)中心服务器对各节点设备上传的模型进行聚合。
49.重复步骤(1)~(4),进行下一轮迭代,直至模型收敛。
50.去中心化的联邦学习方法可以包括如下步骤:
51.(1)本地设备接收其他设备发送的模型;
52.(2)本地设备对接收到的模型进行聚合,并利用自身数据进行模型训练;
53.(3)本地设备将训练好的模型发送给其他设备;
54.(4)其他设备对接收到的模型聚合并训练。
55.重复步骤(1)~(4),进行下一轮迭代,直至模型收敛。
56.横向对比中心化和去中心化的联邦学习方法,二者主要区别在于是否具有中心服务器。在实际应用过程中,由于中心化算法过于依赖中心服务器,如果中心服务器宕机、或被恶意攻击(如中毒攻击,后门攻击等等),那么整个中心化算法就不能实现;其次,关注到通信量上,中心化算法的通信多发生在中心服务器和节点设备之间,对于服务器的通信负载要求较高,当节点设备很多时,不能很好的利用通信最大带宽。与之相反,去中心化的联邦学习方法的通信量多在于节点设备与节点设备之间,可以最大限度利用终端设备的带宽,且对于单个机器掉线的鲁棒性会更高。但是,目前的去中心化的联邦学习方法,在个性化联邦学习时,存在鲁棒性较差、推广性差等问题。因而,本发明实施例对去中心化的个性联邦学习方法进行进一步改进,提出一种新的模型训练方法。
57.如图1所示,图1为本发明实施例提供的模型训练方法的一个流程示意图,该方法可以由本发明实施例提供的模型训练装置来执行,该装置可采用软件和/或硬件的方式实现。在一个具体的实施例中,该装置可以集成在电子设备中,电子设备比如可以是计算机、服务器等。以下实施例将以该装置集成在电子设备中为例进行说明,电子设备可以是本地设备,本地设备可以是分布式集群中的一个设备,分布式集群中还可以包括其他设备,本地设备和其他设备构成一个去中心化的训练集群。参考图1,该方法具体可以包括如下步骤:
58.步骤101,获取其他设备上一轮训练得到的目标任务处理模型。
59.示例地,其他设备可以是分布式集群中除本地设备之外的其他所有设备,也可以是分布式集群中与本地设备位置相邻的设备。具体实现中,本地设备可以维护一个设备列表,设备列表中可以包括分布式集群中各个设备的标识信息、位置信息、通信地址信息等,本地设备可以基于设备列表从其他设备获取其他设备上一轮训练得到的目标任务处理模型。本地设备和其他设备进行模型训练的方法,可以相同。
60.本发明实施例中,任务处理模型可以是用于处理目标任务的模型,该模型可以是通过卷积神经网络、深度神经网络等神经网络实现的模型,目标任务可以是目标检测任务、物品推荐任务、文本分类任务、机器翻译任务等,此处不做具体限定。
61.步骤102,根据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型确定本地设备本轮训练的初始任务处理模型。
62.示例地,本地设备本轮训练可以认为是本地设备的非首轮训练;本地设备上一轮训练可以是本地设备的首轮训练,也可以是本地设备的非首轮训练。当本地设备上一轮训练是本地设备的首轮训练时,可以获取设置的超参数,这些超参数可以包括学习率、剪枝率、参与训练的设备的数量,每个设备的资源限制信息等,该资源限制信息可以由对应设备的硬件或物理配置决定,该资源限制信息比如最大处理带宽、单位时间能支持的最大运算
力、最大存储资源等;对本地模型的各个模型参数进行随机初始化,随机初始化即对本地模型的各个模型参数进行随机赋值,随机赋值之后,得到本地设备首轮训练的初始任务处理模型;接下来基于超参数中的资源限制信息确定本地设备支持的模型稀疏度,基于模型稀疏度确定本地设备首轮训练的掩码向量,基于首轮训练的掩码向量确定首轮训练需要更新的模型参数;基于本地设备中的训练数据计算需要更新的模型参数处的当前梯度,在首轮训练时,基于需要更新的模型参数处的当前梯度更新对应的模型参数,从而得到首轮训练的目标任务处理模型。当本地设备上一轮训练是本地设备的非首轮训练时,本地设备上一轮训练与本地设备本轮训练方法相同,后文做详细描述。
63.本发明实施例中,掩码向量可以是指示模型参数的状态的向量,本轮训练的掩码向量即指示对应模型参数在本轮训练中的状态的向量,模型参数的状态可以包括屏蔽状态和公开状态;其中,屏蔽状态的模型参数,在对应轮次的训练过程中,参数值不更新;公开状态的模型参数,在对应轮次的训练过程中,参数值将根据对应梯度进行更新。掩码向量中可以包括各个模型参数在所需状态下的向量标识,向量标识可以用具体的数值表示,比如,可以用0表示需要为屏蔽状态的模型参数的向量标识,用1表示需要为公开状态的模型参数的向量标识,当然,反之亦可。
64.具体实现中,本发明实施例所提及的模型参数可以是模型的结构参数,例如可以是模型各层的权值、偏置量等。比如,任务处理模型是卷积神经网络模型时,卷积层的模型参数可以包括卷积核的权值以及各通道的偏置量,全连接层的模型参数可以包括全连接层的权重和各通道的偏置量。
65.步骤103,确定初始任务处理模型的各个模型参数处的当前梯度,并确定本地设备本轮训练的掩码向量。
66.具体地,可以基于本地设备的本地训练数据集确定初始任务处理模型的各个模型参数处的当前梯度。比如,可以从本地设备的本地训练数据集中选取一个或一批样本数据,利用选取的样本数据确定初始任务处理模型的损失函数,然后计算损失函数在初始任务处理模型的各个模型参数处的当前梯度,得到初始任务处理模型的各个模型参数处的当前梯度。其中,本地训练数据集中可以包括对本地产生和获取的数据进行分析、标注得到的大量的样本数据,即本发明实施例的样本数据是带有样本标签的样本数据。
67.示例地,目标任务为目标检测任务,本地设备的本地训练数据集可以根据本地图像数据库构建。比如,可以将本地图像数据库内原始图像中的目标(比如人、车)进行标记,得到标记后图像,该标记即可以认为是样本标签,从而构建大量的样本数据,根据大量的样本数据构建本地训练数据集。
68.示例地,可以根据初始任务处理模型的各个模型参数处的当前梯度、各个模型参数的当前值和各个模型参数在上一轮训练中的状态确定本地设备本轮训练的掩码向量。
69.比如,可以认为模型参数的值的大小反映了模型参数的重要程度,可以将上一轮训练中为公开状态的模型参数,依据这些模型参数的具体值的大小,将一部分模型参数在本轮训练中调整为屏蔽状态。例如,可以将上一轮训练中为公开状态的模型参数,取其中值较小的几个模型参数,将这些模型参数在本轮训练中调整为屏蔽状态,即在本轮训练中不考虑这些重要程度较低的模型参数了。
70.比如,可以认为模型参数处的梯度的大小反映了模型参数的变化快慢,可以将上
一轮训练中为屏蔽状态的模型参数,依据这些模型参数的梯度的大小,将一部分模型参数在本轮训练中调整为公开状态。例如,可以将上一轮训练中为屏蔽状态的模型参数,取其中梯度较大的几个模型参数,将这些模型参数在本轮训练中调整为公开状态,即在本轮训练中对变化较快的模型参数重新加以关注。
71.步骤104,基于掩码向量从各个模型参数中确定出本地设备本轮训练需要更新的模型参数,得到目标参数。
72.由于本轮训练的掩码向量可以指示对应模型参数在本轮训练中的状态,本发明实施例中,可以根据本轮训练的掩码向量确定本轮训练中状态应为公开的模型参数,即本轮公开参数,可以将本轮公开参数确定为目标参数。
73.步骤105,根据初始任务处理模型的目标参数处的当前梯度更新目标参数,得到本地设备本轮训练的目标任务处理模型。
74.示例地,在得到本地设备本轮训练的目标任务处理模型之后,可以将本地设备本轮训练的目标任务处理模型发送给其他设备,以使得其他设备基于本地设备发送的目标任务处理模型在其他设备上进行模型训练;如此迭代训练,直至满足训练截止条件时,可以将最后一轮训练得到的目标任务处理模型确定为本地设备的本地目标模型。训练截止条件可以是设置的训练轮数限制条件,也可以是设置的损失函数限制条件,此处不做具体限定。
75.本发明实施例中,可以获取其他设备上一轮训练得到的目标任务处理模型;根据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型确定本地设备本轮训练的初始任务处理模型;确定初始任务处理模型的各个模型参数处的当前梯度,并确定本地设备本轮训练的掩码向量;基于掩码向量从所述各个模型参数中确定出本地设备本轮训练需要更新的模型参数,得到目标参数;根据初始任务处理模型的目标参数处的当前梯度更新目标参数,得到本地设备本轮训练的目标任务处理模型。即本发明实施例中,通过掩码向量确定本地设备本轮需要训练的参数,通过掩码向量实现了模型的个性化,因而不需要对模型分层设计和训练,对不同的模型结构鲁棒性好,训练方法推广性好。
76.进一步地,基于掩码向量从各个参数中确定出本轮需要训练的参数,在每轮训练的过程中,只有部分参数参与,一定程度能降低训练的计算复杂度,在梯度后向传播时,只有部分梯度(本轮参与训练的参数对应的梯度)需要后传(根据目标参数处的当前梯度更新目标参数),能进一步降低训练的计算复杂度。
77.另外,本发明实施例采用去中心化的训练方案,不依赖中心服务器,集群稳定性好,容许分布式集群中的各个设备部署个性化模型,突破了全局单模型部署的约束,能够提高本地设备部署的模型对自身数据的推理准确性。
78.此外,本地设备本轮训练的初始任务处理模型依据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型得到,相当于热启动训练过程,可以加快模型收敛,提升模型训练速度。
79.下面举例具体说明本地设备首轮训练的掩码向量的确定方法,具体可如图2所示,可以包括如下步骤:
80.步骤201,确定本地设备的资源限制信息。
81.示例地,本地设备的资源限制信息可以由本地设备的硬件或物理配置决定,该资
源限制信息比如最大处理带宽、单位时间能支持的最大运算力、最大存储资源等。
82.步骤202,基于资源限制信息确定模型稀疏度。
83.即基于本地设备的资源限制信息确定本地设备可以支持的模型稀疏度,模型稀疏度可以用模型参数量、公开状态和屏蔽状态的模型参数比例等表示。比如基于本地设备的资源限制信息确定本地设备可以支持的模型稀疏度为50%,80%等,即本地设备支持所有模型参数中的50%,80%等参与每轮的训练。
84.步骤203,基于模型稀疏度确定本地设备首轮训练的掩码向量。
85.具体地,可以基于模型稀疏度随机初始化掩码向量,从而得到本地设备首轮训练的掩码向量,即随机初始掩码向量。比如,模型稀疏度为50%,屏蔽状态的模型参数的向量标识为0,公开状态的模型参数的向量标识为1,则在随机初始化掩码向量时,可以随机将一半位置的向量标识设置为0,另一半位置的向量标识设置为1。示例地,模型参数的总量为10,即掩码向量的长度为10,按照50%的模型稀疏度随机初始化掩码向量之后,得到的本地设备首轮训练的掩码向量可以是(1,1,1,1,1,0,0,0,0,0)。
86.示例地,当任务处理模型为神经网络模型时,模型会包括多层,在基于模型稀疏度随机初始化掩码向量时,可以采用erk(erd
ó
s-r
é
nyikernel)方法来计算网络每一层的稀疏分配,erk是一种初始化神经网络稀疏比例的方法。特别地,可以使得稀疏参数的数量随着输入和输出通道的变化而变化,确保参数越多的层具有越高的剪枝率。在去中心化联邦学习的设置下,每个设备都有不同的根据erk计算的稀疏分配的随机初始掩码向量。
87.基于模型稀疏度确定本地设备首轮训练的掩码向量,后续基于掩码向量确定对应轮次训练需要更新的模型参数,从而保证整个训练过程都是基于稀疏模型进行的。完整的神经网络包含海量的模型参数,稀疏模型可以指部分模型参数被屏蔽(即不参与实际运算)的模型。由于部分模型参数被屏蔽,模型的尺寸由此减小,基于稀疏模型进行训练,可以显著减少训练计算开销。
88.下面举例具体说明本地设备非首轮训练的掩码向量的确定方法,具体可如图3所示,可以包括如下步骤:
89.步骤301,对本地设备上一轮训练的剪枝率进行衰减处理,得到本地设备本轮训练的剪枝率。
90.示例地,可以设置初始剪枝率,后面每轮训练时,对前一轮训练使用的剪枝率进行衰减,从而加速模型训练过程。比如,上一轮训练的剪枝率是50%,剪枝率按照每轮10%的幅度衰减,则本轮训练的剪枝率可以是40%。
91.步骤302,基于本地设备本轮训练的剪枝率确定剪枝数量和复原数量。
92.示例地,可以将本轮训练的剪枝率与模型参数的总数量相乘,从而得到剪枝数量和复原数量。其中,剪枝数量和复原数量可以相等,即本发明实施例中,在每一轮的模型训练中,模型稀疏度保持不变。比如,本轮训练的剪枝率是40%,模型参数的总数量是10,则本轮训练的剪枝数量为4,复原数量也为4。
93.步骤303,从各个模型参数中确定上轮公开参数和上轮屏蔽参数。
94.其中,上轮公开参数为确定出的本地设备上一轮训练需要公开的模型参数,上轮屏蔽参数为确定出的本地设备上一轮训练需要屏蔽的模型参数,上轮公开参数和上轮屏蔽参数可以通过历史训练记录信息确定。
95.步骤304,基于上轮公开参数的当前值和剪枝数量从上轮公开参数中确定出第一状态变更参数和剩余公开参数。
96.其中,第一状态变更参数为上轮公开参数中,在本轮训练应改为屏蔽状态的模型参数。示例地,可以认为模型参数的值的大小反映了模型参数的重要程度,可以将上轮公开参数按照值的大小进行排序,根据排序选取值较小的一些模型参数,将这些模型参数确定为第一状态变更参数,上轮公开参数中除第一状态变更参数之外的模型参数则为剩余公开参数,即在本轮训练中不考虑这些重要程度较低的模型参数了。
97.步骤305,基于上轮屏蔽参数处的当前梯度和复原数量从上轮屏蔽参数中确定出第二状态变更参数和剩余屏蔽参数。
98.其中,第二状态变更参数为上轮屏蔽参数中,在本轮训练应改为公开状态的模型参数。示例地,可以认为模型参数处的梯度的大小反映了模型参数的变化快慢,可以将上轮屏蔽参数按照梯度的大小进行排序,根据排序选取梯度较大的一些模型参数,将这些模型参数确定为第二状态变更参数,上轮屏蔽参数中除第二状态变更参数之外的模型参数则为剩余屏蔽参数,即在本轮训练中对变化较快的模型参数重新加以关注。
99.步骤306,将第二状态变更参数和剩余公开参数确定为本轮公开参数,将第一状态变更参数和剩余屏蔽参数确定为本轮屏蔽参数。
100.即本轮公开参数包括第二状态变更参数和剩余公开参数,本轮屏蔽参数包括第一状态变更参数和剩余屏蔽参数。
101.步骤307,确定公开参数的向量标识,并确定屏蔽参数的向量标识,公开参数的向量标识与屏蔽参数的向量标识不同。
102.示例地,向量标识可以用具体的数值表示,比如,可以用0表示屏蔽参数的向量标识,用1表示公开参数的向量标识,当然,反之亦可。
103.步骤308,在本轮公开参数对应的向量位置设置公开参数的向量标识,并在本轮屏蔽参数对应的向量位置设置所述屏蔽参数的向量标识,得到本地设备本轮训练的掩码向量。
104.接续前面的例子,比如,模型参数的总数量为10,上轮公开参数有5个,上轮屏蔽参数有5个,公开参数的向量标识为1,屏蔽参数的向量标识为0,上一轮训练的掩码向量是(1,1,1,1,1,0,0,0,0,0),本轮训练的剪枝率为40%,即本轮的剪枝数量为4,本轮的复原数量也为4;上轮公开参数中第一个公开参数的值最大,则可以确定上轮公开参数中第一个公开参数为剩余公开参数,其余4个为第一状态变更参数;上轮屏蔽参数中第一个屏蔽参数处的梯度最小,则可以确定上轮屏蔽参数中第一个公开参数为剩余屏蔽参数,其余4个为第二状态变更参数,则本轮训练的掩码向量是(1,0,0,0,0,0,1,1,1,1)。
105.本实施例确定本地设备本轮训练的掩码向量的过程,相当于对树的剪枝和长枝过程,在确定本轮掩码向量时,先剪除(屏蔽)上轮公开参数中的部分模型参数,再从上轮屏蔽参数中长出(公开)相同数量的模型参数,根据剪除的模型参数和长出的模型参数确定本轮公开参数和本轮屏蔽参数,从而得到本轮训练的掩码向量。示例地,比如图4所示,树(模型)的原始状态为(a),对(a)剪枝得到(b),剪枝如(b)中虚线箭头所示;对(b)长枝得到(c),长枝如(c)中虚线箭头所示,剪枝和长枝数量相同,均为3,树的稀疏度并没有发生变化。
106.上述确定每轮训练的掩码向量的方法,仅为示例,实际应用中,还可以对上述确定
掩码向量的方法进行改进和替换,从而得到其他的确定掩码向量的方法,此处不做具体限定。
107.本发明实施例基于逐轮衰减的剪枝率确定每轮训练的公开参数和屏蔽参数,基于每轮训练的公开参数和屏蔽参数确定每轮训练的掩码向量,可以保证整个训练过程中,模型的稀疏度不变,保证整个训练过程都是以稀疏模型进行,可以减少训练计算开销。
108.整个掩码向量的确定过程涉及的算法可以包括:
109.1.设置超参数:初始剪枝率;
110.2.掩码初始化方法:
111.3.根据erk计算模型稀疏比例,按照模型稀疏比例随机初始化掩码向量;
112.4.返回随机初始掩码向量;
113.5.搜寻下一个掩码向量;
114.6.剪枝率逐轮衰减;
115.7.对模型的每一层都进行这样的操作;
116.8.剪枝(屏蔽)一部分参数;
117.9.复原(公开)一部分参数;
118.10.返回下一个掩码向量。
119.下面基于前面实施例提供的掩码向量的确定方法,进一步说明本发明实施例的模型训练方法,如图5所示,具体可以包括如下步骤:
120.步骤401,获取其他设备上一轮训练得到的目标任务处理模型。
121.步骤402,根据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型确定本地设备本轮训练的初始任务处理模型。
122.示例地,可以认为在本轮训练开始时,其他设备上一轮训练得到的目标任务处理模型的各个模型参数和本地设备上一轮训练得到的目标任务处理模型的各个模型参数,均为公开状态;在上一轮训练中,如果某个模型参数是公开状态,那么在本轮拿到该模型参数时,该模型参数的值是经过上一轮训练更新过的;在上一轮训练中,如果某个模型参数是屏蔽状态,那么在本轮拿到该模型参数时,该模型参数的值是没有经过上一轮训练更新的。因此,可以根据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型确定本地设备本轮训练的初始任务处理模型。
123.具体地,可以将其他设备上一轮训练得到的目标任务处理模型的各个模型参数和本地设备上一轮训练得到的目标任务处理模型的各个模型参数对应进行融合处理,得到本地设备本轮训练的初始任务处理模型。具体的融合方法可以是:根据其他设备上一轮训练得到的目标任务处理模型的各个模型参数的当前值和本地设备上一轮训练得到的目标任务处理模型的各个模型参数的当前值对应确定各个模型参数的平均值,从而得到本地设备本轮训练的初始任务处理模型。
124.步骤403,从本地训练数据集中选取本轮训练数据。
125.示例地,可以从本地设备的本地训练数据集中选取一个或一批样本数据,利用选取的样本数据确定初始任务处理模型的损失函数,然后计算损失函数在初始任务处理模型的各个模型参数处的当前梯度,得到初始任务处理模型的各个模型参数处的当前梯度。具体地,为提高训练得到的模型的准确度,可以预设每批选取的数据量,然后按照该数据量从
本地训练数据集中每次选取一批样本数据,利用一批样本数据来确定初始任务处理模型的损失函数和当前梯度。
126.步骤404,基于本轮训练数据确定初始任务处理模型的损失函数。
127.其中,本轮训练数据是带有样本标签的样本数据,可以基于初始任务处理模型的实际输出和样本标签确定初始任务处理模型的损失函数。
128.步骤405,计算损失函数在初始任务处理模型的各个模型参数处的当前梯度,得到初始任务处理模型的各个模型参数处的当前梯度。
129.步骤406,确定本地设备本轮训练的掩码向量。
130.具体确定掩码向量的方法,可参阅本发明前面实施例所描述的方法,此处不再赘述。
131.步骤407,基于掩码向量中的向量标识确定本轮公开参数,将本轮公开参数确定为目标参数。
132.具体地,由于整个模型训练过程中,模型稀疏度保持不变,因而本轮公开参数的数量与本地设备支持的模型稀疏度对应。
133.步骤408,根据初始任务处理模型的目标参数处的当前梯度更新目标参数,得到本地设备本轮训练的目标任务处理模型。
134.步骤409,向其他设备发送本地设备本轮训练的目标任务处理模型。
135.示例地,其他设备也会基于接收到的本地设备的目标任务处理模型进行模型训练,其他设备进行模型训练的方法,可与本地设备进行模型训练的方法相同。
136.步骤410,确定是否达到训练截止条件,若达到,则执行步骤411,否则,返回步骤401。
137.示例地,训练截止条件可以是设置的训练轮数限制条件,也可以是设置的损失函数限制条件,此处不做具体限定。训练轮数限制条件,比如训练轮数达到预设轮数则停止训练;损失函数限制条件,比如本地设备得到的目标任务处理模型的损失函数值最小或低于预设损失函数值,或者各个设备得到的目标任务处理模型的损失函数值的平均值最小或低于预设损失函数值,则停止训练。
138.步骤411,将最后一轮训练得到的目标任务处理模型确定为本地设备的本地目标模型。
139.整个模型训练过程涉及的算法可以包括:
140.1.设置超参数:学习率、参与训练设备的数量,每个设备的资源限制信息;
141.2.随机初始化本地模型参数,每个设备根据资源限制信息随机初始化掩码向量;
142.3.设置训练迭代轮次;
143.4.对每个设备都进行这样的操作;
144.5.从其他设备接收相应的稀疏模型;
145.6.整合接收到的模型,得到本地设备本轮训练的初始任务处理模型;
146.7.设置训练数据批次大小;
147.8.获取一批数据用于本轮训练;
148.9.计算初始任务处理模型的各个模型参数处的当前梯度;
149.10.根据本轮训练的掩码向量和各个模型参数处的当前梯度更新初始任务处理模
型,得到本轮训练的目标任务处理模型。
150.对训练过程进行分析,发现模型稀疏性和个性化模型的泛化性之间存在一定的关系。在损失函数有界(即利用训练数据计算得到的损失函数是有界的),训练样本数超过指定数量时,可以得到如下结论:随着所谓的全局模型(假设模型,在去中心化的算法中不真实存在)的稀疏度下降,个性化模型的泛化性性能会提升,但是,在实际机器学习应用场景中,模型的泛化性和训练误差也是有关的,二者之间通常是一个动态平衡的过程,在实际应用中,可以根据实际场景和数据分布选择所需的训练模式。
151.需要说明的是,本发明实施例训练得到的本地目标模型,可以用于执行各种目标任务,这些目标任务包括但不限于目标检测任务、物品推荐任务、文本分类任务、机器翻译任务。
152.本发明实施例中,通过掩码向量确定本地设备本轮需要训练的参数,通过掩码向量实现了模型的个性化,因而不需要对模型分层设计和训练,对不同的模型结构鲁棒性好,训练方法推广性好。
153.进一步地,基于掩码向量从各个参数中确定出本轮需要训练的参数,在每轮训练的过程中,只有部分参数参与,一定程度能降低训练的计算复杂度,在梯度后向传播时,只有部分梯度(本轮参与训练的参数对应的梯度)需要后传(根据目标参数处的当前梯度更新目标参数),能进一步降低训练的计算复杂度。
154.另外,本发明实施例采用去中心化的训练方案,不依赖中心服务器,集群稳定性好,容许分布式集群中的各个设备部署个性化模型,突破了全局单模型部署的约束,能够提高本地设备部署的模型对自身数据的推理准确性。
155.此外,本地设备本轮训练的初始任务处理模型依据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型得到,相当于热启动训练过程,可以提升模型训练速度。
156.应该理解的是,虽然图1、2、3、5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、2、3、5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
157.本发明实施例还提供了一种任务处理方法,可以包括如下步骤:
158.(1)获取目标任务的当前特征信息。
159.(2)将当前特征信息输入按照本发明实施例的模型训练方法训练得到的本地目标模型,以利用本地目标模型基于当前特征信息处理目标任务,从而得到目标任务的处理结果。
160.目标任务可以包括但不限于目标检测任务、物品推荐任务、文本分类任务、机器翻译任务等。以目标任务为目标检测任务为例,目标任务的当前特征信息可以是当前图像的特征信息,比如可以将当前图像的特征信息输入本地目标模型,本地目标模型的输出可以是当前图像的检测结果,检测结果比如可以包括目标所在的位置、目标类型(比如人、车)、
置信度等。其中,本地目标模型可以是采用本发明实施例提供的模型训练方法训练得到的,此处对模型训练及使用的具体过程,不再赘述。
161.本发明实施例的任务处理方法所使用的本地目标模型,在训练的过程中,通过掩码向量确定本地设备本轮需要训练的参数,通过掩码向量实现了模型的个性化,因而不需要对模型分层设计和训练,对不同的模型结构鲁棒性好,训练方法推广性好。
162.进一步地,基于掩码向量从各个参数中确定出本轮需要训练的参数,在每轮训练的过程中,只有部分参数参与,一定程度能降低训练的计算复杂度,在梯度后向传播时,只有部分梯度(本轮参与训练的参数对应的梯度)需要后传,能进一步降低训练的计算复杂度。
163.另外,本发明实施例采用去中心化的训练方案,不依赖中心服务器,集群稳定性好,容许分布式集群中的各个设备部署个性化模型,突破了全局单模型部署的约束,能够提高本地设备部署的模型对自身数据的推理准确性。
164.此外,本地设备本轮训练的初始任务处理模型依据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型得到,相当于热启动训练过程,可以提升模型训练速度。
165.图6是本发明实施例提供的模型训练装置的一个结构图,该装置适用于执行本发明实施例提供的模型训练方法,该模型训练装置应用于分布式集群中的本地设备,分布式集群中还包括其他设备。如图6所示,该装置具体可以包括:
166.模型获取模块601,用于获取所述其他设备上一轮训练得到的目标任务处理模型;
167.模型确定模块602,用于根据所述其他设备上一轮训练得到的目标任务处理模型和所述本地设备上一轮训练得到的目标任务处理模型确定所述本地设备本轮训练的初始任务处理模型;
168.梯度确定模块603,用于确定所述初始任务处理模型的各个模型参数处的当前梯度;
169.掩码确定模块604,用于确定所述本地设备本轮训练的掩码向量;
170.参数确定模块605,用于基于所述掩码向量从所述各个模型参数中确定出所述本地设备本轮训练需要更新的模型参数,得到目标参数;
171.参数更新模块606,用于根据所述初始任务处理模型的所述目标参数处的当前梯度更新所述目标参数,得到所述本地设备本轮训练的目标任务处理模型。
172.一实施例中,掩码确定模块604具体用于:
173.从所述各个模型参数中确定出本轮公开参数和本轮屏蔽参数,所述本轮公开参数为所述本地设备本轮训练需要公开的模型参数,所述本轮屏蔽参数为所述本地设备本轮训练需要屏蔽的模型参数;
174.基于所述本轮公开参数和所述本轮屏蔽参数确定所述本地设备本轮训练的掩码向量。
175.一实施例中,掩码确定模块604从所述各个模型参数中确定出本轮公开参数和本轮屏蔽参数,包括:
176.确定所述本地设备本轮训练的剪枝率;
177.从所述各个模型参数中确定上轮公开参数和上轮屏蔽参数,所述上轮公开参数为
所述本地设备上一轮训练需要公开的模型参数,所述上轮屏蔽参数为所述本地设备上一轮训练需要屏蔽的模型参数;
178.基于所述剪枝率从所述上轮公开参数和所述上轮屏蔽参数中确定出所述本轮公开参数,并基于所述剪枝率从所述上轮公开参数和所述上轮屏蔽参数中确定出所述本轮屏蔽参数。
179.一实施例中,掩码确定模块604基于所述剪枝率从所述上轮公开参数和所述上轮屏蔽参数中确定出所述本轮公开参数,并基于所述剪枝率从所述上轮公开参数和所述上轮屏蔽参数中确定出所述本轮屏蔽参数,包括:
180.基于所述剪枝率确定剪枝数量和复原数量;
181.基于所述上轮公开参数的当前值和所述剪枝数量从所述上轮公开参数中确定出第一状态变更参数和剩余公开参数;
182.基于所述上轮屏蔽参数处的当前梯度和所述复原数量从所述上轮屏蔽参数中确定出第二状态变更参数和剩余屏蔽参数;
183.基于所述第一状态变更参数、所述剩余公开参数、所述第二状态变更参数和所述剩余屏蔽参数确定所述本轮公开参数和所述本轮屏蔽参数。
184.一实施例中,掩码确定模块604基于所述第一状态变更参数、所述剩余公开参数、所述第二状态变更参数和所述剩余屏蔽参数确定所述本轮公开参数和所述本轮屏蔽参数,包括:
185.将所述第二状态变更参数和所述剩余公开参数确定为所述本轮公开参数,将所述第一状态变更参数和所述剩余屏蔽参数确定为所述本轮屏蔽参数。
186.一实施例中,掩码确定模块604确定所述本地设备本轮训练的剪枝率,包括:
187.对所述本地设备上一轮训练的剪枝率进行衰减处理,得到所述本地设备本轮训练的剪枝率。
188.一实施例中,掩码确定模块604基于所述本轮公开参数和所述本轮屏蔽参数确定所述本地设备本轮训练的掩码向量,包括:
189.确定公开参数的向量标识,并确定屏蔽参数的向量标识,所述公开参数的向量标识与所述屏蔽参数的向量标识不同;
190.在所述本轮公开参数对应的向量位置设置所述公开参数的向量标识,并在所述本轮屏蔽参数对应的向量位置设置所述屏蔽参数的向量标识,得到所述本地设备本轮训练的掩码向量。
191.一实施例中,参数确定模块605具体用于:
192.基于所述掩码向量中的向量标识确定所述本轮公开参数,将所述本轮公开参数确定为所述目标参数。
193.一实施例中,所述本地设备上一轮训练为所述本地设备首轮训练,所述本地设备首轮训练的掩码向量由掩码确定模块604按照如下方法确定:
194.确定所述本地设备的资源限制信息;
195.基于所述资源限制信息确定模型稀疏度;
196.基于所述模型稀疏度确定所述本地设备首轮训练的掩码向量。
197.一实施例中,该装置还包括:
198.模型发送模块,用于向所述其他设备发送所述本地设备本轮训练的目标任务处理模型。
199.一实施例中,模型确定模块602具体用于:
200.根据所述其他设备上一轮训练得到的目标任务处理模型的所述各个模型参数的当前值和所述本地设备上一轮训练得到的目标任务处理模型的所述各个模型参数的当前值对应确定所述各个模型参数的平均值,得到所述本地设备本轮训练的初始任务处理模型。
201.一实施例中,梯度确定模块603具体用于:
202.从本地训练数据集中选取本轮训练数据;
203.基于所述本轮训练数据确定所述初始任务处理模型的损失函数;
204.计算所述损失函数在所述初始任务处理模型的所述各个模型参数处的当前梯度,得到所述初始任务处理模型的所述各个模型参数处的当前梯度。
205.一实施例中,该装置还包括:
206.条件确定模块,用于确定是否达到训练截止条件;
207.若未达到所述训练截止条件,则返回模型获取模块601执行所述获取所述其他设备上一轮训练得到的目标任务处理模型,直至达到所述训练截止条件时,参数更新模块606将最后一轮训练得到的目标任务处理模型确定为所述本地设备的本地目标模型。
208.本领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述功能模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
209.本发明实施例的模型训练装置,通过掩码向量实现了模型的个性化,因而不需要对模型分层设计和训练,对不同的模型结构鲁棒性好,训练方法推广性好。
210.进一步地,基于掩码向量从各个参数中确定出本轮需要训练的参数,在每轮训练的过程中,只有部分参数参与,一定程度能降低训练的计算复杂度,在梯度后向传播时,只有部分梯度(本轮参与训练的参数对应的梯度)需要后传,能进一步降低训练的计算复杂度。
211.另外,本发明实施例采用去中心化的训练方案,不依赖中心服务器,集群稳定性好,容许分布式集群中的各个设备部署个性化模型,突破了全局单模型部署的约束,能够提高本地设备部署的模型对自身数据的推理准确性。
212.此外,本地设备本轮训练的初始任务处理模型依据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型得到,相当于热启动训练过程,可以提升模型训练速度。
213.图7是本发明实施例提供的任务处理装置的一个结构图,该装置适用于执行本发明实施例提供的任务处理方法。如图7所示,该装置具体可以包括:
214.特征获取模块701,用于获取目标任务的当前特征信息;
215.任务处理模块702,用于将所述当前特征信息输入如本发明实施例所述的模型训练方法训练得到的本地目标模型,以利用所述本地目标模型基于所述当前特征信息处理所
述目标任务,从而得到所述目标任务的处理结果。
216.本发明实施例的任务处理装置所使用的本地目标模型,在训练的过程中,通过掩码向量确定本地设备本轮需要训练的参数,通过掩码向量实现了模型的个性化,因而不需要对模型分层设计和训练,对不同的模型结构鲁棒性好,训练方法推广性好。
217.进一步地,基于掩码向量从各个参数中确定出本轮需要训练的参数,在每轮训练的过程中,只有部分参数参与,一定程度能降低训练的计算复杂度,在梯度后向传播时,只有部分梯度(本轮参与训练的参数对应的梯度)需要后传,能进一步降低训练的计算复杂度。
218.另外,本发明实施例采用去中心化的训练方案,不依赖中心服务器,集群稳定性好,容许分布式集群中的各个设备部署个性化模型,突破了全局单模型部署的约束,能够提高本地设备部署的模型对自身数据的推理准确性。
219.此外,本地设备本轮训练的初始任务处理模型依据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型得到,相当于热启动训练过程,可以提升模型训练速度。
220.本发明实施例还提供了一种模型训练系统,模型训练系统包括分布式集群,如图8所示,分布式集群中包括其他设备802以及用于执行如本发明实施例任一项所述的模型训练方法的本地设备801,其中,其他设备802可以有多个。
221.下面参考图9,其示出了适于用来实现本发明实施例的电子设备的计算机系统900的结构示意图。图9示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
222.如图9所示,计算机系统900包括中央处理单元(cpu)901,其可以根据存储在只读存储器(rom)902中的程序或者从存储部分908加载到随机访问存储器(ram)903中的程序而执行各种适当的动作和处理。在ram 903中,还存储有计算机系统900操作所需的各种程序和数据。cpu 901、rom 902以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
223.以下部件连接至i/o接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至i/o接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
224.特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(cpu)901执行时,执行本发明的系统中限定的上述功能。
225.需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不
限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
226.附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
227.描述于本发明实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元也可以设置在处理器中,例如,可以描述为:一种处理器包括模型获取模块、模型确定模块、梯度确定模块、掩码确定模块、参数确定模块和参数更新模块;或者,可以描述为:一种处理器包括特征获取模块和任务处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
228.作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取所述其他设备上一轮训练得到的目标任务处理模型;根据所述其他设备上一轮训练得到的目标任务处理模型和所述本地设备上一轮训练得到的目标任务处理模型确定所述本地设备本轮训练的初始任务处理模型;确定所述初始任务处理模型的各个模型参数处的当前梯度,并确定所述本地设备本轮训练的掩码向量;基于所述掩码向量从所述各个模型参数中确定出所述本地设备本轮训练需要更新的模型参数,得到目标参数;根据所述初始任务处理模型的所述目标参数处的当前梯度更新所述目标参数,得到所述本地设备本轮训练的目标任务处理模型。
229.或者,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取目标任务的当前特征信息;将所述当前特征信息输入如本发明实施例所述的模型训练方法训练
得到的本地目标模型,以利用所述本地目标模型基于所述当前特征信息处理所述目标任务,从而得到所述目标任务的处理结果。
230.根据本发明实施例的技术方案,在模型训练的过程中,通过掩码向量确定本地设备本轮需要训练的参数,通过掩码向量实现了模型的个性化,因而不需要对模型分层设计和训练,对不同的模型结构鲁棒性好,训练方法推广性好。
231.进一步地,基于掩码向量从各个参数中确定出本轮需要训练的参数,在每轮训练的过程中,只有部分参数参与,一定程度能降低训练的计算复杂度,在梯度后向传播时,只有部分梯度(本轮参与训练的参数对应的梯度)需要后传,能进一步降低训练的计算复杂度。
232.另外,本发明实施例采用去中心化的训练方案,不依赖中心服务器,集群稳定性好,容许分布式集群中的各个设备部署个性化模型,突破了全局单模型部署的约束,能够提高本地设备部署的模型对自身数据的推理准确性。
233.此外,本地设备本轮训练的初始任务处理模型依据其他设备上一轮训练得到的目标任务处理模型和本地设备上一轮训练得到的目标任务处理模型得到,相当于热启动训练过程,可以提升模型训练速度。
234.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1