一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种模型的处理方法、装置及设备与流程

2022-11-16 16:05:48 来源:中国专利 TAG:


1.本文件涉及计算机技术领域,尤其涉及一种模型的处理方法、装置及设备。


背景技术:

2.人工智能通过从大量的数据中学习到特定的知识,再通过学习到的特定知识执行相应的业务处理,人工智能技术为社会的发展带来很大便利。但随着互联网中数据量的快速增长,以及人们对于数据隐私的日益关注,数据往往需要进行本地化存储,而仅依靠部分节点(联邦学习中的终端设备)的数据来学习到相应的特定知识,这样学习到的特定知识是不充分而且有偏的。为解决上述问题衍生了在数据本地化的情况下多节点之间的协作学习机制。在实际应用中,不同节点的能力(包括通信能力和计算能力等)往往存在差异。
3.目前,联邦学习通常采用的是完全同步的处理方式,该处理方式下服务器需要等待所有预先选择的终端设备提交相应模型的更新数据,之后,服务器才能够更新服务器中当前的模型,此时,计算能力和通信能力较差的终端设备就成了上述模型训练的“拖累者”,从而造成联邦学习的效率降低。基于此,需要提供一种能够使得联邦学习的效率更高的技术方案。


技术实现要素:

4.本说明书实施例的目的是提供一种能够使得联邦学习的效率更高的技术方案。
5.为了实现上述技术方案,本说明书实施例是这样实现的:
6.本说明书实施例提供的一种模型的处理方法,应用于终端设备,所述方法包括:接收服务器发送的第一模型,获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型。将所述目标模型对应的模型更新数据发送给所述服务器,所述目标模型对应的模型更新数据用于触发所述服务器确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型,以及判断所述第二模型的模型结构是否需要再次裁剪,并在确定所述第二模型的模型结构需要进行裁剪时,确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长。接收所述服务器发送的对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型。获取用于训练所述第二模型的第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,并通过对所述第二模型的模型结构的裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述服务器。
7.本说明书实施例提供的一种模型的处理方法,应用于服务器,所述方法包括:向预
先选定的不同终端设备下发第一模型,所述第一模型用于触发所述终端设备获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型。接收不同终端设备发送的训练后的目标模型对应的模型更新数据,确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型。如果确定所述第二模型的模型结构需要进行裁剪,则确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,并将所述裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型发送给不同终端设备,所述对所述第二模型进行训练所使用的时长和所述第二模型用于触发所述终端设备获取第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,所述裁剪程度和所述第二模型用于触发所述服务器通过所述裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述服务器。
8.本说明书实施例提供的一种模型的处理装置,所述装置包括:第一模型处理模块,接收服务器发送的第一模型,获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型。更新数据发送模块,将所述目标模型对应的模型更新数据发送给所述服务器,所述目标模型对应的模型更新数据用于触发所述服务器确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型,以及判断所述第二模型的模型结构是否需要再次裁剪,并在确定所述第二模型的模型结构需要进行裁剪时,确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长。数据接收模块,接收所述服务器发送的对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型。第二模型处理模块,获取用于训练所述第二模型的第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,并通过对所述第二模型的模型结构的裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述服务器。
9.本说明书实施例提供的一种模型的处理装置,所述装置包括:模型下发模块,向预先选定的不同终端设备下发第一模型,所述第一模型用于触发所述终端设备获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型。模型更新模块,接收不同终端设备发送的训练后的目标模型对应的模型更新数据,确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型。数据发送模块,如
果确定所述第二模型的模型结构需要进行裁剪,则确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,并将所述裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型发送给不同终端设备,所述对所述第二模型进行训练所使用的时长和所述第二模型用于触发所述终端设备获取第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,所述裁剪程度和所述第二模型用于触发所述服务器通过所述裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述装置。
10.本说明书实施例提供的一种模型的处理设备,所述模型的处理设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:接收服务器发送的第一模型,获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型。将所述目标模型对应的模型更新数据发送给所述服务器,所述目标模型对应的模型更新数据用于触发所述服务器确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型,以及判断所述第二模型的模型结构是否需要再次裁剪,并在确定所述第二模型的模型结构需要进行裁剪时,确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长。接收所述服务器发送的对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型。获取用于训练所述第二模型的第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,并通过对所述第二模型的模型结构的裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述服务器。
11.本说明书实施例提供的一种模型的处理设备,所述模型的处理设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:向预先选定的不同终端设备下发第一模型,所述第一模型用于触发所述终端设备获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型。接收不同终端设备发送的训练后的目标模型对应的模型更新数据,确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型。如果确定所述第二模型的模型结构需要进行裁剪,则确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,并将所述裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型发送给不同终端设备,所述对所述第二模型进行训练所使用的时长和所述第二模型用于触发所述终端设备获取第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,所述裁剪程
度和所述第二模型用于触发所述服务器通过所述裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述设备。
12.本说明书实施例还提供了一种存储介质,所述存储介质用于存储计算机可执行指令,所述可执行指令在被处理器执行时实现以下流程:接收服务器发送的第一模型,获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型。将所述目标模型对应的模型更新数据发送给所述服务器,所述目标模型对应的模型更新数据用于触发所述服务器确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型,以及判断所述第二模型的模型结构是否需要再次裁剪,并在确定所述第二模型的模型结构需要进行裁剪时,确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长。接收所述服务器发送的对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型。获取用于训练所述第二模型的第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,并通过对所述第二模型的模型结构的裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述服务器。
13.本说明书实施例还提供了一种存储介质,所述存储介质用于存储计算机可执行指令,所述可执行指令在被处理器执行时实现以下流程:向预先选定的不同终端设备下发第一模型,所述第一模型用于触发所述终端设备获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型。接收不同终端设备发送的训练后的目标模型对应的模型更新数据,确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型。如果确定所述第二模型的模型结构需要进行裁剪,则确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,并将所述裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型发送给不同终端设备,所述对所述第二模型进行训练所使用的时长和所述第二模型用于触发所述终端设备获取第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,所述裁剪程度和所述第二模型用于触发所述服务器通过所述裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述服务器。
附图说明
14.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是
本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
15.图1a为本说明书一种模型的处理方法实施例;
16.图1b为本说明书一种模型的处理过程示意图;
17.图2为本说明书一种模型的处理系统的结构示意图;
18.图3为本说明书另一种模型的处理过程示意图;
19.图4a为本说明书另一种模型的处理方法实施例;
20.图4b为本说明书又一种模型的处理过程示意图;
21.图5为本说明书又一种模型的处理过程示意图;
22.图6为本说明书一种模型聚合的处理过程示意图;
23.图7为本说明书一种模型的处理装置实施例;
24.图8为本说明书另一种模型的处理装置实施例;
25.图9为本说明书一种模型的处理设备实施例。
具体实施方式
26.本说明书实施例提供一种模型的处理方法、装置及设备。
27.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
28.实施例一
29.如图1a和图1b所示,本说明书实施例提供一种模型的处理方法,该方法的执行主体可以为终端设备,其中,该终端设备可以如手机、平板电脑等一定终端设备,还可以如笔记本电脑或台式电脑等计算机设备,或者,也可以为iot设备(具体如智能手表、车载设备等),还可以是预先设置的具有某种功能的机具等。该方法具体可以包括以下步骤:
30.在步骤s102中,接收服务器发送的第一模型,获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,并对第一模型的模型结构进行调整,得到训练后的目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型。
31.其中,服务器可以是进行联邦学习(或协作学习)的服务器,该服务器也可以是用于风险防控的服务器,还可以是某应用程序或业务的后台服务器等,具体可以根据实际情况设定,本说明书实施例对此不做限定。第一模型可以是任意模型,第一模型可以是经过服务器进行模型训练后的模型,也可以是未经过模型训练的模型等,第一模型可以是任意用户或功能的模型,例如用于进行风险防控的模型、用于进行生物识别的模型等,第一模型可以通过多种不同的算法构建,例如第一模型可以基于卷积神经网络算法构建,还可以基于分类算法构建等,具体可以根据实际情况设定,本说明书实施例对此不做限定。第一训练样本数据可以包括图像数据、文本数据等,可以根据第一模型的功能或作用等确定第一训练样本数据的数据类型,例如,第一模型为生物识别模型,则第一训练样本数据可以是不同用
户的指纹数据、面部数据或虹膜数据等,如果第一模型为风险防控模型,则第一训练样本数据可以是某业务的业务数据,具体如某金融业务的业务数据等,具体可以根据实际情况设定,本说明书实施例对此不做限定。
32.在实施中,人工智能通过从大量的数据中学习到特定的知识,再通过学习到的特定知识执行相应的业务处理,人工智能技术为社会的发展带来很大便利。但随着互联网中数据量的快速增长,以及人们对于数据隐私的日益关注,数据往往需要进行本地化存储,而仅依靠部分节点(联邦学习中的终端设备)的数据来学习到相应的特定知识,这样学习到的特定知识是不充分而且有偏的。为解决上述问题衍生了在数据本地化的情况下多节点之间的协作学习机制。在实际应用中,不同节点的能力(包括通信能力和计算能力等)往往存在差异,即使两个节点具有相同的硬件条件,在任务运行时分配给某个任务的资源(包括内存资源和带宽资源)也是有限的。
33.例如,在终端-云端的风险防控场景下,可以利用用户的终端设备进行模型训练,可以将终端设备中的用户数据留在本地,无需上传到服务器,从而保护数据隐私。用户的终端设备的性能差异较大,相同的计算任务,性能较高的终端设备和性能较低的终端设备的计算耗时可以相差数百倍。
34.目前,联邦学习通常采用的是完全同步的处理方式,该处理方式下服务器需要等待所有预先选择的终端设备提交相应模型的更新数据,之后,服务器才能够更新服务器中当前的模型,此时,计算能力和通信能力较差的终端设备就成了上述模型训练的“拖累者”,从而造成联邦学习的效率降低。基于此,需要提供一种能够使得联邦学习的效率更高的技术方案。本说明书实施例提供一种可实现的技术方案,具体可以包括以下内容:
35.对于联邦学习,如图2所示,其系统架构可以包括用户的终端设备和服务器,其中,服务器中可以包括需要训练的模型(即第一模型,具体如对某业务进行风险防控的模型等),服务器可以将针对某业务(如金融类业务、生物识别业务等等)的第一模型下发给每个用户的终端设备,用户的终端设备可以将服务器下发的第一模型作为初始模型,并可以获取上述业务的相关数据,该数据可以是终端设备在执行该业务的过程中搜集和存储的相关数据等,该相关数据的内容可以根据第一模型的需求而选取,可以将上述获取的相关数据作为用于训练第一模型的第一训练样本数据。可以使用第一训练样本数据对第一模型进行训练,并在训练第一模型的过程中,可以根据第一模型中的模型结构中各个单元的重要性,从模型结构中选取重要性较低的单元,可以将选取的重要性较低的单元从上述模型结构中裁剪掉,例如,第一模型的模型结构中包括11个神经元,11个神经元中具有3个重要性较低的神经元,可以将上述3个重要性较低的神经元从上述11个神经元中裁剪掉,剩余8个神经元构成的模型结构,即最终得到裁剪完成的模型结构,同时也可以得到最终训练后的模型(即目标模型)。
36.需要说明的是,使用第一训练样本数据对第一模型进行训练的过程中,可以是多次使用第一训练样本数据对第一模型进行训练,例如,可以使用第一训练样本数据对第一模型进行训练,得到训练后的第一模型,然后,可以再次使用第一训练样本数据对训练后的第一模型进行训练,得到训练后的模型,再次使用第一训练样本数据对训练后的模型进行训练,以此类推,直到达到指定的训练次数,最终可以得到训练后的模型。此外,不同的终端设备可以使用相同的训练次数,也可以使用不同的训练次数,具体可以根据实际情况设定,
本说明书实施例对此不做限定。
37.另外,使用第一训练样本数据对第一模型进行训练的过程中,也可以根据训练第一模型的终端设备的性能来确定对第一模型的裁剪程度,例如,如果终端设备的性能与服务器的性能相当,则可以不需要对第一模型进行裁剪,如果终端设备的性能弱于服务器的性能,则可以根据实际情况对第一模型进行裁剪,具体可以根据实际情况设定,本说明书实施例对此不做限定。
38.在步骤s104中,将目标模型对应的模型更新数据发送给服务器,目标模型对应的模型更新数据用于触发服务器确定得到目标模型所使用的时长,并基于不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型,以及判断第二模型的模型结构是否需要再次裁剪,并在确定第二模型的模型结构需要进行裁剪时,确定不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长。
39.其中,模型更新数据可以是与目标模型相关的数据,具体可以包括如目标模型的模型结构和模型参数等数据,或者,也可以包括如梯度等数据。裁剪程度可以通过多种方式呈现,例如,裁剪程度可以是指裁剪后的模型的大小与裁剪前的模型的大小的比值,具体如,可以使用裁剪后剩余的模型结构与裁剪前的模型结构的比值,具体如100%(即未进行裁剪)或72%(如裁剪前的模型结构中包括11个神经元,裁剪后剩余8个神经元,则8/11=72%)。
40.在实施中,服务器可以向终端设备下发第一模型后,可以启动计时器,此时可以开始计时。通过上述方式得到目标模型后,可以基于目标模型确定相应的模型更新数据,可以将目标模型对应的模型更新数据发送给服务器,此时,服务器可以停止计时,从而,可以得到训练第一模型到得到目标模型所使用的时长,从而可以确定得到目标模型所使用的时长。可以使用不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型,其中,基于不同终端设备提供的目标模型对应的模型更新数据更新的模型可以包括多个,可以将多个模型进行叠加,并可以进行平均计算,得到最终的第二模型。
41.服务器可以判断下一轮的模型训练中第二模型的模型结构是否需要再次裁剪,具体地,可以预先设定判断条件,可以将上述得到的数据(可以包括得到目标模型所使用的时长、由第一模型到目标模型的裁剪程度和预先设定阈值等数据)与该判断条件进行匹配,如果上述数据与该判断条件不匹配,则可以确定第二模型的模型结构不需要进行裁剪,如果上述数据与该判断条件匹配,则可以确定第二模型的模型结构需要进行裁剪。如果确定第二模型的模型结构不需要进行裁剪,则后续可以不需要对模型进行裁剪,但此时,可以根据实际情况判断是否需要对第二模型进行再次训练,只是在训练的过程中,不需要对模型进行裁剪。如果确定第二模型的模型结构需要进行裁剪,则可以基于得到目标模型所使用的时长、由第一模型到目标模型的裁剪程度和预先设定阈值等数据计算不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,例如,可以基于得到目标模型所使用的时长,计算得到相应的平均值,可以将该平均值作为对第二模型进行训练所使用的时长,可以根据实际情况设定不同终端设备对第二模型的模型结构的裁剪程度等。服务器可以将对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时
长,以及第二模型发送给不同终端设备。
42.在步骤s106中,接收服务器发送的对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,以及第二模型。
43.在步骤s108中,获取用于训练第二模型的第二训练样本数据,基于第二训练样本数据和对第二模型进行训练所使用的时长对第二模型进行训练,并通过对第二模型的模型结构的裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器。
44.在实施中,用户的终端设备可以将服务器下发的第二模型作为初始模型,并可以获取上述业务的相关数据,该数据可以是终端设备在执行该业务的过程中搜集和存储的相关数据等,该相关数据的内容可以根据第二模型的需求而选取,可以将上述获取的相关数据作为用于训练第二模型的第二训练样本数据。可以使用第二训练样本数据和对第二模型进行训练所使用的时长对第二模型进行训练,并在训练第一模型的过程中,可以根据第一模型中的模型结构中各个单元的重要性,可以通过对第二模型的模型结构的裁剪程度从模型结构中选取重要性较低的单元,可以将选取的重要性较低的单元从上述模型结构中裁剪掉,最终得到裁剪完成的模型结构,同时也可以得到最终训练后的模型(即第三模型)。
45.可以将得到的第三模型作为目标模型,然后,可以将目标模型对应的模型更新数据发送给服务器,服务器可以执行步骤s104中的相关处理,即服务器可以停止计时,从而可以确定得到目标模型所使用的时长。可以使用不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型。服务器可以判断下一轮的模型训练中第二模型的模型结构是否需要再次裁剪,如果确定第二模型的模型结构需要进行裁剪,则计算不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长。服务器可以将对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,以及第二模型发送给不同终端设备。之后,终端设备可以继续执行后续步骤s106和步骤s108的处理,后续还可以继续循环执行步骤s104、步骤s106和步骤s108的处理,最终得到训练后的模型,不同终端设备可以使用该模型进行业务处理。
46.本说明书实施例提供一种模型的处理方法,通过接收服务器发送的第一模型,获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,并对第一模型的模型结构进行调整,得到训练后的目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型,然后,可以将目标模型对应的模型更新数据发送给服务器,以触发服务器确定得到目标模型所使用的时长,并基于不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型,以及判断第二模型的模型结构是否需要再次裁剪,并在确定第二模型的模型结构需要进行裁剪时,确定不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,最后,可以获取用于训练所述第二模型的第二训练样本数据,基于第二训练样本数据和接收到的对第二模型进行训练所使用的时长对第二模型进行训练,并通过接收到的对第二模型的模型结构的裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器,进而再次对模型进行训练多轮的裁剪和训练,这样,基于自适应终端设备的性能的高效联邦学习框架,可以用于为不同性能的终端设备提供不同的训练任务
(即不同大小的模型),一方面,可以最大化发挥不同性能的终端设备的计算能力,保证模型性能,另一方面,可以通过配备适应终端设备自身能力的模型,所有终端设备的单轮更新时间趋于一致,解决了联邦学习中普遍存在的“拖累者”的问题,提升了训练效率。
47.实施例二
48.如图3所示,本说明书实施例提供一种模型的处理方法,该方法的执行主体可以为终端设备,其中,该终端设备可以如手机、平板电脑等一定终端设备,还可以如笔记本电脑或台式电脑等计算机设备,或者,也可以为iot设备(具体如智能手表、车载设备等),还可以是预先设置的具有某种功能的机具等。该方法具体可以包括以下步骤:
49.在步骤s302中,接收服务器发送的第一模型,获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,得到训练后的第一预选模型。
50.在步骤s304中,对第一预选模型的模型结构进行调整,得到目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型。
51.在实施中,对模型的模型结构进行裁剪的处理,可以是在对该模型进行模型训练之后,再对该模型的模型结构进行裁剪,或者,可以是在对该模型进行模型训练之前,先对该模型的模型结构进行裁剪,之后再对该模型进行模型训练,或者,可以是在对该模型进行模型训练的过程中,对该模型的模型结构进行裁剪等,基于此,通过上述步骤s302的处理,可以先使用第一训练样本数据对第一模型进行训练,得到训练后的第一预选模型,然后,再对第一预选模型的模型结构进行调整,得到训练后的目标模型,其中,如果不需要对第一预选模型的模型结构进行裁剪,则可以直接将第一预选模型作为目标模型,此时,目标模型与第一模型的模型结构相同(即第一预选模型与第一模型的模型结构相同),如果需要对第一预选模型的模型结构进行裁剪,则可以对第一预选模型的模型结构进行调整,得到调整后的模型,该调整后的模型可以作为上述目标模型。此外,还可以在使用第一训练样本数据对第一模型进行训练的过程中,对第一模型的模型结构进行调整,得到训练后的目标模型,具体处理过程可以参见上述实施例一中的相关内容,在此不再赘述。
52.上述对第一模型的模型结构进行调整的处理可以多种多样,以下提供一种可选的处理方式,具体可以包括以下内容:基于预设的模型中单元重要性规则对第一模型的模型结构进行裁剪,得到目标模型。
53.在实施中,预设的模型中单元重要性规则可以用于确定模型中各个单元的重要程度,例如,可以根据模型中的神经元的位置和与其它神经元之间的关系,确定该神经元的重要程度,通过上述方式可以得到该模型中的每个神经元的重要程度,可以对该模型中的神经元通过重要程度进行排序,可以将重要程度的数值小于某阈值的神经元作为需要裁剪掉的神经元,最终得到剩余的神经元。
54.基于上述内容,除了可以在对该模型进行模型训练之后,再对该模型的模型结构进行裁剪,还可以在对该模型进行模型训练之前,先对该模型的模型结构进行裁剪,之后再对该模型进行模型训练,具体可以包括以下步骤a2和步骤a4的处理。
55.在步骤a2中,对第一模型的模型结构进行调整,得到第二预选模型。
56.在实际应用中,上述步骤a2的处理可以多种多样,以下提供一种可选的处理方式,具体可以包括以下内容:基于预设的模型中单元重要性规则对第一模型的模型结构进行裁
剪,得到第二预选模型。
57.在步骤a4中,使用第一训练样本数据对所述第二预选模型进行训练,得到训练后的目标模型。
58.在步骤s306中,将目标模型对应的模型更新数据发送给服务器,目标模型对应的模型更新数据用于触发服务器确定得到目标模型所使用的时长,并基于不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型,以及判断第二模型的模型结构是否需要再次裁剪,并在确定第二模型的模型结构需要进行裁剪时,确定不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长。
59.上述步骤s306的具体处理可以参见上述实施例一中的相关内容,在此不再赘述,在实际应用中,上述步骤s306的处理可以多种多样,以下提供一种可选的处理方式,具体可以包括以下内容:将目标模型的索引信息和第一模型的索引信息发送给服务器。
60.在步骤s308中,接收服务器发送的对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,以及第二模型。
61.在步骤s310中,获取用于训练第二模型的第二训练样本数据,基于第二训练样本数据和对第二模型进行训练所使用的时长对第二模型进行训练,并通过对第二模型的模型结构的裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器。
62.在步骤s312中,接收服务器发送的第二模型,并基于第二模型进行业务处理,第二模型是服务器确定第二模型的模型结构不需要进行裁剪时发送的模型。
63.本说明书实施例提供一种模型的处理方法,通过接收服务器发送的第一模型,获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,并对第一模型的模型结构进行调整,得到训练后的目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型,然后,可以将目标模型对应的模型更新数据发送给服务器,以触发服务器确定得到目标模型所使用的时长,并基于不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型,以及判断第二模型的模型结构是否需要再次裁剪,并在确定第二模型的模型结构需要进行裁剪时,确定不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,最后,可以获取用于训练所述第二模型的第二训练样本数据,基于第二训练样本数据和接收到的对第二模型进行训练所使用的时长对第二模型进行训练,并通过接收到的对第二模型的模型结构的裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器,进而再次对模型进行训练多轮的裁剪和训练,这样,基于自适应终端设备的性能的高效联邦学习框架,可以用于为不同性能的终端设备提供不同的训练任务(即不同大小的模型),一方面,可以最大化发挥不同性能的终端设备的计算能力,保证模型性能,另一方面,可以通过配备适应终端设备自身能力的模型,所有终端设备的单轮更新时间趋于一致,解决了联邦学习中普遍存在的“拖累者”的问题,提升了训练效率。
64.实施例三
65.如图4a和图4b所示,本说明书实施例提供一种模型的处理方法,该方法的执行主
体可以为服务器,其中,该服务器可以是独立的一个服务器,还可以是由多个服务器构成的服务器集群等,该服务器可以是如金融业务或网络购物业务等的后台服务器,也可以是某应用程序的后台服务器等。该方法具体可以包括以下步骤:
66.在步骤s402中,向预先选定的不同终端设备下发第一模型,第一模型用于触发终端设备获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,并对第一模型的模型结构进行调整,得到训练后的目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型。
67.在步骤s404中,接收不同终端设备发送的训练后的目标模型对应的模型更新数据,确定得到目标模型所使用的时长,并基于不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型。
68.在步骤s406中,如果确定第二模型的模型结构需要进行裁剪,则确定不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,并将该裁剪程度和对第二模型进行训练所使用的时长,以及第二模型发送给不同终端设备,对第二模型进行训练所使用的时长和第二模型用于触发终端设备获取第二训练样本数据,基于第二训练样本数据和对第二模型进行训练所使用的时长对第二模型进行训练,该裁剪程度和第二模型用于触发服务器通过该裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器。
69.上述步骤s402~步骤s406的具体处理过程可以参见上述实施例一和实施例二中的相关内容,在此不再赘述。
70.本说明书实施例提供一种模型的处理方法,通过接收服务器发送的第一模型,获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,并对第一模型的模型结构进行调整,得到训练后的目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型,然后,可以将目标模型对应的模型更新数据发送给服务器,以触发服务器确定得到目标模型所使用的时长,并基于不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型,以及判断第二模型的模型结构是否需要再次裁剪,并在确定第二模型的模型结构需要进行裁剪时,确定不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,最后,可以获取用于训练所述第二模型的第二训练样本数据,基于第二训练样本数据和接收到的对第二模型进行训练所使用的时长对第二模型进行训练,并通过接收到的对第二模型的模型结构的裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器,进而再次对模型进行训练多轮的裁剪和训练,这样,基于自适应终端设备的性能的高效联邦学习框架,可以用于为不同性能的终端设备提供不同的训练任务(即不同大小的模型),一方面,可以最大化发挥不同性能的终端设备的计算能力,保证模型性能,另一方面,可以通过配备适应终端设备自身能力的模型,所有终端设备的单轮更新时间趋于一致,解决了联邦学习中普遍存在的“拖累者”的问题,提升了训练效率。
71.实施例四
72.如图5所示,本发明实施例提供的一种模型的处理方法,该方法的执行主体可以为服务器,其中,该服务器可以是独立的一个服务器,还可以是由多个服务器构成的服务器集
群等,该服务器可以是如金融业务或网络购物业务等的后台服务器,也可以是某应用程序的后台服务器等。其系统架构可以如图2所示,该方法具体可以包括以下步骤:
73.在步骤s502中,向预先选定的不同终端设备下发第一模型,第一模型用于触发终端设备获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,并对第一模型的模型结构进行调整,得到训练后的目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型。
74.在步骤s504中,接收不同终端设备发送的训练后的目标模型对应的模型更新数据,确定得到目标模型所使用的时长。
75.在实施中,服务器将第一模型下发到不同终端设备后开始计时,当接收到不同终端设备发送的训练后的目标模型对应的模型更新数据时停止计时,从而可以将停止计时与开始计时之间的时长确定为得到目标模型所使用的时长(即模型训练的单次更新时长)。
76.在步骤s506中,获取不同终端设备提供的目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备的总数量。
77.在实施中,可以对接收到的模型进行聚合,由于不同终端设备的性能不同,不同终端设备得到的目标模型的模型结构对应的裁剪程度也不同,所以会出现某些单元只出现在某些终端设备的目标模型中,例如,如图6所示,图6中的中间三个矩形代表三个终端设备的目标模型中某一网络层的权重矩阵,图6中下面两个终端设备的目标模型中的该网络层没有被裁剪,因此,下面两个终端设备的目标模型对应的权重矩阵是完备的,但是,最上边的终端设备的目标模型中裁剪了一个神经元,导致其权重矩阵中少了一列和该神经元对应的权重。基于此,可以使用两种不同的模型聚合方式,该两种不同的模型聚合方式可以适用于不同的情况。其中的一种模型聚合方式可以为by-worker,可以将目标模型中拥有预设模型结构的终端设备对应的权重的和除以终端设备的总数量(如图6中终端设备的总数量为3),基于此,可以获取权重计算规则,可以通过该权重计算规则计算目标模型中包含的不同模型结构的终端设备对应的权重,并可以获取不同终端设备的总数量。
78.在步骤s508中,基于不同终端设备提供的目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备的总数量,对不同终端设备提供的目标模型进行聚合,以对服务器中当前的模型进行更新,得到第二模型。
79.在实施中,如图6中右侧所示,可以将不同终端设备提供的目标模型中包含预设模型结构的终端设备对应的权重的和除以不同终端设备的总数量,可以得到该网络层(或单元)的权重矩阵,通过上述方式可以得到每个网络层(或单元)的权重矩阵,以此对不同终端设备提供的目标模型进行聚合,从而对服务器中当前的模型进行更新,进而可以得到一个新的网络层的权重矩阵,可以对该新的网络层的权重矩阵进行转换,可以得到更新后的模型(即第二模型)。
80.需要说明的是,上述by-worker的模型聚合方式适合模型裁剪初期,此时,被裁剪掉的神经元重要性很低,也即是被裁剪掉的神经元相关的权重值本身是接近于0。by-worker的模型聚合方式可以直接将被裁剪掉的神经元的权重值看作0进行聚合,更贴近于现实情况。
81.除了可以通过上述方式进行模型聚合处理之外,还可以通过by-unit的模型聚合方式进行模型聚合处理,具体可以参见下述步骤s510和步骤s512的处理。
82.在步骤s510中,获取不同终端设备提供的目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备提供的目标模型中包含预设模型结构的终端设备的数量。
83.在实施中,对于by-unit的模型聚合方式,可以将目标模型中拥有预设模型结构的终端设备对应的权重的和除以不同终端设备提供的目标模型中包含预设模型结构的终端设备的数量(如图6中不同终端设备提供的目标模型中包含预设模型结构的终端设备的数量为2),基于此,可以获取权重计算规则,可以通过该权重计算规则计算目标模型中包含的不同模型结构的终端设备对应的权重,并可以获取不同终端设备提供的目标模型中包含预设模型结构的终端设备的数量。
84.在步骤s512中,基于不同终端设备提供的目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备提供的目标模型中包含预设模型结构的终端设备的数量,对不同终端设备提供的目标模型进行聚合,以对服务器中当前的模型进行更新,得到第二模型。
85.在实施中,如图6中左侧所示,可以将不同终端设备提供的目标模型中包含预设模型结构的终端设备对应的权重的和除以不同终端设备提供的目标模型中包含预设模型结构的终端设备的数量,可以得到该网络层(或单元)的权重矩阵,通过上述方式可以得到每个网络层(或单元)的权重矩阵,以此对不同终端设备提供的目标模型进行聚合,从而对服务器中当前的模型进行更新,进而可以得到一个新的网络层的权重矩阵,可以对该新的网络层的权重矩阵进行转换,可以得到更新后的模型(即第二模型)。
86.需要说明的是,上述by-unit的模型聚合方式适合模型裁剪后期,此时,被裁剪掉的神经元(或单元)重要性只是相对其它神经元(或单元)较低,但被裁剪掉的神经元(或单元)相关的权重值不会接近于0。by-worker的模型聚合方式可以直接将被裁剪掉的神经元(或单元)的权重值看作其它两个终端设备对应的权重的平均值进行聚合,更贴近于现实情况。
87.在步骤s514中,如果每个终端设备得到目标模型所使用的时长未在预设的范围内,且第一模型的模型结构的被裁剪程度未达到预设的最小裁剪程度阈值,则确定第二模型的模型结构需要进行裁剪。
88.其中,预设的范围可以是预先设定的时长的范围,具体可以根据实际情况设定,具体如1小时-1.5小时或1小时-1.2小时等。最小裁剪程度阈值可以根据实际情况设定,具体如50%或45%等。
89.在实施中,可以判断每个终端设备得到目标模型所使用的时长是否基本一致,具体地,可以将每个终端设备得到目标模型所使用的时长与预设的范围进行比对,从而判定每个终端设备得到目标模型所使用的时长是否在预设的范围内。此外,还可以判断第一模型的模型结构的被裁剪程度是否达到最小裁剪程度阈值,其中,第一模型的模型结构的被裁剪程度可以是使用目标模型的大小除以第一模型的大小得到的数值,具体地,可以将第一模型的模型结构的被裁剪程度与最小裁剪程度阈值进行比较,基于此,如果每个终端设备得到目标模型所使用的时长未在预设的范围内,且第一模型的模型结构的被裁剪程度未达到预设的最小裁剪程度阈值,则确定第二模型的模型结构需要进行裁剪。
90.需要说明的是,如果确定第二模型的模型结构仍需要进行裁剪,则还要判别是否是在下一轮的模型训练中进行模型裁剪,因为如果每轮的模型训练中均进行模型裁剪,则
会对该模型的性能产生影响,所以每进行一次模型裁剪后,往往需要保留一轮或多轮的模型训练来使得该模型做一些恢复,是否恢复的判别的条件可以是预先设定模型训练轮数,也可以通过准确率曲线进行判别,判别准确率增长是否已经恢复等,具体可以根据实际情况设定,本说明书实施例对此不做限定。
91.在步骤s516中,如果确定第二模型的模型结构需要进行裁剪,则基于不同终端设备的得到目标模型所使用的时长,确定不同终端设备对应的基准更新时长。
92.在实施中,可以计算不同终端设备的得到目标模型所使用的时长的平均值,可以选择计算的平均值中最小的平均值作为不同终端设备对应的基准更新时长,通过计算上述平均值可以消除某些随机因素的影响(如带宽随机波动、其它任务的影响等),从而使得对终端设备能力的建模更具鲁棒性。
93.在步骤s518中,基于预设的数据处理规则,对不同终端设备的基准更新时长进行处理,得到不同终端设备对第二模型的模型结构的预选裁剪程度。
94.其中,数据处理规则可以包括数据差值处理规则和数据拟合处理规则中的一种或多种。
95.在实施中,可以将不同终端设备对应的(基准更新时长,预选裁剪程度)作为数据点,可以对上述数据点通过数据差值处理规则进行插值处理,其中可以将上述得到的不同终端设备的基准更新时长代入上述插值处理中,得到相应的不同终端设备对第二模型的模型结构的预选裁剪程度,或者,可以对上述数据点通过数据拟合处理规则进行数据拟合处理,其中可以将上述得到的不同终端设备的基准更新时长代入上述数据拟合处理中,得到相应的不同终端设备对第二模型的模型结构的预选裁剪程度。
96.需要说明的是,数据处理规则采用数据差值处理规则或数据拟合处理规则,一方面是为了不引入多余计算负担,另一方面如上所述由于某些随机因素的影响,因此只需要得到一个大概的预选裁剪程度的数值即可,不需要精准建模,简单的插值处理或数据拟合处理可以满足上述需求。
97.在步骤s520中,基于预选裁剪程度和预设的选取条件,确定不同终端设备对第二模型的模型结构的裁剪程度,并将不同终端设备的基准更新时长作为对第二模型进行训练所使用的时长。
98.其中,选取条件可以根据实际情况设定,具体如当预选裁剪程度小于预设阈值时,将预设阈值作为该终端设备对第二模型的模型结构的裁剪程度,当预选裁剪程度大于预设阈值时,将预选裁剪程度作为该终端设备对第二模型的模型结构的裁剪程度等。
99.在实施中,可以将预选裁剪程度与预设的选取条件进行匹配,基于得到的匹配结果,确定不同终端设备对第二模型的模型结构的裁剪程度,此外,可以将不同终端设备的基准更新时长作为对第二模型进行训练所使用的时长。
100.在实际应用中,上述步骤s520中基于预选裁剪程度和预设的选取条件,确定不同终端设备对第二模型的模型结构的裁剪程度的处理可以多种多样,以下提供一种可选的处理方式,具体可以包括以下步骤b2和步骤b4的处理。
101.在步骤b2中,如果预选裁剪程度小于预设的最小裁剪程度阈值,则将预设的最小裁剪程度阈值作为不同终端设备对第二模型的模型结构的裁剪程度。
102.其中,最小裁剪程度阈值可以根据实际情况设定,具体如50%或60%等。
103.在实施中,由于一些情况下终端设备的性能差别过大,可以为性能较差的终端设备计算出的模型结构的裁剪程度非常低,这样就会使得该模型的学习能力十分有限,可能不会包含关键知识,这样就对整体的联邦学习没有益处,因此,需要根据预先设定的最小裁剪程度阈值来约束模型裁剪的幅度,可以为每个终端设备都保留一个拥有基本学习能力的模型。基于此,如果预选裁剪程度小于预设的最小裁剪程度阈值,则可以将预设的最小裁剪程度阈值作为不同终端设备对第二模型的模型结构的裁剪程度。
104.在步骤b4中,如果预选裁剪程度与第二模型对应的模型结构的裁剪程度的差值大于预设的最大裁剪比率,则将预选裁剪程度与预设的最大裁剪比率的差值作为不同终端设备对第二模型的模型结构的裁剪程度。
105.其中,最大裁剪比率可以根据实际情况设定,具体如20%或40%等。
106.在实施中,在对模型裁剪的过程中,一些研究表明一次裁剪掉过多模型单元会造成该模型的效果下降很多,这是因为模型裁剪的过程缺少了fine-tune过程,因此预先设定了单次最大裁剪比率,其中,fine-tune过程可以是冻结预训练模型的部分网络层(具体如卷积层,通常可以是靠近输入层的多个卷积层等),训练剩下的网络层(具体如,靠近输出层的部分卷积层等)和全连接层的过程。
107.在步骤s522中,将该裁剪程度和对第二模型进行训练所使用的时长,以及第二模型发送给不同终端设备,对第二模型进行训练所使用的时长和第二模型用于触发终端设备获取第二训练样本数据,基于第二训练样本数据和对第二模型进行训练所使用的时长对第二模型进行训练,该裁剪程度和第二模型用于触发服务器通过该裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器。
108.此外,如上所述,每进行一次模型裁剪后,往往需要保留一轮或多轮的模型训练来使得该模型做一些恢复,是否恢复的判别的条件可以是预先设定模型训练轮数,也可以通过准确率曲线进行判别,判别准确率增长是否已经恢复等,具体可以通过下述步骤s524和步骤s526的处理实现。
109.在步骤s524中,如果确定第二模型的模型结构不需要进行裁剪,则将第二模型发送给不同终端设备,第二模型用于触发终端设备获取第三训练样本数据,基于第三训练样本数据对第二模型进行训练,得到训练后的第四模型。
110.在步骤s526中,接收不同终端设备发送的第四模型对应的模型更新数据,基于不同终端设备提供的第四模型对应的模型更新数据对服务器中当前的模型进行更新,得到第五模型,将第五模型发送给不同终端设备进行训练,并基于训练后的模型对应的模型更新数据更新服务器中当前的模型,直到对服务器中当前的模型进行更新的次数达到预设次数阈值为止,得到对服务器中当前的模型进行更新后的模型,将更新后的模型发送给不同终端设备,以进行业务处理。
111.基于上述步骤s502~步骤s526的处理,相较于常用的联邦学习处理,服务器增加了对模型的模型结构进行裁剪的相关计算,终端设备增加了对模型单元重要性的计算,上述两部分的计算开销都可以忽略不计。在传输内容上,在某一轮或多轮的模型训练(需要进行模型裁剪的一轮或多轮的模型训练)中增加了模型结构的裁剪程度以及本地模型对应的基础模型的索引两部分内容,上述内容相比于整体的传输内容也可以忽略不计,因此上述
处理方式中引入的额外开销可以忽略不计。
112.本说明书实施例提供一种模型的处理方法,通过接收服务器发送的第一模型,获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,并对第一模型的模型结构进行调整,得到训练后的目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型,然后,可以将目标模型对应的模型更新数据发送给服务器,以触发服务器确定得到目标模型所使用的时长,并基于不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型,以及判断第二模型的模型结构是否需要再次裁剪,并在确定第二模型的模型结构需要进行裁剪时,确定不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,最后,可以获取用于训练所述第二模型的第二训练样本数据,基于第二训练样本数据和接收到的对第二模型进行训练所使用的时长对第二模型进行训练,并通过接收到的对第二模型的模型结构的裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器,进而再次对模型进行训练多轮的裁剪和训练,这样,基于自适应终端设备的性能的高效联邦学习框架,可以用于为不同性能的终端设备提供不同的训练任务(即不同大小的模型),一方面,可以最大化发挥不同性能的终端设备的计算能力,保证模型性能,另一方面,可以通过配备适应终端设备自身能力的模型,所有终端设备的单轮更新时间趋于一致,解决了联邦学习中普遍存在的“拖累者”的问题,提升了训练效率。
113.实施例五
114.基于同样的思路,本说明书实施例还提供一种模型的处理装置,如图7所示。
115.该模型的处理装置包括:第一模型处理模块701、更新数据发送模块702、数据接收模块703和第二模型处理模块704,其中:
116.第一模型处理模块701,接收服务器发送的第一模型,获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型;
117.更新数据发送模块702,将所述目标模型对应的模型更新数据发送给所述服务器,所述目标模型对应的模型更新数据用于触发所述服务器确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型,以及判断所述第二模型的模型结构是否需要再次裁剪,并在确定所述第二模型的模型结构需要进行裁剪时,确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长;
118.数据接收模块703,接收所述服务器发送的对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型;
119.第二模型处理模块704,获取用于训练所述第二模型的第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,并通过对所述第二模型的模型结构的裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述服务器。
120.本说明书实施例中,所述第一模型处理模块701,包括:
121.第一训练单元,使用所述第一训练样本数据对所述第一模型进行训练,得到训练后的第一预选模型;
122.第一调整单元,对所述第一预选模型的模型结构进行调整,得到目标模型。
123.本说明书实施例中,所述第一模型处理模块701,包括:
124.第二调整单元,对所述第一模型的模型结构进行调整,得到第二预选模型;
125.第二训练单元,使用所述第一训练样本数据对所述第二预选模型进行训练,得到训练后的目标模型。
126.本说明书实施例中,所述装置还包括:
127.业务处理模块,接收所述服务器发送的所述第二模型,并基于所述第二模型进行业务处理,所述第二模型是所述服务器确定所述第二模型的模型结构不需要进行裁剪时发送的模型。
128.本说明书实施例中,所述第一模型处理模块701,基于预设的模型中单元重要性规则对所述第一模型的模型结构进行裁剪。
129.本说明书实施例中,所述更新数据发送模块702,将所述目标模型的索引信息和所述第一模型的索引信息发送给所述服务器。
130.上述各模块或单元的具体处理过程可以参见上述实施例一~实施例四中的相关内容,在此不再赘述。
131.本说明书实施例提供一种模型的处理装置,通过接收服务器发送的第一模型,获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,并对第一模型的模型结构进行调整,得到训练后的目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型,然后,可以将目标模型对应的模型更新数据发送给服务器,以触发服务器确定得到目标模型所使用的时长,并基于不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型,以及判断第二模型的模型结构是否需要再次裁剪,并在确定第二模型的模型结构需要进行裁剪时,确定不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,最后,可以获取用于训练所述第二模型的第二训练样本数据,基于第二训练样本数据和接收到的对第二模型进行训练所使用的时长对第二模型进行训练,并通过接收到的对第二模型的模型结构的裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器,进而再次对模型进行训练多轮的裁剪和训练,这样,基于自适应终端设备的性能的高效联邦学习框架,可以用于为不同性能的终端设备提供不同的训练任务(即不同大小的模型),一方面,可以最大化发挥不同性能的终端设备的计算能力,保证模型性能,另一方面,可以通过配备适应终端设备自身能力的模型,所有终端设备的单轮更新时间趋于一致,解决了联邦学习中普遍存在的“拖累者”的问题,提升了训练效率。
132.实施例六
133.基于同样的思路,本说明书实施例还提供一种模型的处理装置,如图8所示。
134.该模型的处理装置包括:模型下发模块801、模型更新模块802和数据发送模块803,其中:
135.模型下发模块801,向预先选定的不同终端设备下发第一模型,所述第一模型用于触发所述终端设备获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型;
136.模型更新模块802,接收不同终端设备发送的训练后的目标模型对应的模型更新数据,确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型;
137.数据发送模块803,如果确定所述第二模型的模型结构需要进行裁剪,则确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,并将所述裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型发送给不同终端设备,所述对所述第二模型进行训练所使用的时长和所述第二模型用于触发所述终端设备获取第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,所述裁剪程度和所述第二模型用于触发所述服务器通过所述裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述装置。
138.本说明书实施例中,所述模型更新模块802,包括:
139.第一数据获取单元,获取不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备的总数量;
140.第一模型聚合单元,基于不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备对应的权重,对不同终端设备提供的所述目标模型进行聚合,以对所述服务器中当前的模型进行更新,得到第二模型。
141.本说明书实施例中,所述模型更新模块802,包括:
142.第二数据获取单元,获取不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备提供的所述目标模型中包含预设模型结构的终端设备的数量;
143.第二模型聚合单元,基于不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备提供的所述目标模型中包含预设模型结构的终端设备的数量,对不同终端设备提供的所述目标模型进行聚合,以对所述服务器中当前的模型进行更新,得到第二模型。
144.本说明书实施例中,所述装置还包括:
145.裁剪确定模块,如果每个终端设备得到所述目标模型所使用的时长未在预设的范围内,且所述第一模型的模型结构的被裁剪程度未达到预设的最小裁剪程度阈值,则确定所述第二模型的模型结构需要进行裁剪。
146.本说明书实施例中,所述装置还包括:
147.第二模型发送模块,如果确定所述第二模型的模型结构不需要进行裁剪,则将所述第二模型发送给不同终端设备,所述第二模型用于触发所述终端设备获取第三训练样本数据,基于所述第三训练样本数据对所述第二模型进行训练,得到训练后的第四模型;
148.更新数据接收模块,接收不同终端设备发送的所述第四模型对应的模型更新数
据,基于不同终端设备提供的所述第四模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第五模型,将所述第五模型发送给不同终端设备进行训练,并基于训练后的模型对应的模型更新数据更新所述服务器中当前的模型,直到对所述服务器中当前的模型进行更新的次数达到预设次数阈值为止,得到对所述服务器中当前的模型进行更新后的模型,将更新后的模型发送给不同终端设备,以进行业务处理。
149.本说明书实施例中,所述数据发送模块803,包括:
150.基准时长确定单元,如果确定所述第二模型的模型结构需要进行裁剪,则基于不同终端设备的得到所述目标模型所使用的时长,确定不同终端设备对应的基准更新时长;
151.预选裁剪程度确定单元,基于预设的数据处理规则,对不同终端设备的基准更新时长进行处理,得到不同终端设备对所述第二模型的模型结构的预选裁剪程度,所述数据处理规则包括数据差值处理规则和数据拟合处理规则中的一种或多种;
152.数据确定单元,基于所述预选裁剪程度和预设的选取条件,确定不同终端设备对所述第二模型的模型结构的裁剪程度,并将不同终端设备的基准更新时长作为对所述第二模型进行训练所使用的时长。
153.本说明书实施例中,所述数据确定单元,如果所述预选裁剪程度小于预设的最小裁剪程度阈值,则将预设的最小裁剪程度阈值作为不同终端设备对所述第二模型的模型结构的裁剪程度;如果所述预选裁剪程度与所述第二模型对应的模型结构的裁剪程度的差值大于预设的最大裁剪比率,则将所述预选裁剪程度与预设的最大裁剪比率的差值作为不同终端设备对所述第二模型的模型结构的裁剪程度。
154.上述各模块或单元的具体处理过程可以参见上述实施例一~实施例四中的相关内容,在此不再赘述。
155.本说明书实施例提供一种模型的处理装置,通过接收服务器发送的第一模型,获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,并对第一模型的模型结构进行调整,得到训练后的目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型,然后,可以将目标模型对应的模型更新数据发送给服务器,以触发服务器确定得到目标模型所使用的时长,并基于不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型,以及判断第二模型的模型结构是否需要再次裁剪,并在确定第二模型的模型结构需要进行裁剪时,确定不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,最后,可以获取用于训练所述第二模型的第二训练样本数据,基于第二训练样本数据和接收到的对第二模型进行训练所使用的时长对第二模型进行训练,并通过接收到的对第二模型的模型结构的裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器,进而再次对模型进行训练多轮的裁剪和训练,这样,基于自适应终端设备的性能的高效联邦学习框架,可以用于为不同性能的终端设备提供不同的训练任务(即不同大小的模型),一方面,可以最大化发挥不同性能的终端设备的计算能力,保证模型性能,另一方面,可以通过配备适应终端设备自身能力的模型,所有终端设备的单轮更新时间趋于一致,解决了联邦学习中普遍存在的“拖累者”的问题,提升了训练效率。
156.实施例七
157.以上为本说明书实施例提供的模型的处理装置,基于同样的思路,本说明书实施例还提供一种模型的处理设备,如图9所示。
158.所述模型的处理设备可以为上述实施例提供终端设备或服务器等。
159.模型的处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器901和存储器902,存储器902中可以存储有一个或一个以上存储应用程序或数据。其中,存储器902可以是短暂存储或持久存储。存储在存储器902的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对模型的处理设备中的一系列计算机可执行指令。更进一步地,处理器901可以设置为与存储器902通信,在模型的处理设备上执行存储器902中的一系列计算机可执行指令。模型的处理设备还可以包括一个或一个以上电源903,一个或一个以上有线或无线网络接口904,一个或一个以上输入输出接口905,一个或一个以上键盘906。
160.具体在本实施例中,模型的处理设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对模型的处理设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
161.接收服务器发送的第一模型,获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型;
162.将所述目标模型对应的模型更新数据发送给所述服务器,所述目标模型对应的模型更新数据用于触发所述服务器确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型,以及判断所述第二模型的模型结构是否需要再次裁剪,并在确定所述第二模型的模型结构需要进行裁剪时,确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长;
163.接收所述服务器发送的对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型;
164.获取用于训练所述第二模型的第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,并通过对所述第二模型的模型结构的裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述服务器。
165.本说明书实施例中,所述使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,包括:
166.使用所述第一训练样本数据对所述第一模型进行训练,得到训练后的第一预选模型;
167.对所述第一预选模型的模型结构进行调整,得到目标模型。
168.本说明书实施例中,所述使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,包括:
169.对所述第一模型的模型结构进行调整,得到第二预选模型;
170.使用所述第一训练样本数据对所述第二预选模型进行训练,得到训练后的目标模型。
171.本说明书实施例中,还包括:
172.接收所述服务器发送的所述第二模型,并基于所述第二模型进行业务处理,所述第二模型是所述服务器确定所述第二模型的模型结构不需要进行裁剪时发送的模型。
173.本说明书实施例中,所述对所述第一模型的模型结构进行调整,包括:
174.基于预设的模型中单元重要性规则对所述第一模型的模型结构进行裁剪。
175.本说明书实施例中,所述将所述目标模型对应的模型更新数据发送给所述服务器,包括:
176.将所述目标模型的索引信息和所述第一模型的索引信息发送给所述服务器。
177.上述模型的处理设备的具体处理过程可以参见上述实施例一和实施例二中的相关内容,在此不再赘述。
178.具体在本实施例中,模型的处理设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对模型的处理设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
179.向预先选定的不同终端设备下发第一模型,所述第一模型用于触发所述终端设备获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型;
180.接收不同终端设备发送的训练后的目标模型对应的模型更新数据,确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型;
181.如果确定所述第二模型的模型结构需要进行裁剪,则确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,并将所述裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型发送给不同终端设备,所述对所述第二模型进行训练所使用的时长和所述第二模型用于触发所述终端设备获取第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,所述裁剪程度和所述第二模型用于触发所述服务器通过所述裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述服务器。
182.本说明书实施例中,所述基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型,包括:
183.获取不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备对应的权重;
184.基于不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的
权重和不同终端设备对应的权重,对不同终端设备提供的所述目标模型进行聚合,以对所述服务器中当前的模型进行更新,得到第二模型。
185.本说明书实施例中,所述基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型,包括:
186.获取不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备提供的所述目标模型中包含预设模型结构的终端设备的数量;
187.基于不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备提供的所述目标模型中包含预设模型结构的终端设备的数量,对不同终端设备提供的所述目标模型进行聚合,以对所述服务器中当前的模型进行更新,得到第二模型。
188.本说明书实施例中,所述如果确定所述第二模型的模型结构需要进行裁剪,则确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长之前,还包括:
189.如果每个终端设备得到所述目标模型所使用的时长未在预设的范围内,且所述第一模型的模型结构的被裁剪程度未达到预设的最小裁剪程度阈值,则确定所述第二模型的模型结构需要进行裁剪。
190.本说明书实施例中,还包括:
191.如果确定所述第二模型的模型结构不需要进行裁剪,则将所述第二模型发送给不同终端设备,所述第二模型用于触发所述终端设备获取第三训练样本数据,基于所述第三训练样本数据对所述第二模型进行训练,得到训练后的第四模型;
192.接收不同终端设备发送的所述第四模型对应的模型更新数据,基于不同终端设备提供的所述第四模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第五模型,将所述第五模型发送给不同终端设备进行训练,并基于训练后的模型对应的模型更新数据更新所述服务器中当前的模型,直到对所述服务器中当前的模型进行更新的次数达到预设次数阈值为止,得到对所述服务器中当前的模型进行更新后的模型,将更新后的模型发送给不同终端设备,以进行业务处理。
193.本说明书实施例中,所述如果确定所述第二模型的模型结构需要进行裁剪,则确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,包括:
194.如果确定所述第二模型的模型结构需要进行裁剪,则基于不同终端设备的得到所述目标模型所使用的时长,确定不同终端设备对应的基准更新时长;
195.基于预设的数据处理规则,对不同终端设备的基准更新时长进行处理,得到不同终端设备对所述第二模型的模型结构的预选裁剪程度,所述数据处理规则包括数据差值处理规则和数据拟合处理规则中的一种或多种;
196.基于所述预选裁剪程度和预设的选取条件,确定不同终端设备对所述第二模型的模型结构的裁剪程度,并将不同终端设备的基准更新时长作为对所述第二模型进行训练所使用的时长。
197.本说明书实施例中,所述基于所述预选裁剪程度和预设的选取条件,确定不同终端设备对所述第二模型的模型结构的裁剪程度,包括:
198.如果所述预选裁剪程度小于预设的最小裁剪程度阈值,则将预设的最小裁剪程度阈值作为不同终端设备对所述第二模型的模型结构的裁剪程度;
199.如果所述预选裁剪程度与所述第二模型对应的模型结构的裁剪程度的差值大于预设的最大裁剪比率,则将所述预选裁剪程度与预设的最大裁剪比率的差值作为不同终端设备对所述第二模型的模型结构的裁剪程度。
200.上述模型的处理设备的具体处理过程可以参见上述实施例三和实施例四中的相关内容,在此不再赘述。
201.本说明书实施例提供一种模型的处理设备,通过接收服务器发送的第一模型,获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,并对第一模型的模型结构进行调整,得到训练后的目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型,然后,可以将目标模型对应的模型更新数据发送给服务器,以触发服务器确定得到目标模型所使用的时长,并基于不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型,以及判断第二模型的模型结构是否需要再次裁剪,并在确定第二模型的模型结构需要进行裁剪时,确定不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,最后,可以获取用于训练所述第二模型的第二训练样本数据,基于第二训练样本数据和接收到的对第二模型进行训练所使用的时长对第二模型进行训练,并通过接收到的对第二模型的模型结构的裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器,进而再次对模型进行训练多轮的裁剪和训练,这样,基于自适应终端设备的性能的高效联邦学习框架,可以用于为不同性能的终端设备提供不同的训练任务(即不同大小的模型),一方面,可以最大化发挥不同性能的终端设备的计算能力,保证模型性能,另一方面,可以通过配备适应终端设备自身能力的模型,所有终端设备的单轮更新时间趋于一致,解决了联邦学习中普遍存在的“拖累者”的问题,提升了训练效率。
202.实施例八
203.进一步地,基于上述图1a到图6所示的方法,本说明书一个或多个实施例还提供了一种存储介质,用于存储计算机可执行指令信息,一种具体的实施例中,该存储介质可以为u盘、光盘、硬盘等,该存储介质存储的计算机可执行指令信息在被处理器执行时,能实现以下流程:
204.接收服务器发送的第一模型,获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型;
205.将所述目标模型对应的模型更新数据发送给所述服务器,所述目标模型对应的模型更新数据用于触发所述服务器确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型,以及判断所述第二模型的模型结构是否需要再次裁剪,并在确定所述第二模型的模型结构需要进行裁剪时,确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长;
206.接收所述服务器发送的对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,以及所述第二模型;
207.获取用于训练所述第二模型的第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,并通过对所述第二模型的模型结构的裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述服务器。
208.本说明书实施例中,所述使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,包括:
209.使用所述第一训练样本数据对所述第一模型进行训练,得到训练后的第一预选模型;
210.对所述第一预选模型的模型结构进行调整,得到目标模型。
211.本说明书实施例中,所述使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,包括:
212.对所述第一模型的模型结构进行调整,得到第二预选模型;
213.使用所述第一训练样本数据对所述第二预选模型进行训练,得到训练后的目标模型。
214.本说明书实施例中,还包括:
215.接收所述服务器发送的所述第二模型,并基于所述第二模型进行业务处理,所述第二模型是所述服务器确定所述第二模型的模型结构不需要进行裁剪时发送的模型。
216.本说明书实施例中,所述对所述第一模型的模型结构进行调整,包括:
217.基于预设的模型中单元重要性规则对所述第一模型的模型结构进行裁剪。
218.本说明书实施例中,所述将所述目标模型对应的模型更新数据发送给所述服务器,包括:
219.将所述目标模型的索引信息和所述第一模型的索引信息发送给所述服务器。
220.上述具体处理过程可以参见上述实施例一和实施例二中的相关内容,在此不再赘述。
221.此外,本说明书一个或多个实施例还提供了一种存储介质,用于存储计算机可执行指令信息,在另一种具体的实施例中,该存储介质可以为u盘、光盘、硬盘等,该存储介质存储的计算机可执行指令信息在被处理器执行时,能实现以下流程:
222.向预先选定的不同终端设备下发第一模型,所述第一模型用于触发所述终端设备获取用于训练所述第一模型的第一训练样本数据,使用所述第一训练样本数据对所述第一模型进行训练,并对所述第一模型的模型结构进行调整,得到训练后的目标模型,所述目标模型与所述第一模型的模型结构相同,或者,所述目标模型是将所述第一模型的模型结构进行裁剪后得到的模型;
223.接收不同终端设备发送的训练后的目标模型对应的模型更新数据,确定得到所述目标模型所使用的时长,并基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型;
224.如果确定所述第二模型的模型结构需要进行裁剪,则确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长,并将所述裁剪程
度和对所述第二模型进行训练所使用的时长,以及所述第二模型发送给不同终端设备,所述对所述第二模型进行训练所使用的时长和所述第二模型用于触发所述终端设备获取第二训练样本数据,基于所述第二训练样本数据和对所述第二模型进行训练所使用的时长对所述第二模型进行训练,所述裁剪程度和所述第二模型用于触发所述服务器通过所述裁剪程度对所述第二模型的模型结构进行调整,得到训练后的第三模型,将所述第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给所述服务器。
225.本说明书实施例中,所述基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型,包括:
226.获取不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备对应的权重;
227.基于不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备对应的权重,对不同终端设备提供的所述目标模型进行聚合,以对所述服务器中当前的模型进行更新,得到第二模型。
228.本说明书实施例中,所述基于不同终端设备提供的所述目标模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第二模型,包括:
229.获取不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备提供的所述目标模型中包含预设模型结构的终端设备的数量;
230.基于不同终端设备提供的所述目标模型中包含预设模型结构的终端设备对应的权重和不同终端设备提供的所述目标模型中包含预设模型结构的终端设备的数量,对不同终端设备提供的所述目标模型进行聚合,以对所述服务器中当前的模型进行更新,得到第二模型。
231.本说明书实施例中,所述如果确定所述第二模型的模型结构需要进行裁剪,则确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使用的时长之前,还包括:
232.如果每个终端设备得到所述目标模型所使用的时长未在预设的范围内,且所述第一模型的模型结构的被裁剪程度未达到预设的最小裁剪程度阈值,则确定所述第二模型的模型结构需要进行裁剪。
233.本说明书实施例中,还包括:
234.如果确定所述第二模型的模型结构不需要进行裁剪,则将所述第二模型发送给不同终端设备,所述第二模型用于触发所述终端设备获取第三训练样本数据,基于所述第三训练样本数据对所述第二模型进行训练,得到训练后的第四模型;
235.接收不同终端设备发送的所述第四模型对应的模型更新数据,基于不同终端设备提供的所述第四模型对应的模型更新数据对所述服务器中当前的模型进行更新,得到第五模型,将所述第五模型发送给不同终端设备进行训练,并基于训练后的模型对应的模型更新数据更新所述服务器中当前的模型,直到对所述服务器中当前的模型进行更新的次数达到预设次数阈值为止,得到对所述服务器中当前的模型进行更新后的模型,将更新后的模型发送给不同终端设备,以进行业务处理。
236.本说明书实施例中,所述如果确定所述第二模型的模型结构需要进行裁剪,则确定不同终端设备对所述第二模型的模型结构的裁剪程度和对所述第二模型进行训练所使
用的时长,包括:
237.如果确定所述第二模型的模型结构需要进行裁剪,则基于不同终端设备的得到所述目标模型所使用的时长,确定不同终端设备对应的基准更新时长;
238.基于预设的数据处理规则,对不同终端设备的基准更新时长进行处理,得到不同终端设备对所述第二模型的模型结构的预选裁剪程度,所述数据处理规则包括数据差值处理规则和数据拟合处理规则中的一种或多种;
239.基于所述预选裁剪程度和预设的选取条件,确定不同终端设备对所述第二模型的模型结构的裁剪程度,并将不同终端设备的基准更新时长作为对所述第二模型进行训练所使用的时长。
240.本说明书实施例中,所述基于所述预选裁剪程度和预设的选取条件,确定不同终端设备对所述第二模型的模型结构的裁剪程度,包括:
241.如果所述预选裁剪程度小于预设的最小裁剪程度阈值,则将预设的最小裁剪程度阈值作为不同终端设备对所述第二模型的模型结构的裁剪程度;
242.如果所述预选裁剪程度与所述第二模型对应的模型结构的裁剪程度的差值大于预设的最大裁剪比率,则将所述预选裁剪程度与预设的最大裁剪比率的差值作为不同终端设备对所述第二模型的模型结构的裁剪程度。
243.上述具体处理过程可以参见上述实施例三和实施例四中的相关内容,在此不再赘述。
244.本说明书实施例提供一种存储介质,通过接收服务器发送的第一模型,获取用于训练第一模型的第一训练样本数据,使用第一训练样本数据对第一模型进行训练,并对第一模型的模型结构进行调整,得到训练后的目标模型,目标模型与第一模型的模型结构相同,或者,目标模型是将第一模型的模型结构进行裁剪后得到的模型,然后,可以将目标模型对应的模型更新数据发送给服务器,以触发服务器确定得到目标模型所使用的时长,并基于不同终端设备提供的目标模型对应的模型更新数据对服务器中当前的模型进行更新,得到第二模型,以及判断第二模型的模型结构是否需要再次裁剪,并在确定第二模型的模型结构需要进行裁剪时,确定不同终端设备对第二模型的模型结构的裁剪程度和对第二模型进行训练所使用的时长,最后,可以获取用于训练所述第二模型的第二训练样本数据,基于第二训练样本数据和接收到的对第二模型进行训练所使用的时长对第二模型进行训练,并通过接收到的对第二模型的模型结构的裁剪程度对第二模型的模型结构进行调整,得到训练后的第三模型,将第三模型对应的模型更新数据作为目标模型对应的模型更新数据发送给服务器,进而再次对模型进行训练多轮的裁剪和训练,这样,基于自适应终端设备的性能的高效联邦学习框架,可以用于为不同性能的终端设备提供不同的训练任务(即不同大小的模型),一方面,可以最大化发挥不同性能的终端设备的计算能力,保证模型性能,另一方面,可以通过配备适应终端设备自身能力的模型,所有终端设备的单轮更新时间趋于一致,解决了联邦学习中普遍存在的“拖累者”的问题,提升了训练效率。
245.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可
以的或者可能是有利的。
246.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
247.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
248.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
249.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
250.本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程
序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
251.本说明书的实施例是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程欺诈案例的串并设备的处理器以产生一个机器,使得通过计算机或其他可编程欺诈案例的串并设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
252.这些计算机程序指令也可存储在能引导计算机或其他可编程欺诈案例的串并设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
253.这些计算机程序指令也可装载到计算机或其他可编程欺诈案例的串并设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
254.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
255.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
256.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
257.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
258.本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件
和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
259.本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
260.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
261.以上所述仅为本说明书的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献