一种模型训练的方法、系统及装置制造方法及图纸

技术编号:30022559 阅读:16 留言:0更新日期:2021-09-11 06:46
本说明书涉及一种模型的训练方法、系统及装置,可用于机器学习过程中的隐私数据保护,所述方法由参与方中的任一训练成员实现,包括:基于自身持有的训练样本进行模型训练,获得模型数据列表;从模型数据列表中的一个或多个卷积核对应的子矩阵中选取若干子矩阵,并确定所选子矩阵在模型数据列表中的第一位置信息;从模型数据列表中除卷积核对应的子矩阵以外的元素中选取若干非卷积核元素,并确定反映选取的非卷积核元素在模型数据列表中的第二位置信息;确定包括第一位置信息以及第二位置信息的传输数据列表,并将其上传至服务器;获取服务器下发的模型数据更新列表,并基于模型数据更新列表进行本地模型更新。数据更新列表进行本地模型更新。数据更新列表进行本地模型更新。

【技术实现步骤摘要】
一种模型训练的方法、系统及装置


[0001]本说明书一个或多个实施例涉及多方协同模型训练,特别涉及一种模型训练的方法、系统及装置。

技术介绍

[0002]在数据分析、数据挖掘、经济预测等领域,联邦学习可以在保证多方数据安全的情况下,协同训练机器学习模型供多方共同使用的场景。但是,联邦学习在应用于模型计算量大、参数多的情况时,需要传输的模型参数也会随之增大,这会使得联邦学习过程中数据传输量大,因而通讯传输的压力较大。
[0003]因此,有必要提出一种模型训练方法以降低联邦学习过程中的传输压力。

技术实现思路

[0004]本说明书一个方面提供一种模型的训练方法,所述方法由参与方中的任一训练成员实现,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述方法包括对待训练模型进行多轮迭代更新,其中一轮迭代更新包括:基于自身持有的训练样本进行模型训练,获得模型数据列表;从所述模型数据列表中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,并确定选取的子矩阵在所述模型数据列表中的第一位置信息;从所述模型数据列表中除卷积核对应的子矩阵以外的元素中选取一个或多个非卷积核元素,并确定选取的非卷积核元素在所述模型数据列表中的第二位置信息;确定传输数据列表,所述传输数据列表至少基于选取的一个或多个子矩阵以及选取的非卷积核元素确定;确定传输数据位置列表,所述传输数据位置列表至少基于所述第一位置信息以及所述第二位置信息确定;将所述传输数据列表以及所述传输数据位置列表上传至服务器,以使所述服务器进行模型数据聚合;获取服务器下发的模型数据更新列表,并基于所述模型数据更新列表进行本地模型更新,将更新后的本地模型作为待训练模型进行下一次训练,或者基于此确定最终模型。
[0005]本说明书另一个方面提供一种模型的训练方法系统,所述系统置于参与方中的任一训练成员设备处,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述系统用于对待训练模型进行多轮迭代更新,所述系统包括:模型数据列表获取模块,用于在一轮迭代更新中基于自身持有的训练样本进行模型训练,获得模型数据列表;第一位置信息确定模块,用于在一轮迭代更新中从所述模型数据列表中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,并确定选取的子矩阵在所述模型数据列表中的第一位置信息;第二位置信息确定模块,用于在一轮迭代更新中从所述模型数据列表中除卷积核对应的子矩阵以外的元素中选取一个或多个非卷积核元素,并确定选取的非卷积核元素在所述模型数据列表中的第二位置信息;传输数据列表确定模块,用于在一轮迭代更
新中确定传输数据列表,所述传输数据列表至少基于选取的一个或多个子矩阵以及选取的非卷积核元素确定;传输数据位置列表确定模块,用于在一轮迭代更新中确定传输数据位置列表,所述传输数据位置列表至少基于所述第一位置信息以及所述第二位置信息确定;上传模块,用于在一轮迭代更新中将所述传输数据列表以及所述传输数据位置列表上传至服务器,以使所述服务器进行模型数据聚合;模型更新模块,用于在一轮迭代更新中获取服务器下发的模型数据更新列表,并基于所述模型数据更新列表进行本地模型更新,将更新后的本地模型作为待训练模型进行下一次训练,或者基于此确定最终模型。
[0006]本说明书另一个方面提供一种模型训练装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述模型训练的方法。
[0007]本说明书另一个方面提供一种模型的训练方法,所述方法由参与方中的服务器实现,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述方法包括对待训练模型进行多轮迭代更新,其中一轮迭代更新包括:接收各训练成员上传的传输数据列表以及传输数据位置列表;所述传输数据列表基于训练成员从其模型数据列表中选取的一个或多个子矩阵以及一个或多个非卷积核元素确定,所述一个或多个子矩阵与一个或多个卷积核对应;所述传输数据位置列表基于第一位置信息和第二位置信息确定,所述第一位置信息为训练成员选取的子矩阵在其模型数据列表中的位置信息,所述第二位置信息为训练成员选取的非卷积核元素在其模型数据列表中的位置信息;基于各传输数据列表得到模型数据总列表;基于各传输数据位置列表得到位置数据总列表;基于所述模型数据总列表以及所述位置数据总列表确定模型数据聚合列表;向各训练成员分别返回所述模型数据聚合列表中的至少部分元素,使得各训练成员进行本地模型更新。
[0008]本说明书另一个方面提供一种模型的训练系统,所述系统置于参与方中的服务器处,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述系统用于对模型参数进行多轮迭代更新,所述系统包括:数据接收模块,用于在一轮迭代更新中接收各训练成员上传的传输数据列表以及传输数据位置列表;所述传输数据列表基于训练成员从其模型数据列表中选取的一个或多个子矩阵以及一个或多个非卷积核元素确定,所述一个或多个子矩阵与一个或多个卷积核对应;所述传输数据列表基于第一位置信息和第二位置信息确定,所述第一位置信息为训练成员选取的子矩阵在其模型数据列表中的位置信息,所述第二位置信息为训练成员选取的非卷积核元素在其模型数据列表中的位置信息;模型数据总列表获取模块,用于在一轮迭代更新中基于各传输数据列表得到模型数据总列表;位置数据总列表获取模块,用于在一轮迭代更新中基于各传输数据位置列表得到位置数据总列表;模型数据聚合列表确定模块,用于在一轮迭代更新中基于所述模型数据总列表以及所述位置数据总列表确定模型数据聚合列表;数据传输模块,用于在一轮迭代更新中向各训练成员分别返回所述模型数据聚合列表中的至少部分元素,使得各训练成员进行本地模型更新。
[0009]本说明书另一个方面提供一种模型训练装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述模型训练的方法。
附图说明
[0010]本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
[0011]图1是根据本说明书的一些实施例所示的进行模型更新系统的示例性应用场景图;
[0012]图2是根据本说明书的一些实施例所示的卷积神经网络(CNN)示意图;
[0013]图3是根据本说明书一些实施例所示的进行模型参数更新的系统框图;
[0014]图4是根据本说明书的一些实施例所示的进行模型参数更新的示例性流程图;
[0015]图5是根据本说明书另一些实施例所示进行模型参数更新的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模型的训练方法,所述方法由参与方中的任一训练成员实现,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述方法包括对待训练模型进行多轮迭代更新,其中一轮迭代更新包括:基于自身持有的训练样本进行模型训练,获得模型数据列表;从所述模型数据列表中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,并确定选取的子矩阵在所述模型数据列表中的第一位置信息;从所述模型数据列表中除卷积核对应的子矩阵以外的元素中选取一个或多个非卷积核元素,并确定选取的非卷积核元素在所述模型数据列表中的第二位置信息;确定传输数据列表,所述传输数据列表至少基于选取的一个或多个子矩阵以及选取的非卷积核元素确定;确定传输数据位置列表,所述传输数据位置列表至少基于所述第一位置信息以及所述第二位置信息确定;将所述传输数据列表以及所述传输数据位置列表上传至服务器,以使所述服务器进行模型数据聚合;获取服务器下发的模型数据更新列表,并基于所述模型数据更新列表进行本地模型更新,将更新后的本地模型作为待训练模型进行下一次训练,或者基于此确定最终模型。2.根据权利要求1所述的方法,其中,所述从所述模型数据列表中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,包括:分别从所述模型数据列表中的各卷积层中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵。3.根据权利要求2所述的方法,其中,所述分别从所述模型数据列表中的各卷积层中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,包括对每个卷积层:确定第一选取比例,基于所述第一选取比例以及所述卷积层中卷积核的个数确定第一选取个数;获取所述卷集层中各个卷积核对应的子矩阵的第一表征值;将各第一表征值进行排序,基于所述第一选取个数选出排序在前的若干第一表征值对应的子矩阵。4.根据权利要求3所述的方法,所述第一表征值包括范数值;所述排序为降序排序;所述第一选取比例与迭代次数负相关。5.根据权利要求1所述的方法,其中,所述第一位置信息通过第一位置稀疏列表表征;所述第一位置稀疏列表包含与各卷积层对应的行或列,其中每一行或列中的元素与对应卷积层中的各卷积核对应;所述第一位置稀疏列表中,与选取的一个或多个子矩阵对应的卷积核位置对应的元素为1,其余元素为0。6.根据权利要求1所述的方法,其中,所述从所述模型数据列表中除卷积核对应的子矩阵以外的元素中选取一个或多个非卷积核元素,包括:确定第二选取比例,基于所述第二选取比例以及所述模型数据列表中除卷积核对应的子矩阵以外的元素的数量确定第二选取个数;
将所述模型数据列表中除卷积核对应的子矩阵以外的元素进行排序,基于所述第二选取个数选出排序在前的若干元素作为选取的一个或多个非卷积核元素。7.根据权利要求6所述的方法,所述排序为基于绝对值降序排序;所述第二选取比例与迭代次数负相关。8.根据权利要求1所述的方法,其中,所述待训练模型还包括全连接层,所述选取的非卷积核元素来自全连接层;所述第二位置信息通过第二位置稀疏列表表征;所述第二位置稀疏列表包含与所述全连接层对应的矩阵,所述矩阵中的元素与全连接层的模型参数对应;所述第二位置稀疏列表中,与选取的一个或多个非卷积核元素位置对应的元素为1,其余元素为0。9.根据权利要求1所述的方法,上传给服务器的还包括当前次迭代的训练样本数量;其中,至少将传输数据列表以及传输数据位置列表以密文形式上传给服务器。10.根据权利要求1所述的方法,所述第一位置信息通过第一位置稀疏列表表征,所述第二位置信息通过第二位置稀疏列表表征;所述传输数据列表包括选取的一个或多个子矩阵以及选取的非卷积核元素;所述传输数据位置列表包括所述第一位置稀疏列表以及所述第二位置稀疏列表;或者,所述传输数据列表包括当前次迭代的训练样本数量分别与选取的一个或多个子矩阵、以及选取的非卷积核元素的乘积;所述传输数据位置列表包括当前次迭代的训练样本数量分别与所述第一位置稀疏列表、以及所述第二位置稀疏列表的乘积。11.根据权利要求1所述的方法,所述模型数据列表中的元素为模型参数;服务器下发的模型数据更新列表包括与传输数据列表中的元素位置对应的聚合模型参数;所述基于所述模型数据更新列表进行本地模型更新,包括:将所述模型数据列表中的相应元素替换为模型数据更新列表中的聚合模型参数,得到更新后的本地模型。12.根据权利要求1所述的方法,所述模型数据列表中的元素为梯度数据;服务器下发的模型数据更新列表包括与传输数据列表中的元素位置对应的聚合梯度数据;所述基于所述模型数据更新列表进行本地模型更新,包括:将所述模型数据列表中的相应元素替换为模型数据更新列表中的聚合梯度数据;基于替换后的模型数据列表中的元素确定与各模型参数分别对应的调参量;将待训练模型在当前次迭代中的原模型参数减去对应的调参量,得到更新后的本地模型。13.一种模型的训练系统,所述系统置于参与方中的任一训练成员处,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述系统用于对待训练模型进行多轮迭代更新,所述系统包括:模型数据列表获取模块,用于在一轮迭代更新中基于自身持有的训练样本进行模型训练,获得模型数...

【专利技术属性】
技术研发人员:郑龙飞陈超超王力张本宇
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1