CN113268776B - 基于区块链的模型联合训练方法及装置 - Google Patents

基于区块链的模型联合训练方法及装置 Download PDF

Info

Publication number
CN113268776B
CN113268776B CN202110508630.XA CN202110508630A CN113268776B CN 113268776 B CN113268776 B CN 113268776B CN 202110508630 A CN202110508630 A CN 202110508630A CN 113268776 B CN113268776 B CN 113268776B
Authority
CN
China
Prior art keywords
result
training
node
training result
type
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.)
Active
Application number
CN202110508630.XA
Other languages
English (en)
Other versions
CN113268776A (zh
Inventor
倪翔
汲小溪
王维强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110508630.XA priority Critical patent/CN113268776B/zh
Publication of CN113268776A publication Critical patent/CN113268776A/zh
Application granted granted Critical
Publication of CN113268776B publication Critical patent/CN113268776B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

本说明书实施例提供一种基于区块链的模型联合训练方法及装置,在训练方法中,区块链的当前层节点接收对应的上层节点发送的第一训练结果。该第一训练结果至少基于第一类型结果确定,第一类型结果由上层节点基于其在链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练后得到。当前层节点基于其链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练,得到第二训练结果。对第一训练结果和第二训练结果进行融合,得到融合结果。判断当前层节点是否在最后一个层级。若当前层节点在最后一个层级,则在区块链上广播所述融合结果,以使得多个节点基于融合结果对各自在链上维护的多种模型中的目标模型进行更新。

Description

基于区块链的模型联合训练方法及装置
本申请为2019年12月09日提交的申请号为201911252312.0,名为“基于区块链的模型联合训练方法及装置”的发明专利申请的分案申请。
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种基于区块链的模型联合训练方法及装置。
背景技术
联邦学习(Federated Learning),也称联合学习,是一种新兴的人工智能基础技术。其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方(或者计算节点或者主体)之间开展高效率的机器学习。
在传统的模型联合学习或训练过程中,为了确保各方数据的安全性,通常会对各方间交互的数据进行加密,然而其仍然存在数据泄露的风险。
因此,需要提供一种更安全地模型联合训练方法。
发明内容
本说明书一个或多个实施例描述了一种基于区块链的模型联合训练方法及装置,可以在确保各方数据安全的情况下,高效地对模型进行联合训练。
第一方面,提供了一种基于区块链的模型联合训练方法,包括:
接收对应的上层节点发送的第一训练结果;所述第一训练结果至少基于第一类型结果确定;所述第一类型结果由所述上层节点基于其在链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练后得到;
基于其链下维护的私有数据,对其在链上维护的多种模型中的所述目标模型进行训练,得到第二训练结果;
对所述第一训练结果和所述第二训练结果进行融合,得到融合结果;
判断所述当前层节点是否在最后一个层级;
若所述当前层节点在最后一个层级,则在所述区块链上广播所述融合结果,以使得所述多个节点基于所述融合结果对各自在链上维护的多种模型中的所述目标模型进行更新。
第二方面,提供了一种基于区块链的模型联合训练方法,包括:
接收对应的上层节点发送的第一训练结果;所述第一训练结果至少包括第一类型结果;所述第一类型结果由所述上层节点基于其在链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练后得到;
基于其链下维护的私有数据,对其在链上维护的多种模型中的所述目标模型进行训练,得到第二训练结果;
判断所述当前层节点是否在最后一个层级;
若所述当前层节点在最后一个层级,则对所述第一训练结果和所述第二训练结果进行融合,得到融合结果;
在所述区块链上广播所述融合结果,以使得所述多个节点基于所述融合结果对各自在链上维护的多种模型中的所述目标模型进行更新。
第三方面,提供了一种基于区块链的模型联合训练装置,包括:
接收单元,用于接收对应的上层节点发送的第一训练结果;所述第一训练结果至少基于第一类型结果确定;所述第一类型结果由所述上层节点基于其在链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练后得到;
训练单元,用于基于其链下维护的私有数据,对其在链上维护的多种模型中的所述目标模型进行训练,得到第二训练结果;
融合单元,用于对所述接收单元接收的所述第一训练结果和所述训练单元训练得到的所述第二训练结果进行融合,得到融合结果;
判断单元,用于判断所述当前层节点是否在最后一个层级;
广播单元,用于若所述判断单元判断所述当前层节点在最后一个层级,则在所述区块链上广播所述融合结果,以使得所述多个节点基于所述融合结果对各自在链上维护的多种模型中的所述目标模型进行更新。
第四方面,提供了一种基于区块链的模型联合训练装置,包括:
接收单元,用于接收对应的上层节点发送的第一训练结果;所述第一训练结果至少包括第一类型结果;所述第一类型结果由所述上层节点基于其在链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练后得到;
训练单元,用于基于其链下维护的私有数据,对其在链上维护的多种模型中的所述目标模型进行训练,得到第二训练结果;
判断单元,用于判断所述当前层节点是否在最后一个层级;
融合单元,用于若所述判断单元判断所述当前层节点在最后一个层级,则对所述第一训练结果和所述第二训练结果进行融合,得到融合结果;
广播单元,用于在所述区块链上广播所述融合单元得到的融合结果,以使得所述多个节点基于所述融合结果对各自在链上维护的多种模型中的所述目标模型进行更新。
第五方面,提供了一种计算机存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法或第二方面的方法。
第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法或第二方面的方法。
本说明书一个或多个实施例提供的基于区块链的模型联合训练方法及装置,区块链的每层节点可以接收对应的上层节点发送的训练结果,并可以将接收的训练结果与自身的训练结果进行融合后发送至对应的下层节点,或者直接将两种训练结果转发至对应的下层节点,直至到达最后一层节点。最后一层节点将全部的训练结果进行融合,得到最终训练结果,并在区块链上广播该最终训练结果,从而使得各节点均可以更新对应的模型,至此就实现了基于区块链的模型联合训练。也即本说明书提供的方案,可以基于区块链来实现模型的联合训练,由此可以保证模型联合训练过程的安全可靠。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书提供的基于区块链的模型联合训练方法示意图;
图2为本说明书一个实施例提供的基于区块链的模型联合训练方法流程图;
图3为本说明书另一个实施例提供的基于区块链的模型联合训练方法流程图;
图4为本说明书一个实施例提供的基于区块链的模型联合训练装置示意图;
图5为本说明书另一个实施例提供的基于区块链的模型联合训练装置示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
在描述本说明书提供的方案之前,先对本方案的发明构思作以下说明。
如背景技术所述,传统的模型联合训练方法存在数据泄露的风险,为了确保各方数据的安全性,本方案将基于区块链实现模型的联合训练。区块链是借由密码学串接并保护内容的串连文字记录。每一个区块包含了前一个区块的加密散列、相应时间戳记以及交易数据,这样的设计使得区块内容具有难以篡改的特性。用区块链技术所串接的分布式账本能让两方有效记录交易,且可永久查验此交易。
其具体实现思路可以为:首先可以将区块链中的各节点划分为多个层级,并建立相邻两个层级的节点之间的对应关系。之后,区块链的每层节点可以接收对应的上层节点发送的训练结果,并可以将接收的训练结果与自身的训练结果进行融合后发送至对应的下层节点,或者直接将两种训练结果转发至对应的下层节点,直至到达最后一层节点。最后一层节点将全部的训练结果进行融合,得到最终训练结果,并在区块链上广播该最终训练结果,从而使得各节点均可以更新对应的模型,至此就实现了基于区块链的模型联合训练。
以上就是本说明书提供的发明构思,基于该发明构思就可以得到本方案,以下对本方案进行详细阐述。
图1为本说明书提供的基于区块链的模型联合训练方法示意图。图1中,节点1-节点15为区块链中的节点,各个节点按照层级关系组织。具体地,节点1-节点8在第1个层级,节点9-节点12在第2个层级,节点13-节点14在第3个层级,节点15在第4个层级(也即最后一个层级)。此外,第1个层级的节点1-节点2对应于第2个层级的节点9,第1个层级的节点3-节点4对应于第2个层级的节点10,第1个层级的节点5-节点6对应于第2个层级的节点11,第1个层级的节点7-节点8对应于第2个层级的节点12。第2个层级的节点9-节点10对应于第3个层级的节点13,第2个层级的节点11-节点12对应于第3个层级的节点14。第3个层级的节点13-节点14对应于最后一个层级的节点15。
图1中的每个节点可以表征一个参与方。上述每个节点在链上可以维护多种模型。这里的多种模型可以包括逻辑回归(Logistic Regression,LR)模型、梯度提升决策树(Gradient Boosting Decision Tree,GBDT)模型以及(Deep Neural Networks,DNN)模型中的至少一项。上述多种模型中的任一模型可以是由某个节点预先提交到区块链上。可以理解的是,针对提交到区块链上的模型,各节点均可以执行相应的计算(如,训练)。此外,区块链中的每个节点在链下还可以维护自身的私有数据。在一个示例中,各节点可以通过在相应区块记录中包含指向的链下数据的指针,来实现各自对链下数据的维护。
图1中,任务处理器(task rebuilder)可以在区块链上发布模型训练任务。这里的任务处理器可以为单独的服务器,也可以设置于区块链中的任一节点。此外,上述模型训练任务至少指示待训练的目标模型。需要说明的是,在发布上述模型训练任务后,只有第1个层级的各个节点会执行训练任务,而其它层级的节点则等待接收对应节点的训练结果,之后才开始执行训练任务。
以第1个层级的节点1-节点2为例来说,在发布上述模型训练任务后,节点1-节点2可以从其在链上维护的多种模型中选取出目标模型,并基于其在链下维护的私有数据,对选取的目标模型进行训练。之后,节点1和节点2可以将各自的训练结果(如,模型梯度和/或模型参数)发送至节点9。节点9可以获取对应的训练结果,并将接收的训练结果和自身获取的训练结果融合后,或者直接全部转发至节点13等等,依次类推,直至到达节点15。节点15可以融合所有的训练结果,并将融合结果发布到区块链上,从而各节点基于该融合结果,更新各自维护的目标模型。
在此说明,受限于篇幅,图1只列出了四个层级的节点,且下一层级的各节点只与上一层级的两个节点相对应,实际上区块链中还可以包括超过四个层级的节点,且下一层级的各节点可以与上一层级的超过两个的节点相对应,本说明书对此不作限定。
需要说明的是,区块链上的链式哈希指针可以确保几乎不可能存在更改或删除区块链上的记录的可能性。此外,区块链上的记录还可以包含指向链下私有数据的指针。指针与哈希指针一起可用于验证链下数据的完整性。这样一来,区块链还可以保护链下数据的完整性。保护链上和链下记录的完整性从本质上阻止了欺诈性删除或更改记录以谋取个人利益。
另外,区块链提供附加到区块链的记录的近实时透明性,即这些新记录对区块链的各个节点可见。这提高了此类节点检测欺诈性记录的能力。这种透明性的存在和仅被发现的可能性就将极大地阻止欺诈行为。
综上,本方案可以确保模型联合训练过程的安全性。
图2为本说明书一个实施例提供的基于区块链的模型联合训练方法流程图。所述方法的执行主体可以为图1中区块链的第2-4个层级的节点中任一节点。如图2所示,所述方法具体可以包括:
步骤202,接收对应的上层节点发送的第一训练结果。
关于上述第一训练结果,这里分两种情况进行说明,第一种,上述上层节点不存在对应的上层节点,也即上层节点为第1个层级的节点,则第一训练结果基于第一类型结果确定,如,将第一类型结果作为第一训练结果。这里的第一类型结果由上层节点基于其在链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练后得到。第二种,上述上层节点还存在对应的上层节点,也即上层节点为非第1个层级的节点,则第一训练结果基于第一类型结果和第二类型结果确定,其中,第二类型结果由上层节点基于从其对应的上层节点接收的结果确定。在一个示例中,可以对第一类型结果和第二类型结果进行求平均或者求加权平均得到第一训练结果。
需要说明的是,上述目标模型可以由任务处理器在发布模型训练任务时指定。如,可以为LR模型、GBDT模型或者DNN模型中的任一种。此外,上述第一类型结果或者第二类型结果可以是指目标模型的中间模型梯度和/或中间模型参数。
还需要说明的是,上述第一训练结果的个数可以基于对应的上层节点的个数确定。也即在对应的上层节点的个数为多个时,上述第一训练结果的个数也可以为多个。
以下结合图1对上述第一训练结果进行说明。
以图1中第2个层级的节点9为例来说,节点9可以接收节点1和节点2各自发送的第一训练结果,也即节点9接收到的第一训练结果的个数为两个。其中,节点1(或节点2)发送的第一训练结果即为第一类型结果,即其由节点1(或节点2)在接收到任务处理器在区块链上发布的模型训练任务时,基于在链下维护的私有数据,对目标模型进行训练后得到。
而对于第3个层级的节点13,其可以接收节点9和节点10各自发送的第一训练结果,也即节点13接收到的第一训练结果的个数为两个。其中,节点9(或节点10)发送的第一训练结果基于第一类型结果和第二类型结果确定。对于节点9,对应的第一类型结果由节点9在接收到节点1和节点2发送的第一训练结果时,基于在链下维护的私有数据,对目标模型进行训练后得到。而对应的第二类型结果是由节点9在对节点1和节点2发送的第一训练结果融合后得到。
步骤204,基于其链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练,得到第二训练结果。
如,第2个层级的节点9可以对目标模型进行训练,从而得到第二训练结果。再如,第3个层级的节点13可以对目标模型进行训练,从而得到第二训练结果。
步骤206,对第一训练结果和第二训练结果进行融合,得到融合结果。
如,可以将第一训练结果作为新的第二类型结果,并将第二训练结果作为新的第一类型结果进行求平均或者求加权平均,得到融合结果。
如,第2个层级的节点9,其可以将从节点1和节点2接收的两个第一训练结果分别作为两个新的第二类型结果,此外,还可以将其自身得到的第二训练结果作为新的第一类型结果。之后,对两个新的第二类型结果以及新的第一类型结果进行求平均或者求加权平均,得到融合结果。可以理解的是,该融合结果即为节点9发送到节点13的第一训练结果。
再如,第3个层级的节点13,其可以将从节点9和节点10接收的两个第一训练结果分别作为两个新的第二类型结果,此外,还可以将其自身得到的第二训练结果作为新的第一类型结果。之后,对两个新的第二类型结果以及新的第一类型结果进行求平均或者求加权平均,得到融合结果。可以理解的是,该融合结果即为节点13发送到节点15的第一训练结果。
步骤208,判断当前层节点是否在最后一个层级。
步骤210,若当前层节点在最后一个层级,则在区块链上广播融合结果,以使得多个节点基于融合结果对各自在链上维护的多种模型中的目标模型进行更新。
以图1中的第4个层级的节点15为例来说,由于节点15在最后一个层级,其可以其区块链上广播融合结果。可以理解的是,这里的融合结果可以是指目标模型的总模型梯度或者总模型参数。
若融合结果为总模型梯度,那么各节点在接收到总模型梯度之后,可以基于该总模型梯度,确定总模型参数。之后,基于总模型参数,对各自对应的目标模型进行更新。
若融合结果为总模型参数,各节点在接收到总模型参数之后,可以直接基于总模型参数,对各自对应的目标模型进行更新。
以上是对当前层节点在最后一个层级的情况说明,以下对当前层节点不在最后一个层级的情况进行描述。
若当前层节点不在最后一个层级,则将融合结果作为发送到对应的下层节点的第一训练结果。
以第2个层级的节点9为例来说,其可以将对应的融合结果作为第一训练结果发送到节点13。
再以第3个层级的节点13为例来说,其可以将对应的融合结果作为第一训练结果发送到节点15。
需要说明的是,在执行步骤210之后,只完成了目标模型的一轮迭代训练。若一轮迭代结束之后,目标模型对应的损失函数是否达到预定的收敛条件,则模型联合训练结束;否则,进入下一轮迭代,直至目标模型对应的损失函数达到预定的收敛条件。可以理解的是,下一轮迭代的过程基于更新后的目标模型执行。
在目标模型对应的损失函数满足预定的收敛条件时,模型联合训练结束。任务处理器可以调用智能合约,智能合约被用于计算多个节点各自对应的奖励,并向多个节点发放各自对应的奖励,以使多个节点各自对应的虚拟资源增加。
在一个例子中,智能合约的实现原理如下:假设第t次提交数据(或算法)对已有模型增益是A_t,对于每次提交数据(或者算法)h,定义一个loss function L(h,t)。最后节点对应的奖励是A_t–L(h,t)。
上述模型增益可以通过计算Shapley value值得到。Shapley value是通过考虑各个节点做出的贡献,来公平地分配合作收益。
还需要说明的是,步骤202-步骤210是在模型联合训练过程中,非第1个层级的节点所进行的操作。可以理解的是,对于第1个层级的各节点,其可以在接收到任务处理器在区块链上发布的模型训练任务时,基于其链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练,得到第二训练结果。之后,可以将第二训练结果作为发送到对应的下层节点(即第2个层级的节点)的第一训练结果。从而对应的下层节点就可以执行上述步骤202-步骤210,直至到达最后一个层级的节点。
综上,本说明书实施例提供的基于区块链的模型联合训练方法作出了以下几点创新:第一,创新性的提出把区块链引入联邦学习中。第二,运用区块链的哈希指针技术解决链上和链下数据的完整性。第三,运用区块链的数字签名技术解决机器学习模型数据来源的真实性。第四,利用区块链的智能合约技术解决了联邦学习中的促进数据共享和算法共建的激励和惩罚机制问题。第五,在区块链上实现了联邦学习的过程。
基于上述几方面的创新点,可以保证各参与方的私有数据和模型训练结果的真实性,完整性,可溯源性。此外,智能合约的使用可以促进各参与方之间的协作能力。
图3为本说明书另一个实施例提供的基于区块链的模型联合训练方法流程图。所述方法的执行主体可以为图1中区块链的第2-4个层级的节点中任一节点。如图3所示,所述方法具体可以包括:
步骤302,接收对应的上层节点发送的第一训练结果。
关于上述第一训练结果,这里分两种情况进行说明,第一种,上述上层节点不存在对应的上层节点,也即上层节点为第1个层级的节点,则第一训练结果只包括第一类型结果,这里的第一类型结果由上层节点基于其在链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练后得到。第二种,上述上层节点还存在对应的上层节点,也即上层节点为非第1个层级的节点,则第一训练结果包括第一类型结果和第二类型结果。其中,第二类型结果由上层节点基于从其对应的上层节点接收的结果确定。如,该第二类型结果由上层节点对应的各上层节点的训练结果构成。
需要说明的是,上述目标模型可以由任务处理器在发布模型训练任务时指定。如,可以为LR模型、GBDT模型或者DNN模型中的任一种。此外,上述第一类型结果或者第二类型结果可以是指目标模型的中间模型梯度和/或中间模型参数。
还需要说明的是,上述第一训练结果的个数可以基于对应的上层节点的个数确定。也即在对应的上层节点的个数为多个时,上述第一训练结果的个数也可以为多个。
以图1中第2个层级的节点9为例来说,节点9可以接收节点1和节点2各自发送的第一训练结果,也即节点9接收到的第一训练结果的个数为两个。其中,节点1(或节点2)发送的第一训练结果只包括第一类型结果,即其由节点1(或节点2)在接收到任务处理器在区块链上发布的模型训练任务时,基于在链下维护的私有数据,对目标模型进行训练后得到。
而对于第3个层级的节点13,其可以接收节点9和节点10各自发送的第一训练结果,也即节点13接收到的第一训练结果的个数为两个。其中,节点9(或节点10)发送的第一训练结果包括第一类型结果和第二类型结果。对于节点9,对应的第一类型结果由节点9在接收到节点1和节点2发送的第一训练结果时,基于在链下维护的私有数据,对目标模型进行训练后得到。而对应的第二类型结果由对应于节点9的节点1和节点2发送的第一训练结果构成。
步骤304,基于其链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练,得到第二训练结果。
如,第2个层级的节点9可以对目标模型进行训练,从而得到第二训练结果。再如,第3个层级的节点13可以对目标模型进行训练,从而得到第二训练结果。
步骤306,判断当前层节点是否在最后一个层级。
步骤308,若当前层节点在最后一个层级,则对第一训练结果和第二训练结果进行融合,得到融合结果。
如,可以对第一训练结果和第二训练结果进行求平均或者求加权平均,得到融合结果。
如,第4个层级的节点15,其可以将从节点13和节点14接收的两个第一训练结果和其自身得到的第二训练结果进行求平均或者求加权平均,得到融合结果。
可以理解的是,这里相当于是对所有的节点的训练结果进行汇总计算。
而若当前层节点不在最后一个层级,则将第一训练结果作为发送到对应的下层节点的第一训练结果中的第二类型结果,将第二训练结果作为发送到对应的下层节点的第一训练结果中的第一类型结果。
如,第2个层级的节点9,其可以将从节点1和节点2接收的两个第一训练结果分别作为两个新的第二类型结果,此外,还可以将其自身得到的第二训练结果作为新的第一类型结果。之后,将该两个新的第二类型结果以及新的第一类型结果作为发送到节点13的第一训练结果中的两部分。
步骤310,在区块链上广播融合结果,以使得多个节点基于融合结果对各自在链上维护的多种模型中的目标模型进行更新。
可以理解的是,这里的融合结果可以是指目标模型的总模型梯度或者总模型参数。
若融合结果为总模型梯度,那么各节点在接收到总模型梯度之后,可以基于该总模型梯度,确定总模型参数。之后,基于总模型参数,对各自对应的目标模型进行更新。
若融合结果为总模型参数,各节点在接收到总模型参数之后,可以直接基于总模型参数,对各自对应的目标模型进行更新。
同样地,在执行步骤310之后,只完成了目标模型的一轮迭代训练。若一轮迭代结束之后,目标模型对应的损失函数是否达到预定的收敛条件,则模型联合训练结束;否则,进入下一轮迭代,直至目标模型对应的损失函数达到预定的收敛条件。可以理解的是,下一轮迭代的过程基于更新后的目标模型执行。
还需要说明的是,步骤302-步骤310是在模型联合训练过程中,非第1个层级的节点所进行的操作。可以理解的是,对于第1个层级的各节点,其可以在接收到任务处理器在区块链上发布的模型训练任务时,基于其链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练,得到第二训练结果。之后,可以将第二训练结果作为发送到对应的下层节点(即第2个层级的节点)的第一训练结果。从而对应的下层节点就可以执行上述步骤302-步骤310,直至到达最后一个层级的节点。
本说明书实施例提供的基于区块链的模型联合训练方法,可以基于区块链来实现模型的联合训练,由此可以保证模型联合训练过程的安全可靠。
与上述基于区块链的模型联合训练方法对应地,本说明书一个实施例还提供的一种基于区块链的模型联合训练装置,该区块链包括多个具有层级关系的节点,且相邻两个层级的节点之间具有对应关系。多个节点中的每个节点在链下维护有私有数据,在链上维护有多种模型。该装置设置于区块链的当前层节点,如图4所示,该装置可以包括:
接收单元402,用于接收对应的上层节点发送的第一训练结果。该第一训练结果至少基于第一类型结果确定,第一类型结果由上层节点基于其在链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练后得到。
若上层节点还存在对应的上层节点,则第一训练结果基于第一类型结果和第二类型结果共同确定,第二类型结果由上层节点基于从其对应的上层节点接收的结果确定。
训练单元404,用于基于其链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练,得到第二训练结果。
融合单元406,用于对接收单元402接收的第一训练结果和训练单元404训练得到的第二训练结果进行融合,得到融合结果。
融合单元406具体用于:
将第一训练结果作为新的第二类型结果,并将第二训练结果作为新的第一类型结果进行求平均或者求加权平均,得到融合结果。
这里的融合结果可以包括目标模型的总模型梯度和/或总模型参数。
判断单元408,用于判断当前层节点是否在最后一个层级。
广播单元410,用于若判断单元408判断当前层节点在最后一个层级,则在区块链上广播融合结果,以使得多个节点基于融合结果对各自在链上维护的多种模型中的目标模型进行更新。
可选地,该装置还可以包括:
发送单元(图中未示出),用于若当前层节点不在最后一个层级,则将融合结果作为发送到对应的下层节点的第一训练结果。
可选地,该装置还可以包括:
调用单元(图中未示出),用于在目标模型对应的损失函数满足预定的收敛条件时,调用智能合约,该智能合约被用于计算多个节点各自对应的奖励,并向多个节点发放各自对应的奖励,以使多个节点各自对应的虚拟资源增加。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的基于区块链的模型联合训练装置,可以保证模型联合训练过程的安全可靠。
与上述基于区块链的模型联合训练方法对应地,本说明书一个实施例还提供的一种基于区块链的模型联合训练装置,该区块链包括多个具有层级关系的节点,且相邻两个层级的节点之间具有对应关系。多个节点中的每个节点在链下维护有私有数据,在链上维护有多种模型。该装置设置于区块链的当前层节点,如图5所示,该装置可以包括:
接收单元502,用于接收对应的上层节点发送的第一训练结果。该第一训练结果至少包括第一类型结果,第一类型结果由上层节点基于其在链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练后得到。
若上层节点还存在对应的上层节点,则第一训练结果还包括第二类型结果,第二类型结果由上层节点基于从其对应的上层节点接收的结果确定。
训练单元504,用于基于其链下维护的私有数据,对其在链上维护的多种模型中的目标模型进行训练,得到第二训练结果。
判断单元506,用于判断当前层节点是否在最后一个层级。
融合单元508,用于若判断单元506判断当前层节点在最后一个层级,则对第一训练结果和第二训练结果进行融合,得到融合结果。
融合单元508具体可以用于:
对第一训练结果和第二训练结果进行求平均或者求加权平均,得到融合结果。
广播单元510,用于在区块链上广播融合单元508得到的融合结果,以使得多个节点基于融合结果对各自在链上维护的多种模型中的目标模型进行更新。
可选地,该装置还可以包括:
发送单元(图中未示出),用于若判断单元506判断当前层节点不在最后一个层级,则将第一训练结果作为发送到对应的下层节点的第一训练结果中的第二类型结果,将第二训练结果作为发送到对应的下层节点的第一训练结果中的第一类型结果。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的基于区块链的模型联合训练装置,可以保证模型联合训练过程的安全可靠。
另一方面,本说明书的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图2或图3所示的方法。
另一方面,本说明书的实施例提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图2或图3所示的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

Claims (8)

1.一种基于区块链的模型联合训练方法,所述区块链包括分别位于不同层级的多个节点;且相邻两个层级的节点之间具有对应关系;所述方法通过第一节点执行,其中,所述第一节点是位于中间层级的节点,所述方法包括:
接收所述第一节点对应的上层节点发送的针对链上的目标模型的第一训练结果;
基于所述区块链中记录的指向链下私有数据的指针获取对应的私有数据,基于所述私有数据对所述目标模型进行训练,得到第二训练结果;
基于接收的第一训练结果和得到的第二训练结果形成更新的第一训练结果,将其发送给对应的下层节点;
获取最后一个层级的节点在所述区块链上广播的最终训练结果,根据所述最终训练结果更新所述目标模型。
2.根据权利要求1所述的方法,所述上层节点还存在对应的上层节点;
所述第一训练结果基于第一类型结果和第二类型结果形成;其中所述第一类型结果是所述上层节点基于链下的私有数据对所述目标模型进行训练得到的训练结果;所述第二类型结果是所述上层节点从所述上层节点对应的上层节点接收的训练结果。
3.根据权利要求2所述的方法,所述基于接收的第一训练结果和得到的第二训练结果形成更新的第一训练结果,包括:
将接收的第一训练结果作为新的第二类型结果,将得到的第二训练结果作为新的第一类型结果;
基于新的第二类型结果和新的第一类型结果,形成更新的第一训练结果。
4.根据权利要求1所述的方法,还包括:
在所述目标模型对应的损失函数满足预定的收敛条件时,调用智能合约,所述智能合约被用于计算所述多个节点各自对应的奖励,并向所述多个节点发放各自对应的奖励,以使所述多个节点各自对应的虚拟资源增加。
5.根据权利要求4所述的方法,其中,所述计算所述多个节点各自对应的奖励,包括:
对于所述第一节点,计算所述第一节点所提交的目标模型对已有模型增益;
将对已有模型增益与损失函数的差值作为所述第一节点对应的奖励;其中,所述损失函数至少基于所述第一节点提交的目标模型和提交次数计算得到。
6.一种基于区块链的模型联合训练装置,所述区块链包括分别位于不同层级的多个节点;且相邻两个层级的节点之间具有对应关系;所述装置设置于第一节点,其中,所述第一节点是位于中间层级的节点,所述装置包括:
接收单元,用于接收所述第一节点对应的上层节点发送的针对链上的目标模型的第一训练结果;
训练单元,用于基于所述区块链中记录的指向链下私有数据的指针获取对应的私有数据,基于所述私有数据对所述目标模型进行训练,得到第二训练结果;
形成单元,用于基于接收的第一训练结果和得到的第二训练结果形成更新的第一训练结果;
发送单元,用于将更新的第一训练结果发送给对应的下层节点;
所述接收单元,还用于获取最后一个层级的节点在所述区块链上广播的最终训练结果,根据所述最终训练结果更新所述目标模型。
7.根据权利要求6所述的装置,所述上层节点还存在对应的上层节点;
所述第一训练结果基于第一类型结果和第二类型结果形成;其中所述第一类型结果是所述上层节点基于链下的私有数据对所述目标模型进行训练得到的训练结果;所述第二类型结果是所述上层节点从所述上层节点对应的上层节点接收的训练结果。
8.根据权利要求7所述的装置,所述形成单元具体用于:
将接收的第一训练结果作为新的第二类型结果,将得到的第二训练结果作为新的第一类型结果;
基于新的第二类型结果和新的第一类型结果,形成更新的第一训练结果。
CN202110508630.XA 2019-12-09 2019-12-09 基于区块链的模型联合训练方法及装置 Active CN113268776B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110508630.XA CN113268776B (zh) 2019-12-09 2019-12-09 基于区块链的模型联合训练方法及装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110508630.XA CN113268776B (zh) 2019-12-09 2019-12-09 基于区块链的模型联合训练方法及装置
CN201911252312.0A CN111062044B (zh) 2019-12-09 2019-12-09 基于区块链的模型联合训练方法及装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201911252312.0A Division CN111062044B (zh) 2019-12-09 2019-12-09 基于区块链的模型联合训练方法及装置

Publications (2)

Publication Number Publication Date
CN113268776A CN113268776A (zh) 2021-08-17
CN113268776B true CN113268776B (zh) 2023-03-07

Family

ID=70300426

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110508630.XA Active CN113268776B (zh) 2019-12-09 2019-12-09 基于区块链的模型联合训练方法及装置
CN201911252312.0A Active CN111062044B (zh) 2019-12-09 2019-12-09 基于区块链的模型联合训练方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201911252312.0A Active CN111062044B (zh) 2019-12-09 2019-12-09 基于区块链的模型联合训练方法及装置

Country Status (3)

Country Link
CN (2) CN113268776B (zh)
TW (1) TWI732557B (zh)
WO (1) WO2021114929A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113268776B (zh) * 2019-12-09 2023-03-07 支付宝(杭州)信息技术有限公司 基于区块链的模型联合训练方法及装置
CN111581671B (zh) * 2020-05-11 2021-05-25 笵成科技南京有限公司 一种深度神经网络与区块链相结合的数字护照保护方法
CN111539731A (zh) * 2020-06-19 2020-08-14 支付宝(杭州)信息技术有限公司 基于区块链的联邦学习方法及装置和电子设备
CN111966698B (zh) * 2020-07-03 2023-06-13 华南师范大学 一种基于区块链的可信联邦学习方法、系统、装置及介质
CN112257063B (zh) * 2020-10-19 2022-09-02 上海交通大学 一种基于合作博弈论的联邦学习中后门攻击的检测方法
CN112714050B (zh) * 2020-12-22 2022-05-31 齐鲁工业大学 一种基于区块链和联邦学习的数据共享与隐私保护方法
CN113111124B (zh) * 2021-03-24 2021-11-26 广州大学 一种基于区块链的联邦学习数据审计系统及方法
CN112733967B (zh) * 2021-03-30 2021-06-29 腾讯科技(深圳)有限公司 联邦学习的模型训练方法、装置、设备及存储介质
CN113177645B (zh) * 2021-06-29 2021-09-28 腾讯科技(深圳)有限公司 联邦学习方法、装置、计算设备及存储介质
CN113609508B (zh) * 2021-08-24 2023-09-26 上海点融信息科技有限责任公司 一种基于区块链的联邦学习方法、装置、设备及存储介质
TWI797808B (zh) * 2021-11-02 2023-04-01 財團法人資訊工業策進會 機器學習系統及方法
CN113836566B (zh) * 2021-11-26 2022-03-29 腾讯科技(深圳)有限公司 基于区块链系统的模型处理方法及装置、设备、介质
CN114785810B (zh) * 2022-03-31 2023-05-16 海南师范大学 一种适用于联邦学习的树状广播数据同步方法
TWI807961B (zh) * 2022-08-11 2023-07-01 財團法人亞洲大學 基於分布式集群的多層聯邦學習系統與方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491266A (zh) * 2018-03-09 2018-09-04 联想(北京)有限公司 基于区块链的数据处理方法、装置及电子设备
CN110135846A (zh) * 2019-05-17 2019-08-16 杭州云象网络技术有限公司 一种区块链节点的行为序列自动分类方法
CN110428056A (zh) * 2018-04-30 2019-11-08 慧与发展有限责任合伙企业 使用区块链的分散式机器学习的系统和方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160256480A1 (en) * 2015-03-03 2016-09-08 Wintley PHIPPS Therapeutic composition for wound healing
US20180089587A1 (en) * 2016-09-26 2018-03-29 Google Inc. Systems and Methods for Communication Efficient Distributed Mean Estimation
US10270599B2 (en) * 2017-04-27 2019-04-23 Factom, Inc. Data reproducibility using blockchains
EP3477527A1 (en) * 2017-10-31 2019-05-01 Twinpeek Privacy management
US11249982B2 (en) * 2018-01-19 2022-02-15 Acronis International Gmbh Blockchain-based verification of machine learning
US11526745B2 (en) * 2018-02-08 2022-12-13 Intel Corporation Methods and apparatus for federated training of a neural network using trusted edge devices
CN108898219A (zh) * 2018-06-07 2018-11-27 广东工业大学 一种基于区块链的神经网络训练方法、装置及介质
CN109167695B (zh) * 2018-10-26 2021-12-28 深圳前海微众银行股份有限公司 基于联邦学习的联盟网络构建方法、设备及可读存储介质
CN109698822A (zh) * 2018-11-28 2019-04-30 众安信息技术服务有限公司 基于公有区块链和加密神经网络的联合学习方法及系统
CN110472745B (zh) * 2019-08-06 2021-04-27 深圳前海微众银行股份有限公司 一种联邦学习中的信息传输方法及装置
CN110490738A (zh) * 2019-08-06 2019-11-22 深圳前海微众银行股份有限公司 一种混合联邦学习方法及架构
CN110490330A (zh) * 2019-08-16 2019-11-22 安徽航天信息有限公司 一种基于区块链的分布式机器学习系统
CN110991622B (zh) * 2019-08-22 2021-06-04 腾讯科技(深圳)有限公司 基于区块链网络的机器学习模型处理方法及节点
CN113268776B (zh) * 2019-12-09 2023-03-07 支付宝(杭州)信息技术有限公司 基于区块链的模型联合训练方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491266A (zh) * 2018-03-09 2018-09-04 联想(北京)有限公司 基于区块链的数据处理方法、装置及电子设备
CN110428056A (zh) * 2018-04-30 2019-11-08 慧与发展有限责任合伙企业 使用区块链的分散式机器学习的系统和方法
CN110135846A (zh) * 2019-05-17 2019-08-16 杭州云象网络技术有限公司 一种区块链节点的行为序列自动分类方法

Also Published As

Publication number Publication date
CN111062044B (zh) 2021-03-23
CN113268776A (zh) 2021-08-17
TWI732557B (zh) 2021-07-01
WO2021114929A1 (zh) 2021-06-17
CN111062044A (zh) 2020-04-24
TW202123047A (zh) 2021-06-16

Similar Documents

Publication Publication Date Title
CN113268776B (zh) 基于区块链的模型联合训练方法及装置
CN108256864B (zh) 一种区块链之间的跨链联盟的建立及通信方法、系统
CN110870254B (zh) 提供分布式私有子空间化数据结构的方法和系统
CN110599181B (zh) 基于区块链的数据处理方法、装置和设备及存储介质
CN111125779A (zh) 一种基于区块链的联邦学习方法及装置
US11367055B2 (en) Decentralized pooled mining for enabling proof-of-work on blockchains
CN109003185B (zh) 一种智能合约的建立方法、装置、计算设备及存储介质
JP2020517169A (ja) 安全なブロックチェーンベースのコンセンサス
JP2021520010A (ja) ブロックチェーン融資トランザクションシステムおよび方法
CN110928951B (zh) 一种基于区块链的数据共享及仲裁方法
CN110232507B (zh) 基于智能合约的众包活动全过程监管方法及系统
CN113837761A (zh) 一种基于区块链和可信执行环境的联邦学习方法及系统
US20200213127A1 (en) Blockchain management system
JP7319961B2 (ja) 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法
CN109992285B (zh) 区块链代码块独立升级方法、装置及电子设备
US20210233068A1 (en) Settlement system, settlement method, user device, and settlement program
CN111445247B (zh) 用于防止区块链分叉的方法和设备
CN110839056B (zh) 基于区块链的数据处理方法、装置及节点网络
CN111047316A (zh) 一种反篡改的智能区块链系统及实现方法
CN111177797A (zh) 基于区块链的数据处理方法及装置、电子设备
CN114417361B (zh) 基于区块链的跨域ai隐私计算的协商方法及系统
US11431800B2 (en) Systems and methods for recording an indeterministic transaction on a distributed ledger network
WO2023116790A1 (zh) 计算任务的执行方法、装置、存储介质及电子装置
CN110610322A (zh) 基于区块链的线索数据处理方法、装置、设备及存储介质
CN110377609B (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
GR01 Patent grant
GR01 Patent grant