CN112631605B - 联邦学习模型的代码编译方法、装置、设备及存储介质 - Google Patents
联邦学习模型的代码编译方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112631605B CN112631605B CN202011618511.1A CN202011618511A CN112631605B CN 112631605 B CN112631605 B CN 112631605B CN 202011618511 A CN202011618511 A CN 202011618511A CN 112631605 B CN112631605 B CN 112631605B
- Authority
- CN
- China
- Prior art keywords
- model
- federal learning
- learning model
- training
- code
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000012549 training Methods 0.000 claims abstract description 224
- 238000004364 calculation method Methods 0.000 claims abstract description 137
- 238000010586 diagram Methods 0.000 claims abstract description 25
- 230000003993 interaction Effects 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 18
- 230000002776 aggregation Effects 0.000 claims description 13
- 238000004220 aggregation Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 34
- 238000012545 processing Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 25
- 238000012795 verification Methods 0.000 description 19
- 230000007246 mechanism Effects 0.000 description 13
- 238000013473 artificial intelligence Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 4
- 238000011176 pooling Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种联邦学习模型的代码编译方法、装置、电子设备及存储介质;方法包括:获取联邦学习模型的模型信息;基于所述模型信息,构建与所述模型信息相对应的计算图;其中,所述计算图,包含与所述联邦学习模型中各个层相对应的节点,用于指示所述联邦学习模型中各个层之间的前向连接关系和后向连接关系;获取所述计算图中各节点所对应的程序代码;按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对所述计算图中各节点所对应的程序代码进行编译,得到用于训练所述联邦学习模型的可执行训练代码;通过本申请,能够降低用户所需要实现的联邦学习模型的训练代码的复杂度,提高模型训练效率。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种联邦学习模型的代码编译方法、装置、电子设备及存储介质。
背景技术
人工智能(AI,Artificial Intelligence)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法和技术及应用***。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
随着人工智能的逐渐发展,联邦学习作为人工智能的重要方向受到广泛关注。相关技术中,联邦学习的训练代码需要基于各训练参与方的数据计算、参数训练、各方的交互等方面编译得到,对于用户来说,所要实现的代码逻辑相当复杂,需要更多的时间开发和维护,训练效率较低。
发明内容
本申请实施例提供一种联邦学习模型的代码编译方法、装置、电子设备及存储介质,能够降低用户所需要实现的联邦学习模型的训练代码的复杂度,提高模型训练效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种联邦学习模型的代码编译方法,包括:
获取联邦学习模型的模型信息;
基于所述模型信息,构建与所述模型信息相对应的计算图;
其中,所述计算图,包含与所述联邦学习模型中各个层相对应的节点,用于指示所述联邦学习模型中各个层之间的前向连接关系和后向连接关系;
获取所述计算图中各节点所对应的程序代码;
按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对所述计算图中各节点所对应的程序代码进行编译,得到用于训练所述联邦学习模型的可执行训练代码。
本申请实施例提供一种联邦学习模型的代码编译方法,包括:
呈现联邦学习模型对应的模型信息输入界面;
基于所述模型信息输入界面接收到输入的所述联邦学习模型的模型信息;
响应于基于输入的所述模型信息触发的代码编译指令,编译得到用于训练所述联邦学习模型的可执行训练代码;
其中,所述可执行训练代码,为按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译得到;
其中,所述计算图与所述模型信息相对应,包含与所述联邦学习模型中各个层相对应的节点,用于指示所述联邦学习模型中各个层之间的前向连接关系和后向连接关系。
本申请实施例还提供一种联邦学习模型的代码编译装置,包括:
第一获取模块,用于获取联邦学习模型的模型信息;
构建模块,用于基于所述模型信息,构建与所述模型信息相对应的计算图;
其中,所述计算图,包含与所述联邦学习模型中各个层相对应的节点,用于指示所述联邦学习模型中各个层之间的前向连接关系和后向连接关系;
第二获取模块,用于获取所述计算图中各节点所对应的程序代码;
编译模块,用于按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对所述计算图中各节点所对应的程序代码进行编译,得到用于训练所述联邦学习模型的可执行训练代码。
上述方案中,所述第一获取模块,还用于获取输入的所述联邦学习模型的模型信息代码;
对所述模型信息代码进行解析,得到所述联邦学习模型的模型信息。
上述方案中,所述第一获取模块,还用于呈现人机交互界面,并
在所述人机交互界面中呈现供选择的至少一种模型信息;
响应于针对所述至少一种模型信息中目标模型信息的选择操作,将所选择的目标模型信息作为所述联邦学习模型的模型信息。
上述方案中,所述计算图包括前向计算图和后向计算图,所述构建模块,还用于获取所述联邦学习模型中各个层的模型参数;
基于各个层的所述模型参数以及所述联邦学习模型中各个层之间的前向连接关系,构建与所述模型信息相对应的前向计算图,并基于各个层的所述模型参数以及所述联邦学习模型中各个层之间的后向连接关系,构建与所述模型信息相对应的后向计算图。
上述方案中,所述第二获取模块,还用于获取节点与程序代码之间的映射关系;
基于所述映射关系,分别以所述计算图中各节点为索引,从代码库中查找并获取相应的程序代码。
上述方案中,所述程序代码包括前向程序代码以及后向程序代码;所述编译模块,还用于按照所述联邦学习模型中各个层之间的前向连接关系,对所述计算图中各节点所对应的前向程序代码进行编译,得到所述联邦学习模型的前向可执行代码;
按照所述联邦学习模型中各个层之间的后向连接关系,对所述计算图中各节点所对应的后向程序代码进行编译,得到所述联邦学习模型的后向可执行代码;
将所述前向可执行代码以及所述后向可执行代码进行合并,得到用于训练所述联邦学习模型的可执行训练代码。
上述方案中,所述装置还包括:
运行模块,用于接收到针对所述可执行训练代码的运行指令;
响应于所述运行指令,运行所述可执行训练代码,以
调用各数据方设备通过所述联邦学习模型对训练样本进行预测,得到预测结果,并确定所述预测结果与相应的样本标签之间的差异,基于所述差异确定更新梯度,并将所述更新梯度发送至模型方设备;
调用所述模型方设备基于各所述数据方设备发送的更新梯度,更新所述联邦学习模型的模型参数,以得到训练完成的联邦学习模型。
上述方案中,所述运行模块,还用于接收到针对所述可执行训练代码的运行指令;
响应于所述运行指令,运行所述可执行训练代码,以
调用各数据方设备和模型方设备基于安全多方计算协议进行所述联邦学习模型的前向计算,得到前向计算结果;
调用各数据方设备确定所述前向计算结果与相应的样本标签之间的差异,基于所述差异确定更新梯度,并将所述更新梯度发送至模型方设备;
调用所述模型方设备基于各所述数据方设备发送的更新梯度,更新所述联邦学习模型的模型参数,以得到训练完成的联邦学习模型。
上述方案中,所述装置还包括:
调用模块,用于调用所述模型方设备基于区块链网络的智能合约,对训练得到的所述联邦学习模型进行共识验证,得到验证结果;
当所述验证结果表征共识验证通过后,将训练得到的所述联邦学习模型存储至所述区块链网络中。
上述方案中,所述运行模块,还用于接收到针对所述可执行训练代码的运行指令;
响应于所述运行指令,运行所述可执行训练代码,以
调用各数据方设备初始化所述联邦学习模型,并将初始化得到的所述联邦学习模型的模型参数发送至模型方设备;
调用所述模型方设备对各所述数据方设备发送的模型参数进行聚合处理,将聚合处理得到的模型参数作为所述联邦学习模型的初始模型参数,以基于所述初始模型参数训练所述联邦学习模型。
本申请实施例还提供一种联邦学习模型的代码编译装置,包括:
呈现模块,用于呈现联邦学习模型对应的模型信息输入界面;
接收模块,用于基于所述模型信息输入界面接收到输入的所述联邦学习模型的模型信息;
代码编译模块,用于响应于基于输入的所述模型信息触发的代码编译指令,编译得到用于训练所述联邦学习模型的可执行训练代码;
其中,所述可执行训练代码,为按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译得到;
其中,所述计算图与所述模型信息相对应,包含与所述联邦学习模型中各个层相对应的节点,用于指示所述联邦学习模型中各个层之间的前向连接关系和后向连接关系。
本申请实施例还提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的联邦学习模型的代码编译方法。
本申请实施例还提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时,实现本申请实施例提供的联邦学习模型的代码编译方法。
本申请实施例具有以下有益效果:
与相关技术中用户需要基于各训练参与方的数据计算、参数训练、各方的交互等方面编译得到训练代码相比,本申请实施例中首先基于获取的联邦学习模型的模型信息,构建与模型信息相对应的计算图,然后获取计算图中各节点对应的程序代码,由于该计算图中各节点与联邦学习模型中各个层相对应,用于指示联邦学习模型中各个层之间的前向连接关系和后向连接关系,则按照联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译,从而得到用于训练联邦学习模型的可执行训练代码;
如此,用户只需关注联邦学习模型的模型信息,无需考虑各训练参与方的数据计算、参数训练、各方的交互等方面,即可自动编译得到用于训练联邦学习模型的可执行训练代码,能够降低用户所需要实现的联邦学习模型的训练代码的复杂度,提高模型训练效率。
附图说明
图1是本申请实施例提供的联邦学习模型的代码编译***100的架构示意图;
图2是本申请实施例提供的联邦学习模型的代码编译方法的电子设备500的结构示意图;
图3是本申请实施例提供的联邦学习模型的代码编译方法的流程示意图;
图4是本申请实施例提供的人机交互界面的呈现示意图;
图5A是本申请实施例提供的联邦学习模型的模型结构示意图;
图5B是本申请实施例提供与联邦学习模型的模型结构相对应的计算图的示意图;
图6是本发明实施例提供的区块链网络600的应用架构示意图;
图7是本发明实施例提供的区块链网络600中区块链的结构示意图;
图8是本发明实施例提供的区块链网络600的功能架构示意图;
图9是本申请实施例提供的联邦学习模型的代码编译方法的流程示意图;
图10是本申请实施例提供的联邦学习模型的代码编译方法的流程示意图;
图11是本申请实施例提供的基于联邦学习模型的代码编译方法的模型训练方法;
图12是本申请实施例提供的联邦学习模型的训练示意图;
图13是本申请实施例提供的联邦学习模型的代码编译装置555的结构示意图;
图14是本申请实施例提供的联邦学习模型的代码编译装置600的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)签名,即数字签名,只有信息的发送者才能产生的、别人无法伪造的一段数字串,同时也是对信息的发送者发送信息真实性的有效证明;数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证,是非对称密钥加密技术与数字摘要技术的应用。
2)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
例如,部署(Deploy)交易用于向区块链网络中的节点安装指定的智能合约并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。
3)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。
4)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
5)账本(Ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。其中,区块链是以文件***中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。
6)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询的操作。
7)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
8)联邦机器学习(Federated machine learning/Federated Learning),又名联邦学习,联合学习,联盟学习。联邦机器学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。联邦学习作为分布式的机器学习范式,可以有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,能从技术上打破数据孤岛,实现AI协作。
9)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
10)安全多方计算(MPC,Secure Multi-Party Computation),是解决一组互不信任的参与方之间保护隐私的协同计算问题,MPC要确保输入的独立性、计算的正确性、去中心化等特征,同时***露各参与方数据给参与计算的其他成员。主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题,同时要求每个参与主体除了计算结果外不能得到其他实体任何的输入信息;即多个持有各自私有数据的参与方,共同执行一个计算逻辑计算逻辑(如,求最大值计算),并获得计算结果,但执行过程中,参与的每一方均不会泄漏各自数据的计算,被称之为MPC计算。
11)计算图,一个机器学习任务的核心是模型的定义以及模型的参数求解方式,对这两者进行抽象之后,可以确定一个唯一的计算逻辑,将这个逻辑用图表示,称之为计算图。计算图定义了数据的流转方式,数据的计算方式,以及各种计算之间的相互依赖关系等。
基于上述对本申请实施例中涉及的名词和术语的解释,下面说明本申请实施例提供的联邦学习模型的代码编译***。参见图1,图1是本申请实施例提供的联邦学习模型的代码编译***100的架构示意图,为实现支撑一个示例性应用,终端(示例性示出了终端400-1)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
终端(如终端400-1),用于呈现联邦学习模型对应的模型信息输入界面;基于模型信息输入界面接收到输入的联邦学习模型的模型信息;发送基于输入的模型信息触发的代码编译指令至服务器200;
服务器200,用于响应于代码编译指令,获取联邦学习模型的模型信息;基于模型信息,构建与模型信息相对应的计算图;获取计算图中各节点所对应的程序代码;按照联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译,得到用于训练联邦学习模型的可执行训练代码;返回可执行训练代码编译完成的通知消息至终端。
在实际应用中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端(如终端400-1)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表等,但并不局限于此。终端(如终端400-1)以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
参见图2,图2是本申请实施例提供的联邦学习模型的代码编译方法的电子设备500的结构示意图。在实际应用中,电子设备500可以为图1示出的服务器或终端,以电子设备500为图1示出的服务器为例,对实施本申请实施例的联邦学习模型的代码编译方法的电子设备进行说明,本申请实施例提供的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线***540耦合在一起。可理解,总线***540用于实现这些组件之间的连接通信。总线***540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线***540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作***551,包括用于处理各种基本***服务和执行硬件相关任务的***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作***设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的联邦学习模型的代码编译装置可以采用软件方式实现,图2示出了存储在存储器550中的联邦学习模型的代码编译装置555,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块5551、构建模块5552、第二获取模块5553和编译模块5554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的联邦学习模型的代码编译装置可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的联邦学习模型的代码编译装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的联邦学习模型的代码编译方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
基于上述对本申请实施例提供的联邦学习模型的代码编译***及电子设备的说明,下面说明本申请实施例提供的联邦学习模型的代码编译方法。在一些实施例中,本申请实施例提供的联邦学习模型的代码编译方法可由服务器或终端单独实施,或由服务器及终端协同实施,下面以服务器实施为例说明本申请实施例提供的联邦学习模型的代码编译方法。
参见图3,图3是本申请实施例提供的联邦学习模型的代码编译方法的流程示意图,本申请实施例提供的联邦学习模型的代码编译方法包括:
步骤101:服务器获取联邦学习模型的模型信息。
这里,在进行联邦学习模型训练之前,需要对联系学习模型的训练代码进行编译。在训练代码的编译时,服务器需要获取联邦学习模型的模型信息,该模型信息可以是联邦学习模型的模型结构,比如输入/输出维度、激活函数类型、损失函数、模型层数等。
在一些实施例中,服务器可通过如下方式获取联邦学习模型的模型结构:获取输入的联邦学习模型的模型结构代码;对模型结构代码进行解析,得到联邦学习模型的模型结构。
这里,用户可通过该服务器对应的前端终端所呈现的模型结构输入界面,比如模型结构代码输入界面,编辑输入联邦学习模型的模型结构代码。服务器获取基于模型结构输入界面所输入的联邦学习模型的模型结构代码,并对该模型结构代码进行解析,得到联邦学习模型的模型结构。在实际实施时,可以调用python解析库对联邦学习模型的模型结构代码进行解析,得到模型结构。
在一些实施例中,服务器还可通过如下方式获取联邦学习模型的模型结构:呈现人机交互界面,并在人机交互界面中呈现供选择的至少一种模型结构;响应于针对至少一种模型结构中目标模型结构的选择操作,将所选择的目标模型结构作为联邦学习模型的模型结构。
这里,用户可通过该服务器对应的前端终端所呈现的人机交互界面,比如模型结构选择界面,选择所需的联邦学习模型的模型结构。参见图4,图4是本申请实施例提供的人机交互界面的呈现示意图。这里,该人机交互界面为模型结构选择界面,包含至少一种类型的模型结构,每个类型的模型结构中包含至少一个模型结构,如模型的神经网络类型:卷积神经网络CNN、深度神经网络DNN等;模型的激活函数类型:Sigmoid函数、线性整流函数(ReLU,Rectified Linear Unit)等;模型的损失函数类型:交叉熵损失函数、对数损失函数等;输入维度;输出维度等。如图4所示,当前选择操作所选择的目标模型结构为神经网络类型为CNN、激活函数类型为线性整流函数、输入/输出维度均为1维、损失函数类型为交叉熵损失函数。
步骤102:基于模型信息,构建与模型信息相对应的计算图。
其中,该计算图,包含与联邦学习模型中各个层相对应的节点,用于指示联邦学习模型中各个层之间的前向连接关系和后向连接关系。
服务器在获取到模型结构后,根据该模型结构,构建与模型结构相对应的计算图。该计算图中包含与联邦学习模型中各个层相对应的节点,用于指示联邦学习模型中各个层之间的前向连接关系和后向连接关系,可以描述联邦学习模型中各个层之间数据的流转方式、数据的计算逻辑、以及各种计算之间的相互依赖关系等。
在一些实施例中,计算图包括前向计算图和后向计算图,服务器可通过如下方式构建与模型结构相对应的计算图:获取联邦学习模型中各个层的模型参数;基于各个层的模型参数以及联邦学习模型中各个层之间的前向连接关系,构建与模型结构相对应的前向计算图,并基于各个层的模型参数以及联邦学习模型中各个层之间的后向连接关系,构建与模型结构相对应的后向计算图。
在实际应用中,与模型结构相对应的计算图包括前向计算图和后向计算图。其中,前向计算图用于指示联邦学习模型中各个层之间的前向连接关系,后向计算图用于指示联邦学习模型中各个层之间的后向连接关系。基于此,在根据模型结构构建计算图时,首先获取联邦学习模型中各个层的模型参数,该模型参数可以是预先设置的,即每种联邦学习模型中各个层所对应的默认模型参数;然后根据基于各个层的模型参数以及联邦学习模型中各个层之间的前向连接关系,构建与模型结构相对应的前向计算图,并基于各个层的模型参数以及联邦学习模型中各个层之间的后向连接关系,构建与模型结构相对应的后向计算图。
作为示例,参见图5A和图5B,其中,图5A是本申请实施例提供的联邦学习模型的模型结构示意图,图5B是本申请实施例提供与联邦学习模型的模型结构相对应的计算图的示意图。这里,如图5A所示,联邦学习模型的模型结构包括输入层、卷积层1、池化层1、卷积层2、池化层2、全连接层以及输出层(对全连接层的输出进行回归),其对应的计算图如图5B所示,该计算图,包含与联邦学习模型中各个层相对应的节点,即输入层所对应节点、卷积层1所对应节点、池化层1所对应节点、卷积层2所对应节点、池化层2所对应节点、全连接层所对应节点以及输出层所对应节点。该计算图用于指示联邦学习模型中各个层之间的前向连接关系和后向连接关系。
步骤103:获取计算图中各节点所对应的程序代码。
在构建得到与模型结构相对应的计算图后,服务器进一步获取计算图中各个节点所对应的程序代码,该程序代码可以是预先提供的,比如可以预先存储于所提供的计算框架的代码库中,针对每个节点,均对应存储有用于描述相应节点的前向计算逻辑和后向计算逻辑的程序代码,具体可以包括前向程序代码以及后向程序代码,其中,该前向程序代码用于描述相应节点的前向计算逻辑,该后向程序代码用于描述相应节点的后向计算逻辑。比如卷积节点,所提供的计算框架的代码库中存储有对应卷积节点的程序代码,具体包括卷积节点所对应的前向程序代码和后向程序代码,该前向程序代码用于描述卷积节点的前向计算逻辑,该后向程序代码用于描述卷积节点的后向计算逻辑。
在一些实施例中,服务器可通过如下方式获取计算图中各节点所对应的程序代码:获取节点与程序代码之间的映射关系;基于映射关系,分别以计算图中各节点为索引,从代码库中查找并获取相应的程序代码。
在实际应用中,服务器获取计算图中各节点所对应的程序代码时,可以首先获取节点与程序代码之间的映射关系;然后基于该映射关系,分别以计算图中各节点为索引,从预先提供的代码库后,查找各节点所对应的程序代码,具体是查找各节点所对应的前向程序代码和后向程序代码。
步骤104:按照联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译,得到用于训练联邦学习模型的可执行训练代码。
在一些实施例中,程序代码包括前向程序代码以及后向程序代码;服务器可通过如下方式对计算图中各节点所对应的程序代码进行编译,得到用于训练联邦学习模型的可执行训练代码:按照联邦学习模型中各个层之间的前向连接关系,对计算图中各节点所对应的前向程序代码进行编译,得到联邦学习模型的前向可执行代码;按照联邦学习模型中各个层之间的后向连接关系,对计算图中各节点所对应的后向程序代码进行编译,得到联邦学习模型的后向可执行代码;将前向可执行代码以及后向可执行代码进行合并,得到用于训练联邦学习模型的可执行训练代码。
服务器在获取到计算图中各节点所对应的程序代码后,按照联邦学习模型中各个层之间的前向连接关系和后向连接关系,对各节点所对应的程序代码进行编译,得到用于训练联邦学习模型的可执行训练代码。
在实际应用中,由于各节点所对应的程序代码包括前向程序代码以及后向程序代码。因此在对各节点所对应的程序代码进行编译时,服务器可以按照联邦学习模型中各个层之间的前向连接关系,对计算图中各节点所对应的前向程序代码进行拼接,然后对拼接得到的各节点所对应的前向程序代码进行编译,比如采用即时编译器进行编译,得到联邦学习模型的前向可执行代码。该前向可执行代码用于在联邦学习模型的训练迭代过程中,根据样本数据进行前向计算,得到前向计算结果,即通过待训练的联邦学习模型对样本数据进行预测,得到预测结果。
然后,服务器可以按照联邦学习模型中各个层之间的后向连接关系,对计算图中各节点所对应的后向程序代码进行拼接,然后对拼接得到的各节点所对应的后向程序代码进行编译,比如采用即时编译器进行编译,得到联邦学习模型的后向可执行代码。该后向可执行代码用于在联邦学习模型的训练迭代的过程中,根据样本数据的前向计算结果以及相应的标签进行模型参数的更新梯度的计算、结合更新梯度更新相应的模型参数、将更新后的模型参数用于下一轮的迭代过程中。
在得到前向可执行代码以及后向可执行代码后,将前向可执行代码以及后向可执行代码进行合并,得到用于训练联邦学习模型的可执行训练代码。
在一些实施例中,服务器可通过如下方式对联邦学习模型进行训练:接收到针对可执行训练代码的运行指令;响应于运行指令,运行可执行训练代码,以调用各数据方设备初始化联邦学习模型,并将初始化得到的联邦学习模型的模型参数发送至模型方设备;调用模型方设备对各数据方设备发送的模型参数进行聚合处理,将聚合处理得到的模型参数作为联邦学习模型的初始模型参数,以基于初始模型参数训练联邦学习模型。
这里,当基于上述实施例编译得到用于训练联邦学习模型的可执行训练代码后,可以运行该可执行训练代码对联邦学习模型进行训练。当服务器接收到针对可执行训练代码的运行指令时,响应于运行指令,运行可执行代码。此时在运行可执行代码的过程中,服务器调用参与训练的各参与方的计算资源(比如各参与方设备的CPU/GPU等)来执行训练,这里,该训练参与方包括数据方以及模型方,其中数据方为数据的拥有方,模型方为根据用户的设置选定,或者基于选举机制得到。
具体地,服务器调用各数据方设备初始化联邦学习模型,即基于用户输入的模型结构(包括输入输出维度、激活函数类型、损失函数、隐含层层数等)来构建联邦学习模型。然后调用各数据方设备将初始化得到的联邦学习模型的模型参数发送至模型方设备,具体地,各数据方设备对联邦学习模型的模型参数进行加密,将加密后的模型参数发送至模型方设备以保证数据的安全。
当模型方设备接收到各数据方设备发送的联邦学***均处理,将聚合处理得到的模型参数作为联邦学***均处理,得到联邦学习模型的初始模型参数。
在得到联邦学习模型的初始模型参数后,以该初始模型参数为开始,对联邦学习模型进行训练,以得到训练完成的联邦学习模型。
在一些实施例中,服务器可通过如下方式对联邦学习模型进行训练:接收到针对可执行训练代码的运行指令;响应于运行指令,运行可执行训练代码,以调用各数据方设备通过联邦学习模型对训练样本进行预测,得到预测结果,并确定预测结果与相应的样本标签之间的差异,基于差异确定更新梯度,并将更新梯度发送至模型方设备;调用模型方设备基于各数据方设备发送的更新梯度,更新联邦学习模型的模型参数,以得到训练完成的联邦学习模型。
这里,当基于上述实施例编译得到用于训练联邦学习模型的可执行训练代码后,可以运行该可执行训练代码对联邦学习模型进行训练。当服务器接收到针对可执行训练代码的运行指令时,响应于运行指令,运行可执行代码。此时在运行可执行代码的过程中,服务器调用参与训练的各参与方的计算资源(比如各参与方设备的CPU/GPU等)来执行训练,这里,该训练参与方包括数据方以及模型方,其中数据方为数据的拥有方,模型方为根据用户的设置选定,或者基于选举机制得到,用于参与训练并存储联邦学习模型的模型参数。
在实际应用中,在第一轮迭代过程中,该联邦学***均处理后得到的初始模型参数。
在一些实施例中,在每一轮迭代过程中,服务器可以调用各数据方设备通过联邦学习模型对训练样本进行预测,得到预测结果,即各数据方设备基于存储的样本数据进行联邦学习模型的前向计算,得到前向计算结果;然后根据得到的预测结果与相应的样本标签之间的差异,确定模型参数的更新梯度,并将更新梯度发送至模型方设备。具体地,各数据方设备对联邦学习模型的更新梯度进行加密,将加密后的更新梯度发送至模型方设备以保证数据的安全。这里,针对每一轮迭代过程中,服务器在调用各数据方设备通过联邦学习模型对训练样本进行预测之初,需要首先获取上一轮迭代所得到的联邦学习模型的模型参数,以基于上一轮迭代所得到的联邦学习模型的模型参数对训练样本进行预测,得到预测结果。具体地,各数据方设备可以从模型方设备请求获取,由模型方设备加密发送至各数据方设备,各数据方设备解密后得到上一轮迭代所得到的联邦学习模型的模型参数。
当模型方设备接收到各参与方设备发送的更新梯度后,服务器调用模型方设备对各数据方设备发送的更新梯度进行解密,基于解密后的各数据方设备发送的更新梯度,更新联邦学***均处理,基于聚合处理得到的更新梯度更新联邦学***均处理,得到加权平均处理后的更新梯度,基于加权平均处理得到的更新梯度更新联邦学习模型的模型参数,以得到训练完成联邦学习模型。
在一些实施例中,服务器还可通过如下方式对联邦学习模型进行训练:接收到针对可执行训练代码的运行指令;响应于运行指令,运行可执行训练代码,以调用各数据方设备和模型方设备基于安全多方计算协议进行联邦学习模型的前向计算,得到前向计算结果;调用各数据方设备确定前向计算结果与相应的样本标签之间的差异,基于差异确定更新梯度,并将更新梯度发送至模型方设备;调用模型方设备基于各数据方设备发送的更新梯度,更新联邦学习模型的模型参数,以得到训练完成的联邦学习模型。
这里,当基于上述实施例编译得到用于训练联邦学习模型的可执行训练代码后,可以运行该可执行训练代码对联邦学习模型进行训练。当服务器接收到针对可执行训练代码的运行指令时,响应于运行指令,运行可执行代码。此时在运行可执行代码的过程中,服务器调用参与训练的各参与方的计算资源(比如各参与方设备的CPU/GPU等)来执行训练,这里,该训练参与方包括数据方以及模型方,其中数据方为数据的拥有方,模型方为根据用户的设置选定,或者基于选举机制得到,用于参与训练并存储联邦学习模型的模型参数。
在实际应用中,在第一轮迭代过程中,该联邦学***均处理后得到的初始模型参数。
在一些实施例中,在每一轮迭代过程中,服务器还可以调用模型方设备与各数据方设备通过安全多方计算中的SPDZ协议,共同进行加密的前向计算,得到前向计算结果(即通过联邦学习模型对数据方的样本数据进行预测,得到预测结果)。该基于SPDZ协议的加密训练过程中,数据方(比如拥有真实样本数据x)与模型方(比如拥有模型参数数据w和b)均对彼此的数据是不可知的,即各数据方设备是无法获取到模型训练过程中的中间结果的,模型方设备也是无法获取到各数据方设备所拥有的真实样本数据,如此避免各数据方将真实样本数据发送至第三方(比如模型方)导致数据泄露、以及为避免部分恶意参与方获取中间结果,通过倒退计算的方式盗取其他参与方的真实样本数据的风险发生。具体地,各数据方设备(比如拥有样本数据x)和模型方设备(比如拥有模型参数数据w和b)均可以对自身的数据***随机数值并进行加密,使得对方不能获取到自身的真实数据;然后将加密的数据发送至对方,从而双方(模型方和各数据方)均进行前向加密计算以使双方得到前向计算结果。
在得到前向计算结果后,由于只有数据方设备存储有样本数据对应的标签,此时服务器继续调用各数据方设备将前向计算结果和相应的样本数据标签输入至损失函数中,计算得到更新梯度;然后将更新梯度加密发送给模型方设备。
当模型方设备接收到各参与方设备发送的更新梯度后,服务器调用模型方设备对各数据方设备发送的更新梯度进行解密,基于解密后的各数据方设备发送的更新梯度,更新联邦学***均处理,基于聚合处理得到的更新梯度更新联邦学***均处理,得到加权平均处理后的更新梯度,基于加权平均处理得到的更新梯度更新联邦学习模型的模型参数,以得到训练完成联邦学习模型。
在实际应用中,该联邦学习模型可以是风控模型,比如信贷逾期模型等。
在一些实施例中,服务器可调用模型方设备基于区块链网络的智能合约,对训练得到的联邦学习模型进行共识验证,得到验证结果;当验证结果表征共识验证通过后,将训练得到的联邦学习模型存储至区块链网络中。
这里,服务器在调用各数据方设备以及模型方设备训练得到联邦学习模型后,还可以结合区块链技术,调用存储有训练完成的联邦学习模型的模型方设备,将训练完成的联邦学习模型存储至区块链网络,以使各数据方设备在获取该联邦学习模型时,能够直接从区块链网络中获取到联邦学习模型。
在实际应用中,服务器在调用各数据方设备以及模型方设备训练得到联邦学习模型后,可继续调用模型方设备生成用于存储联邦学习模型的交易,并发送生成的交易至区块链网络的节点,以使节点对交易共识后将联邦学习模型存储至区块链网络;在存储至区块链网络之前,服务方设备还可获取联邦学习模型对应的密钥的摘要信息;将得到的密钥的摘要信息存储至区块链网络。
接下来对本发明实施例中的区块链网络进行说明。图6为本发明实施例提供的区块链网络的应用架构示意图,包括区块链网络600(示例性示出了共识节点610,如共识节点610-1至共识节点610-3)、认证中心700、业务主体800,下面分别说明。
区块链网络600的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备(例如终端/服务器),都可以在不需要授权的情况下接入区块链网络600;以联盟链为例,业务主体在获得授权后其下辖的电子设备可以接入区块链网络600。如此,成为区块链网络600中的客户端节点。
在一些实施例中,客户端节点可以只作为区块链网络600的观察者,即提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络600的共识节点610的功能,例如排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络600中,通过区块链网络600实现数据和业务处理过程的可信和可追溯。
区块链网络600中的共识节点接收来自不同业务主体(如业务主体800)的客户端节点(如归属于业务主体800的客户端节点810)提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回至业务主体的客户端节点中显示。
下面以业务主体接入区块链网络以实现联邦学习模型的获取为例说明区块链的示例性应用。
参见图6,联邦学习模型的训练方法涉及的业务主体800,从认证中心700进行登记注册获得数字证书,数字证书中包括业务主体的公钥、以及认证中心700对业务主体的公钥和身份信息签署的数字签名,用来与业务主体针对交易的数字签名一起附加到交易中,并被发送到区块链网络,以供区块链网络从交易中取出数字证书和签名,验证消息的可靠性(即是否未经篡改)和发送消息的业务主体的身份信息,区块链网络会根据身份进行验证,例如是否具有发起交易的权限。业务主体下辖的电子设备(例如终端或者服务器)运行的客户端都可以向区块链网络600请求接入而成为客户端节点。
首先,业务主体800的客户端节点810在获取联邦学习模型时,生成用于获取区块链中存储的联邦学习模型的交易,在交易中指定了实现联邦学习模型的获取操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了客户端节点810的数字证书、签署的数字签名(例如,使用客户端节点810的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络600中的共识节点。
然后,区块链网络600的共识节点610接收到交易时,对交易携带的数字证书和数字签名进行验证,验证成功后,根据交易中携带的业务主体800的身份,确认业务主体800是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署共识节点610自己的数字签名(例如,使用节点610-1的私钥对交易的摘要进行加密得到),并继续在区块链网络600中广播。
最后,区块链网络600中的共识节点610接收到验证成功的交易后,将交易填充到新的区块中,并进行广播。区块链网络600中的共识节点610在广播新区块时,会对新区块进行共识过程,如果共识成功,则将新区块追加到自身所存储的区块链的尾部,并根据交易的结果更新状态数据库,执行新区块中的交易:对于提交的获取联邦学习模型的交易,从状态数据库中查询联邦学习模型对应的键值对,并返回交易结果。
作为区块链的示例,参见图7,图7是本发明实施例提供的区块链网络600中区块链的结构示意图,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,新产生的交易的记录被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长,区块之间基于哈希值的链式结构保证了区块中交易的防篡改和防伪造。
下面说明本发明实施例提供的区块链网络的示例性的功能架构,参见图8,图8是本发明实施例提供的区块链网络600的功能架构示意图,包括应用层1、共识层2、网络层3、数据层4和资源层5,下面分别进行说明。
资源层5封装了实现区块链网路600中的各个节点610的计算资源、存储资源和通信资源。
数据层4封装了实现账本的各种数据结构,包括以文件***中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
网络层3封装了点对点(P2P,Point to Point)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
其中,P2P网络协议实现区块链网络600中节点610之间的通信,数据传播机制保证了交易在区块链网络600中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点610之间传输数据的可靠性;接入认证机制用于根据实际的业务场景对加入区块链网络600的业务主体的身份进行认证,并在认证通过时赋予业务主体接入区块链网络600的权限;业务主体身份管理用于存储允许接入区块链网络600的业务主体的身份、以及权限(例如能够发起的交易的类型)。
共识层2封装了区块链网络600中的节点610对区块达成一致性的机制(即共识机制)、交易管理和账本管理的功能。共识机制包括POS、POW和DPOS等共识算法,支持共识算法的可插拔。
交易管理用于验证节点610接收的交易中携带的数字签名,验证业务主体的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信息);对于获得接入区块链网络600的授权的业务主体而言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法身份。
账本管理用于维护区块链和状态数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,当交易包括查询操作时查询状态数据库中的键值对并向业务主体的客户端节点返回查询结果。支持对状态数据库的多种维度的查询操作,包括:根据区块序列号(例如交易的哈希值)查询区块;根据区块哈希值查询区块;根据交易序列号查询区块;根据交易序列号查询交易;根据业务主体的账号(序列号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
应用层1封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
应用本申请上述实施例,与相关技术中用户需要基于各训练参与方的数据计算、参数训练、各方的交互等方面编译得到训练代码相比,本申请实施例中首先基于获取的联邦学习模型的模型信息,构建与模型信息相对应的计算图,然后获取计算图中各节点对应的程序代码,由于该计算图中各节点与联邦学习模型中各个层相对应,用于指示联邦学习模型中各个层之间的前向连接关系和后向连接关系,则按照联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译,从而得到用于训练联邦学习模型的可执行训练代码;
如此,用户只需关注联邦学习模型的模型信息,无需考虑各训练参与方的数据计算、参数训练、各方的交互等方面,即可自动编译得到用于训练联邦学习模型的可执行训练代码,能够降低用户所需要实现的联邦学习模型的训练代码的复杂度,提高模型训练效率。
下面说明本申请实施例提供的联邦学习模型的代码编译方法。在一些实施例中,本申请实施例提供的联邦学习模型的代码编译方法可由服务器或终端单独实施,或由服务器及终端协同实施,下面以终端实施为例说明本申请实施例提供的联邦学习模型的代码编译方法。
参见图9,图9是本申请实施例提供的联邦学习模型的代码编译方法的流程示意图,本申请实施例提供的联邦学习模型的代码编译方法包括:
步骤201:终端呈现联邦学习模型对应的模型信息输入界面。
步骤202:基于模型信息输入界面接收到输入的联邦学习模型的模型信息。
这里,该终端为用于训练联邦学习模型的服务器的前端设备。在实际应用中,终端呈现有联邦学习模型对应的模型信息输入界面,用户可通过终端所呈现的模型信息输入界面,编辑输入联邦学习模型对应的模型信息,该模型信息可以是联邦学习模型的模型结构,比如输入/输出维度、激活函数类型、损失函数、模型层数等。
具体地,该模型信息输入界面可以是模型信息代码输入界面,用户基于模型信息代码输入界面编辑输入联邦学习模型的模型信息代码。终端基于模型信息代码输入界面接收到输入的联邦学习模型的模型信息代码,可以对模型信息代码进行解析,得到联邦学习模型的模型信息。
该模型信息输入界面还可以是人机交互界面(比如模型信息选择界面),该人机交互界面中呈现有供选择的至少一种模型信息,用户可通过人机交互界面,选择所需的联邦学习模型的模型信息。终端基于人机交互界面,接收到针对至少一种模型信息中目标模型信息的选择操作,将所选择的目标模型信息作为联邦学习模型的模型信息。
步骤203:响应于基于输入的模型结构触发的代码编译指令,编译得到用于训练联邦学习模型的可执行训练代码。
其中,该可执行训练代码,为按照联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译得到;
其中,该计算图与模型结构相对应,包含与联邦学习模型中各个层相对应的节点,用于指示联邦学习模型中各个层之间的前向连接关系和后向连接关系。
在基于模型信息输入界面接收到输入的联邦学习模型的模型信息后,如果接收到针对输入的模型信息所触发的代码编译指令,则响应于该代码编译指令,编译得到用于训练联邦学习模型的可执行训练代码。具体地,终端可首先基于模型信息,构建与模型信息相对应的计算图,然后获取计算图中各节点所对应的程序代码;最后按照联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译,得到用于训练联邦学习模型的可执行训练代码。
应用本申请上述实施例,与相关技术中用户需要基于各训练参与方的数据计算、参数训练、各方的交互等方面编译得到训练代码相比,本申请实施例中首先基于获取的联邦学习模型的模型信息,构建与模型信息相对应的计算图,然后获取计算图中各节点对应的程序代码,由于该计算图中各节点与联邦学习模型中各个层相对应,用于指示联邦学习模型中各个层之间的前向连接关系和后向连接关系,则按照联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译,从而得到用于训练联邦学习模型的可执行训练代码;
如此,用户只需关注联邦学习模型的模型信息,无需考虑各训练参与方的数据计算、参数训练、各方的交互等方面,即可自动编译得到用于训练联邦学习模型的可执行训练代码,能够降低用户所需要实现的联邦学习模型的训练代码的复杂度,提高模型训练效率。
接下来继续对本申请实施例提供的联邦学习模型的代码编译方法进行说明,参见图10,图10为本申请实施例提供的联邦学习模型的代码编译方法的流程示意图,本申请实施例提供的联邦学习模型的代码编译方法包括:
步骤301:终端呈现联邦学习模型对应的模型结构输入界面。
步骤302:基于模型结构输入界面接收到输入的联邦学习模型的模型结构,发送基于输入的模型结构触发的代码编译指令至服务器。
步骤303:服务器响应于代码编译指令,获取联邦学习模型的模型结构。
步骤304:基于模型结构,构建与模型结构相对应的计算图。
步骤305:获取计算图中各节点所对应的程序代码。
步骤306:按照联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译,得到用于训练联邦学习模型的可执行训练代码。
这里,参见图11,图11是本申请实施例提供的基于联邦学习模型的代码编译方法的模型训练方法,包括:
步骤a,接收到输入的横向联邦学习模型的模型结构代码。
该模型结构代码可以是基于python的源代码。在需要进行联邦学习模型的训练时,用户可以定义联邦学习模型的基本信息,即模型结构,例如全接连层数、每层全连接的输入输出维度、激活函数类型、损失函数等。在实际实施时,可以提供一个涵盖多层感知机模型的基本结构的库,包含常见的激活函数:Sigmoid函数、线性整流函数等。另外用户只需要选择模型服务器,无需关心训练过程中各方的交互过程。
步骤b,调用python解析库解析模型结构代码,构建前向计算图和后向计算图。
多层感知机是一种前向结构的人工神经网络,映射一组输入向量到一组输出向量,算法使用反向传播算法优化模型。这里,根据步骤a中用户输入的模型结构代码,构建与模型结构相对应的前向计算图和后向计算图。该计算图中的各节点与模型结构各个层相对应,每个节点存储有模型结构的各个层的模型参数,比如全连接层的输入/输出维度,PReLU(Parametric Rectified Linear Unit带参数的线性整流函数)层的参数等。
在实际应用中,计算图中各节点会有对应的程序代码,比如,卷积节点,会有对应卷积节点的前向计算代码和后向计算代码,不同节点对应的前向计算代码和后向计算代码存储于提供的计算框架中。
步骤c,根据前向计算图和后向计算图,生成基于联邦编译器的可执行训练代码。
这里,获取计算图中各节点对应的程序代码,然后根据步骤b生成的前向计算图和后向计算图,对各节点对应的程序代码进行编译,生成基于联邦编译器的联邦学习模型的可执行训练代码。
步骤d,响应于针对可执行训练代码的运行指令,运行联邦学习模型的可执行训练代码。
步骤e,运行联邦学习模型的可执行训练代码后,各训练参与方协同训练至联邦学习模型收敛,实现横向联邦多层感知机的训练/验证。
步骤307:终端接收到针对可执行训练代码的运行指令,发送运行指令至服务器。
步骤308:服务器响应于运行指令,运行可执行训练代码。
步骤309:调用各数据方设备初始化联邦学习模型,并将初始化得到的联邦学习模型的模型参数发送至模型方设备。
步骤310:调用模型方设备对各数据方设备发送的模型参数进行聚合处理,将聚合处理得到的模型参数作为联邦学习模型的初始模型参数。
步骤311:调用各数据方设备和模型方设备基于安全多方计算协议进行联邦学习模型的前向计算,得到前向计算结果,并调用各数据方设备确定前向计算结果与相应的样本标签之间的差异。
步骤312:调用各数据方设备基于差异确定更新梯度,并将更新梯度发送至模型方设备。
步骤313:调用模型方设备基于各数据方设备发送的更新梯度,更新联邦学习模型的模型参数,以得到训练完成的联邦学习模型。
这里,参见图12,图12是本申请实施例提供的联邦学习模型的训练示意图。这里,
步骤1,各个训练参与方约定联邦学习模型的模型结构(即图11步骤a中用户定义的模型结构,包含输入输出/隐含层层数等),并初始化联邦学习模型。
这里,训练参与方包括模型方(即为图12所示的模型服务器)以及至少一个数据方(即为图12所示的参与方-甲、参与方-乙、参与方-丙),该模型方可以由各参与方所指定。
步骤2,各数据方将模型参数加密后发送给模型方,模型方对各数据方模型参数加权平均后,对加权平均后的模型参数进行解密,将解密得到的模型参数作为联邦学习模型的初始模型参数。
这里,联邦编译器提供了加密解密模块,满足模型方和每一个数据方的一对一的(加密/传输/解密)的通道,以保证数据的安全。
步骤3,在每一轮训练过程中,模型方和每一个数据方通过安全多方计算中的SPDZ协议实现加密的前向计算,得到前向计算结果;将前向计算结果和各数据方的样本数据标签输入损失函数,计算得到梯度;将梯度加密发送给模型方;模型方对接收的梯度解密后,通过梯度回传更新模型的模型参数。
在实际应用中,在第一轮迭代过程中,该联邦学***均处理后得到的初始模型参数。
这里,相较于相关技术中采用安全多方计算时把数据先集中后再分发给多方的训练方式,在本申请实施例提供的基于SPDZ协议的加密训练过程中,数据方无需将真实样本数据发送至第三方(比如模型方)即可实现模型的训练,保证了数据的安全性。具体地,模型方和每个数据方通过安全多方计算中的SPDZ协议,共同进行加密的前向计算,得到前向计算结果。该基于SPDZ协议的加密训练过程中,各数据方(比如拥有真实样本数据x)和模型方(比如拥有模型参数数据w和b)均可以对自身的数据***随机数值并进行一次加密,使得对方不能获取到自身的真实数据;将加密的数据发送至对方,从而双方均进行前向计算以使双方均得到前向计算结果。由于SPDZ协议的加密,模型方和各数据方均对彼此的数据是不可知的,避免部分恶意参与方获取中间结果,通过倒退计算的方式盗取其他参与方的数据。
在得到前向计算结果后,由于只有数据方存储有样本数据对应的标签,各数据方将前向计算结果和各数据方的样本数据标签输入损失函数,计算得到梯度;然后将梯度加密发送给模型方;模型方对接收的梯度解密后,通过梯度回传更新模型的模型参数。
这里,训练过程中也支持中途新增数据方,模型参数保存在模型方设备(即模型服务器),数据保存在数据方。新增数据方只需要在新的一轮训练过程,并行的完成基于SPDZ协议的前向加密计算,获得梯度并发送至模型方即可。然后由模型方通过梯度回传更新模型参数,以得到最终的联邦模型。最后模型方可以保存模型,然后把最终的模型参数加密后分发给各数据拥有方。
应用本申请上述实施例,第一,用户只需关注联邦学习模型的模型结构,无需考虑各训练参与方的数据计算、参数训练、各方的交互等方面,即可自动编译生成用于训练联邦学习模型的可执行训练代码,支持各数据方代码复用,能够降低用户所需要实现的联邦学习模型的训练代码的复杂度,提高模型训练效率;第二,能够保证各数据拥有方的数据安全,数据在不离开数据拥有方的前提下完成训练模;且过程中模型参数保存在模型方上,可以避免部分恶意参与方获取中间结果,通过倒退计算的方式盗取其他参与方的数据。
下面继续说明本申请实施例提供的联邦学习模型的代码编译装置555,在一些实施例中,联邦学习模型的代码编译装置可采用软件模块的方式实现。参见图13,图13是本申请实施例提供的联邦学习模型的代码编译装置555的结构示意图,本申请实施例提供的联邦学习模型的代码编译装置555包括:
第一获取模块5551,用于获取联邦学习模型的模型信息;
构建模块5552,用于基于所述模型信息,构建与所述模型信息相对应的计算图;
其中,所述计算图,包含与所述联邦学习模型中各个层相对应的节点,用于指示所述联邦学习模型中各个层之间的前向连接关系和后向连接关系;
第二获取模块5553,用于获取所述计算图中各节点所对应的程序代码;
编译模块5554,用于按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对所述计算图中各节点所对应的程序代码进行编译,得到用于训练所述联邦学习模型的可执行训练代码。
在一些实施例中,所述第一获取模块5551,还用于获取输入的所述联邦学习模型的模型信息代码;
对所述模型信息代码进行解析,得到所述联邦学习模型的模型信息。
在一些实施例中,所述第一获取模块5551,还用于呈现人机交互界面,并在所述人机交互界面中呈现供选择的至少一种模型信息;
响应于针对所述至少一种模型信息中目标模型信息的选择操作,将所选择的目标模型信息作为所述联邦学习模型的模型信息。
在一些实施例中,所述计算图包括前向计算图和后向计算图,所述构建模块5552,还用于获取所述联邦学习模型中各个层的模型参数;
基于各个层的所述模型参数以及所述联邦学习模型中各个层之间的前向连接关系,构建与所述模型信息相对应的前向计算图,并基于各个层的所述模型参数以及所述联邦学习模型中各个层之间的后向连接关系,构建与所述模型信息相对应的后向计算图。
在一些实施例中,所述第二获取模块5553,还用于获取节点与程序代码之间的映射关系;
基于所述映射关系,分别以所述计算图中各节点为索引,从代码库中查找并获取相应的程序代码。
在一些实施例中,所述程序代码包括前向程序代码以及后向程序代码;所述编译模块5554,还用于按照所述联邦学习模型中各个层之间的前向连接关系,对所述计算图中各节点所对应的前向程序代码进行编译,得到所述联邦学习模型的前向可执行代码;
按照所述联邦学习模型中各个层之间的后向连接关系,对所述计算图中各节点所对应的后向程序代码进行编译,得到所述联邦学习模型的后向可执行代码;
将所述前向可执行代码以及所述后向可执行代码进行合并,得到用于训练所述联邦学习模型的可执行训练代码。
在一些实施例中,所述装置还包括:
运行模块,用于接收到针对所述可执行训练代码的运行指令;
响应于所述运行指令,运行所述可执行训练代码,以
调用各数据方设备通过所述联邦学习模型对训练样本进行预测,得到预测结果,并确定所述预测结果与相应的样本标签之间的差异,基于所述差异确定更新梯度,并将所述更新梯度发送至模型方设备;
调用所述模型方设备基于各所述数据方设备发送的更新梯度,更新所述联邦学习模型的模型参数,以得到训练完成的联邦学习模型。
上述方案中,所述运行模块,还用于接收到针对所述可执行训练代码的运行指令;
响应于所述运行指令,运行所述可执行训练代码,以
调用各数据方设备和模型方设备基于安全多方计算协议进行所述联邦学习模型的前向计算,得到前向计算结果;
调用各数据方设备确定所述前向计算结果与相应的样本标签之间的差异,基于所述差异确定更新梯度,并将所述更新梯度发送至模型方设备;
调用所述模型方设备基于各所述数据方设备发送的更新梯度,更新所述联邦学习模型的模型参数,以得到训练完成的联邦学习模型。
在一些实施例中,所述装置还包括:
调用模块,用于调用所述模型方设备基于区块链网络的智能合约,对训练得到的所述联邦学习模型进行共识验证,得到验证结果;
当所述验证结果表征共识验证通过后,将训练得到的所述联邦学习模型存储至所述区块链网络中。
在一些实施例中,所述运行模块,还用于接收到针对所述可执行训练代码的运行指令;
响应于所述运行指令,运行所述可执行训练代码,以
调用各数据方设备初始化所述联邦学习模型,并将初始化得到的所述联邦学习模型的模型参数发送至模型方设备;
调用所述模型方设备对各所述数据方设备发送的模型参数进行聚合处理,将聚合处理得到的模型参数作为所述联邦学习模型的初始模型参数,以基于所述初始模型参数训练所述联邦学习模型。
应用本申请上述实施例,与相关技术中用户需要基于各训练参与方的数据计算、参数训练、各方的交互等方面编译得到训练代码相比,本申请实施例中首先基于获取的联邦学习模型的模型信息,构建与模型信息相对应的计算图,然后获取计算图中各节点对应的程序代码,由于该计算图中各节点与联邦学习模型中各个层相对应,用于指示联邦学习模型中各个层之间的前向连接关系和后向连接关系,则按照联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译,从而得到用于训练联邦学习模型的可执行训练代码;
如此,用户只需关注联邦学习模型的模型信息,无需考虑各训练参与方的数据计算、参数训练、各方的交互等方面,即可自动编译得到用于训练联邦学习模型的可执行训练代码,能够降低用户所需要实现的联邦学习模型的训练代码的复杂度,提高模型训练效率。
下面继续说明本申请实施例提供的联邦学习模型的代码编译装置600,参见图14,图14是本申请实施例提供的联邦学习模型的代码编译装置600的结构示意图,本申请实施例提供的联邦学习模型的代码编译装置600包括:
呈现模块610,用于呈现联邦学习模型对应的模型信息输入界面;
接收模块620,用于基于所述模型信息输入界面接收到输入的所述联邦学习模型的模型信息;
代码编译模块630,用于响应于基于输入的所述模型信息触发的代码编译指令,编译得到用于训练所述联邦学习模型的可执行训练代码;
其中,所述可执行训练代码,为按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译得到;
其中,所述计算图与所述模型信息相对应,包含与所述联邦学习模型中各个层相对应的节点,用于指示所述联邦学习模型中各个层之间的前向连接关系和后向连接关系。
应用本申请上述实施例,与相关技术中用户需要基于各训练参与方的数据计算、参数训练、各方的交互等方面编译得到训练代码相比,本申请实施例中首先基于获取的联邦学习模型的模型信息,构建与模型信息相对应的计算图,然后获取计算图中各节点对应的程序代码,由于该计算图中各节点与联邦学习模型中各个层相对应,用于指示联邦学习模型中各个层之间的前向连接关系和后向连接关系,则按照联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译,从而得到用于训练联邦学习模型的可执行训练代码;
如此,用户只需关注联邦学习模型的模型信息,无需考虑各训练参与方的数据计算、参数训练、各方的交互等方面,即可自动编译得到用于训练联邦学习模型的可执行训练代码,能够降低用户所需要实现的联邦学习模型的训练代码的复杂度,提高模型训练效率。
本申请实施例还提供一种电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的联邦学习模型的代码编译方法。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的联邦学习模型的代码编译方法。
本申请实施例还提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时,实现本申请实施例提供的联邦学习模型的代码编译方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (14)
1.一种联邦学习模型的代码编译方法,其特征在于,所述方法包括:
获取联邦学习模型的模型信息;
基于所述模型信息,构建与所述模型信息相对应的计算图;
其中,所述计算图,包含与所述联邦学习模型中各个层相对应的节点,用于指示所述联邦学习模型中各个层之间的前向连接关系和后向连接关系;
获取所述计算图中各节点所对应的程序代码;
按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对所述计算图中各节点所对应的程序代码进行编译,得到用于训练所述联邦学习模型的可执行训练代码。
2.如权利要求1所述的方法,其特征在于,所述获取联邦学习模型的模型信息,包括:
获取输入的所述联邦学习模型的模型信息代码;
对所述模型信息代码进行解析,得到所述联邦学习模型的模型信息。
3.如权利要求1所述的方法,其特征在于,所述获取联邦学习模型的模型信息,包括:
呈现人机交互界面,并
在所述人机交互界面中呈现供选择的至少一种模型信息;
响应于针对所述至少一种模型信息中目标模型信息的选择操作,将所选择的目标模型信息作为所述联邦学习模型的模型信息。
4.如权利要求1所述的方法,其特征在于,所述计算图包括前向计算图和后向计算图,所述基于所述模型信息,构建与所述模型信息相对应的计算图,包括:
获取所述联邦学习模型中各个层的模型参数;
基于各个层的所述模型参数以及所述联邦学习模型中各个层之间的前向连接关系,构建与所述模型信息相对应的前向计算图,并基于各个层的所述模型参数以及所述联邦学习模型中各个层之间的后向连接关系,构建与所述模型信息相对应的后向计算图。
5.如权利要求1所述的方法,其特征在于,所述获取所述计算图中各节点所对应的程序代码,包括:
获取节点与程序代码之间的映射关系;
基于所述映射关系,分别以所述计算图中各节点为索引,从代码库中查找并获取相应的程序代码。
6.如权利要求1所述的方法,其特征在于,所述程序代码包括前向程序代码以及后向程序代码;
所述按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对所述计算图中各节点所对应的程序代码进行编译,得到用于训练所述联邦学习模型的可执行训练代码,包括:
按照所述联邦学习模型中各个层之间的前向连接关系,对所述计算图中各节点所对应的前向程序代码进行编译,得到所述联邦学习模型的前向可执行代码;
按照所述联邦学习模型中各个层之间的后向连接关系,对所述计算图中各节点所对应的后向程序代码进行编译,得到所述联邦学习模型的后向可执行代码;
将所述前向可执行代码以及所述后向可执行代码进行合并,得到用于训练所述联邦学习模型的可执行训练代码。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收到针对所述可执行训练代码的运行指令;
响应于所述运行指令,运行所述可执行训练代码,以
调用各数据方设备通过所述联邦学习模型对训练样本进行预测,得到预测结果,并确定所述预测结果与相应的样本标签之间的差异,基于所述差异确定更新梯度,并将所述更新梯度发送至模型方设备;
调用所述模型方设备基于各所述数据方设备发送的更新梯度,更新所述联邦学习模型的模型参数,以得到训练完成的联邦学习模型。
8.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收到针对所述可执行训练代码的运行指令;
响应于所述运行指令,运行所述可执行训练代码,以
调用各数据方设备和模型方设备基于安全多方计算协议进行所述联邦学习模型的前向计算,得到前向计算结果;
调用各数据方设备确定所述前向计算结果与相应的样本标签之间的差异,基于所述差异确定更新梯度,并将所述更新梯度发送至模型方设备;
调用所述模型方设备基于各所述数据方设备发送的更新梯度,更新所述联邦学习模型的模型参数,以得到训练完成的联邦学习模型。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收到针对所述可执行训练代码的运行指令;
响应于所述运行指令,运行所述可执行训练代码,以
调用各数据方设备初始化所述联邦学习模型,并将初始化得到的所述联邦学习模型的模型参数发送至模型方设备;
调用所述模型方设备对各所述数据方设备发送的模型参数进行聚合处理,将聚合处理得到的模型参数作为所述联邦学习模型的初始模型参数,以基于所述初始模型参数训练所述联邦学习模型。
10.一种联邦学习模型的代码编译方法,其特征在于,所述方法包括:
呈现联邦学习模型对应的模型信息输入界面;
基于所述模型信息输入界面接收到输入的所述联邦学习模型的模型信息;
响应于基于输入的所述模型信息触发的代码编译指令,编译得到用于训练所述联邦学习模型的可执行训练代码;
其中,所述可执行训练代码,为按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译得到;
其中,所述计算图与所述模型信息相对应,包含与所述联邦学习模型中各个层相对应的节点,用于指示所述联邦学习模型中各个层之间的前向连接关系和后向连接关系。
11.一种联邦学习模型的代码编译装置,其特征在于,所述装置包括:
第一获取模块,用于获取联邦学习模型的模型信息;
构建模块,用于基于所述模型信息,构建与所述模型信息相对应的计算图;
其中,所述计算图,包含与所述联邦学习模型中各个层相对应的节点,用于指示所述联邦学习模型中各个层之间的前向连接关系和后向连接关系;
第二获取模块,用于获取所述计算图中各节点所对应的程序代码;
编译模块,用于按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对所述计算图中各节点所对应的程序代码进行编译,得到用于训练所述联邦学习模型的可执行训练代码。
12.一种联邦学习模型的代码编译装置,其特征在于,所述装置包括:
呈现模块,用于呈现联邦学习模型对应的模型信息输入界面;
接收模块,用于基于所述模型信息输入界面接收到输入的所述联邦学习模型的模型信息;
代码编译模块,用于响应于基于输入的所述模型信息触发的代码编译指令,编译得到用于训练所述联邦学习模型的可执行训练代码;
其中,所述可执行训练代码,为按照所述联邦学习模型中各个层之间的前向连接关系和后向连接关系,对计算图中各节点所对应的程序代码进行编译得到;
其中,所述计算图与所述模型信息相对应,包含与所述联邦学习模型中各个层相对应的节点,用于指示所述联邦学习模型中各个层之间的前向连接关系和后向连接关系。
13.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现如权利要求1至10任一项所述的联邦学习模型的代码编译方法。
14.一种计算机可读存储介质,其特征在于,存储有可执行指令,所述可执行指令被执行时,用于实现如权利要求1至10任一项所述的联邦学习模型的代码编译方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618511.1A CN112631605B (zh) | 2020-12-31 | 2020-12-31 | 联邦学习模型的代码编译方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618511.1A CN112631605B (zh) | 2020-12-31 | 2020-12-31 | 联邦学习模型的代码编译方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112631605A CN112631605A (zh) | 2021-04-09 |
CN112631605B true CN112631605B (zh) | 2024-04-26 |
Family
ID=75287195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011618511.1A Active CN112631605B (zh) | 2020-12-31 | 2020-12-31 | 联邦学习模型的代码编译方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631605B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113194126B (zh) * | 2021-04-21 | 2023-10-27 | 泉州华中科技大学智能制造研究院 | 一种基于区块链的横向联邦学习模型构建方法 |
CN113434662B (zh) * | 2021-06-24 | 2022-06-24 | 平安国际智慧城市科技股份有限公司 | 文本摘要生成方法、装置、设备和存储介质 |
CN113435608B (zh) * | 2021-06-30 | 2024-05-03 | 平安科技(深圳)有限公司 | 联邦学习模型的生成方法、装置、计算机设备及存储介质 |
CN113469371B (zh) * | 2021-07-01 | 2023-05-02 | 建信金融科技有限责任公司 | 联邦学习方法和装置 |
CN113435544B (zh) * | 2021-07-23 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 一种联邦学习***,方法与装置 |
CN113537495A (zh) * | 2021-08-05 | 2021-10-22 | 南方电网数字电网研究院有限公司 | 基于联邦学习的模型训练***、方法、装置和计算机设备 |
CN113709014B (zh) * | 2021-08-10 | 2023-04-07 | 深圳致星科技有限公司 | 联邦学习审计的数据收集方法、介质及装置 |
CN113992694A (zh) * | 2021-10-01 | 2022-01-28 | 浙商银行股份有限公司 | 一种基于联邦学习的区块链节点集群监控方法及设备 |
CN114281231B (zh) * | 2021-10-12 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 信息呈现方法、装置、电子设备和存储介质 |
CN114282257B (zh) * | 2022-03-08 | 2022-07-15 | 富算科技(上海)有限公司 | 联邦学习代码生成方法、装置、电子设备及存储介质 |
CN114841370B (zh) * | 2022-04-29 | 2022-12-09 | 杭州锘崴信息科技有限公司 | 联邦学习模型的处理方法、装置、电子设备和存储介质 |
CN116049680B (zh) * | 2023-03-31 | 2023-08-04 | 天聚地合(苏州)科技股份有限公司 | 基于区块链的模型训练方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825380A (zh) * | 2019-09-30 | 2020-02-21 | 上海寒武纪信息科技有限公司 | 核函数的生成方法、目标代码的生成方法和组合处理装置 |
CN111507476A (zh) * | 2019-01-31 | 2020-08-07 | 伊姆西Ip控股有限责任公司 | 部署机器学习模型的方法、设备和计算机程序产品 |
CN111832736A (zh) * | 2019-04-19 | 2020-10-27 | 伊姆西Ip控股有限责任公司 | 用于处理机器学习模型的方法、设备和计算机程序产品 |
CN112001500A (zh) * | 2020-08-13 | 2020-11-27 | 星环信息科技(上海)有限公司 | 基于纵向联邦学习***的模型训练方法、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10325340B2 (en) * | 2017-01-06 | 2019-06-18 | Google Llc | Executing computational graphs on graphics processing units |
-
2020
- 2020-12-31 CN CN202011618511.1A patent/CN112631605B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111507476A (zh) * | 2019-01-31 | 2020-08-07 | 伊姆西Ip控股有限责任公司 | 部署机器学习模型的方法、设备和计算机程序产品 |
CN111832736A (zh) * | 2019-04-19 | 2020-10-27 | 伊姆西Ip控股有限责任公司 | 用于处理机器学习模型的方法、设备和计算机程序产品 |
CN110825380A (zh) * | 2019-09-30 | 2020-02-21 | 上海寒武纪信息科技有限公司 | 核函数的生成方法、目标代码的生成方法和组合处理装置 |
CN112001500A (zh) * | 2020-08-13 | 2020-11-27 | 星环信息科技(上海)有限公司 | 基于纵向联邦学习***的模型训练方法、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Song,J等.Compiling Optimization for Neural Network Accelerators.ADVANCED PRRALLEL PROCESSING TECHNOLOGIES(APPT 2019).2019,第1179卷15-26. * |
一种运算和数据协同优化的深度学习编译框架;吴林阳;杜伟健;陈小兵;庄毅敏;;高技术通讯;20200229(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112631605A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112631605B (zh) | 联邦学习模型的代码编译方法、装置、设备及存储介质 | |
CN111353175B (zh) | 数据处理方法、装置、设备、区块链***及存储介质 | |
US10825024B1 (en) | Systems, devices, and methods for DLT-based data management platforms and data products | |
KR102145701B1 (ko) | 안전한 다자 계산에서 참가자에 의한 입력 데이터의 허위 표시 방지 | |
CN110516474B (zh) | 区块链网络中的用户信息处理方法、装置、电子设备及存储介质 | |
CN112182644B (zh) | 一种数据处理方法、装置和电子设备 | |
CN113711536A (zh) | 从区块链网络中提取数据 | |
TW201947910A (zh) | 一種區塊鏈資料處理方法、裝置、處理設備及系統 | |
US11372987B1 (en) | System and method for controlling data using containers | |
CN111081337B (zh) | 一种协同任务预测方法及计算机可读存储介质 | |
CN113159327A (zh) | 基于联邦学习***的模型训练方法、装置、电子设备 | |
CN111784001A (zh) | 一种模型训练方法、设备及计算机可读存储介质 | |
CN112053274B (zh) | 政务区块链网络的构建向导方法及装置 | |
CN110825975B (zh) | 一种信息推荐方法、装置、设备及计算机可读存储介质 | |
Idrees et al. | Exploring the Blockchain Technology: Issues, Applications and Research Potential. | |
Chen et al. | TrustBuilder: A non-repudiation scheme for IoT cloud applications | |
CN110766548A (zh) | 基于区块链的信息处理方法、装置、存储介质及电子设备 | |
Koch et al. | KRAKEN: a privacy-preserving data market for authentic data | |
CN111178896B (zh) | 乘车支付方法、装置及存储介质 | |
Zhang et al. | A traceable and revocable multi-authority attribute-based access control scheme for mineral industry data secure storage in blockchain | |
WO2020211073A1 (zh) | 基于区块链和多方安全计算的交易方法、装置及存储介质 | |
CN116975901A (zh) | 基于区块链的身份验证方法、装置、设备、介质及产品 | |
CN115801317A (zh) | 服务提供方法、***、装置、存储介质及电子设备 | |
Lakshmi et al. | Emerging Technologies and Security in Cloud Computing | |
Han et al. | Research on blockchain cross-chain model based on “NFT+ Cross-chain bridge” |
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 |