发布信息

联合训练模型的方法及装置与流程

作者:admin      2022-11-16 12:10:45     910



计算;推算;计数设备的制造及其应用技术1.本说明书一个或多个实施例涉及安全计算技术领域,尤其涉及联合训练模型的方法及装置。背景技术:2.随着深度学习的飞速发展,人工智能技术正在几乎每个行业中展示其优势。然而大数据驱动的人工智能在现实情况中存在很多困难。例如数据孤岛现象严重,利用率低且成本一直居高不下。一些行业的单一训练成员还可能存在数据有限或数据质量较差的问题。另外,由于行业竞争,隐私安全和复杂的管理程序,即使同一公司的不同部门之间的数据集成也可能面临着巨大的阻力,数据整合成本较高。3.联邦学习正是在这样的背景下提出的。联邦学习是一种基于分布式机器学习的框架,主要思想是基于分布在多个设备上的数据集构建机器学习模型,同时防止数据泄露。在这种框架下,客户端(例如移动设备)在中央服务器的协调下协作地训练模型,同时训练数据可保留在客户端本地,无需像传统机器学习方法将数据上传至数据中心。在联邦学习过程中,传输数据量与样本量通常成正比,数据量越大,通信传输量越大。对于大规模数据的联合学习,通信量过大可能导致整体训练时间较长。技术实现要素:4.本说明书一个或多个实施例描述了一种联合训练模型的方法及装置,用以解决背景技术提到的一个或多个问题。5.根据第一方面,提供一种联合训练模型的方法,由服务方和多个训练成员各自利用本地隐私数据联合更新模型,其中,所述多个训练成员包括第一成员,所述第一成员针对训练样本持有第一特征数据,所述模型在所述第一成员对应有第一局部模型,在服务方对应有全局模型;所述方法由第一成员执行,在当前模型更新周期,所述方法包括:基于所述第一局部模型对当前批次的若干条训练样本的第一特征数据进行的处理,得到第一中间张量;针对所述第一中间张量进行稀疏化,得到第一数值类型描述的第一稀疏化张量;对所述第一稀疏化张量中保留的元素进行量化处理,得到第一稀疏数据,其中,所述第一稀疏数据通过第二数值类型描述相应元素,第一数值类型对应的字节数大于第二数值类型对应的字节数;向服务方提供第二数值类型描述的第一稀疏数据,以供所述服务方基于对第一稀疏数据的反量化结果进行相应处理后,反馈与所述第一中间张量对应的第一处理张量;基于所述第一处理张量更新所述第一局部模型。6.在一个实施例中,在纵向联邦学习中,所述服务方为持有标签数据的训练成员或可信第三方,所述全局模型与所述第一局部模型顺次连接,所述第一中间张量是第一局部模型对所述若干条训练样本的第一特征数据的处理结果。7.在一个实施例中,所述第一处理张量是:模型损失对所述第一中间张量的第一中间梯度,其中,所述第一中间梯度由服务方基于对第一稀疏数据的反量化得到的第二中间张量,由所述全局模型处理处理第二中间张量与其他训练成员反馈的其他中间张量的融合结果,得到相应的预测结果,并经由预测结果与标签数据的对比确定模型损失,从而通过梯度反向传播确定所述第一中间梯度;所述基于所述第一处理张量更新所述第一局部模型进一步包括:利用所述第一中间梯度确定所述第一局部模型中各个待定参数分别对应的各个梯度;根据各个梯度更新所述第一局部模型中各个待定参数,从而更新所述第一局部模型。8.在一个实施例中,在横向联邦学习中,所述服务方为可信第三方,所述全局模型与所述第一局部模型结构一致,所述第一中间张量是用于描述待同步参数的张量,待同步参数为待定参数的变化量、待定参数的梯度、待定参数的更新值中的一项。9.在一个实施例中,所述第一处理张量是:由服务方通过对所述第一稀疏数据即其他训练成员反馈的稀疏数据各自的反量化结果进行同步融合得到的融合张量;所述基于所述第一处理张量更新所述第一局部模型进一步包括:利用所述同步张量替换本地的待同步参数,从而完成所述第一局部模型与其他训练成员所持有局部模型同步的更新。10.在一个实施例中,所述第一中间张量的元素数为n1,稀疏化后保留的元素数为n2,n2小于n1,所述第一稀疏化张量中的有效元素包括第一元素,所述第一元素对应有第一索引位置和第一元素值,所述第一索引值在0至n1之间取值;所述对所述第一稀疏化张量中保留的元素进行量化处理,得到第一稀疏数据包括:对所述第一元素值按照第一数值类型对应的字节数描述的取值范围向第二数值类型对应的字节数描述的取值范围进行取整映射,得到对所述第一元素值对应的第一量化值;将所述第一索引位置按照第一字节数描述的取值范围进行映射,得到的整数作为所述第一索引的第一坐标值,得到的余数作为所述第一索引的第二坐标值,其中,所述第一坐标值和第二坐标值构成所述第一元素对应的第一索引坐标。11.在一个实施例中,所述第一坐标值按照得到的整数大小通过第二字节数下的第二数值类型描述,所述第二字节数是用于描述所述第一坐标值的最小二进制数所需的字节数。12.在一个实施例中,所述第一数值类型是浮点型,所述第二数值类型为整型。13.根据第二方面,提供一种联合训练模型的方法,由服务方和多个训练成员各自利用本地隐私数据联合更新模型,其中,所述模型在所述各个训练成员对应有各个局部模型,在服务方对应有全局模型;所述方法由服务方执行,在当前模型更新周期,所述方法包括:分别从各个训练成员接收针对相应的中间张量的稀疏张量,其中,单个中间张量基于相应局部模型对当前批次的若干条训练样本的本地特征数据进行处理得到,单个稀疏张量经由相应训练成员针对相应单个中间张量进行稀疏化,得到第一数值类型描述的稀疏化张量,并对稀疏化张量中保留的元素进行量化处理得到,其中,稀疏数据通过第二数值类型描述相应元素,第一数值类型对应的字节数大于第二数值类型对应的字节数;对各稀疏数据进行反量化,以恢复各个中间张量;对各个中间张量进行后续处理,以得到与各个中间张量分别对应的各个处理张量;向各个训练成员分别反馈相应的处理张量,以供各个训练成员基于相应的处理张量更新本地局部模型。14.根据第三方面,提供一种联合训练模型的装置,由服务方多个训练成员各自利用本地隐私数据联合更新模型,其中,所述多个训练成员包括第一成员,所述第一成员针对训练样本持有第一特征数据,所述模型在所述第一成员对应有第一局部模型,在服务方对应有全局模型;所述装置设于第一成员,包括处理单元、稀疏化单元、量化单元、提供单元、更新单元,在当前模型更新周期:15.处理单元,配置为基于所述第一局部模型对当前批次的若干条训练样本的第一特征数据进行的处理,得到第一中间张量;16.稀疏化单元,配置为针对所述第一中间张量进行稀疏化,得到第一数值类型描述的第一稀疏化张量;17.量化单元,配置为对所述第一稀疏化张量中保留的元素进行量化处理,得到第一稀疏数据,其中,所述第一稀疏数据通过第二数值类型描述相应元素,第一数值类型对应的字节数大于第二数值类型对应的字节数;18.提供单元,配置为向服务方提供第二数值类型描述的第一稀疏数据,以供所述服务方基于对第一稀疏数据的反量化结果进行相应处理后,反馈与所述第一中间张量对应的第一处理张量;19.更新单元,配置为基于所述第一处理张量更新所述第一局部模型。20.根据第四方面,提供一种联合训练模型的装置,由服务方和多个训练成员各自利用本地隐私数据联合更新模型,其中,所述模型在所述各个训练成员对应有各个局部模型,在服务方对应有全局模型;所述装置设于服务方,包括接收单元、反量化单元、处理单元、反馈单元,在当前模型更新周期:21.接收单元,配置为分别从各个训练成员接收针对相应的中间张量的稀疏张量,其中,单个中间张量基于相应局部模型对当前批次的若干条训练样本的本地特征数据进行的处理得到,单个稀疏张量经由相应训练成员针对相应单个中间张量进行稀疏化,得到第一数值类型描述的稀疏化张量,并对稀疏化张量中保留的元素进行量化处理得到,其中,稀疏数据通过第二数值类型描述相应元素,第一数值类型对应的字节数大于第二数值类型对应的字节数;22.反量化单元,配置为对各稀疏数据进行反量化,以恢复各个中间张量;23.处理单元,配置为对各个中间张量进行后续处理,以得到与各个中间张量分别对应的各个处理张量;24.反馈单元,配置为向各个训练成员分别反馈相应的处理张量,以供各个训练成员基于相应的处理张量更新本地局部模型。25.根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。26.根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。27.通过本说明书实施例提供的方法和装置,在训练成员向服务方提供相应的中间张量时,先对相应中间张量进行稀疏化处理,然后对稀疏化后的有效元素进行量化(减少字节数),从而以较少的数据量向服务方提供相应中间张量的稀疏化数据。服务方针对接收到的稀疏化数据,先进行反量化操作,恢复出中间张量对应的稀疏张量,并进行后续处理。之后,服务方基于后续处理将与训练成员的中间张量对应的处理张量反馈给各个训练成员,从而由各个训练成员更新本地局部模型。该方式对稀疏化后的中间张量进一步进行量化处理,大大缩减数值的字节数,从而减少通信数据量,缩短通信时间,提高模型训练效率。附图说明28.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。29.图1示出联邦学习的实施架构示意图;30.图2a示出横向联邦学习下的模型架构示意图;31.图2b示出纵向联邦学习下的模型架构示意图;32.图3示出根据一个实施例的联合训练模型流程中训练成员和服务方的交互流程图;33.图4示出根据一个实施例的设于单个训练成员的联合训练模型装置的示意性框图;34.图5示出根据一个实施例的设于服务方的联合训练模型装置的示意性框图。具体实施方式35.下面结合附图,对本说明书提供的技术方案进行描述。36.首先描述本说明书中可能涉及的一些概念。37.联邦学习(federated learning),又可以称为联邦机器学习、联合学习、联盟学习等。联邦机器学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。38.具体地,假设企业a、企业b各自建立一个任务模型,单个任务可以是分类或预测,而这些任务也已经在获得数据时由各自用户的认可。然而,由于数据不完整,例如企业a缺少标签数据、企业b缺少用户特征数据,或者数据不充分,样本量不足以建立好的模型,那么在各端的模型有可能无法建立或效果并不理想。联邦学习要解决的问题是如何在a和b各端建立高质量的模型,该模型的训练兼用a和b等各个企业的数据,并且各个企业的自有数据不被其他方知晓,即在不违反数据隐私法规情况下,建立一个共有模型。这个共有模型就好像各方把数据聚合在一起建立的最优模型一样。这样,建好的模型在各方的区域仅为自有的目标服务。39.联邦学习的各个机构可以称为训练成员。各个训练成员分别可以持有不同的业务数据,还可以通过设备、计算机、服务器等参与业务模型的联合训练。这里的业务数据例如可以是字符、图片、语音、动画、视频等各种数据。通常,各个训练成员持有的业务数据具有相关性,各个训练成员对应的业务方也可以具有相关性。例如,涉及金融业务的多个业务方中,业务方1为银行,为用户提供储蓄、贷款等业务,可以持有用户的年龄、性别、收支流水、贷款额度、存款额度等数据,业务方2投资理财平台,可以持有用户的借贷记录、投资记录、还款时效等数据,业务方3为购物网站,持有用户的购物习惯、付款习惯、付款账户等数据。再例如,涉及医疗业务的多个业务方中,各个业务方可以是各个医院、体检机构等,如业务方1为医院a,对应用户年龄、性别、症状、诊断结果、治疗方案、治疗结果等等诊疗记录作为本地业务数据,业务方2可以为体检机构b,对应用户年龄、性别、症状、体检结论等等的体检记录数据,等等。单个训练成员可以持有一个业务的业务数据,也可以持有多个业务方的业务数据。联邦学习的目的是训练一个可以更好地处理这些业务数据的模型,因此联邦学习的模型也可以称为业务模型。40.图1示出了联邦学习的一个具体实施架构。在该实施架构下,多个训练成员(如成员1、成员2、成员3等)分别可以通过本地局部模型对本地所持有的特征数据的处理,得到相应的中间张量。各个训练成员可以向服务方提供中间张量,服务方基于对各个中间张量的融合处理,向各个训练成员反馈相应的处理张量,以供各个训练成员根据处理张量跟新本地局部模型。41.联邦学习分为横向联邦学习和纵向联邦学习。图2a示出了横向联邦学习的模型架构图。如图2所示,横向联邦学习架构下,不同训练成员的样本集合中样本的特征重合较高,但是样本来源不一样。例如,多个样本集合对应着不同银行的客户。一般银行管理的数据特征都是相似的,但是客户是不同的,这样就可以采用横向联邦学习的方式训练模型。42.纵向联邦学习中不同数据集id重合较高(比如电话号码等记录一致),但是特征不一样。例如面对的用户群体(如一个小县城的居民)一致的一家银行和一家医院,银行和医院的样本中有大量人员重合度很高,但是特征不一样,银行数据可能对应有存款、贷款等特征信息,医院数据可能对应生理指标、健康状况、就诊记录等特征信息。这里联合银行、医院的数据集训练模型可以称之为纵向联邦学习。在横向联邦学习场景中,通常可以由各个训练成员持有本地局部模型,各个局部模型与全局模型结构一致,由各个训练成员训练局部模型过程中,和全局模型进行同步更新,全局模型的同步参数值由各个局部模型的处理结果融合得到。全局模型可以真实存在,也可以以同步参数的形式存在。全局模型的同步融合通常可以由作为服务方的可信第三方完成。43.图2b示出了纵向联邦学习的模型架构图。如图2b所示,对于垂直切分数据的纵向联邦学习场景,业务模型通常分为两部分,一部分是各个训练成员持有的局部模型,用于处理本地的特征数据,得到中间结果,另一部分是全局模型,用于处理各个训练成员的中间结果,得到最终输出结果。其中,纵向联邦学习场景中还可以由多个训练成员使用无中心的多方安全计算mpc架构,此时,全局模型可以分布在持有标签数据的训练成员。纵向联邦学习场景中也可以采用有中心的第三方辅助架构,第三方作为服务中心,也可以称为服务方。此时,全局模型可以设于服务方。各个训练成员一方面要将特征数据处理后的中间数据提供给服务方,另一方面,持有标签数据的训练成员需要将标签数据提供给服务方。44.其中,服务方可以是可信第三方,也可以是纵向联邦学习中的标签持有方。并假定服务方持有全局模型。本领域技术人员容易理解,在纵向联邦学习过程中,单个训练成员可以向服务方发送本地局部模型对本地持有的训练样本的部分特征进行处理得到的中间结果,而在横向联邦学习过程中,单个训练成员可以向服务方发送待同步参数。不管是横向联邦学习还是纵向联邦学习,在一个模型更新周期,训练成员都至少向服务方发送一次本地数据的处理结果。在本说明书中,可以将单个训练成员向服务方发送的本地数据的处理结果称为中间张量。45.在横向联邦学习架构中,单个成员持有训练样本的完整特征数据,可以通过对特征数据的处理得到预测结果,并基于预测结果与标签数据的比较得到模型损失,并基于模型损失确定各个待定参数的梯度。而在横向联邦学习架构中,待同步参数(即图1中的中间张量)可以是各个待定参数的梯度、各个待定参数的变化量、各个待定参数的更新值中的至少一个。其中,各个待定参数的变化量、各个待定参数的更新值均可以由各个待定参数的梯度确定。在纵向联邦学习架构下,单个训练成员可以持有训练样本的部分特征数据,中间结果可以是本地局部模型对这部分特征数据的处理结果。46.结合图1、图2a、图2b所示,各个训练成员可以将相应的中间张量传递至服务方。在纵向联邦学习架构下,服务方可以对各个中间张量融合后通过全局模型进行处理,得到预测结果,进而确定模型损失,并反向传播梯度。在反向传播梯度过程中,服务方一方面根据模型损失确定全局模型各个待定参数的梯度并予以更新,另一方面向各个训练成员反馈模型损失针对相应中间张量的梯度。各个训练成员可以基于中间向量的梯度,确定本地局部模型中各个待定参数的梯度,用于更新本地局部模型。而在横向联邦学习架构下,服务方可以对各个训练成员的中间张量进行同步融合,例如取均值、最大值、最小值、中位数等作为同步值。之后,服务方向各个训练成员反馈各个待定参数对应的同步值,由各个训练成员用同步值更新待同步参数与的数值,实现模型更新。47.可以看出,在联邦学习过程中,对于一个模型更新周期而言,单个训练成员至少与服务方具有两次通信,上传中间张量,以及接收基于中间张量确定的梯度或同步值。为了减少数据通信量,缩短通信时长,提高联邦学习效率,本说明书提供一种基于数据量化的数据传输方式,在对中间张量稀疏化的基础上进一步对稀疏化后保留的元素通过量化减少字节数,从而减少数据传输量。48.下面参考图3示出的一个具体例子描述本说明书的技术构思。49.如图3所示,示出了根据一个实施例的联合训练模型的流程。该流程适用于纵向联邦学习或横向联邦学习。该流程的实施架构可以包括多个训练成员及服务方,如前文的描述,根据联邦学习架构的实际形式,服务方可以是可信第三方或者纵向联邦学习架构下持有标签数据的训练成员。图3示出的流程以各个训练成员中的第一成员与服务方的交互为例进行描述。其中,第一成员可以是多个训练成员中的任意一员。第一成员可以持有第一局部模型,服务方可以持有全局模型。在横向联邦学习过程中,第一局部模型与全局模型结构一致,可以独立地在第一成员上处理特征数据、得到预测结果、确定模型损失、反向传播各个待定参数的梯度。全局模型可以用于同步融合各个训练成员的局部模型,全局模型可以不真实存在,而仅以服务方针对待同步参数的同步值形式来描述。在纵向联邦学习架构下,全局模型可以连接在各个训练成员的局部模型之后,对各个局部模型输出的各个中间结果进行融合并进一步处理得到预测结果,以供服务方将全局模型的预测结果和标签数据相比较,从而反向传递梯度,以进行全局模型和各个局部模型的训练。50.本说明书的实施例基于图1示出的架构进行改进,在单个训练成员向服务方提供中间张量时,对中间张量进行稀疏化和数值量化处理,从而在保证数据隐私的情况下减少向服务方提供的数据量。下面参考图3示出的交互流程,描述在一个模型更新周期,第一成员和服务方对数据的具体处理方式。51.首先,在步骤301中,第一成员基于第一局部模型对当前批次的若干条训练样本的第一特征数据进行的处理,得到第一中间张量(如记为m1)。52.这里,第一中间张量可以是一维张量,也可以是二维张量,还可以是三维张量,本说明书对此不做限定。例如,在纵向联邦学习架构下,第一局部模型可以针对每个训练样本得到一个m维的嵌入向量,n条训练样本可以得到n个m维的嵌入向量,例如构成n×m的二维张量作为第一中间张量。为了描述方便,可以将第一中间张量的元素数记为n1,n1为大于1的正整数。53.可以理解,第一成员至少持有若干条训练样本的第一特征数据。其中,第一特征数据可以对应一个或多个特征项。第一特征数据可以预先从本地数据中提取。例如,一条训练样本对应一个用户,第一训练成员持有的本地数据为用户的理财、贷款、还贷数据,则可以从中提取理财类型、理财额度、理财收益、贷款频次、贷款数额、还贷及时性等特征作为相应训练样本的第一特征数据。当前批次的训练样本可以包括一条或多条训练样本。54.在纵向联邦学习架构下,当前批次的若干条训练样本可以由各个训练成员通过协商一致的基于隐私保护的方式从本地数据集中采样,且各个训练成员的采样结果相互对齐。第一特征数据可以是这若干条训练样本的部分特征数据。例如,一条训练样本共有100个特征项,第一成员持有其中的10个特征项,这10个特征项就可以称为训练样本的第一特征数据。相应地,第一中间张量可以是第一局部模型对当前批次的这10个特征项(第一特征数据)的处理结果。此时的第一局部模型可以是嵌入模型或编码模型,对第一特征数据中的各个特征值进行融合,或者挖掘其深层特征,通过预定维度的向量表征出来。55.在横向联邦学习架构下,当前批次的训练样本可以由各个训练成员各自在本地训练样本中采样,并相互独立。此时,第一特征数据可以是第一成员采样的若干条训练样本的全部特征数据,例如,一条训练样本共有100个特征项和一个标签,则第一成员可以持有者若干条训练样本各自的100个特征项和一个标签。此时的第一局部模型可以独立完成对特征数据的处理,并得到预测结果。第一成员还可以将相应预测结果与标签数据进行比较,从而得到当前更新周期的模型损失。进一步地,以模型损失减小为目的,可以按照第一局部模型的结构确定待定参数的梯度。例如,在第一局部模型为多层全连接神经网络的情况下,单层神经网络的表达式为y=wx+b,则待定参数w的梯度例如为:层神经网络的表达式为y=wx+b,则待定参数w的梯度例如为:其中,l为模型损失,x为y对w的偏导数,在计算待定参数w的梯度时,x可以为对当前批次训练样本处理过程中的真实输入值。此时,第一中间张量可以是各个训练成员的局部模型的待同步参数。在待定参数基于梯度进行的情况下(如w=w-γ·gw),待同步参数可以是待定参数的梯度本身(如gw),也可以是待定参数的变化量(如-γ·gw),还可以是待定参数的更新值(即更新后的值,如w=w-γ·gw)。在可选的实施例中,在模型的一个同步周期,单个训练成员可以对本地待定参数进行一轮或多轮更新。56.不管横向联邦学习还是纵向联邦学习,第一训练成员均可以向服务方提供第一中间张量。本说明书的技术构思下,对第一中间张量进行减量处理,以减少通信量。57.因此,在步骤302中,第一成员针对第一中间张量进行稀疏化,得到第一稀疏化张量(如记为m1p)。58.稀疏化过程是将其中部分元素置0的过程。也就是说,保留部分元素有效,这些有效的元素可以称为有效元素,假设数量为n2,则n2小于n1,其余元素置0。第一中间张量的稀疏化可以采用随机稀疏化、top k等各种稀疏化方法进行。以top k为例,保留数值最大的k个元素(此时n2=k),其他数值置0。其中,k是预设的数值,或者根据稀疏化率p确定的整数数值,在此不做限定。第一中间张量的稀疏化结果可以称为第一稀疏化张量。59.在步骤303中,第一成员对第一稀疏化张量中保留的元素进行量化处理,得到第一稀疏数据(如记为m'1p)。60.其中,量化是信息压缩的一种手段。在机器学习领域,量化可以看作对数值取值范围的重新调整,例如,从0-1.0的取值范围内的数值调整为0-255范围内的数值。对于机器语言用0、1表示数据的情况下,数值范围的调整可以经由数值类型的变化以及占用字节数的变化来描述。数值类型是在数据结构中定义的一组性质相同的值的集合以及在这个值集合上的一组操作的总称。数值类型例如可以包括但不限于整型、浮点型、字符型、布尔型等。61.以浮点型为例,浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到。在c++中,浮点数例如可以包括32字节的单精度浮点数float、32字节的单精度无符号浮点数unsigned float、64字节的双精度浮点数double、80字节的高双精度浮点数long double等等。62.在机器学习领域,为了提高计算精度,通常使用浮点型的64字节双精度浮点数double表示数据。在数据量较大的情况下,如果每个数据都是64字节(如可表示-263至263-1之间的数),通信量也比较大。为了减少通信量,可以将数值表示为其他数值类型,例如整型。整型例如有byte、short、int、long等几种类型。整型数值的字节数相对较小,如为8个字节(如表示0-255或-128至127之间的数)等。63.也就是说,本说明书中,将数值进行量化的过程是将高字节数的数值类型转换成低字节数值类型的过程。量化过程可以通过线性映射或非线性映射进行,在保持数值大小关系的基础上,接受一定信息损失,将数值表示为更少字节数的数值类型。本说明书以浮点型向整型的映射为例进行描述。实践中也可以是其他高字节数数值类型转换成其他低字节数数值类型。以浮点型向整型的线性映射为例,浮点型0至1.0之间的数值a映射为0-255的8字节整型(int 8)的数值b,映射过程可以为b=255a。浮点型数据为了数据精度,会有一部分字节表示小数部分,在数值范围转换过程中,也可能存在映射值有小数的可能性,而整型数值没有小数,小数部分需要被牺牲掉,如四舍五入,或上取整、下取整等。这些小数部分的丢失,就是数据类型转换的信息损失。如a=0.0159,则b=255a=4.0545,则可以四舍五入取整数4作为量化后的整型数值,例如表示为00000100的8个字节整型数值。考虑到梯度或待定参数通常是有符号的数,因此,浮点型也可能是-0.5至0.5之间的数,此时的int 8可以定义-128至127之间的数,转换方式与前文类似,在此不再赘述。64.实际上,在发送稀疏化矩阵的情况下,可以只发送有效值,即稀疏化过程中保留的值。如对于n×m的矩阵,保留的数值包括第2行第10列的数值。为了描述保留元素的位置,针对单个元素j,不仅可以对应有数值valuej,还可以对应有索引indexj。其中,元素值valuej可以通过前文描述的映射方式进行数值类型的转换。而索引indexj通常是正数,在描述索引时,使用无符号整型数值可以节约字节数。例如,8字节的无符号整型(如uint 8)可以描述0-255之间的数值。65.在数据量较大的情况下,索引数据的行、列数较大,如果直接使用其原本的行、列数,也可能出现数值较大的情形,例如,特征数m为1万,当前批次样本数为100,则n×m的行列总数为100×10000,则列数可能需要15字节的无符号整型数值进行描述。这样所占字节数还是比较大。66.为此,根据一个可能的设计,可以先将第一稀疏张量中的各个保留元素在全部元素中的位置标识出来。假设第一中间张量稀疏化前总的元素数量为n1,则可以通过0至n1之间的数值依次标识各个元素。之后,将各个稀疏化过程中保留的元素的标识转换成两个索引坐标,用于描述元素的索引位置。67.在一个可选的实现方式中,可以定义一个第一字节数c(通常为2的倍数,如2、4、8、16等)的无符号整型数据如uint 8(即8字节的无符号整形数据)作为第一量化位数,并按照该预定字节数的无符号整型数据确定保留的元素的索引坐标。首先,该第一字节数c的无符号整型数据为0至n(如n=2c-1=255),则可以用保留元素的索引位置标识对n进行除法操作,得到的整数商和余数均可以通过0至n之间的第一字节数c的无符号整型数据表示,从而各自作为相应元素的一个索引坐标。例如,indexj1=round(indexj/n),indexj2=(indexj)mod n。其中,round表示取整(下取整),mod表示取余。68.通常,余数的取值范围在0至n之间,而商的整数部分跨度较大,例如2可以通过2个字节表示为二进制数10,14可以通过四个字节表示为二进制数1110,而32可能表示为6个字节的二进制数100000。如果使用统一的量化位数(如第一字节数8)描述,则2需要描述为00000010,而在第一字节数为8的情况下,商为2的元素数至多可以有256个。这样,仍然会造成很多字节的冗余。因此,为了进一步节约字节数,在本说明书的一个实施例中,可以根据商的大小,进一步确定第二字节数。该第二字节数可以是动态bit数,其可以是二进制下能够描述商的整数部分的最小字节数。举例而言,标识为10000的元素,按照第一字节数c=8的量化结果为10000除以(28-1)的整数部分,即39,则39可以通过6个字节的二进制数100111(此时,第二字节数为6)表示,而标识为512至102之间的元素,其标识除以(28-1)的整数部分为2或3,可以用2个字节的二进制数10或11(此时,第二字节数为2)表示。如此,根据整数部分大小定义新的字节数,可以针对各个保留元素,按照弹性字节数进行量化,从而减少字节数量冗余,有效描述稀疏化张量中的各个元素。69.对第一稀疏张量中的元素进行量化后,单个保留元素(未置0的元素)可以对应有两个索引坐标值和一个数值量化结果,共三个数值,而置0的元素不对应数值。而两个索引坐标和一个数值量化结果总共的字节数与量化前相比,也大大减少,例如量化前为32字节或64字节的浮点型数据,而量化后为8+2+8=18字节的整型数据。对第一稀疏张量量化后的数据可以称为第一稀疏数据,该第一稀疏数据仅保留有效元素的数据,且描述数据的字节数相较于量化之前大大降低。70.各个训练成员均可以按照以上方式确定相应的中间张量的稀疏数据。71.步骤304,第一成员向服务方提供第二数值类型描述的第一稀疏数据。根据联邦学习架构的不同,这里的服务方可能是可信第三方或者持有标签的训练成员方。其中,在纵向联邦学习架构下,第一成员不是持有标签数据的训练成员。72.步骤305,服务方基于对第一稀疏数据的反量化结果进行相应处理后,反馈与第一中间张量对应的第一处理张量。73.服务方对第一稀疏数据的反量化操作是恢复第一稀疏张量的操作。也就是说,基于各个元素对应的索引坐标(indexj1,indexj2)和数值量化结果(valuej),在相应位置恢复出第一数值类型(如浮点型)描述各个元素的第一稀疏张量。反量化过程是量化过程的逆过程,例如可以从0-255整型范围映射到0-1.0的浮点型范围,在此不再赘述。可以理解的是,较多字节的数据通常可以有小数等,因此反量化过程从低字节数值类型向高字节数值类型转换,信息可以无损恢复。反量化过程可以将较少字节数描述的数据映射到更多字节数描述的数据,从而提高数据处理精度。74.服务方可以继续对该第一稀疏张量在第一数值类型下进行相关数据处理。75.在横向联邦学习架构下,第一稀疏数据中指示的有效元素为待同步参数。服务方可以针对各个训练成员发送的稀疏数据恢复出各个稀疏张量,并对这些张量进行同步融合。同步融合的融合方式例如可以是取均值、取最大值、取最小值、取中位数、求加权和等等。以求均值为例,针对单个元素,服务方可以将各个稀疏张量中反馈的该单个元素的有效值相加,并除以有效值个数,得到相应均值作为该单个元素的同步值。各个元素的同步值构成同步张量,并作为全局模型的相应参数值。该同步张量与第一中间张量中的含义一致,例如均为待同步参数的梯度、变化量或更新值等。在本说明书中,该同步张量可以称为与第一中间张量一致的第一处理张量。服务方可以将该第一处理张量反馈给各个训练成员。76.在纵向联邦学习架构下,第一稀疏数据中指示的有效元素为第一局部模型对各个训练样本的处理结果(如嵌入结果)。服务方可以对各个训练成员对本地特征数据的处理结果进行融合(如拼接、加和、平均等),并利用全局模型对融合结果进行进一步处理,从而得到相应的预测结果。进一步地,根据预测结果与标签数据的比较确定整体的模型损失(包含各个局部模型和全局模型)。然后,基于模型损失,服务方一方面可以确定全局模型中各个待定参数的梯度,以更新全局模型中的待定参数,另一方面可以确定模型损失对各个中间张量的梯度。服务方可以将模型损失对各个中间张量的梯度分别提供给各个训练成员。对于第一成员而言,服务方可以将模型损失对第一中间张量的梯度提供给第一成员。由于该梯度是与第一中间张量的梯度,因此可以称为与第一中间张量对应的第一处理张量。77.如此,在横向联邦学习或纵向联邦学习架构下,服务方都可以向第一成员反馈与第一中间张量对应的第一处理张量。78.根据一个可选的实施例,服务方反馈第一处理张量的情况下,也可以结合稀疏化、量化、反量化过程进行,此时反馈的是第三稀疏化数据,即对第一处理张量进行稀疏化及量化后的数据,在此不做赘述。79.步骤306,第一成员基于第一处理张量更新第一局部模型。80.在服务方反馈的是前述的第三稀疏化数据的情况下,第一成员还可以先对第三稀疏化数据进行反量化操作,以恢复出稀疏化的第一处理张量。81.在横向联邦学习架构下,第一成员可以直接使用第一处理张量中的相应元素调整第一局部模型中的相关待定参数,从而更新第一局部模型。82.在纵向联邦学习架构下,第一成员可以根据梯度的反向传递特性,用模型损失对第一中间张量的梯度与第一中间张量对第一局部模型中各个待定参数的梯度,确定模型损失对第一局部模型中各个待定参数的梯度,从而更新第一局部模型中的各个待定参数。83.回顾以上过程,本说明书提供的技术构思,在训练成员向服务方提供相应的中间张量时,先对相应中间张量进行稀疏化处理,然后对稀疏化后的有效元素进行减少字节数的量化操作,从而以较少的数据量向服务方提供相应中间张量的稀疏化数据。服务方针对接收到的稀疏化数据,先进行反量化操作,恢复出中间张量对应的稀疏张量,并进行后续处理。之后,服务方基于后续处理将与训练成员的中间张量对应的处理张量反馈给各个训练成员,从而由各个训练成员更新本地局部模型。该方式对稀疏化后的中间张量进一步进行量化处理,大大缩减数值的字节数,从而减少通信数据量,缩短通信时间,提高模型训练效率。84.根据另一方面的实施例,还提供一种联合训练模型装置。其中,联合训练模型装置用于服务方和多个训练成员各自利用本地隐私数据联合更新模型。该装置可以分为两种,一种是设置在训练成员的装置,如图4示出的装置400,另一种是设于服务端的装置,如图5示出的装置500。两种装置相互配合完成模型的联合更新。85.具体地,图4示出了一个实施例的联合训练模型装置400,可设置与多个训练成员中的第一成员。如图4所示,该装置包括:处理单元401、稀疏化单元402、量化单元403、提供单元404、更新单元405。在当前模型更新周期:86.处理单元401,配置为基于第一局部模型对当前批次的若干条训练样本的第一特征数据进行的处理,得到第一中间张量;87.稀疏化单元402,配置为针对第一中间张量进行稀疏化,得到第一数值类型描述的第一稀疏化张量;88.量化单元403,配置为对第一稀疏化张量中保留的元素进行量化处理,得到第一稀疏数据,其中,第一稀疏数据通过第二数值类型描述相应元素,第一数值类型对应的字节数大于第二数值类型对应的字节数;89.提供单元404,配置为向服务方提供第二数值类型描述的第一稀疏数据,以供服务方基于对第一稀疏数据的反量化结果进行相应处理后,反馈与第一中间张量对应的第一处理张量;90.更新单元405,配置为基于第一处理张量更新第一局部模型。91.图5示出了一个实施例的联合训练模型装置500,可设置于服务方。如图5所示,该装置500包括接收单元501、反量化单元502、处理单元503、反馈单元504。在当前模型更新周期:92.接收单元501,配置为分别从各个训练成员接收针对相应的中间张量的稀疏张量,其中,单个中间张量基于相应局部模型对当前批次的若干条训练样本的本地特征数据进行的处理得到,单个稀疏张量经由相应训练成员针对相应单个中间张量进行稀疏化,得到第一数值类型描述的稀疏化张量,并对稀疏化张量中保留的元素进行量化处理得到,其中,稀疏数据通过第二数值类型描述相应元素,第一数值类型对应的字节数大于第二数值类型对应的字节数;93.反量化单元502,配置为对各稀疏数据进行反量化,以恢复各个中间张量;94.处理单元503,配置为对各个中间张量进行后续处理,以得到与各个中间张量分别对应的各个处理张量;95.反馈单元504,配置为向各个训练成员分别反馈相应的处理张量,以供各个训练成员基于相应的处理张量更新本地局部模型。96.值得说明的是,图4、图5所示的装置400、500分别与图3描述的方法中第一方、服务方执行的操作相对应,图3的方法实施例中的相应描述同样适用于装置400、500,在此不再赘述。97.根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行结合图3等所描述的任一方执行的方法。98.根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,存储器中存储有可执行代码,处理器执行可执行代码时,实现结合图3等所描述的任一方执行的方法。99.本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。100.以上的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部