CN114330673A - 一种对业务预测模型进行多方联合训练的方法及装置 - Google Patents
一种对业务预测模型进行多方联合训练的方法及装置 Download PDFInfo
- Publication number
- CN114330673A CN114330673A CN202210250437.5A CN202210250437A CN114330673A CN 114330673 A CN114330673 A CN 114330673A CN 202210250437 A CN202210250437 A CN 202210250437A CN 114330673 A CN114330673 A CN 114330673A
- Authority
- CN
- China
- Prior art keywords
- gradient
- output data
- model
- slice
- partial model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例提供了一种对业务预测模型进行多方联合训练的方法及装置。其中,第一设备和第二设备分别拥有完整模型中的第一部分模型和第二部分模型。第一设备利用第一输入数据确定第一部分模型的第一输出数据,并将其发送至第二设备,接着,基于第一输出数据确定用于对第一部分模型进行更新的第一梯度分片。第二设备利用第一设备发送的第一输出数据确定第二部分模型的第二输出数据。然后,第二设备基于第二输出数据和第一输出数据,确定用于对第一部分模型进行更新的第二梯度分片,并将其发送至第一设备。这样,第一设备可以利用第一梯度分片和第二梯度分片,对第一部分模型进行更新。在该过程中,多个设备并不将各自的隐私数据向外发送。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种对业务预测模型进行多方联合训练的方法及装置。
背景技术
随着人工智能技术的发展,神经网络已逐渐应用于风险评估、语音识别、人脸识别和自然语言处理等领域。不同应用场景下的神经网络结构已经相对固定,为了实现更好的模型性能,需要更多的训练数据。在医疗、金融等领域,不同的企业或机构拥有不同的数据样本,将这些样本数据进行联合训练,将极大地提升模型精度。因此,多方联合训练模型成为近年来的研究热点。在多方联合训练模型的过程中,多个参与方的设备通过相互间的数据传输,完成联合训练。在迭代训练过程中,设备之间需要进行大量的数据传输。
因此,希望能有改进的方案,在多方联合训练模型的过程中,能够综合考虑设备的算力,提高设备之间的整体处理效率。
发明内容
本说明书一个或多个实施例描述了一种对业务预测模型进行多方联合训练的方法及装置,以在多方联合训练模型的过程中,综合考虑设备的算力,提高设备之间的整体处理效率。具体的技术方案如下。
第一方面,实施例提供了一种对业务预测模型进行多方联合训练的方法,其中,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,所述方法包括:
所述第一设备,获取第一输入数据,利用所述第一输入数据确定所述第一部分模型的第一输出数据,并将其发送至所述第二设备;基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片;
所述第二设备,接收所述第一设备发送的第一输出数据,并基于所述第一输出数据确定第二输入数据,利用所述第二输入数据确定所述第二部分模型的第二输出数据;基于所述第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片,并将其发送至所述第一设备;
所述第一设备,接收所述第二设备发送的第二梯度分片,利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新。
在一种实施方式中,所述基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片的步骤,包括:
在接收所述第二设备发送的第二梯度分片之前,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片。
在一种实施方式中,所述第一部分模型包含多个计算层;所述基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片的步骤,包括:
基于第一输出数据,确定所述第一部分模型中多个计算层分别对应的第一梯度分片;
所述利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新的步骤,包括:
针对任意一个计算层,利用该计算层的第一梯度分片和所述第二梯度分片,对该计算层中的模型参数进行更新。
在一种实施方式中,所述基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片的步骤,包括:
基于所述第一输出数据对所述第一部分模型的偏导数,确定所述第一梯度分片。
在一种实施方式中,所述基于所述第一输出数据对所述第一部分模型的偏导数,确定所述第一梯度分片的步骤,包括:
获取所述第一部分模型的计算图;
利用所述计算图,确定所述第一输出数据对所述第一部分模型中多个模型参数的偏导数,基于多个偏导数确定所述第一梯度分片。
在一种实施方式中,所述利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新的步骤,包括:
基于所述第一梯度分片与所述第二梯度分片的乘积,确定针对所述第一部分模型的第一梯度;
利用所述第一梯度,对所述第一部分模型进行更新。
在一种实施方式中,所述基于所述第一梯度分片与所述第二梯度分片的乘积,确定针对所述第一部分模型的第一梯度的步骤,包括:
分别将所述第一梯度分片和所述第二梯度分片进行展平;
基于展平后的所述第一梯度分片和所述第二梯度分片的乘积,确定所述第一梯度。
在一种实施方式中,所述第二输出数据为样本的标签预测值;
所述第二设备,在确定所述第二梯度分片时,包括:
基于所述第二输出数据确定样本的预测损失;
基于所述预测损失和所述第一输出数据,确定所述第二梯度分片。
在一种实施方式中,所述业务预测模型还包括第三部分模型,并配置在第三设备中;所述方法还包括:
所述第三设备,基于本地的样本数据确定第三输入数据,利用所述第三输入数据确定所述第三部分模型的第三输出数据,并将其发送至所述第一设备;基于所述第三输出数据,确定用于对所述第三部分模型进行更新的第三梯度分片。
所述第一设备,接收所述第三设备发送的第三输出数据,并基于所述第三输出数据确定所述第一输入数据,基于所述第一输出数据和所述第三输出数据,确定用于对所述第三部分模型进行更新的第四梯度分片;
所述第三设备,基于所述第二梯度分片、所述第四梯度分片和所述第三梯度分片,对所述第三部分模型进行更新。
在一种实施方式中,该方法还包括:
所述第一设备,利用所述第二梯度分片和所述第四梯度分片确定第五梯度分片,并将所述第五梯度分片发送至所述第三设备;
所述第三设备,接收所述第一设备发送的第五梯度分片,并基于所述第五梯度分片和所述第三梯度分片,对所述第三部分模型进行更新。
第二方面,实施例提供了一种对业务预测模型进行多方联合训练的方法,其中,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,所述方法通过所述第一设备执行,包括:
获取第一输入数据,利用所述第一输入数据确定所述第一部分模型的第一输出数据;
基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片;
将所述第一输出数据发送至所述第二设备,以使所述第二设备基于第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片,并将其发送至所述第一设备;其中,所述第二输出数据基于所述第一输出数据和所述第二部分模型确定;
接收所述第二设备发送的第二梯度分片;
利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新。
第三方面,实施例提供了一种对业务预测模型进行多方联合训练的方法,其中,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,所述方法通过所述第二设备执行,包括:
接收所述第一设备发送的第一输出数据;其中,所述第一输出数据利用所述第一设备获取的第一输入数据和所述第一部分模型确定;
基于所述第一输出数据确定第二输入数据,并利用所述第二输入数据确定所述第二部分模型的第二输出数据;
基于第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片;
将所述第二梯度分片发送至所述第一设备,以使所述第一设备利用第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新;其中,所述第一梯度分片基于所述第一输出数据和所述第一部分模型确定。
第四方面,实施例提供了一种对业务预测模型进行多方联合训练的***,包括第一设备和第二设备;其中,所述第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型;
所述第一设备,用于获取第一输入数据,利用所述第一输入数据确定所述第一部分模型的第一输出数据,并将其发送至所述第二设备;基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片;
所述第二设备,用于接收所述第一设备发送的第一输出数据,并基于所述第一输出数据确定第二输入数据,利用所述第二输入数据确定所述第二部分模型的第二输出数据;基于所述第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片,并将其发送至所述第一设备;
所述第一设备,用于接收所述第二设备发送的第二梯度分片,利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新。
在一种实施方式中,所述第一设备,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片时,包括:
在接收所述第二设备发送的第二梯度分片之前,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片。
在一种实施方式中,所述第一设备,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片时,包括:
基于所述第一输出数据对所述第一部分模型的偏导数,确定所述第一梯度分片。
在一种实施方式中,***还包括第三设备;所述业务预测模型还包括第三部分模型,并配置在所述第三设备中;
所述第三设备,用于基于本地的样本数据确定第三输入数据,利用所述第三输入数据确定所述第三部分模型的第三输出数据,并将其发送至所述第一设备;基于所述第三输出数据,确定用于对所述第三部分模型进行更新的第三梯度分片。
所述第一设备,还用于接收所述第三设备发送的第三输出数据,并基于所述第三输出数据确定所述第一输入数据,基于所述第一输出数据和所述第三输出数据,确定用于对所述第三部分模型进行更新的第四梯度分片;
所述第三设备,用于基于所述第二梯度分片、所述第四梯度分片和所述第三梯度分片,对所述第三部分模型进行更新。
第五方面,实施例提供了一种对业务预测模型进行多方联合训练的装置,其中,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,所述装置部署在所述第一设备中,包括:
获取模块,配置为,获取第一输入数据,利用所述第一输入数据确定所述第一部分模型的第一输出数据;
第一确定模块,配置为,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片;
第一发送模块,配置为,将所述第一输出数据发送至所述第二设备,以使所述第二设备基于第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片,并将其发送至所述第一设备;其中,所述第二输出数据基于所述第一输出数据和所述第二部分模型确定;
第一接收模块,配置为,接收所述第二设备发送的第二梯度分片;
更新模块,配置为,利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新。
第六方面,实施例提供了一种对业务预测模型进行多方联合训练的装置,其中,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,所述装置部署在所述第二设备中,包括:
第二接收模块,配置为,接收所述第一设备发送的第一输出数据;其中,所述第一输出数据利用所述第一设备获取的第一输入数据和所述第一部分模型确定;
第二确定模块,配置为,基于所述第一输出数据确定第二输入数据,并利用所述第二输入数据确定所述第二部分模型的第二输出数据;
第三确定模块,配置为,基于所述第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片;
第二发送模块,配置为,将所述第二梯度分片发送至所述第一设备,以使所述第一设备利用第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新;其中,所述第一梯度分片基于所述第一输出数据和所述第一部分模型确定。
第七方面,实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面至第三方面中任一项所述的方法。
第八方面,实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面至第三方面中任一项所述的方法。
本说明书实施例提供的方法及装置中,在参与联合训练时,第一设备基于其拥有的部分模型的输出数据确定用于更新该部分模型的第一梯度分片,并将该输出数据发送至第二设备。第二设备利用该输出数据继续进行模型预测,并基于该输出数据和第一设备发送的输出数据确定第二梯度分片,第一设备利用这两个梯度分片对本地的部分模型进行更新。在对模型更新的过程中,第二设备能够分担第一设备的部分处理任务,使得第一设备能够更快速地更新模型。因此,本说明书实施例能够综合考虑设备的算力,提高设备之间的整体处理效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2为实施例提供的一种对业务预测模型进行多方联合训练的方法的流程示意图;
图3为实施例提供的一种多方联合训练方法的应用场景示意图;
图4为实施例提供的另一种对业务预测模型进行多方联合训练的方法的流程示意图;
图5为实施例提供的又一种对业务预测模型进行多方联合训练的方法的流程示意图;
图6为实施例提供的一种对业务预测模型进行多方联合训练的***的示意性框图;
图7为实施例提供的一种对业务预测模型进行多方联合训练的装置的示意性框图;
图8为实施例提供的一种对业务预测模型进行多方联合训练的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。其中,A设备和B设备联合训练模型,A设备拥有部分模型1,B设备拥有部分模型2,部分模型1和部分模型2是完整模型中的一部分。图1中黑色箭头所在的流程代表模型训练的前向计算阶段。在该阶段中,A设备将数据a输入部分模型1,部分模型1输出数据b,A设备将数据b向B设备发送。B设备利用数据b得到数据c,并将数据c输入部分模型2,部分模型2输出数据d。图1中的空心箭头所在的流程代表后向计算阶段。在该阶段中,B设备确定梯度分片2,并将梯度分片2向A设备发送。A设备接收到梯度分片2之后,利用该梯度分片2和自身计算的梯度分片1更新部分模型1。
当B设备具有样本标签,数据d是预测标签值时,B设备可以基于样本标签和预测标签值确定预测损失,并利用预测损失确定梯度分片2。B设备还利用预测损失更新部分模型2。
上述模型训练过程可以划分为前向计算阶段和后向计算阶段。在前向计算阶段,设备利用样本和业务预测模型,确定样本的预测结果,并利用预测结果与样本标签的差异确定预测损失。在后向计算阶段,设备利用预测损失对业务预测模型进行更新。
上述的联合训练也可以称为拆分学习,也就是将整个模型的学习过程进行拆分,由不同的设备承担部分模型学习的计算任务。上述模型是业务预测模型,用于对对象进行业务预测,其可以采用深度神经网络(Deep Neural Networks,DNN)、卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Network,RNN)或图神经网络(Graph Neural Networks,GNN)等实现。
A设备和B设备可以分别是不同参与方的设备,其中,A设备可以是任意一个样本拥有方设备,也可以是服务器,B设备可以是服务器或者标签拥有方设备。具体的,上述多方联合训练可以应用在不同的网络架构中。例如,可以应用在由服务器和两个或两个以上的样本拥有方设备构成的客户端-服务器架构中,也可以应用在由两个或两个以上的样本拥有方设备构成的对等网络架构中。
样本拥有方可以对应于不同的服务平台,不同的服务平台利用其计算机设备与其他设备进行数据传输。服务平台可以是银行、医院、体检机构或其他机构或组织。因此,不同的样本拥有方,可以拥有相同样本的不同属性的特征值,这属于样本数据分布的垂直场景。样本拥有方中的样本数据可以是对象的业务数据。例如,对象可以但不限于是用户、商品、交易、事件中的一种。对象的业务数据可以包括对象特征数据,例如可以但不限于包括以下特征组中的至少一个:对象的基本属性特征、对象的历史行为特征、对象的关联关系特征、对象的交互特征、对象的身体指标。每个样本拥有方的样本数据(或者说业务数据)都是其隐私数据,不能明文向外部发送。多个样本拥有方可以通过各自拥有的设备对业务预测模型进行联合训练,从而达到既***露隐私数据,又实现联合模型训练的目的。多个样本拥有方的样本数据构成整个样本空间。
在样本数据分布的垂直场景中,可以将完整的业务预测模型拆分成若干个部分模型,分别由不同的参与方设备利用其拥有的样本数据负责某个部分模型的训练。本说明书实施例可以应用在不同的网络架构中,参与方设备可以包括若干个样本拥有方设备,也可以包括服务器,服务器中没有样本数据。在模型训练的多次迭代过程中,参与方设备通过相互之间的数据传输,能够实现对业务预测模型的联合训练。
在多方联合训练中,部分参与方设备的计算能力有限,这使得联合训练过程的整体计算效率并不高。为了提高设备之间的整体处理效率,本说明书实施例提供了一种对业务预测模型进行多方联合训练的方法。为了方便描述,先脱离具体的应用场景和网络架构,仅以进行多方联合训练的多个设备中的第一设备和第二设备为例,说明实施例的核心发明方案。在该方法中,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,在步骤S210中,第一设备获取第一输入数据,利用第一输入数据确定第一部分模型的第一输出数据,并将其发送至所述第二设备。在步骤S220中,第一设备基于第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片。在步骤S230中,第二设备,接收第一设备发送的第一输出数据,并基于第一输出数据确定第二输入数据,利用所述第二输入数据确定所述第二部分模型的第二输出数据;基于第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片,并将其发送至所述第一设备。在步骤S240中,第一设备接收所述第二设备发送的第二梯度分片,利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新。下面结合流程示意图对实施例进行具体说明。
图2为实施例提供的一种对业务预测模型进行多方联合训练的方法的流程示意图。下面的描述中,将结合图1对本实施例进行说明,并采用A设备代表第一设备,采用B设备代表第二设备。其中,业务预测模型至少通过A设备和B设备进行联合训练。A设备和B设备分别拥有业务预测模型中的第一部分模型(采用NN1表示,即部分模型1)和第二部分模型(采用NN2表示,即部分模型2)。业务预测模型可以包含多个计算层,第一部分模型NN1可以是业务预测模型中连续的若干个计算层,第二部分模型NN2可以是业务预测模型中连续的若干个计算层。第一部分模型NN1和第二部分模型NN2彼此之间可以是连续的,即第一部分模型NN1的输出可以作为第二部分模型NN2的输入,第一部分模型NN1位于第二部分模型NN2之前。例如,业务预测模型包含100个计算层,第一部分模型NN1可以是前50个计算层,第二部分模型可以是后50个计算层。第一部分模型NN1和第二部分模型NN2彼此之间也可以不连续,即其中间可以存在其他计算层。
在联合训练的初始,管理设备可以根据A设备和B设备对应的参与方拥有的样本数据的属性,或者设备需要执行的操作,从业务预测模型中拆分出第一部分模型NN1和第二部分模型NN2,并将其分别下发至A设备和B设备。
例如,当A设备是样本拥有方设备时,管理设备可以根据A设备拥有的样本数据包含的属性,确定对应的计算层以及计算层中的神经元,得到第一部分模型NN1。该第一部分模型NN1用于提取样本的部分或全部特征数据。
又如,当A设备是服务器时,管理设备可以根据需要从业务预测模型中确定中间部分的多个计算层,作为服务器中的第一部分模型NN1。该第一部分模型NN1用于继续提取样本的部分或全部特征数据,服务器用于执行该中间部分的多个计算层的计算处理。
又如,当B设备是标签拥有方设备时,管理设备可以将业务预测模型中的最后若干个计算层作为第二部分模型NN2,第二部分模型NN2用于基于从样本中提取的特征数据确定针对样本的预测结果。
A设备和B设备,可以通过任何具有计算、处理能力的装置、设备、平台、设备集群等来实现。本方法包括以下步骤S210~S240。
步骤S210,A设备获取第一输入数据a,利用第一输入数据a确定第一部分模型NN1的第一输出数据b,并将第一输出数据b发送至B设备,B设备接收A设备发送的第一输出数据b。
A设备在获取第一输入数据a时,可以采用多种实施方式。例如,A设备可以是样本拥有方设备,第一输入数据a可以是A设备拥有的样本数据集中的样本,可以是一个样本或多个样本。第一输入数据a也可以是A设备从其他设备中获取的数据。
A设备可以将第一输入数据a输入第一部分模型NN1,并通过第一部分模型NN1确定第一输出数据b。A设备也可以对第一输入数据a进行预处理,并将预处理后的第一输入数据a输入第一部分模型NN1。
在发送第一输出数据b时,A设备可以对第一输出数据b进行加密,并将加密后的第一输出数据b发送至B设备,以保护第一输出数据b的数据安全。A设备也可以通过隐私保护的方式将第一输出数据b发送至B设备,以保护第一输出数据b的隐私安全。
步骤S220,A设备基于第一输出数据b,确定用于对第一部分模型NN1进行更新的第一梯度分片1。
当第一部分模型NN1中包含一个计算层时,A设备可以基于第一输出数据b,确定第一部分模型NN1中该计算层对应的第一梯度分片1;当第一部分模型NN1中包含多个计算层时,A设备可以基于第一输出数据b,确定第一部分模型NN1中多个计算层分别对应的第一梯度分片1。也就是,每个计算层分别对应一个第一梯度分片1。
当第一部分模型NN1中包含一个或多个计算层时,针对每个计算层,可以基于第一输出数据b对该计算层的偏导数,确定该计算层的第一梯度分片1。由于多个计算层之间存在数据的输入输出关系,在确定多个计算层的第一梯度分片1时,可以按照从后往前的计算层顺序确定计算层的第一梯度分片1。该从后往前的顺序,是指与前向计算阶段数据传输相反的方向。
在一种实施方式中,可以利用第一部分模型NN1的计算图确定第一梯度分片1。例如,A设备可以先获取第一部分模型NN1的计算图,然后利用该计算图,确定第一输出数据b对第一部分模型NN1中多个模型参数的偏导数,基于多个偏导数确定第一梯度分片1。其中,该计算图包含了第一部分模型NN1中的多个计算层,以及不同计算层的神经元之间的数据输入输出关系。
在具体实施时,可以针对任意一个计算层中的任意一个模型参数,利用计算图中从第一输出数据b到该模型参数的路线,确定该模型参数的偏导数。当采用该方式确定该计算层中所有模型参数的偏导数之后,将所有模型参数的偏导数构建成矩阵,得到该计算层的矩阵形式的第一梯度分片1。
步骤S230,B设备基于第一输出数据b确定第二输入数据c,利用第二输入数据c确定第二部分模型NN2的第二输出数据d。接着,B设备基于第二输出数据d和第一输出数据b,确定用于对第一部分模型NN1进行更新的第二梯度分片2,并将第二梯度分片2发送至A设备。A设备接收B设备发送的第二梯度分片2。
具体的,B设备可以直接将第一输出数据b确定为第二输入数据c,也可以对第一输出数据b进行预定变换,得到第二输入数据c。
B设备可以将第二输入数据c输入第二部分模型NN2,并通过第二部分模型NN2确定第二输出数据d。B设备也可以对第二输入数据c进行预处理,并将预处理后的第二输入数据c输入第二部分模型NN2。
当B设备为标签拥有方设备时,第二输出数据d可以理解为样本的预测标签值(即预测结果),是样本经过第一部分模型NN1和第二部分模型NN2的处理之后得到的预测数据。
B设备可以利用第二输出数据d确定样本的预测损失L,并基于预测损失L和第一输出数据b,确定第二梯度分片2。具体的,可以利用第二输出数据d与样本标签之间的差异,确定样本的预测损失L。在确定样本的预测损失L时,可以采用常用的损失函数进行确定。从将样本输入业务预测模型开始,到得到样本的预测结果,并确定样本的预测损失L,该过程可以认为是前向计算阶段的处理过程。接下来,B设备可以继续进行后向计算阶段。
B设备可以基于预测损失L确定用于更新第二部分模型NN2的梯度数据,并利用该梯度数据更新第二部分模型NN2,也就是更新第二部分模型NN2的模型参数。其中,第二部分模型NN2可以包含多个计算层,利用上述梯度数据对多个计算层中的模型参数进行更新,可以采用常规方式进行,具体方式不再详述。
为了使得A设备能更新其第一部分模型NN1,B设备还基于预测损失L和第一输出数据b,确定第二梯度分片2,并将第二梯度分片2发送至A设备,使得A设备能够更新模型。
B设备在确定第二梯度分片2时,可以基于预测损失L对第一输出数据b的偏导数,确定第二梯度分片2。具体的,可以获取第二部分模型NN2的计算图,利用该计算图确定预测损失L对第一输出数据b的偏导数,得到第二梯度分片2。其中,L可以是一个数值,第一输出数据b可以是数值矩阵。
步骤S240,A设备利用第一梯度分片1和第二梯度分片2,对第一部分模型NN1进行更新。在更新第一部分模型NN1时需要使用完整梯度,第一梯度分片1和第二梯度分片2用于确定该完整梯度。A设备可以基于第一梯度分片1与第二梯度分片2的乘积,确定针对第一部分模型NN1的第一梯度G1,利用第一梯度G1对第一部分模型NN1进行更新。该第一梯度G1是用于对第一部分模型NN1进行更新的完整梯度。
当第一部分模型NN1包含多个计算层时,A设备可以针对任意一个计算层,利用该计算层的第一梯度分片1和第二梯度分片2,对该计算层中的模型参数进行更新。
具体的,针对任意一个计算层,可以基于其对应的第一梯度分片1与第二梯度分片2的乘积,确定针对该计算层的第一梯度G1。接着,A设备可以利用该计算层的第一梯度G1更新该计算层。针对多个计算层,可以按照从后向前的顺序依次更新每个计算层的模型参数。
第一梯度分片1可以是利用第一输出数据b对第一部分模型NN1中的计算层的偏导数得到的雅可比矩阵(Jacobian矩阵),第二梯度分片2可以是利用预测损失对第一输出数据b的偏导数得到的雅克比矩阵。当第一部分模型NN1中的计算层采用二维矩阵表示,第一输出数据b也采用二维矩阵表示时,该计算层的第一梯度分片1可以采用四维矩阵表示。
在计算第一梯度分片1与第二梯度分片2的乘积时,为了使得第一梯度分片1与第二梯度分片2中的指定维度进行矩阵乘法,可以分别将第一梯度分片1和第二梯度分片2采用预设方式进行展平,基于展平后的第一梯度分片1和第二梯度分片2的乘积,得到第一梯度G1。
上述步骤S210~S240可以理解为一次模型迭代过程,在业务预测模型训练过程中,该模型迭代过程可以执行多次,直至模型达到收敛条件。其中,收敛条件可以包括预测损失小于预设值,或者模型迭代次数达到预设次数等。在一次模型迭代过程中,从步骤S210至S230中确定预测损失的这部分步骤,可以是针对一批样本执行的步骤,也可以是针对一个样本执行的步骤。
在本实施例中,B设备在得到预测损失之后可以基于预测损失和第一输出数据确定第二梯度分片,从而分担了A设备的一部分计算量。在B设备具有较高算力的情况下,B设备能够分担A设备的部分计算量,从而使得A设备能够较快完成后向计算阶段的模型更新,提高模型训练过程的整体效率。
下面再回到上述步骤S210至步骤S230。
在步骤S210中,A设备在确定第一输出数据b之后,将其向后传输(向模型的其他计算层传输),在未得到后面的计算层反馈的本次模型迭代的预测损失时,无法执行更新模型的操作。于是就处于等待中,等待B设备向A设备反馈预测损失等数据。
为了进一步提高整体的数据处理效率,本实施例中A设备还可以充分利用该等待时间,在该等待时间中确定第一梯度分片1,即执行步骤S220。也就是,A设备可以在接收B设备发送的第二梯度分片2(步骤S230中)之前,执行基于第一输出数据b确定第一梯度分片1的步骤,从而充分利用A设备的等待时间。在A设备接收到B设备反馈的第二梯度分片2之后,能够利用第一梯度分片1和第二梯度分片2更加快速地实现对第一部分模型NN1的模型更新,进而提高A设备和B设备之间整体的处理效率。
下面结合客户端-服务器架构的应用场景,对本说明书实施例进行说明。
图3为实施例提供的一种多方联合训练方法的应用场景示意图。在该应用场景中,A设备可以由服务器实现,B设备由标签拥有方设备实现。该应用场景中还可以包括第三设备(即C设备),C设备是样本拥有方设备,C设备中配置有业务预测模型的第三部分模型NN3。C设备的数量可以有多个(图3中仅画出一个C设备作为示例),每个C设备对应一个样本拥有方,不同的C设备拥有不同的样本数据。具体的,不同的C设备可以拥有N个样本的不同属性的特征值。
在实际应用场景中,样本拥有方设备的算力较低,无法实现复杂的模型计算,而服务器可以拥有较高的配置,能够承担较强的计算任务。因此,可以将业务预测模型进行拆分,使得样本拥有方设备分得业务预测模型的前若干层,标签拥有方设备分得业务预测模型的最后若干层,服务器分得业务预测模型的中间若干层。服务器通常可以分得业务预测模型中间的大部分计算层,以服务器的较强算力承担大部分模型计算任务。
如此,业务预测模型被划分为三部分,C设备(样本拥有方)拥有的第三部分模型NN3,A设备(服务器)拥有的第一部分模型NN1,B设备(标签拥有方)拥有的第二部分模型NN2。样本数据按照从第三部分模型NN3到第一部分模型NN1,再到第二部分模型NN2的顺序,依次输入各部分模型,完成模型训练的前向计算阶段。
在前向计算阶段,C设备基于本地的样本数据确定第三输入数据e,利用第三输入数据e确定第三部分模型NN3的第三输出数据f,并将第三输出数据f发送至A设备。接着,C设备还可以基于第三输出数据f,确定用于对第三部分模型NN3进行更新的第三梯度分片3。
A设备接收C设备发送的第三输出数据f,并基于第三输出数据f确定第一输入数据a,接着执行步骤S210中利用第一输入数据a确定第一部分模型NN1的第一输出数据b的步骤,并将第一输出数据b发送至B设备。同时,A设备不仅执行步骤S220,即基于第一输出数据b确定第一梯度分片1,还基于第一输出数据b和第三输出数据f确定用于对第三部分模型NN3进行更新的第四梯度分片4。
B设备接收A设备发送的第一输出数据b,并执行步骤S230,也就是,基于第一输出数据b确定第二输入数据c,利用第二输入数据c确定第二部分模型的第二输出数据d,利用第二输出数据d确定样本的预测损失L,基于预测损失L和第一输出数据b确定第二梯度分片2。在本实施场景中,业务预测模型被划分为三部分,基于预测损失和第一输出数据b确定的第二梯度分片2,是用于对第一部分模型NN1和第三部分模型NN3进行更新的梯度分片。
在后向计算阶段,B设备利用预测损失L更新自身的第二部分模型NN2,同时还将第二梯度分片2发送至A设备,使得A设备利用第二梯度分片2对A设备自身的模型进行更新。
A设备接收B设备发送的第二梯度分片2,并执行步骤S240,也就是利用第一梯度分片1和第二梯度分片2对自身的第一部分模型NN1进行更新。
C设备可以基于第二梯度分片2、第四梯度分片4和第三梯度分片3,对第三部分模型NN3进行更新。第二梯度分片2、第四梯度分片4和第三梯度分片3用于确定用来更新第三部分模型NN3的完整梯度。C设备对第三部分模型进行更新时,可以包含多种实施方式。
在一种实施方式中,A设备利用第二梯度分片2和第四梯度分片4确定第五梯度分片5,并将第五梯度分片5发送至C设备;
C设备接收A设备发送的第五梯度分片5,并基于第五梯度分片5和第三梯度分片3,对第三部分模型NN3进行更新。
在本实施方式中,A设备作为服务器一方,承担了利用第二梯度分片2和第四梯度分片4确定第五梯度分片5的计算任务,分担了C设备的部分计算任务,能够减轻C设备的计算负荷。
在另一种实施方式中,A设备将第四梯度分片4发送至C设备,B设备将第二梯度分片2发送至C设备。
C设备接收A设备发送的第四梯度分片4,接收B设备发送的第二梯度分片2。接着,C设备利用第二梯度分片2和第四梯度分片4确定第五梯度分片5,并基于第五梯度分片5和第三梯度分片3对第三部分模型NN3进行更新。
下面说明上述实施场景中多个步骤的具体实施方式。
C设备在基于本地的样本数据确定第三输入数据e时,可以直接从本地的样本集中获取样本数据,将该样本数据作为第三输入数据e,也可以对样本数据进行预处理,将预处理后的数据作为第三输入数据e。
C设备利用第三输入数据e确定第三部分模型NN3的第三输出数据f时,将第三输入数据e输入第三部分模型NN3中,通过第三部分模型NN3确定第三输出数据f。其中,第三输出数据f是第三部分模型NN3从第三输入数据e(也就是样本)中提取的更深层的样本特征,第三输出数据f属于业务预测模型的隐层输出。
C设备可以采用加密的方式和/或隐私保护的方式,将第三输出数据f发送至A设备。
C设备基于第三输出数据f确定用于对第三部分模型NN3进行更新的第三梯度分片3时,可以采用与步骤S220类似的方式进行。具体的,当第三部分模型NN3中包含一个计算层时,C设备可以基于第三输出数据f确定第三部分模型NN3中该计算层对应的第三梯度分片3。当第三部分模型NN3中包含多个计算层时,C设备可以基于第三输出数据f确定第三部分模型NN3中多个计算层分别对应的第三梯度分片3。也就是,每个计算层分别对应一个第三梯度分片3。
当第三部分模型NN3中包含一个或多个计算层时,针对每个计算层,可以基于第三输出数据f对该计算层的偏导数,确定该计算层的第三梯度分片3。由于多个计算层之间存在数据的输入输出关系,在确定多个计算层的第三梯度分片3时,可以按照从后往前的计算层顺序确定计算层的第三梯度分片3。该从后往前的顺序,是指与前向计算阶段数据传输相反的方向。
在一种实施方式中,可以利用第三部分模型NN3的计算图确定第三梯度分片3。例如,C设备可以先获取第三部分模型NN3的计算图,然后利用该计算图,确定第三输出数据f对第三部分模型NN3中多个模型参数的偏导数,基于多个偏导数确定第三梯度分片3。其中,该计算图包含了第三部分模型NN3中的多个计算层,以及不同计算层的神经元之间的数据输入输出关系。
在具体实施时,可以针对任意一个计算层中的任意一个模型参数,利用计算图中从第三输出数据f到该模型参数的路线,确定该模型参数的偏导数。当采用该方式确定该计算层中所有模型参数的偏导数之后,将所有模型参数的偏导数构建成矩阵,得到该计算层的矩阵形式的第三梯度分片3。
C设备的数量通常为2个或2个以上,也就是样本拥有方的数量为2个或2个以上时,每一个C设备(样本拥有方设备)均可以执行以上操作。这样,多个C设备均会向A设备发送自身的第三输出数据f。A设备可以接收多个C设备分别发送的第三输出数据f。
A设备可以对多个第三输出数据f进行聚合,将聚合后的数据作为第一输入数据a。其中,聚合操作可以包括求均值、求和或合并。合并,是指将多个第三输出数据f拼接成一个矩阵。
当C设备的数量为多个时,A设备可以分别针对不同的C设备的第三部分模型NN3,确定对应的第四梯度分片4,也就是基于第一输出数据b分别与多个第三输出数据f的结合,确定对应的第四梯度分片4,得到多个第四梯度分片4。在确定任意一个C设备的第四梯度分片4时,可以基于第一输出数据b对该C设备的第三输出数据f的偏导数,确定该C设备的第四梯度分片4。具体的,可以利用第一部分模型NN1的计算图,确定第一输出数据b对第三输出数据f的偏导数,得到第四梯度分片4。
A设备在确定第五梯度分片5时,可以针对任意一个C设备,利用第二梯度分片2与该C设备对应的第四梯度分片4,确定该C设备的第五梯度分片5,将该第五梯度分片5发送至对应的C设备。
在确定第五梯度分片5时,可以利用第二梯度分片2与第四梯度分片4的乘积得到。
第四梯度分片4是利用第一输出数据b对第三输出数据f的偏导数得到的雅克比矩阵,第二梯度分片2是利用预测损失对第一输出数据b的偏导数得到的雅克比矩阵。为了使得第二梯度分片2与第四梯度分片4中的指定维度进行矩阵乘法,可以分别将第二梯度分片2与第四梯度分片4采用预设方式进行展平,基于展平后的第二梯度分片2与第四梯度分片4的乘积,得到第五梯度分片5。
C设备可以基于第五梯度分片5和第三梯度分片3的乘积,对第三部分模型NN3进行更新。针对第三部分模型NN3中的每一个计算层,存在与之对应的第三梯度分片3。针对任意一个计算层,C设备可以基于第五梯度分片和该计算层的第三梯度分片3的乘积,确定该计算层的第二梯度G2,利用该第二梯度G2对该计算层进行更新。针对多个计算层,可以按照从后向前的顺序依次更新第三部分模型NN3中每个计算层的模型参数。
下面结合具体的例子,对图3所示实施例进行说明。
m个训练设备各自拥有样本数据,m为大于1的整数。m个训练设备(即第三设备)对各自的样本数据进行PSI(Private Set Intersection,隐私保护集合交集)处理,得到每个训练设备的样本空间Xi,其中i=1,2,…,m。标签数据集在训练设备k中,为yk。
步骤1,模型分发与初始化。业务预测模型为DNN模型W,服务器充当管理设备的角色,初始化模型W,并依次将模型W拆分为训练设备i的模型Wi(即第三部分模型)、服务器的模型Ws(即第一部分模型)和训练设备k的模型Wk(即第二部分模型),并将模型Wi下发至各个训练设备i,将模型Wk下发至训练设备k。
步骤2,训练设备前向传播。在第j次模型迭代过程中(j=0,1,2,…,N,N为整数),训练设备i分别读取各自Xi中一批相同的样本(即第三输入数据),样本量为ni,分别进行模型Wi的前向传播,得到输出层结果Li(Li即第三输出数据)。训练设备i将Li传输至服务器。
训练设备i利用模型Wi的计算图,计算得到Li对Wi中每一计算层Wi,l 的偏导数雅克比矩阵Ji,l ,Ji,l 即是第三梯度分片。
步骤3,服务器前向传播。服务器接收到多个训练设备i发送的Li,对多个Li进行聚合,得到模型Ws的输入层数据Lin(即为第一输入数据)。
服务器利用Lin进行模型Ws的前向传播,得到输出层结果Lout(即为第一输出数据),服务器将Lout发送至训练设备k。
服务器利用模型Ws的计算图,计算得到Lout对模型Ws中每一层模型Ws,l 的偏导数雅克比矩阵Js,l (即为第一梯度分片),以及利用模型Ws的计算图计算得到Lout对Li的偏导数雅克比矩阵Js,i(即为第四梯度分片)。
步骤4,损失函数计算。训练成员k接收服务器发送的Lout,并基于Lout(此处为第二输入数据)继续进行模型Wk的前向传播,得到标签预测值(即为第二输出数据)。训练成员k结合标签预测值和标签真实值yk得到损失函数值Loss(即预测损失),并利用模型Wk的计算图进行反向传播,更新模型Wk;
训练成员k利用Wk的计算图,计算得到Loss关于的Lout的偏导数雅克比矩阵Jk(即第二梯度分片),并将Jk发送至服务器。
步骤5,反向传播。服务器接收训练成员k发送的Jk,并将Jk和Js,l 中对应维度进行展平(Flatten),接着将展平后的矩阵进行矩阵乘法,得到模型Ws的梯度Gs,进而利用公式Ws=Ws-αGs进行模型更新,其中,α为预设参数。
例如,假设Lout的矩阵维度是10*20,Ws,l 的矩阵维度是5*4,Jk的矩阵维度是10*20,Js,l 是基于Lout和Ws,l 求得的四维矩阵,其维度是10*20*5*4。在展平时,可以将Jk按照行与行连接,展平成1*200维的向量,将Js,l 展平成200*1*5*4。在将展平后的Jk与Js,l 相乘,得到的梯度Gs是5*4维矩阵。
服务器将Jk和Js,i中对应维度进行展平和矩阵乘法,得到Loss关于Li的雅克比矩阵Ji(即第五梯度分片),并将Ji发送至对应的训练设备i。
训练设备i将Ji和Ji,l 中对应维度进行展平和矩阵乘法,得到训练设备i的模型Wi的梯度Gi,进而可以根据公式Wi= Wi-αGi更新模型。
多次重复上述步骤2~5,直至业务预测模型收敛,则完成模型训练。
上述图3所示仅仅是本说明书的一种实施场景。在另一种应用场景中,A设备可以是样本拥有方设备,B设备可以是服务器,B设备可以将第二输出数据d向后传播,即发送至标签拥有方设备。标签拥有方设备基于拥有的模型和第二输出数据d确定样本的预测标签值,并基于样本标签和预测标签值确定预测损失,基于预测损失和第二输出数据d确定用于对第一部分模型和第二部分模型进行更新的梯度分片,将其发送至B设备。B设备基于标签拥有方设备发送的梯度分片,对自身的第二部分模型进行更新。A设备基于标签拥有方确定的梯度分片、B设备确定的第二梯度分片和自身确定的第一梯度分片对第一部分模型进行更新。
本说明书实施例还可以应用于对等网络场景,例如,A设备和B设备都是样本拥有方设备。设备之间的数据传输可以参见图2所示实施例,此处不再赘述。
上述图2均是从多个设备的角度对多方联合训练方法的说明。下面的图4和图5则分别以第一设备和第二设备为执行主体,对方法流程进行的说明。具体的实施方式可以参见图2所示实施例的描述,此处不再赘述。
图4为实施例提供的另一种对业务预测模型进行多方联合训练的方法的流程示意图。其中,业务预测模型至少通过第一设备和第二设备进行联合训练。第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型。本方法通过第一设备执行,包括以下步骤S410~S450。
步骤S410,获取第一输入数据,利用第一输入数据确定第一部分模型的第一输出数据。
步骤S420,基于第一输出数据,确定用于对第一部分模型进行更新的第一梯度分片。
步骤S430,将第一输出数据发送至第二设备,以使第二设备基于第二输出数据和第一输出数据,确定用于对第一部分模型进行更新的第二梯度分片,并将其发送至第一设备。其中,第二输出数据基于第一输出数据和第二部分模型确定。
步骤S440,接收第二设备发送的第二梯度分片。
步骤S450,利用第一梯度分片和第二梯度分片,对第一部分模型进行更新。
图5为实施例提供的又一种对业务预测模型进行多方联合训练的方法的流程示意图。其中,业务预测模型至少通过第一设备和第二设备进行联合训练。第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型。本方法通过第二设备执行,包括步骤S510~S540。
步骤S510,接收第一设备发送的第一输出数据。其中,所述第一输出数据利用所述第一设备获取的第一输入数据和所述第一部分模型确定。
步骤S520,基于第一输出数据确定第二输入数据,并利用第二输入数据确定第二部分模型的第二输出数据。
步骤S530,基于第二输出数据和第一输出数据,确定用于对第一部分模型进行更新的第二梯度分片。
步骤S540,将第二梯度分片发送至第一设备,以使第一设备利用第一梯度分片和第二梯度分片,对第一部分模型进行更新。其中,第一梯度分片基于第一输出数据和第一部分模型确定。
本说明书中,第一设备、第一部分模型、第一梯度分片、第一输出数据、第一输入数据和第一梯度等词语中的“第一”,以及文中对应的“第二”“第三”,仅仅是为了区分和描述方便而对不同参量添加的标识,并不具有例如执行顺序、先后等任何限定意义。
上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
图6为实施例提供的一种对业务预测模型进行多方联合训练的***的示意性框图。该***600至少包括第一设备610和第二设备620。其中,业务预测模型至少通过第一设备610和第二设备620进行联合训练,第一设备610和第二设备620分别拥有业务预测模型中的第一部分模型和第二部分模型。本***实施例与图2所示方法实施例相对应。
其中,第一设备610,用于获取第一输入数据,利用所述第一输入数据确定所述第一部分模型的第一输出数据,并将其发送至所述第二设备620;基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片;
所述第二设备620,用于接收所述第一设备610发送的第一输出数据,并基于所述第一输出数据确定第二输入数据,利用所述第二输入数据确定所述第二部分模型的第二输出数据;基于所述第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片,并将其发送至所述第一设备610;
所述第一设备610,用于接收所述第二设备620发送的第二梯度分片,利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新。
在一种实施方式中,所述第一设备610,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片时,包括:
在接收所述第二设备620发送的第二梯度分片之前,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片。
在一种实施方式中,所述第一部分模型包含多个计算层;所述第一设备610,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片时,包括:
基于所述第一输出数据,确定所述第一部分模型中多个计算层分别对应的第一梯度分片;
所述第一设备610,利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新时,包括:
针对任意一个计算层,利用该计算层的第一梯度分片和所述第二梯度分片,对该计算层中的模型参数进行更新。
在一种实施方式中,所述第一设备610,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片时,包括:
基于所述第一输出数据对所述第一部分模型的偏导数,确定所述第一梯度分片。
在一种实施方式中,所述第一设备610,基于所述第一输出数据对所述第一部分模型的偏导数,确定所述第一梯度分片时,包括:
获取所述第一部分模型的计算图;
利用所述计算图,确定所述第一输出数据对所述第一部分模型中多个模型参数的偏导数,基于多个偏导数确定所述第一梯度分片。
在一种实施方式中,第二设备620,基于所述预测损失和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片时,包括:
基于所述预测损失对所述第一输出数据的偏导数,确定用于对所述第一部分模型进行更新的第二梯度分片。
在一种实施方式中,所述第一设备610,利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新时,包括:
基于所述第一梯度分片与所述第二梯度分片的乘积,确定针对所述第一部分模型的第一梯度;
利用所述第一梯度,对所述第一部分模型进行更新。
在一种实施方式中,所述第一设备610,基于所述第一梯度分片与所述第二梯度分片的乘积,确定针对所述第一部分模型的第一梯度时,包括:
分别将所述第一梯度分片和所述第二梯度分片进行展平;
基于展平后的所述第一梯度分片和所述第二梯度分片的乘积,确定所述第一梯度。
在一种实施方式中,所述第二输出数据为样本的标签预测值;
所述第二设备620,在确定所述第二梯度分片时,包括:
基于所述第二输出数据确定样本的预测损失;
基于所述预测损失和所述第一输出数据,确定所述第二梯度分片。
在一种实施方式中,***600还包括第三设备630;所述业务预测模型还包括第三部分模型,并配置在所述第三设备630中;
所述第三设备630,用于基于本地的样本数据确定第三输入数据,利用所述第三输入数据确定所述第三部分模型的第三输出数据,并将其发送至所述第一设备610;基于所述第三输出数据,确定用于对所述第三部分模型进行更新的第三梯度分片。
所述第一设备610,还用于接收所述第三设备630发送的第三输出数据,并基于所述第三输出数据确定所述第一输入数据,基于所述第一输出数据和所述第三输出数据,确定用于对所述第三部分模型进行更新的第四梯度分片;
所述第三设备630,用于基于所述第二梯度分片、所述第四梯度分片和所述第三梯度分片,对所述第三部分模型进行更新。
在一种实施方式中,所述第一设备610,还用于利用所述第二梯度分片和所述第四梯度分片确定第五梯度分片,并将所述第五梯度分片发送至所述第三设备630;
所述第三设备630,还用于接收所述第一设备610发送的第五梯度分片,并基于所述第五梯度分片和所述第三梯度分片,对所述第三部分模型进行更新。
图7为实施例提供的一种对业务预测模型进行多方联合训练的装置的示意性框图。其中,业务预测模型至少通过第一设备和第二设备进行联合训练,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,本装置700部署在第一设备中,本装置实施例与图2所示方法实施例中通过A设备执行的方法相对应。该装置700包括:
获取模块710,配置为,获取第一输入数据,利用所述第一输入数据确定所述第一部分模型的第一输出数据;
第一确定模块720,配置为,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片;
第一发送模块730,配置为,将所述第一输出数据发送至所述第二设备,以使所述第二设备基于第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片,并将其发送至所述第一设备;其中,所述第二输出数据基于所述第一输出数据和所述第二部分模型确定;
第一接收模块740,配置为,接收所述第二设备发送的第二梯度分片;
更新模块750,配置为,利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新。
在一种实施方式中,第一确定模块720,具体配置为:
在接收所述第二设备发送的第二梯度分片之前,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片。
在一种实施方式中,所述第一部分模型包含多个计算层;第一确定模块720具体配置为,基于所述第一输出数据,确定所述第一部分模型中多个计算层分别对应的第一梯度分片;
更新模块750具体配置为:
针对任意一个计算层,利用该计算层的第一梯度分片和所述第二梯度分片,对该计算层中的模型参数进行更新。
在一种实施方式中,第一确定模块720具体配置为:
基于所述第一输出数据对所述第一部分模型的偏导数,确定所述第一梯度分片。
在一种实施方式中,第一确定模块720具体配置为:
获取所述第一部分模型的计算图;
利用所述计算图,确定所述第一输出数据对所述第一部分模型中多个模型参数的偏导数,基于多个偏导数确定所述第一梯度分片。
在一种实施方式中,更新模块750具体配置为:
基于所述第一梯度分片与所述第二梯度分片的乘积,确定针对所述第一部分模型的第一梯度;
利用所述第一梯度,对所述第一部分模型进行更新。
在一种实施方式中,更新模块750,基于所述第一梯度分片与所述第二梯度分片的乘积,确定针对所述第一部分模型的第一梯度时,包括:
分别将所述第一梯度分片和所述第二梯度分片进行展平;
基于展平后的所述第一梯度分片和所述第二梯度分片的乘积,确定所述第一梯度。
在一种实施方式中,获取模块710,在获取第一输入数据时包括:
接收第三设备发送的第三输出数据,并基于所述第三输出数据确定所述第一输入数据;其中,第三设备拥有业务预测模型中的第三部分模型,第三输出数据利用第三输入数据和第三部分模型确定,第三输入数据基于第三设备中的样本数据确定;
第一确定模块720,还配置为:
基于所述第一输出数据和所述第三输出数据,确定用于对所述第三部分模型进行更新的第四梯度分片。
图8为实施例提供的一种对业务预测模型进行多方联合训练的装置的示意性框图。其中,业务预测模型至少通过第一设备和第二设备进行联合训练,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,本装置800部署在第二设备中,本装置实施例与图2所示方法实施例中通过B设备执行的方法相对应。本装置800包括:
第二接收模块810,配置为,接收所述第一设备发送的第一输出数据;其中,所述第一输出数据利用所述第一设备获取的第一输入数据和所述第一部分模型确定;
第二确定模块820,配置为,基于所述第一输出数据确定第二输入数据,并利用所述第二输入数据确定所述第二部分模型的第二输出数据;
第三确定模块830,配置为,基于所述第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片;
第二发送模块840,配置为,将所述第二梯度分片发送至所述第一设备,以使所述第一设备利用第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新;其中,所述第一梯度分片基于所述第一输出数据和所述第一部分模型确定。
在一种实施方式中,第二输出数据为样本的标签预测值,第三确定模块830具体配置为:
基于所述第二输出数据确定样本的预测损失;
基于所述预测损失和所述第一输出数据,确定所述第二梯度分片。
在一种实施方式中,第三确定模块830,在基于所述预测损失和所述第一输出数据,确定所述第二梯度分片时,包括:
基于所述预测损失对所述第一输出数据的偏导数确定第二梯度分片。
上述各个装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图1至图5任一项所述的方法。
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图1至图5任一项所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (19)
1.一种对业务预测模型进行多方联合训练的方法,其中,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,所述方法包括:
所述第一设备,获取第一输入数据,利用所述第一输入数据确定所述第一部分模型的第一输出数据,并将其发送至所述第二设备;基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片;
所述第二设备,接收所述第一设备发送的第一输出数据,并基于所述第一输出数据确定第二输入数据,利用所述第二输入数据确定所述第二部分模型的第二输出数据;基于所述第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片,并将其发送至所述第一设备;
所述第一设备,接收所述第二设备发送的第二梯度分片,利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新。
2.根据权利要求1所述的方法,所述基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片的步骤,包括:
在接收所述第二设备发送的第二梯度分片之前,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片。
3.根据权利要求1所述的方法,所述第一部分模型包含多个计算层;所述基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片的步骤,包括:
基于所述第一输出数据,确定所述第一部分模型中多个计算层分别对应的第一梯度分片;
所述利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新的步骤,包括:
针对任意一个计算层,利用该计算层的第一梯度分片和所述第二梯度分片,对该计算层中的模型参数进行更新。
4.根据权利要求1所述的方法,所述基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片的步骤,包括:
基于所述第一输出数据对所述第一部分模型的偏导数,确定所述第一梯度分片。
5.根据权利要求4所述的方法,所述基于所述第一输出数据对所述第一部分模型的偏导数,确定所述第一梯度分片的步骤,包括:
获取所述第一部分模型的计算图;
利用所述计算图,确定所述第一输出数据对所述第一部分模型中多个模型参数的偏导数,基于多个偏导数确定所述第一梯度分片。
6.根据权利要求1所述的方法,所述利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新的步骤,包括:
基于所述第一梯度分片与所述第二梯度分片的乘积,确定针对所述第一部分模型的第一梯度;
利用所述第一梯度,对所述第一部分模型进行更新。
7.根据权利要求6所述的方法,所述基于所述第一梯度分片与所述第二梯度分片的乘积,确定针对所述第一部分模型的第一梯度的步骤,包括:
分别将所述第一梯度分片和所述第二梯度分片进行展平;
基于展平后的所述第一梯度分片和所述第二梯度分片的乘积,确定所述第一梯度。
8.根据权利要求1所述的方法,所述第二输出数据为样本的标签预测值;
所述第二设备,在确定所述第二梯度分片时,包括:
基于所述第二输出数据确定样本的预测损失;
基于所述预测损失和所述第一输出数据,确定所述第二梯度分片。
9.根据权利要求1所述的方法,所述业务预测模型还包括第三部分模型,并配置在第三设备中;所述方法还包括:
所述第三设备,基于本地的样本数据确定第三输入数据,利用所述第三输入数据确定所述第三部分模型的第三输出数据,并将其发送至所述第一设备;基于所述第三输出数据,确定用于对所述第三部分模型进行更新的第三梯度分片;
所述第一设备,接收所述第三设备发送的第三输出数据,并基于所述第三输出数据确定所述第一输入数据,基于所述第一输出数据和所述第三输出数据,确定用于对所述第三部分模型进行更新的第四梯度分片;
所述第三设备,基于所述第二梯度分片、所述第四梯度分片和所述第三梯度分片,对所述第三部分模型进行更新。
10.根据权利要求9所述的方法,其中还包括:
所述第一设备,利用所述第二梯度分片和所述第四梯度分片确定第五梯度分片,并将所述第五梯度分片发送至所述第三设备;
所述第三设备,接收所述第一设备发送的第五梯度分片,并基于所述第五梯度分片和所述第三梯度分片,对所述第三部分模型进行更新。
11.一种对业务预测模型进行多方联合训练的方法,其中,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,所述方法通过所述第一设备执行,包括:
获取第一输入数据,利用所述第一输入数据确定所述第一部分模型的第一输出数据;
基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片;
将所述第一输出数据发送至所述第二设备,以使所述第二设备基于第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片,并将其发送至所述第一设备;其中,所述第二输出数据基于所述第一输出数据和所述第二部分模型确定;
接收所述第二设备发送的第二梯度分片;
利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新。
12.一种对业务预测模型进行多方联合训练的方法,其中,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,所述方法通过所述第二设备执行,包括:
接收所述第一设备发送的第一输出数据;其中,所述第一输出数据利用所述第一设备获取的第一输入数据和所述第一部分模型确定;
基于所述第一输出数据确定第二输入数据,并利用所述第二输入数据确定所述第二部分模型的第二输出数据;
基于所述第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片;
将所述第二梯度分片发送至所述第一设备,以使所述第一设备利用第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新;其中,所述第一梯度分片基于所述第一输出数据和所述第一部分模型确定。
13.一种对业务预测模型进行多方联合训练的***,包括第一设备和第二设备;其中,所述第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型;
所述第一设备,用于获取第一输入数据,利用所述第一输入数据确定所述第一部分模型的第一输出数据,并将其发送至所述第二设备;基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片;
所述第二设备,用于接收所述第一设备发送的第一输出数据,并基于所述第一输出数据确定第二输入数据,利用所述第二输入数据确定所述第二部分模型的第二输出数据;基于所述第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片,并将其发送至所述第一设备;
所述第一设备,用于接收所述第二设备发送的第二梯度分片,利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新。
14.根据权利要求13所述的***,所述第一设备,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片时,包括:
在接收所述第二设备发送的第二梯度分片之前,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片。
15.根据权利要求13所述的***,还包括第三设备;所述业务预测模型还包括第三部分模型,并配置在所述第三设备中;
所述第三设备,用于基于本地的样本数据确定第三输入数据,利用所述第三输入数据确定所述第三部分模型的第三输出数据,并将其发送至所述第一设备;基于所述第三输出数据,确定用于对所述第三部分模型进行更新的第三梯度分片;
所述第一设备,还用于接收所述第三设备发送的第三输出数据,并基于所述第三输出数据确定所述第一输入数据,基于所述第一输出数据和所述第三输出数据,确定用于对所述第三部分模型进行更新的第四梯度分片;
所述第三设备,用于基于所述第二梯度分片、所述第四梯度分片和所述第三梯度分片,对所述第三部分模型进行更新。
16.一种对业务预测模型进行多方联合训练的装置,其中,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,所述装置部署在所述第一设备中,包括:
获取模块,配置为,获取第一输入数据,利用所述第一输入数据确定所述第一部分模型的第一输出数据;
第一确定模块,配置为,基于所述第一输出数据,确定用于对所述第一部分模型进行更新的第一梯度分片;
第一发送模块,配置为,将所述第一输出数据发送至所述第二设备,以使所述第二设备基于第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片,并将其发送至所述第一设备;其中,所述第二输出数据基于所述第一输出数据和所述第二部分模型确定;
第一接收模块,配置为,接收所述第二设备发送的第二梯度分片;
更新模块,配置为,利用所述第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新。
17.一种对业务预测模型进行多方联合训练的装置,其中,第一设备和第二设备分别拥有业务预测模型中的第一部分模型和第二部分模型,所述装置部署在所述第二设备中,包括:
第二接收模块,配置为,接收所述第一设备发送的第一输出数据;其中,所述第一输出数据利用所述第一设备获取的第一输入数据和所述第一部分模型确定;
第二确定模块,配置为,基于所述第一输出数据确定第二输入数据,并利用所述第二输入数据确定所述第二部分模型的第二输出数据;
第三确定模块,配置为,基于所述第二输出数据和所述第一输出数据,确定用于对所述第一部分模型进行更新的第二梯度分片;
第二发送模块,配置为,将所述第二梯度分片发送至所述第一设备,以使所述第一设备利用第一梯度分片和所述第二梯度分片,对所述第一部分模型进行更新;其中,所述第一梯度分片基于所述第一输出数据和所述第一部分模型确定。
18.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-12中任一项所述的方法。
19.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210250437.5A CN114330673A (zh) | 2022-03-15 | 2022-03-15 | 一种对业务预测模型进行多方联合训练的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210250437.5A CN114330673A (zh) | 2022-03-15 | 2022-03-15 | 一种对业务预测模型进行多方联合训练的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114330673A true CN114330673A (zh) | 2022-04-12 |
Family
ID=81033356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210250437.5A Pending CN114330673A (zh) | 2022-03-15 | 2022-03-15 | 一种对业务预测模型进行多方联合训练的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114330673A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827308A (zh) * | 2022-04-15 | 2022-07-29 | 支付宝(杭州)信息技术有限公司 | 一种模型训练数据传输方法、装置、设备和可读介质 |
CN114943274A (zh) * | 2022-04-15 | 2022-08-26 | 支付宝(杭州)信息技术有限公司 | 模型训练方法、装置、存储介质、服务器、终端及*** |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291869A (zh) * | 2020-05-09 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 并行训练业务模型的方法及装置 |
CN111291416A (zh) * | 2020-05-09 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护对业务模型进行数据预处理的方法及装置 |
CN111612167A (zh) * | 2019-02-26 | 2020-09-01 | 京东数字科技控股有限公司 | 机器学习模型的联合训练方法、装置、设备及存储介质 |
CN111860829A (zh) * | 2020-06-19 | 2020-10-30 | 光之树(北京)科技有限公司 | 联邦学习模型的训练方法及装置 |
CN112037800A (zh) * | 2020-09-22 | 2020-12-04 | 平安科技(深圳)有限公司 | 声纹核身模型训练方法、装置、介质及电子设备 |
CN112070207A (zh) * | 2020-07-31 | 2020-12-11 | 华为技术有限公司 | 一种模型训练方法及装置 |
CN112799708A (zh) * | 2021-04-07 | 2021-05-14 | 支付宝(杭州)信息技术有限公司 | 联合更新业务模型的方法及*** |
CN113033823A (zh) * | 2021-04-20 | 2021-06-25 | 支付宝(杭州)信息技术有限公司 | 一种模型训练方法、***及装置 |
WO2021204040A1 (zh) * | 2020-10-29 | 2021-10-14 | 平安科技(深圳)有限公司 | 联邦学习数据处理方法、装置、设备及存储介质 |
CN113887740A (zh) * | 2021-10-21 | 2022-01-04 | 支付宝(杭州)信息技术有限公司 | 联合更新模型的方法、装置及*** |
-
2022
- 2022-03-15 CN CN202210250437.5A patent/CN114330673A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111612167A (zh) * | 2019-02-26 | 2020-09-01 | 京东数字科技控股有限公司 | 机器学习模型的联合训练方法、装置、设备及存储介质 |
CN111291869A (zh) * | 2020-05-09 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 并行训练业务模型的方法及装置 |
CN111291416A (zh) * | 2020-05-09 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护对业务模型进行数据预处理的方法及装置 |
CN111860829A (zh) * | 2020-06-19 | 2020-10-30 | 光之树(北京)科技有限公司 | 联邦学习模型的训练方法及装置 |
CN112070207A (zh) * | 2020-07-31 | 2020-12-11 | 华为技术有限公司 | 一种模型训练方法及装置 |
CN112037800A (zh) * | 2020-09-22 | 2020-12-04 | 平安科技(深圳)有限公司 | 声纹核身模型训练方法、装置、介质及电子设备 |
WO2021174883A1 (zh) * | 2020-09-22 | 2021-09-10 | 平安科技(深圳)有限公司 | 声纹核身模型训练方法、装置、介质及电子设备 |
WO2021204040A1 (zh) * | 2020-10-29 | 2021-10-14 | 平安科技(深圳)有限公司 | 联邦学习数据处理方法、装置、设备及存储介质 |
CN112799708A (zh) * | 2021-04-07 | 2021-05-14 | 支付宝(杭州)信息技术有限公司 | 联合更新业务模型的方法及*** |
CN113033823A (zh) * | 2021-04-20 | 2021-06-25 | 支付宝(杭州)信息技术有限公司 | 一种模型训练方法、***及装置 |
CN113887740A (zh) * | 2021-10-21 | 2022-01-04 | 支付宝(杭州)信息技术有限公司 | 联合更新模型的方法、装置及*** |
Non-Patent Citations (4)
Title |
---|
HONGYU LI 等: "An End-to-End Encrypted Neural Network for Gradient Updates Transmission in Federated Learning", 《ARXIV》 * |
JINGYAN JIANG 等: "Decentralised federated learning with adaptive partial gradient aggregation", 《CAAI TRANSACTIONS ON INTELLIGENCE TECHNOLOGY》 * |
肖林声 等: "基于使用MapReduce并行的同态加密和梯度选择的联邦迁移学习算法", 《网络空间安全》 * |
董业 等: "基于秘密分享和梯度选择的高效安全联邦学习", 《计算机研究与发展》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827308A (zh) * | 2022-04-15 | 2022-07-29 | 支付宝(杭州)信息技术有限公司 | 一种模型训练数据传输方法、装置、设备和可读介质 |
CN114943274A (zh) * | 2022-04-15 | 2022-08-26 | 支付宝(杭州)信息技术有限公司 | 模型训练方法、装置、存储介质、服务器、终端及*** |
CN114827308B (zh) * | 2022-04-15 | 2023-11-17 | 支付宝(杭州)信息技术有限公司 | 一种模型训练数据传输方法、装置、设备和可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Thapa et al. | Splitfed: When federated learning meets split learning | |
Zhu et al. | From federated learning to federated neural architecture search: a survey | |
WO2021082681A1 (zh) | 多方联合训练图神经网络的方法及装置 | |
CN107358293B (zh) | 一种神经网络训练方法及装置 | |
Baytas et al. | Asynchronous multi-task learning | |
CN114330673A (zh) | 一种对业务预测模型进行多方联合训练的方法及装置 | |
Keller et al. | Secure quantized training for deep learning | |
Wang et al. | ProgFed: Effective, communication, and computation efficient federated learning by progressive training | |
US20230074339A1 (en) | Systems and methods for blind multimodal learning | |
CN112948885B (zh) | 实现隐私保护的多方协同更新模型的方法、装置及*** | |
WO2023174036A1 (zh) | 联邦学习模型训练方法、电子设备及存储介质 | |
WO2023103864A1 (zh) | 抵抗联邦学习中歧视传播的节点模型的更新方法 | |
CN115271099A (zh) | 一种支持异构模型的自适应个性化联邦学习方法 | |
Liang et al. | Self-supervised cross-silo federated neural architecture search | |
Ding et al. | NAP: Neural architecture search with pruning | |
Yang et al. | Accelerated stochastic gradient descent with step size selection rules | |
US20200125958A1 (en) | Training apparatus, training method, inference apparatus, inference method, and non-transitory computer readable medium | |
Garg et al. | Direct federated neural architecture search | |
CN112926747A (zh) | 优化业务模型的方法及装置 | |
CN112016698A (zh) | 因子分解机模型构建方法、设备及可读存储介质 | |
Krawtschenko et al. | Distributed optimization with quantization for computing wasserstein barycenters | |
Wang et al. | Federated semi-supervised learning with class distribution mismatch | |
CN114662148A (zh) | 一种保护隐私的多方联合训练方法及装置 | |
Fan et al. | Fedhql: Federated heterogeneous q-learning | |
CN110472668B (zh) | 一种图像分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |