1.本公开属于数据处理领域,尤其涉及基于联邦学习的数据处理。
背景技术:2.近几年人工智能技术快速发展,在各行各业得到了很大的应用,借助大数据环境驱动的人工智能进入了黄金发展时期。然而,目前大数据驱动的人工智能技术仍存在一些潜在的问题需要面对和解决:一是数据源的问题,包括有限的数据量和数据的质量问题。在很多行业,数据是以数据孤岛的形式存在的,行业之间甚至行业内数据的整合存在重重障碍。二是数据隐私和数据安全问题。如何在保证数据隐私和安全的情况下有效地整合和利用数据是当前不得不面对的难题。针对这两个问题,已经提出了联邦学习(federated learning),其能够帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用、学习建模等等。
3.随着对于安全性、准确性等的要求进一步提高,有必要提出一种改进的联邦学习架构。
4.除非另有说明,否则不应假定本节中描述的任何方法仅仅因为包含在本节中而成为现有技术。同样,除非另有说明,否则关于一种或多种方法所认识出的问题不应在本节的基础上假定在任何现有技术中都认识到。
技术实现要素:5.本公开提出了一种改进的联邦学习方法,其中基于区块链来实现联邦学习,特别地利用区块链来优化联邦学习的参与方和/或数据处理,从而能够提高联邦学习的安全性、可靠性和准确性中的至少一者。
6.本公开的一个方面涉及一种用于基于区块链的联邦学习的电子设备,包括处理电路,被配置为:获取来自联邦学习节点的第一联邦学习相关信息;使得经由区块链基于所述第一联邦学习相关信息,验证联邦学习节点是否能够参与联邦学习;以及将指示能够参与联邦学习的联邦学习节点的指示信息告知联邦学习侧,从而被指示能够参与联邦学习的联邦学习节点能够基于联邦学习进行模型优化。
7.本公开的另一个方面涉及一种用于基于区块链的联邦学习的电子设备,所述电子设备包括处理电路,其被配置为:将第一联邦学习相关信息传输至区块链侧;获取来自区块链侧的指示与所述电子设备相关联的联邦学习节点能否参与联邦学习的指示信息,所述指示信息是经由区块链对该所述联邦学习相关信息进行验证而生成的;以及在基于所述指示信息确定与所述电子设备相关联的联邦学习节点能够参与联邦学习的情况下,使得结合联邦学习侧的能够参与联邦学习的各联邦学习节点基于联邦学习进行模型优化。
8.本公开的还另一个方面涉及一种基于区块链的联邦学习方法,所述方法在基于区块链的联邦学习系统执行,所述系统包括包含联邦学习侧和区块链侧,所述方法包括:由联邦学习侧将与联邦学习节点相关联的第一联邦学习相关信息传输至区块链侧;由所述区块
链侧接收所述第一联邦学习相关信息,并经由区块链基于所述第一联邦学习相关信息,验证联邦学习节点是否能够参与联邦学习;由所述区块链侧将指示能够参与联邦学习的联邦学习参与节点的指示信息告知所述联邦学习侧;由所述联邦学习侧基于所述指示信息确定联邦学习参与节点;并且由联邦学习侧的能够参与联邦学习的各联邦学习节点基于联邦学习进行模型优化。
9.本公开的还另一个方面涉及一种用于基于区块链的联邦学习的方法,包括:获取来自联邦学习节点的第一联邦学习相关信息;使得经由区块链基于所述第一联邦学习相关信息,验证联邦学习节点是否能够参与联邦学习;以及将指示能够参与联邦学习的联邦学习节点的指示信息告知联邦学习侧,从而被指示能够参与联邦学习的联邦学习节点能够基于联邦学习进行模型优化。
10.本公开的另一个方面涉及一种用于基于区块链的联邦学习的方法,包括:将第一联邦学习相关信息传输至区块链侧;获取来自区块链侧的指示与所述电子设备相关联的联邦学习节点能否参与联邦学习的指示信息,所述指示信息是经由区块链对该所述联邦学习相关信息进行验证而生成的;以及在基于所述指示信息确定与所述电子设备相关联的联邦学习节点能够参与联邦学习的情况下,使得结合联邦学习侧的能够参与联邦学习的各联邦学习节点基于联邦学习进行模型优化。
11.本公开的还另一个方面涉及一种存储可执行指令的非暂时性计算机可读存储介质,所述可执行指令当被执行时实现如说明书上下文中所述的根据本公开的实施例的方法。
12.本公开的还另一个方面涉及一种设备,所述设备包括:处理器和存储装置,所述存储装置存储有可执行指令,所述可执行指令当被执行时实现如说明书上下文中所述的根据本公开的实施例的方法。
13.根据本公开的还另一个方面,提供计算机程序,包括:指令,指令当由处理器执行时使处理器执行如说明书上下文中所述的根据本公开的实施例的方法。
14.根据本公开的还另一个方面,提供一种计算机程序产品,包括指令,所述指令当由处理器执行时实现如说明书上下文中所述的根据本公开的实施例的方法。
15.根据本公开的还另一个方面,提供一种装置,包括用于实现如说明书上下文中所述的根据本公开的实施例的方法的部件。
16.提供本公开内容是为了以简化的形式介绍一些概念,这些概念将在下面的详细描述中进一步描述。本公开内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在限制所要求保护的主题的范围。从以下对实施例的详细描述和附图中,本技术的其他方面和优点将变得显而易见。
附图说明
17.下面结合具体的实施例,并参照附图,对本公开的目的和优点进行描述。在附图中,相同的或对应的技术特征或部件将采用相同或对应的附图标记来表示。
18.图1a示出了根据本公开的基于区块链的联邦学习构思的基本框图,图1b示出了根据本公开的基于区块链的联邦学习构思的示意性信令图。
19.图2a示出了根据本公开的实施例的基于区块链的联邦学习的第一类型架构的框
图,图2b示出了根据本公开的实施例的基于区块链的联邦学习的第二类型架构的框图。
20.图3a示出了根据本公开的基于区块链的联邦学习的区块链侧电子设备的示意性框图。图3b示出了根据本公开的基于区块链的联邦学习的区块链侧方法的示意性流程图。
21.图4a示出了根据本公开的基于区块链的联邦学习的联邦学习侧电子设备的示意性框图。图4b示出了根据本公开的基于区块链的联邦学习的联邦学习侧方法的示意性流程图。
22.图5a示出了根据本公开的实施例的基于区块链的联邦学习的方法的流程图。图5b示出了据本公开的实施例的基于区块链的联邦学习的整体信令图。
23.图6a示出了根据本公开的第一实施例的基于区块链的联邦学习的架构示意图。图6b示出了根据本公开的第一实施例的基于区块链的联邦学习的流程图。图6c示出了根据本公开的第一实施例的基于区块链的联邦学习的信令图。
24.图7a示出了根据本公开的第二实施例的基于区块链的联邦学习的架构示意图。图7b示出了根据本公开的第二实施例的基于区块链的联邦学习的流程图。图7c示出了根据本公开的第二实施例的基于区块链的联邦学习的信令图。
25.图8a示出了根据本公开的第三实施例的基于区块链的联邦学习的架构示意图。图8b示出了根据本公开的第三实施例的基于区块链的联邦学习的流程图。图8c示出了根据本公开的第三实施例的基于区块链的联邦学习的信令图。
26.图9a示出了根据本公开的第四实施例的基于区块链的联邦学习的架构示意图。图9b示出了根据本公开的第四实施例的基于区块链的联邦学习的流程图。图9c示出了根据本公开的第四实施例的基于区块链的联邦学习的信令图。
27.图10a示出了根据本公开的第五实施例的基于区块链的联邦学习的架构示意图。图10b示出了根据本公开的第五实施例的基于区块链的联邦学习的流程图。图10c示出了根据本公开的第五实施例的基于区块链的联邦学习的信令图。
28.图11a示出了根据本公开的第六实施例的基于区块链的联邦学习的架构示意图。图11b示出了根据本公开的第六实施例的基于区块链的联邦学习的流程图。图11c示出了根据本公开的第六实施例的基于区块链的联邦学习的信令图。
29.图12示出了在其中可以实现根据本公开的实施例的计算机系统概图。
30.应当注意,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与至少根据本公开的方案密切相关的处理步骤和/或设备结构,而省略了与本公开关系不大的其他细节。
具体实施方式
31.在下文中将结合附图对本公开的示范性实施例进行描述。出于说明的目的,阐述了许多具体细节以便提供对本公开的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践本公开。在其他情况下,不详细描述公知的结构和装置,以避免不必要地使得本公开方案模糊。此外,应该了解,在对实施例进行实施的过程中可能要开发或做出很多特定于实施方式的设置,以便实现开发人员的具体目标,例如,符合与设备及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工
作仅仅是例行的任务。
32.应当理解,附图以及对其的详细描述不是要将实施例限定到所公开的特定形式,而是相反,目的是要涵盖属于根据本公开的技术方案的精神和范围内的所有修改、等同和另选方案。本公开内容中所描述的实施例还可有各种修改和另选形式。
33.在本说明书中,引用“一个实施例”或“实施例”意味着所涉及的一个或多个特征包括在本技术的至少一个实施例中。特别地,在本说明书中对“一个实施例”或“实施例”的单独引用不一定是指相同的实施例,并且除非如此陈述和/或除非对于本领域技术人员显而易见的,否则也不是相互排斥的。例如,在一个实施例中描述的特征,结构,动作等也可以包括在其他实施例中,但不一定包括在内。因此,本公开的技术方案可包括本文描述的实施例的各种组合和/或集成。
34.联邦学习属于一种人工智能技术,定义了机器学习框架,在此框架下通过设计虚拟模型解决不同数据拥有方在不交换数据的情况下进行协作的问题。虚拟模型是各方将数据聚合在一起的最优模型,联邦学习要求此建模结果应当尽可能地接近传统模式,即将多个数据拥有方的数据汇聚到一处进行建模的结果。在联邦学习中,各个参与者或实体(也称为数据所有者)或客户端或者协调者可以合作执行数据处理,例如模型训练、模型应用等。并且,在联邦学习中,各个参与者不需要将数据暴露给其他参与者或协调者,例如各种服务器。
35.特别地,联邦学习尤其适合于基于不同数据源的数据联合训练。联邦学习框架通常可以实现为一种分布式的模型训练框架,其中可以使多个参与方在保护数据隐私、满足合法合规要求的前提下进行机器学习模型训练,这样解决了数据孤岛问题,而且通过联邦学习训练得到的模型可以比任一方仅靠自身数据训练得出的模型效果更好。
36.现如今联邦学习面临着一些挑战。一方面涉及参与用户的互信问题,由于联邦学习的参与方来自不同的组织或机构,彼此之间缺少信任。如何在缺乏互信的场景下建立安全可靠的协作机制,是实际应用中亟待解决的问题。另一方面,参与方所提供的数据、参数等缺乏相应的质量验证机制。恶意的参与用户可能会提供虚假的模型参数来破坏学习过程。还另一方面,数据、参数等在处理、传输以及存储过程中的隐私性需要进一步保护加强。
37.区块链网络是一种通过分布式数据库识别、传播和记载信息的智能化对等网络。在区块链网络中,没有核心节点,所有节点都遵循既定的规则,例如共识机制,区块链上的共识机制主要解决由谁来构造区块,以及如何维护区块链统一的问题。相比于传统的网络,区块链具有两大核心特点:一是数据难以篡改、二是去中心化。基于这两个特点,区块链所记录的信息更加真实可靠。
38.区块链根据成员加入方式的不同,分为公有链、联盟链、私有链三种。公有链是指全世界任何人都可读取、发送交易且交易能获得有效确认的、也可以参与其中共识过程的区块链。联盟链其实就是由多个私有链组成的集群,由多个机构共同参与管理的区块链,每个组织或机构管理一个或多个节点,其数据只允许系统内不同的机构进行读写和发送。联盟链的各个节点通常有与之对应的实体机构组织,通过授权后才能加入与退出网络。各机构组织组成利益相关的联盟,共同维护区块链的健康运转。私有链是指写入权限完全被一个组织掌握的区块链,其公开程度由该组织决定,所有参与到这个区块链中的节点都会被严格控制。
39.鉴于此,本公开提出了改进的联邦学习机制,特别地提出了基于区块链的联邦学习机制。区块链为联邦学习的各个参与方(用户)提供了一种可信的机制,其中借助于区块链技术(例如区块链网络)来支持联邦学习过程的各种处理,包括但不限于参与方验证、数据处理、数据传输、数据存储等等,从而能够实现更加安全、准确、可靠的联邦学习。在本公开中,术语“区块链技术”包括但不限于分布式存储、点对点网络、共识机制、加密算法等技术,其术语“共识机制”通常是指区块链系统中实现不同节点之间建立信任、获取权益的数学算法。这里将不再对其进行详细描述。
40.特别地,本公开提出了用于联邦学习的基于区块链的验证机制,包括但不限于经由区块链验证联邦学习的发起/启动、经由区块链验证联邦学习的参与方、经由区块链验证联邦学习应用数据的安全性/可信性等中的至少一者,由此可以提高联邦学习的安全性和/或准确性。
41.在一个方面,可以经由区块链对联邦学习的参与方进行验证。特别地,对于意图参与联邦学习的各申请方进行验证,从而可以确认适合于参与联邦学习的参与方,提高了联邦学习参与方的可信性,使得能够安全可信地执行联邦学习,提高联邦学习的可信性。
42.在另一方面,附加地或可选地,可以经由区块链对联邦学习应用数据进行验证,联邦学习应用数据包括由联邦学习参与方应用自身数据进行本地处理而生成的数据。特别地,能够对这样的数据进行可靠性、安全性等验证,由此可以抛弃掉被认为不可靠的、不安全的、异常、甚至异常的数据等等,从而对于联邦学习应用获得更加准确的数据,提高联邦学习的准确率。
43.在还另一方面,附加地或可选地,还可以经由区块链来验证是否发起/启动联邦学习。特别地,基于联邦学习发起请求中所包含的信息进行验证,并且在验证通过的情况下发起联邦学习,这样可以避免无效甚至是恶意的联邦学习申请,提高联邦学习的效率和可靠性。
44.而且,联邦学习过程中的各种操作可在区块链上实行、存证,例如根据本公开的实施例的各种验证操作、计算操作、数据传输等等都经由区块链来实现,从而可以被持久存储并不可篡改。这样提高了交易之间安全可审计性和可追溯性,加强了安全性和隐私性。
45.以下将参照附图来描述根据本公开的基于区块链的联邦学习的基本构思。图1a示出了能够实现根据本公开的实施例的基本构思的示例性系统架构,该系统架构是区块链和联邦学习相融合的架构,其中可以包括联邦学习侧和区块链侧,它们之间可通过各种适当的通信技术,例如4g、5g等无线通信技术甚至是未来的通信技术等等,来进行通信。应指出,这里所提到的联邦学习侧和区块链侧仅仅是为了便于描述,而并非限制系统架构的任何实现。
46.联邦学习侧指示能够用于进行联邦学习的各种节点(也可被称为单元等)的集合。联邦学习侧通常包含两个以上的多个节点。节点可被以各种方式实现,例如实体实现,虚拟实现等。实体可以是任何适当类型的实体。例如在无线通信应用场景中,可以包括各种终端侧设备,例如物联网设备、智能移动设备、用户终端设备等等。虚拟实现可以是指示由软件、程序等实现。联邦学习侧的多个节点可被以任何适当方式的设置。它们之间可能是相互独立的,或者来自不同的参与方、组织或机构,可以进行不涉及数据的通信,甚至不能直接通信。联邦学习侧也可被称为联邦学习端、联邦学习网络等。
47.区块链侧指示可以应用区块链技术的、或者可以导致应用区块链技术的各种节点(也可被称为单元等等)的集合。区块链侧通常包含两个以上的多个节点。节点可被以各种方式实现,例如实体实现,虚拟实现等。实体可以是任何适当类型的实体。例如在无线通信应用场景中,可以包括能够支持利用区块链技术进行操作的各种设备,例如基站、各种网元、mec设备等。虚拟实现可以是指示由软件、程序等实现。区块链侧的多个节点可以组成各种适当类型的区块链网络,诸如上述的公有链、联盟链、私有链,尤其是联盟链。区块链侧也可被称为区块链端、区块链网络等。
48.根据本公开的实施例,联邦学习侧的节点可以例如被称为联邦学习节点,其可以包括或者用作各种类型的节点。在一些实施例中,联邦学习节点可以包括或者可以用作联邦学习意向节点或联邦学习请求节点,其通常是意图或者尝试参加到联邦学习中的节点,可以在联邦学习过程中将向区块链侧提出联邦学习参与请求,并且在被确认可参与联邦学习之后作为联邦学习参与节点参与联邦学习。在一些实施例中,联邦学习节点还可以或者可以用作包括联邦学习参与节点,其通常指示将实际参与联邦学习的实体,其可以是被区块链侧验证允许参加联邦学习的节点。在一些实施例中,联邦学习节点还可以包括或者可以用作联邦学习发起节点。作为示例,联邦学习发起节点是希望或者意图启动联邦学习的实体,例如当某个节点希望通过联邦学习方式来实现某种业务、应用或者服务时,其可以向区块链侧提出联邦学习发起请求。
49.应指出,联邦学习发起节点、联邦学习申请节点、联邦学习参与节点的表述仅仅是为了清楚阐述本公开的构思,而并不限定它们的实现形式。特别地,它们不必需是彼此分离且不同的,它们也可以相互包含,甚至可以相互转换。例如,它们可以根据联邦学习过程中的功能、操作以及状态等中的至少一者被设定的。例如,在联邦学习发起后,联邦学习发起节点通常也属于联邦学习申请节点和联邦学习参与节点。联邦学习申请节点在被验证允许参与联邦学习之后可以转换为联邦学习参与节点。例如,在联邦学习过程中,一个联邦学习节点既可以是联邦学习申请节点,又可以是联邦学习参与节点,甚至还可以是联邦学习发起节点。例如,联邦学习发起节点、联邦学习申请节点、联邦学习参与节点可以是联邦学习节点在联邦学习过程中不同阶段、状态时的对应称呼。
50.根据本公开的实施例,区块链侧可以包括验证节点,用于处理根据本公开的经由区块链实现的各种验证操作中的至少一者。特别地,可经由区块链对来自联邦学习侧的至少一种请求进行验证,例如可对联邦学习参与请求进行验证,以确定是否允许发出请求的联邦学习节点参与联邦学习;或者可对联邦学习发起请求进行验证,以确定是否允许发起或启动联邦学习;或者可对联邦学习参与节点提交的联邦学习应用数据进行验证,以确保这样数据的安全性和可靠性。
51.根据本公开的实施例,验证节点可以由各种适当的方式来实现。在一些实施例中,该验证节点可以导致经由区块链执行验证操作。例如,可以由区块链之外的适当设备等来实现,从而可以控制或者触发区块链网络或其中的节点以便经由区块链执行验证操作。在一些实施例中,该验证节点本身可以执行验证操作,例如其可以由区块链中的节点实现。作为示例,联邦学习验证节点可以由适当数量的区块链节点来实现。例如可以由单个区块链节点来实现,其可实现所有所需的验证操作,或者可以由两个或更多个区块链节点来实现,例如验证操作可由区块链各方都执行,然后在区块链网络中进行相互验证,以保证结果更
加准确。
52.在一些实施例中,可以针对联邦学习操作过程中的各种验证操作相对应地设定验证节点,从而每种验证操作由对应的验证节点处理。作为一个示例,验证节点与前述验证操作一一对应,也即与验证操作相关联的联邦学习节点一一对应,并验证对应的请求。作为另一示例,验证节点与验证操作一对多地对应,例如可以由单个验证节点处理根据本公开的两种或更多种验证操作。作为另一示例,对于联邦学习操作过程中的各种验证操作,都可以由验证节点交由区块链网络(尤其是区块链网络中的至少部分或全部节点)来处理。
53.根据本公开的实施例,区块链侧的验证节点可以被静态设定。例如,验证节点可被预先设定,例如其与各种验证操作的对应关系、验证节点与联邦学习侧节点的对应关系等可以被预先设定,例如可以由用户设定、根据节点的性能等来设定,并且在联邦学习期间保持不变。在一些实施例中,区块链侧的验证节点可以被动态设定,特别地可以在每次接收到验证操作请求被动态设定,例如可以根据区块链节点的性能动态指定,或者可以在区块链侧的实体之间根据适当的区块链技术来选定的,诸如投票技术,共识技术等。
54.根据本公开的实施例,附加地或者可选地,区块链侧还可以包括用于处理联邦学习的相关计算操作的节点,其可以包含区块链侧的特定数量的区块链节点,例如可以为组成特定区块链网络的所有区块链节点。在一些实施例中,该节点可以基于所获取的联邦学习应用数据等来应用区块链技术来生成区块,并且反馈给联邦学习侧。这样,可以通过区块链技术来记录和反映联邦学习的处理流程。应指出,该节点与前述验证节点并不必需是彼此分离且不同的,它们也可以相互包含,甚至可以相互转换。例如,它们可以是同一节点,在联邦学习过程中的不同阶段执行相应操作。例如,它们可以是区块链节点的不同称呼。
55.应指出,联邦学习侧和区块链侧并非必然彼此分离的,而是可以存在至少部分地重叠。在一个示例中,联邦学习侧的部分甚至全部节点都可以是区块链侧的节点,在另一个示例中,区块链侧的部分甚至全部节点都可以是联邦学习侧的节点。特别地,在一些实施例中,在联邦学习节点可以被包含在区块链网络中的情况下,根据本公开的认证节点也可以是联邦学习节点中的任一者,只要该联邦学习节点具有足以进行联邦学习节点验证的能力即可。在一些示例中,该认证节点可以是联邦学习参与节点,甚至是联邦学习请求节点。
56.图1b示出了根据本公开的实施例的基于区块链的联邦学习的示意性信令图,尤其是联邦学习系统架构中的联邦学习侧与区块链侧之间的信令交互,其中可包含涉及根据本公开的验证操作和计算操作的信令交互。
57.一方面,根据本公开的操作可涉及联邦学习参与方的验证(可被称为第一验证操作),其中联邦学习侧与区块链侧的信令交互如下:
58.联邦学习侧的联邦学习节点(也可被称为联邦学习意向节点)向区块链侧发送申请加入联邦学习的请求;
59.接收到该请求,区块链侧(特别是区块链侧的验证节点)将基于该请求中所包含的联邦学习相关信息来验证是否允许联邦学习意向节点参加联邦学习;并且
60.可选地,区块链侧将验证结果告知联邦学习侧。
61.这样,通过区块链对于联邦学习的参与方进行验证,建立了安全可信的合作机制。特别地,对于特定类型、业务、应用的联邦学习,可以确定适合于并且被允许参与这样的联邦学习的参与方,从而这些所确定的参与方能够相互协作地进行联邦学习,可以避免恶意
参与者参加联邦学习,从而提高了联邦学习的安全性。
62.这里,联邦学习意向节点可以是联邦学习侧中的被以任何适当的方式设定或选定的联邦学习节点。在一种实现中,其可以是针对特定类型的联邦学习被预先规定的,并且在这种类型的联邦学习开始时自动作为意向节点,例如在联邦学习侧被广播告知、或者被控制设备告知,或者被其他合适方式通知开始联邦学习时,可作为意向节点。在另一种实现中,可以由联邦学习节点自身来确定是否要作为意向节点。特别地,联邦学习节点可以基于特定联邦学习相关信息(可被称为第二联邦学习相关信息)来确认是否要参与或者适于参与该联邦学习。例如,可以判断联邦学习节点自身的信息与该第二联邦学习相关信息之间的相似性或者匹配性等,并且在被认为相似或匹配的情况将确认打算要参与联邦学习,下文将详细描述。
63.在一些实施例中,联邦学习意向节点发送的请求中包含的联邦学习相关信息可被称为第一联邦学习相关信息,其可以包含表征该联邦学习意向节点的身份信息、与联邦学习模型和数据相关的各种信息等中的至少一者,特别地,第一联邦学习相关信息可包含可表征由该节点用于执行联邦学习的数据的相关信息、指示该节点参与联邦学习处理时所产生的数据的相关信息(例如,可包括联邦学习应用数据)、表征联邦学习模型的相关信息等等中的至少一者。特别地,前述的第二联邦学习相关信息可以为或者包含与该第一联邦学习相关信息至少部分相同类型的信息。
64.在一些实施例中,区块链侧验证第一联邦学习相关信息是否满足联邦学习要求可包括身份验证、数据验证等中的至少一者,并且可以在第一联邦学习验证相关信息满足联邦学习要求的情况下则可确认该联邦学习申请节点可以参与联邦学习,并且将验证结果告知联邦学习节点。区块链侧可以通过各种适当方式将验证结果发送到联邦学习侧。例如可以广播到联邦学习侧,或者例如可发送给特定的联邦学习节点以由其来告知被允许参与联邦学习的联邦学习意向节点。应指出,验证结果发送可在适当的时候告知联邦学习侧,例如可在验证出了参与节点之后告知,或者可进行了后续的处理之后连同处理结果一起告知。例如,如果第一联邦学习相关信息包含联邦学习节点的联邦学习应用数据,则区块链侧可以直接应用该联邦学习应用数据执行后续的处理,然后在连同处理结果一起告知联邦学习侧。
65.另一方面,附加地或者可选地,根据本公开的操作还可涉及联邦学习应用数据的验证(可被称为第二验证操作),其可在第一验证操作之后执行,在该操作中联邦学习侧与区块链侧的信令交互如下:
66.联邦学习节点(也可被称为联邦学习参与节点)将联邦学习应用数据发送到区块链侧;
67.区块链侧(特别是区块链侧的验证节点)对所接收到的联邦学习应用数据进行可靠性或安全性验证,
68.区块链侧(特别是区块链侧的计算节点)基于经过验证的联邦学习应用数据来生成区块;并且
69.区块链侧将关于区块生成的相关信息告知联邦学习侧。
70.由此,在联邦学习过程中,可以筛除掉不可靠、不安全、异常、甚至可疑的联邦学习应用数据,提高了联邦学习的准确率、可靠性等。
71.在本公开中,联邦学习参与节点可以是基于联邦学习参与方的验证结果被确认为允许参与联邦学习的联邦学习节点,如前所述。联邦学习节点可被以各种适当方式确定。作为一个示例,其可以被区块链直接告知,或者被获取验证结果的特定联邦学习节点或者其它设备告知。作为另一示例,联邦学习参与节点可由联邦学习节点自身确定。例如,联邦学习节点可以接收由前述联邦学习参与方的验证结果,并且基于验证结果来判断自身是被允许参与联邦学习的联邦学习参与节点。例如,将验证结果中的允许参与联邦学习的节点id与自身的身份信息进行比较,匹配则认为是被允许参与联邦学习。
72.在本公开中,各个联邦学习参与方负责联邦学习的各自对应的部分,并且可以产生联邦学习应用数据。联邦学习应用数据可以包括由联邦学习参与方应用自身数据(例如,通过自身模型,其可以是整体联邦学习模型的子部分)进行与联邦学习有关的本地处理而生成的数据。该联邦学习应用数据可包含在特定应用场景中针对某种业务、服务等执行联邦学习时应用模型所得到或生成的各种信息。作为示例,在联邦学习用于模型训练的情况下,联邦学习应用数据可对应于要通过联邦学习训练的模型相关的参数信息,例如包含各联邦学习参与节点进行本地模型训练所得到的模型参数相关的信息,例如模型属性、模型特性等等中的至少一者。
73.在本公开中,区块链侧可以经由各种适当的区块链技术来验证联邦学习应用数据是否安全可靠,例如智能合约等等,从而可以从所收取的联邦学习应用数据中识别并去除到被认为不安全、不可靠、可疑或者异常的数据,得到安全、可靠的联邦学习应用数据,以供用于联邦学习。
74.在本公开中,区块链侧可以经由区块链基于被验证为安全或可靠的联邦学习应用数据来生成区块。这里可采用的各种适当的区块链技术可以为各种适当的技术,例如区块链中的共识算法。区块链侧所生成的区块可以为各种类型的区块,例如子区块,或者基于子区块得到的全局区块。在一些实施例中,子区块可以是基于单个或者特定数量的联邦学习参与节点所提供的联邦学习应用数据而生成的,并且可以组合所生成的子区块来生成全局区块。
75.在本公开中,区块链侧将与区块生成有关的信息告知联邦学习侧。在一个示例中,可以将区块生成这一状况告知联邦学习侧,特别地,可以将子区块或者全局区块的生成状况告知。例如可以通过广播来直接告知联邦学习侧,或者也可按照间接方式,例如告知联邦学习侧中的特定设备、节点,继而转告(例如,广播)给联邦学习侧的所有参与节点、或者广播给所有节点。在一些实施例中,在区块相关信息指示区块生成状况的情况下,可以从区块链侧获取区块,例如获取区块链侧生成的全局区块,或者获取区块链侧生成的子区块,然后在联邦学习侧生成全局区块。在另一示例中,如果允许的话,可以将生成的子区块数据或全局区块数据告知联邦学习参与节点,例如通过广播,或者经由特定联邦学习节点来转发等间接通信方式,如上所述。
76.这样,联邦学习参与节点可以获取区块链侧生成的区块以实现联邦学习。例如,在应用联邦学习进行模型训练情况下,将获取区块并利用区块来进行本地模型优化。
77.应指出,上述第二验证操作并不是必须的。特别地,在某些场景中,在如前所述地验证或确定了联邦学习参与方的情况之后,则可以将验证结果告知联邦学习参与节点,从而联邦学习参与节点之间可以直接进行协作来进行联邦学习。以下将对此进行详细描述。
78.在还另一方面,附加地或者可选地,根据本公开的操作还可涉及联邦学习发起的验证(可被称为第三验证操作),其可在第一验证操作之前,在该操作中联邦学习侧与区块链侧的信令交互如下:
79.联邦学习侧(尤其是联邦学习发起节点)向区块链侧发送联邦学习发起请求;
80.区块链侧(尤其是联邦学习认证节点)基于联邦学习发起请求中包含的联邦学习相关信息来验证是否允许发起联邦学习,并且
81.在允许发起联邦学习的情况下,区块链侧将该联邦学习相关信息中的至少一部分告知联邦学习侧。
82.由此,区块链侧可以允许发起适当的联邦学习,可以避免恶意启动联邦学习,避免了无效的损耗,提高了系统可靠性和安全性。
83.在本公开中,联邦学习发起请求中所包含的联邦学习相关信息可被称为第三联邦学习相关信息,其可以为各种适当的信息,特别地可以包含与在先所述的第一联邦学习相关信息至少部分相同类型的信息,如上所述。
84.在本公开中,在基于第三联邦学习相关信息来进行验证时,区块链侧可以通过验证联邦学习相关信息是否满足联邦学习要求,例如联邦学习发起节点是否有资格发起联邦学习、联邦学习相关信息所指示的数据或模型相关的信息是否适合于或者能够发起联邦学习等等,并且在满足要求的情况下,则允许发起联邦学习。
85.在本公开中,区块链侧可以采用各种适当的方式将所述联邦学习相关信息告知联邦学习侧,例如通过广播。特别地,可以将第三联邦学习相关信息的至少一部分(可作为前述第二联邦学习相关信息)告知区块链侧,只要这一部分足以供联邦学习节点判断是否愿意参与联邦学习即可。由此,各个联邦学习节点基于所述第三联邦学习相关信息中的所述至少一部分来判断自身是否意图参与联邦学习,并且在判断意图参与联邦学习的情况下,将作为联邦学习意向节点执行后续处理,例如前文所述的涉及联邦学习参与方验证操作的信令交互。
86.在本公开的实施例中,进一步地,在针对某一应用/业务/服务的联邦学习执行完之后,可以验证联邦学习结果是否满足要求,并且在满足要求的情况下将停止联邦学习,否则将继续迭代进行后续的联邦学习,直到满足要求为止。
87.在一些实施例中,在迭代的联邦学习过程中,联邦学习参与节点可以是静态的,例如在联邦学习过程中保持不变。作为示例,在第一次联邦学习开始时被验证的联邦学习参与节点将一直参与联邦学习。在另一些实施例中,在迭代联邦学习过程中,联邦学习参与节点可以是动态的,例如在联邦学习过程中保持动态调整。作为示例,可以在每次迭代开始时,如上所述地执行参与节点的验证、甚至还执行意向节点的验证,并且通过验证之后的联邦学习参与节点将参与此次迭代的联邦学习。这样,可以对于联邦学习的每次迭代过程选择更加适当的联邦学习节点,从而更加适当和可靠地实现联邦学习。
88.这样,通过如上所述基于区块链在联邦学习侧与区块链侧之间执行信令交互,能够在联邦学习侧与区块链侧之间执行安全可靠的交互,这样可以有助于实现安全可靠的联邦学习。
89.特别地,上述整体信令交互流程尤其适合于针对特定应用、业务、服务等来发起并实现联邦学习。特别地,在一个节点针对某种应用、业务、服务想要进行联邦学习时,该节点
将会向区块链侧去申请发起联邦学习,以便经由区块链侧来判断是否可以发起联邦学习,而且在可以发起联邦学习的情况下将经由区块链侧会召集、寻找或分配联邦学习的参与方或参与节点,由此由这些联邦学习参与方可以相协作地来组成联邦学习网络,从而进行联邦学习。其中经由区块链网络参与联邦学习期间的各种操作,可以实现安全、可靠和可信的联邦学习。
90.以下将参照附图描述根据本公开的实施例的联邦学习系统架构。在根据本公开的实施例中,依据联邦学习参与方及区块链节点的部署位置,提出了两大类基于区块链的联邦学习架构,第一类架构中联邦学习侧与区块链侧分离,其中联邦学习参与方不属于区块链侧,第二类架构中为联邦学习侧与区块链侧至少部分、甚至完全重叠,联邦学习参与方中的至少一些属于区块链节点。根据本公开的实施例,联邦学习侧与区块链侧之间的通信可以采用各种适当的方式来执行,例如可以采用各种通信方式、采用各种适当的信号来发信号通知,诸如通过广播和/或特定信道上的广播信号和/或专用信号,例如可通过各种适当的无线通信方式,例如4g、5g等相关的通信技术,通过各种适当的有线通信方式,诸如光线、宽带等,来实现。
91.图2a示出了根据本公开的基于区块链的联邦学习的第一类架构,这样的联邦学习架构可被认为是分层级的架构,特别地可依据功能分为两层,其中一层为联邦学习节点的集合,可以表现为各种适当的形式,例如组成由联邦学习节点组成的联邦学习网络,另一层为区块链节点的集合,例如可表现为由区块链节点组成的区块链网络,这两层可被分别理解为外层和内层,上层和下层等等。在该架构中,联邦学习网络位于区块链之外,联邦学习节点可通过对应的区块链节点接入到区块链网络并且经由区块链网络中的区块链节点进行联邦学习。这里的区块链节点可对应于前述验证节点、计算节点等中的至少一者。在此架构中区块链层和联邦学习层之间可以采用本领域已知的不同网络之间的通信方式,例如同一类型的网络,不同各类型的网络之间的通信,诸如基于4g,5g等无线通信方式、各种适当的有线通信方式等。
92.图2b示出了根据本公开的基于区块链的联邦学习的第二类架构,其中联邦学习网络被包含在区块链中。特别地,在该架构中,联邦学习节点和与其对应的区块链节点可成一体,从而联邦学习节点也作为区块链节点在区块链网络中执行联邦学习过程。作为示例,前述联邦学习侧与区块链侧之间的信令交互可直接变换为在区块链网络中的通信,前述各种联邦学习节点的操作都将由区块链节点来经由区块链网络执行。例如,作为区块链节点的联邦学习发起节点可直接在区块链网络中广播发起请求,作为区块链节点的联邦学习意向节点将直接在区块链网络中广播参与请求,作为区块链节点的联邦学习参与节点将在区块链网络中组成联邦学习网络来进行数据处理,例如在模型训练的情况下可获取(例如,生成)全局模型来进行模型优化。在此情况下,节点之间可以采用本领域已知的区块链网络中的通信方式来通信,诸如可采用广播方式来进行信息告知。应指出,在此情况下,为了便于描述,仍可利用区块链侧和联邦学习侧这样的表述或类似表述,但是应指出,它们仅仅是同一节点集合的不同表述。
93.应指出,图2a和2b仅仅示例性的,特别地,图2a和2b中所示的联邦学习节点、区块链节点的数量,它们之间的对应关系仅仅是示例性的。作为示例,联邦学习节点、区块链节点的数量并不仅限于图中所示的数量,其还可以是更多或者更少的数量。特别地,区块链节
点的数量并不特别受限,只要能够应用区块链技术进行操作即可。
94.以下将参照附图来描述根据本公开的实施例的基于区块链的联邦学习的区块链侧的实现。应指出,根据本公开的实施例的区块链侧操作可通过区块链侧的电子设备来实现,该电子设备可以在区块链之外,能够控制或者触发经由区块链(例如,经由区块链中的节点)进行操作;或者可以在区块链之内,例如或者是区块链节点,或者是区块链节点的一部分,例如其组件、部件等。在一种实现中,该电子设备可对应于前文所述的区块链侧的验证节点或计算节点中的至少一者。
95.另外,以下将主要针对通过联邦学习用于模型训练的场景来描述本公开的方案的实现,其中本公开的方案可用于通过联邦学习来优化训练的模型,例如优化模型参数等。但是应指出,本发明的方案同样可以用于其他可以利用联邦学习的其它应用场景,例如针对某种应用、业务、服务等执行基于区块链的联邦学习。特别地,可以进行参与方筛选,还可以对应用过程中的数据进行可靠性筛选,从而保证应用质量,改善应用效果。作为替代的,可以在应用阶段中,可以简化对于联邦学习参与者的身份认证。例如,联邦学习参与者的身份信息可以预先被告知,从而可以仅接收这些联邦学习参与者的模型应用结果。
96.图3a示出了根据本公开的实施例的区块链侧的电子设备的框图。区块链侧能够与联邦学习侧进行交互以执行基于区块链的联邦学习。电子设备300包括处理电路320,并且该处理电路320可被配置为获取来自联邦学习节点的第一联邦学习相关信息;使得经由区块链基于所述第一联邦学习相关信息来验证联邦学习节点是否能够参与联邦学习;以及将被允许参与联邦学习的联邦学习节点的指示信息告知联邦学习侧。这样,在联邦学习侧可以基于该指示信息来确定联邦学习参与节点,从而参与联邦学习。
97.在本公开的实施例中,第一联邦学习相关信息可被包含在联邦学习节点发送的联邦学习参与请求中,这里的联邦学习节点可包含联邦学习参与节点。该联邦学习相关信息可以包含各种适当类型的信息,并且可表现为各种适当的形式,例如字符串、向量等等。特别地,联邦学习相关信息可以包含节点身份信息,以及业务相关信息,前者可包含节点的身份标识,后者可用于表征节点是否能满足联邦学习要求等,例如可包含与联邦学习业务执行相关的信息,尤其是包含与参与联邦学习的数据和/或模型等有关的信息。特别地,业务相关信息可包含以下第一到第三子信息中的至少一者。
98.根据本公开的实施例,第一联邦学习相关信息可以包含第一子信息,其可表示可以用于或者预期用于执行联邦学习的数据的相关信息,可被称为数据元数据信息。数据元数据信息可包括但不限于数据属性信息,数据结构信息、数据分布信息中的至少一者。但是数据元数据信息并不包含数据本身,这样学习节点本地的可用于联邦学习的数据将不会被传输到区块链。这里的可以用于或者预期用于执行联邦学习的数据可以包括该联邦学习节点本身的可用数据。
99.在一些实施例中,数据属性信息可包括数据标识符、数据大小、数据类型、数据数量中的至少一者。在一些实施例中,数据结构信息包括数据长度、数据字段、数据排列中的至少一者。在一些实施例中,数据分布信息包括数据离散性、数据完整性、数据位置、数据关联性、数据所有者中的至少一者。
100.根据本公开的实施例,第一联邦学习相关信息还可以包括第二子信息,其可表示在针对特定应用、业务、服务等执行联邦学习时进行本地处理所获取的数据(例如,处理结
果)的相关信息。特别地,在模型训练的应用中,所获取的数据为模型训练结果。第二子信息可包括模型参数相关的信息,例如包括模型类型、模型权重、模型梯度中的至少一者。
101.根据本公开的实施例,第一联邦学习相关信息还可以包括第三子信息,其可表示本地处理的属性、本地处理的执行以及联邦学习参与情况等的相关信息,可被称为联邦学习元数据信息,并且可用于判断其是否适合于联邦学习。作为示例,其可以表征参与联邦学习的本地处理的相关信息,例如包括参与方的标识符、本地处理类型、本地数据样本数、本地处理精度、参与联邦学习的状况等信息中至少一者。特别地,在模型训练中,该第三子信息可表示模型训练相关的信息,其可以包括与模型属性、模型训练参与状况、模型训练所用的数据等等有关的参数中至少一者。作为示例,第三子信息可被称为模型元数据信息,其可包括参与方的标识符、模型类型、本地数据集中的训练的样本数、本地模型的训练精度、参与联邦学习次数等信息。
102.根据本公开的实施例,第一联邦学习相关信息还可以身份信息,其可以表示为发出联邦学习参与请求的联邦学习节点的身份标识符。
103.根据本公开的实施例,处理电路可进一步配置为使得经由区块链验证来自联邦学习节点的第一联邦学习相关信息是否满足联邦学习要求;并且在联邦学习相关信息满足联邦学习要求的情况下,确认该联邦学习节点能够参与联邦学习,例如可作为联邦学习参与节点。
104.在一些实施例中,可以对第一联邦学习相关信息中所包含的子信息中的至少一者进行验证,并且可在验证第一联邦学习相关信息中的至少一者满足对应的要求的情况下,认为该联邦学习节点可参与联邦学习。例如只要有上述子信息中的一者满足要求,则可以认为该联邦学习节点可参与联邦学习。
105.特别地,对于数据元数据信息,可以验证数据元数据是否满足联邦学习的要求,包括但不限于元数据标准、联邦学习标准等中至少一者,并且在数据元数据满足联邦学习的要求时可参与联邦学习。例如,可以验证字段列表的格式是否满足格式要求,例如是否符合联邦学习要求的格式,当遵从所要求的格式时则可参与联邦学习;样本数量是否满足联邦学习的数量要求,例如是否达到或者超过联邦学习的要求的样本数量,这样当样本数量足够大时则可参与联邦学习;数据的缺失比例是否满足联邦学习的要求,例如经由区块链侧确定数据的缺失比例是否低于特定阈值,这样当数据缺少得不多是则可参与联邦学习;数据的离散程度是否满足联邦学习的离散度要求,例如经由区块链确定离散度是否小于特定阈值,这样当数据离散不那么离散时则可参与联邦学习;等等中的至少一者。在数据元数据满足联邦学习的数据要求的情况下可确认该联邦学习节点可参与联邦学习。这样,通过对于元数据参数进行验证,可以判断数据的真伪、数据是否适合于联邦学习等等,从而可提高联邦学习的可靠性。
106.对于模型参数相关信息,可以验证模型参数是否满足联邦学习的模型要求,并且在模型参数满足联邦学习的模型要求时可参与联邦学习。例如,可以验证模型类型是否是联邦学习支持的模型,验证诸如模型权重、梯度等的模型参数是否异常,等等中的至少一者,例如模型的权重、梯度等是否明显偏离合理范围,合理范围例如可以是被预先设定的参考值、基于先前模型参数的统计值(例如均值等)。这样,可以通过对模型参数进行验证,可以对异常状况进行监测。在模型参数满足联邦学习的模型要求的情况下,例如不偏离出合
理范围,不异常,可确认该联邦学习节点是可信的或可靠的,可以参与联邦学习。这里可以应用本领域已知的各种监测技术、安全性或可靠性检测的技术,例如监督、半监督等技术。这样可以避免可疑的、甚至是蓄意虚假或破坏参数被参与到联邦学习中,从而可提高联邦学习的准确性、可靠性等。
107.对于模型元数据信息,可以验证模型元数据是否满足联邦学习的相应要求,并且在模型元数据满足联邦学习的相应要求时可参与联邦学习。例如,可以验证模型类型、本地数据集中的训练的样本数、本地模型的训练精度、参与联邦学习的次数中的至少一者是否满足要求,并且在模型元数据满足联邦学习的相应要求的情况下可确认该联邦学习节点可参与联邦学习。例如,模型类型是否匹配,例如当匹配时则可参与联邦学习;训练样本数是否大于等于所要求的训练样本数,例如当样本数足够时则可参与联邦学习;本地模型的训练精度是否大于等于精度阈值,例如当精度足够时则可参与联邦学习;已参与过的联邦学习的次数是否大于次数阈值,例如当参与过一定次数时则可参与联邦学习。当然,也可以不判断联邦学习的次数,而设定次数阈值则可以进一步保证相关联邦学习的参与方是已经参加过一定次数的联邦学习的参与方,其更加可靠,从而可进一步提高准确度和可靠性。
108.对于身份信息,可以基于联邦学习节点的标识符(id)来进行验证。例如,可以将节点的身份id与被允许参与的联邦学习参与方的数据库进行比较,并且,其中记录了各个有资格参与联邦学习的节点的信息,例如身份信息,这样可以在接收到的发起方的身份信息与数据库中的身份信息匹配的情况下可确认该节点是适合于参与联邦学习的节点。这里,该数据库可被存储在存储器等中,该数据库可以被预先存储,或者可以在联邦学习过程中被动态更新,例如在联邦学习迭代执行的过程中,可以在每次迭代中确认参与节点之后用所确定的参与节点的身份信息更新数据库以供下一次迭代中使用。
109.在本公开的一些实施例中,可以在验证上述数据元数据信息、模型参数相关信息、模型元数据信息、身份信息中的任一者满足要求之后就可认为联邦学习节点可参与联邦学习。在一些实现中,例如,身份验证并不是必需的,例如,这可适用于被允许参与联邦学习的联邦学习节点的身份信息并不预先知晓或者无需知晓或者不重要的场景。作为示例,可以是联邦学习初次迭代时或者对联邦学习的数据要求更高的情况,这样,可以不进行身份验证,而只要其数据足以符合联邦学习要求即可,而这样的节点身份可被保存然后被用于后续过程中的验证,例如后续迭代过程。在另一些实现中,例如可以仅验证身份信息。例如,当在联邦学习迭代的某些操作中,可以规定每次参与迭代的参与方保持不变,这样则在每次迭代中可以仅验证身份。
110.在本公开的另一些实施例中,身份验证是必需的,这样需要身份信息和业务相关信息两者都满足要求可以确认联邦学习节点可参与联邦学习。也就是说,只有身份信息得到认证,并且上述数据元数据信息、模型参数相关信息、模型元数据信息中的至少一者,例如任一者通过验证,才可被认为通过验证。这样,可以确保联邦学习的参与方和参与数据更加可靠、准确。例如,可以先验证身份信息,并且身份信息验证通过之后再验证其它子信息,然后在子信息中至少一者满足要求之后可确认联邦学习节点可参与联邦学习。
111.在本公开的实施例中,发出联邦学习参与请求的联邦学习节点可对应于本公开的实施例中的联邦学习意向/申请节点,其可被以各种适当方式被确定。例如,如前所述,其可以被系统预先规定,或者还可由联邦学习节点自身来确定是否要作为意向节点。例如可判
断自身信息是否与特定联邦学习相关信息匹配或相似,并且在匹配或相似的情况则将作为请求节点。根据本公开的实施例,该特定联邦学习相关信息可对应于前述第二联邦学习相关信息,例如可以是用于表征针对特定应用或业务或服务的联邦学习(例如其属性或要求等)的信息中的至少一种,可以为各种适当的表示形式,例如字符串、向量等等。在一些实施例中,第二联邦学习相关信息可具有与第一联邦学习相关信息至少部分相同格式的信息,例如包括前述数据元数据信息、模型参数信息、模型元数据信息等中的至少一者。
112.根据本公开的实施例,第二联邦学习相关信息可以被以适当方式获取。在一些实施例中,该第二联邦学习相关信息可由区块链侧提供。在一些实施例中,可以在区块链侧在确定可以发起/启动联邦学习的情况下由区块链侧发送给联邦学习侧,以供联邦学习侧的节点进行确认。在一些实施例中,所述处理电路可进一步配置为:使得经由区块链基于联邦学习发起请求中的第三联邦学习相关信息来验证是否发起经由区块链执行联邦学习;以及在验证能够发起经由区块链执行联邦学习的情况下,将所述第三联邦学习相关信息中的至少一部分发送给联邦学习节点。这里,所述第三联邦学习相关信息中的至少一部分可作为所述第二联邦学习相关信息。
113.在一些实施例中,第三联邦学习相关信息可具有与第一联邦学习相关信息至少部分相同格式的信息,例如包括前述数据元数据信息、模型参数信息、模型元数据信息、身份信息等中的至少一者,并且验证是否发起联邦学习的判断条件也可被以与判断是否允许参与联邦学习的方式类似的方式进行,例如可以验证第三联邦学习相关信息中的数据元数据信息、模型参数信息、模型元数据信息、身份信息等中的至少一者是否满足对应的要求。当然,也可采用简化方式,例如如果身份验证通过则可以直接开启联邦学习,而无需再验证其它信息。
114.根据本公开的实施例,该指示联邦学习参与方的指示信息可被以适当的方式告知联邦学习侧,例如广播到联邦学习侧。在一些实施例中,该指示信息可以在确定联邦学习参与节点之后就告知联邦学习侧。从而联邦学习参与节点可以在联邦学习侧进行联邦学习,例如模型训练。在另一实施例中,在验证了联邦学习参与节点之后继续执行后续处理之后,指示信息可与后续处理结果一起发送给联邦学习侧。例如,联邦学习参与节点可以进一步向区块链侧发送数据,例如联邦学习应用数据,使得区块链侧生成区块以供联邦学习侧使用。
115.根据本公开的实施例,后续处理可包括经由区块链对于联邦学习应用数据的可信性验证,以及基于联邦学习应用数据进行的计算处理,例如生成应用相关区块。在一些实施例中,联邦学习应用数据可以是针对特定应用、业务、服务等进行联邦学习时由参与节点本地生成的,并且可为适当的类型,例如可以是与前述第一到第三联邦学习相关信息中的至少一部分信息为相同类型,如前所述。作为示例,在模型训练的联邦学习场景中,联邦学习应用数据可对应模型参数信息。
116.在一些实施例中,所述处理电路可进一步配置为验证来自联邦学习参与节点的模型参数的可信性;基于被验证为可信的来自联邦学习参与节点的模型参数,生成模型区块。模型参数是在采用联邦学习进行模型训练的场景下的联邦学习应用数据的一个示例,并且当其作为第一联邦学习相关信息的情况下,上述参与方验证和可信性验证可同时执行。可信性验证可被采用各种适当的方式来执行,例如可采用前述第一联邦学习相关信息包括模
型参数时的验证方式相同的方式来执行,例如可通过智能合约方法或者任何其它区块链技术来执行。
117.此外,参与方的指示信息可在可信性验证之后发送给联邦学习侧,甚至可以与模型区块生成的相关信息一起发送给联邦学习侧。
118.在一些实施例中,所述处理电路可进一步配置为将模型区块的生成告知联邦学习参与节点,使得联邦学习参与节点能够获取模型区块以便进行本地模型参数优化。例如,将广播给联邦学习侧以告知模型区块的生成,这样联邦学习侧可以在接收到该广播后从区块链侧获取该模型区块,以用于联邦学习参与节点的模型优化,例如联邦学习参与节点的模型参数更新。
119.根据本公开的实施例,模型区块可以为各种适当形式,例如子模型区块,或者基于子模型区块获取的全局模型区块。特别地,在一些实现中,子模型区块通常是对于特定数量的联邦学习参与节点的模型参数而产生的,例如可以对于一个联邦学习参与节点的模型参数而产生的(这可为联邦学习节点与区块链节点一一对应的情景),或者可以两个或更多个联邦学习参与节点的模型参数而产生的(这可为一个区块链节点对应于多个联邦学习节点并预先整合相关参数数据的情景),并且可以通过组合子模型区块来生成全局模型区块。
120.在一些实施例中,所述处理电路可进一步配置为使得基于来自联邦学习参与节点的模型参数,经由区块链技术生成子模型区块和全局模型区块中的至少一者,从而联邦学习参与节点能够基于所生成的子模型区块和全局模型区块中的至少一者进行本地模型参数优化。
121.在一些实施例中,所述处理电路可进一步配置为使得基于来自联邦学习参与节点的联邦学习模型参数,经由区块链技术生成子模型区块,并且将子模型区块的生成告知联邦学习侧。在另一些实施例中,所述处理电路可进一步配置为使得基于来自联邦学习参与节点的联邦学习模型参数,经由区块链技术生成子模型区块,使得经由区块链技术对所生成的子模型区块进行聚合以生成全局模型区块,并且将全局模型区块的生成告知联邦学习侧。
122.在一些实施例中,区块链侧可以采用各种适当的方式来生成子模型区块。例如,可以经由区块链采用共识机制对于各联邦学习参与节点的模型参数生成相应的子模型区块。在一些实施例中,区块链侧可以采用各种适当的方式来生成全局模型区块。在一个实现中,可以在区块链侧节点中选择特定区块链节点来获取区块链网络中生成的所有子模型区块并进行整合。该特定区块链节点可被以适当方式选择,例如区块链节点的轮流选择或者投票选择,或者还可基于区块链节点的特性被选择。作为示例,可以根据区块链节点中的具有最高处理能力的、目前最空闲的、处理效率最高的节点,当然还可以采用任何其它节点,只要能够顺利执行操作以生成全局模型区块即可。该控制节点或协调节点可以是被预先设定的,也可以是要在进行全局模型生成的处理时被动态地选定。应指出,区块链中的控制节点或协调节点可以与前述的认证节点相同,或者不同。
123.应指出,上述区块链侧生成子模型区块或全局模型区块的操作可应用于适当的模型训练场景,尤其是在基于数据元数据信息、模型参数信息、模型元数据信息等进行联邦学习的情况,其中例如可利用这些信息进行参与方验证和发起验证等中的至少一种。
124.根据本公开的实施例的基于区块链的联邦学习可以迭代地执行,直到满足应用、
业务或服务的要求。例如在模型训练的应用场景中,如果通过联邦学习所得到的模型仍不满足特定要求,例如未达到收敛,未达到预定的迭代次数,未达到模型性能要求等等,则继续下一次联邦学习,直到满足了迭代停止条件(例如,可对应于模型性能要求、收敛条件,迭代次数等等)。
125.通常,迭代是需求导向的。迭代是否停止可以是由联邦学习发起方来提起的。例如,本技术的一个应用场景是一个节点请求发起基于区块链的联邦学习,并且在执行了联邦学习之后将会判断结果是否满足要求或者是否达到终止条件,如果不满足则继续进行迭代。
126.在本公开中,迭代可以各种适当方式进行。在一些实施例中,迭代过程中可以无需身份验证,例如在执行迭代的情况下,区块链将仅获取之前确定的参与方的信息;或者说在构建了联邦学习参与节点组合之后,发起方将会直接请求其它参与节点参与迭代,例如告知其他参与节点要执行迭代,并且满足迭代终止条件时会通知其它节点无需进行迭代。这样区块链侧会无需验证参与方,仅仅进行数据筛选。在还另一些实施例中,迭代中可以重新验证参与方,例如可以在该节点发起请求后,可以由之前确定的意向节点直接发送参与请求,从而可以直接验证意向节点以判断参与节点来执行联邦学习。这样每次迭代中参与方会动态更新,效果会更好。在还另一些实施例中,甚至还可以从联邦学习发起开始迭代。
127.在本公开的实施例中,电子设备、尤其是处理电路可被以各种方式实现,具有各种适当的结构。作为示例,在电子设备的一种结构示例中,处理电路320可以是通用处理器的形式,也可以是专用处理器,例如asic。例如,处理电路320能够由电路(硬件)或中央处理设备(诸如,中央处理单元(cpu))构造。此外,处理电路320可以承载用于使电路(硬件)或中央处理设备工作的程序(软件)。该程序能够存储在存储器(诸如,布置在存储器中)或从外面连接的外部存储介质中,以及经由网络(诸如,互联网)下载。
128.根据本公开的实施例,处理电路320可以包括用于实现上述功能的各个单元,例如获取单元322,被配置为获取来自联邦学习节点的第一联邦学习相关信息;第一验证单元324,被配置为使得经由区块链基于所述第一联邦学习相关信息,验证联邦学习节点是否能够参与联邦学习;以及发送单元326,被配置为将指示能够参与联邦学习的联邦学习节点的指示信息告知联邦学习侧,从而被指示能够参与联邦学习的联邦学习节点能够基于联邦学习进行模型优化。
129.在一些实施例中,第一验证单元324可进一步配置为:使得经由区块链验证所述第一联邦学习相关信息是否满足联邦学习要求;并且在所述第一联邦学习相关信息满足联邦学习要求的情况下,确认该联邦学习节点能够参与联邦学习。
130.在一些实施例中,第一验证单元324可进一步配置为:使得经由区块链验证所述第一联邦学习相关信息中所包含的至少一个信息是否满足相应的联邦学习要求;并且在所述第一联邦学习相关信息中的至少一个信息满足相应的联邦学习要求的情况下,确认所述联邦学习节点能够参加联邦学习。
131.在一些实施例中,处理电路320还可包括被配置为获取来自联邦学习侧的联邦学习参与节点的模型参数的单元,模型区块生成单元330,被配置为使得经由区块链基于来自联邦学习参与节点的模型参数,生成模型区块;以及被配置为将模型区块的生成告知联邦学习侧的单元,使得联邦学习参与节点能够基于所述模型区块进行模型参数优化。
132.在一些实施例中,处理电路320还包括第二验证单元328,被配置为验证来自联邦学习参与节点的模型参数的可信性;并且单元330被配置为基于被验证为可信的模型参数,生成模型区块。
133.在一些实施例中,单元330可被进一步配置为使得经由区块链基于来自联邦学习参与节点的模型参数,生成子模型区块,并且使得经由区块链技术对所生成的子模型区块进行聚合以生成全局模型区块。
134.在一些实施例中,处理电路320还包括被配置为获取来自联邦学习节点的第三联邦学习相关信息的单元,第三验证单元332,被配置为使得经由所述区块链基于第三联邦学习相关信息,验证是否发起经由区块链执行联邦学习;以及被配置为在验证能够发起经由区块链执行联邦学习的情况下,将所述第三联邦学习相关信息中的至少一部分发送给联邦学习侧的单元。
135.每个单元的操作可以进行如上文所述地进行,这里将不再详细描述。在附图中某些单元用虚线绘出,旨在说明该单元并不一定被包含在处理电路中。作为示例,该单元可以在区块链侧电子设备中而处理电路之外,甚至可以位于区块链侧电子设备300之外。需要注意的是,尽管图3a中将各个单元示为分立的单元,但是这些单元中的一个或多个也可以合并为一个单元,或者拆分为多个单元。例如,各种获取功能可由单个获取单元实现,而各种发送/告知功能可由单个发送单元实现。
136.应注意,上述各个单元仅是根据其所实现的具体功能划分的逻辑模块,而不是用于限制具体的实现方式,例如可以以软件、硬件或者软硬件结合的方式来实现。在实际实现时,上述各个单元可被实现为独立的物理实体,或者也可由单个实体(例如,处理器(cpu或dsp等)、集成电路等)来实现。此外,上述各个单元在附图中用虚线示出指示这些单元可以并不实际存在,而它们所实现的操作/功能可由处理电路本身来实现。
137.应理解,图3a仅仅是区块链侧电子设备的概略性结构配置,区块链侧电子设备300还可以包括其他可能的部件(例如,存储器等)。可选地,区块链侧电子设备300还可以包括未示出的其它部件,诸如存储器、射频链路、基带处理单元、网络接口、控制器等。处理电路可以与存储器和/或天线相关联。例如,处理电路可以直接或间接(例如,中间可能连接有其它部件)连接到存储器,以进行数据的存取。还例如,处理电路可以直接或间接连接到天线,以经由通信单元发送信号以及经由通信单元接收无线电信号。
138.存储器可以存储由处理电路320产生的各种信息(例如,联合学习中所产生的各种数据等)、用于区块链侧电子设备操作的程序和数据、将由区块链侧电子设备发送的数据等。存储器还可以位于区块链侧电子设备内但在处理电路之外,或者甚至位于区块链侧电子设备之外。存储器可以是易失性存储器和/或非易失性存储器。例如,存储器可以包括但不限于随机存储存储器(ram)、动态随机存储存储器(dram)、静态随机存取存储器(sram)、只读存储器(rom)、闪存存储器。
139.图3b示出了根据本公开的示例性实施例的区块链侧方法的流程图。在方法310中,在步骤s312中,获取来自联邦学习节点的第一联邦学习相关信息;在步骤s313中,使得经由区块链基于所述第一联邦学习相关信息,验证联邦学习节点是否能够参与联邦学习;以及在步骤s314中,将指示能够参与联邦学习的联邦学习节点的指示信息告知联邦学习侧,从而被指示能够参与联邦学习的联邦学习节点能够基于联邦学习进行模型优化。
140.在一些实施例中,所述步骤s312还包括使得经由区块链验证所述第一联邦学习相关信息是否满足联邦学习要求;并且在所述第一联邦学习相关信息满足联邦学习要求的情况下,确认该联邦学习节点能够参与联邦学习。
141.在一些实施例中,所述步骤s312还包括:使得经由区块链验证所述第一联邦学习相关信息中所包含的至少一个信息是否满足相应的联邦学习要求;并且在所述第一联邦学习相关信息中的至少一个信息满足相应的联邦学习要求的情况下,确认所述联邦学习节点能够参加联邦学习。
142.在一些实施例中,方法310还包括步骤s315,其中获取来自联邦学习侧的联邦学习参与节点的模型参数;使得经由区块链基于来自联邦学习参与节点的模型参数,生成模型区块;并且将模型区块的生成告知联邦学习侧,使得联邦学习参与节点能够基于所述模型区块进行模型参数优化。
143.在一些实施例中,步骤s315还可包括验证来自联邦学习参与节点的模型参数的可信性;基于被验证为可信的模型参数,生成模型区块。
144.在一些实施例中,步骤s315还可包括使得经由区块链基于来自联邦学习参与节点的模型参数,生成子模型区块,并且使得经由区块链技术对所生成的子模型区块进行聚合以生成全局模型区块。
145.在一些实施例中,该方法还可包括步骤s311,其中获取来自联邦学习节点的第三联邦学习相关信息;使得经由所述区块链基于第三联邦学习相关信息,验证是否发起经由区块链执行联邦学习;以及在验证能够发起经由区块链执行联邦学习的情况下,将所述第三联邦学习相关信息中的至少一部分发送给联邦学习侧。
146.应指出,根据本公开的方法还可包括与上述区块链侧电子设备的处理电路所执行的操作相对应的操作步骤,这里将不再详细描述。应指出,根据本公开的方法的各个操作可以由上述区块链侧电子设备来执行、尤其由区块链侧电子设备的处理电路或者相应的处理单元来执行,这里将不再详细描述。在附图中某些步骤用虚线绘出,旨在说明该步骤并不一定被包含在上述方法中。
147.以下将参照附图描述根据本公开的实施例的基于区块链的联邦学习的联邦学习侧的实现。类似于区块链侧的实现那样,根据本公开的实施例的联邦学习端执行的操作可通过联邦学习侧的电子设备来实现。该电子设备可以在联邦学习网络之外,能够控制、导致联邦学习节点来进行操作;或者可以在联邦学习网络内,例如或者是联邦学习节点或者是其一部分,例如其组件、部件等,如前文针对区块链侧认证节点描述的那样。在一种实现中,该电子设备可对应于前文所述的区块链侧的联邦学习节点,如联邦学习发起节点、联邦学习申请节点、联邦学习参与节点中的至少一者,或者可以实现联邦学习发起节点、联邦学习申请节点、联邦学习参与节点中的至少一者的功能/操作。
148.图4a示出了根据本公开的示例性实施例的基于区块链的联邦学习的联邦学习侧的电子设备的框图。电子设备400可以包括处理电路420,该处理电路420可以被配置为在与所述电子设备相关联的联邦学习节点意图参与联邦学习的情况下,将第一联邦学习相关信息传输至区块链侧;获取来自区块链侧的指示所述联邦学习节点能否参与联邦学习的指示信息,所述指示信息是经由区块链对该所述联邦学习相关信息进行验证而生成的;以及在基于所述指示信息确定与所述电子设备相关联的联邦学习节点能够参与联邦学习的情况
下,使得结合联邦学习侧的能够参与联邦学习的各联邦学习节点基于联邦学习进行模型优化。例如,可以基于由联邦学侧的各联邦学习节点的联邦学习应用数据获取全局数据,并利用全局数据对与所述电子设备相关联的联邦学习节点进行优化。
149.联邦学习应用数据的含义可如前所述,例如在通过联合学习进行模型训练的情况下可对应于由联邦学习节点通过本地模型训练获得的模型参数,全局数据则是基于联邦学侧的各联邦学习节点的模型参数而获得的全局模型参数。由此各联邦学习参与节点可以基于该全局模型参数以进行本地模型优化,例如本地模型的参数优化、更新等。
150.在一种实现中,所述处理电路可进一步配置为将由该联邦学习节点的联邦学习应用数据发送至区块链侧;并且获取全局模型区块,以便基于所述全局模型区块进行本地模型优化,所述全局模型区块是经由区块链基于联邦学习应用数据中的模型参数生成的。
151.根据一些实施例,该全局模型参数可以是在区块链侧生成,特别地,可以通过在区块链侧进行的对于各联邦学习参与节点的联邦学习应用数据的处理而被获取,对应于前述全局模型区块,如前所述。在一些实现中,所述处理电路可以配置为获取全局模型区块生成的通知,并且基于该通知从区块链侧获取全局模型区块,例如从区块链、尤其是区块链侧的特定设备下载得到。
152.根据一些实施例,该全局模型参数可以是在联邦学习侧生成。
153.在一些实施例中,该全局模型参数可以直接在联邦学习侧生成。特别地,可以在确定了联邦学习参与节点之后,在联邦学习侧对各联邦学习参与节点的联邦学习应用数据(例如,模型参数)进行整合以生成全局模型参数,然后各联邦学习节点可基于该全局模型参数以进行本地模型优化。在一些实施例中,全局模型参数可由特定的联邦学习节点或相关联设备通过获取各个参与节点的模型参数而生成,例如聚合生成,并且告知各个联邦学习参与点,例如通过广播全局参数的生成以供其它参与方下载,或者直接传输模型参数。这里该特定联邦学习节点可以是可信的特定联邦学习参与节点,可被称为协调方。该协调方可被以各种适当的方式设定,作为示例,控制节点或协调节点可以被从联邦学习节点结合中被适当地选择,例如可以根据控制节点的处理能力、处理效率、空闲状态等来选择,可以被静态选定,例如预先选定,例如在参数优化之前、甚至是在联邦学习开始之前被预先选定,也可以被动态选定,例如在每次迭代过程期间被动态地选择。应指出,控制节点或协调节点可以是与前文所述的联邦学习发起节点相同,或者不同。
154.在另一些实施例中,全局模型参数可各个联邦学习参与节点自身生成,例如获取其它参与节点的模型参数并在本地整合成全局模型参数,并且用于本地模型优化。
155.在一些实施例中,所述处理电路可进一步配置为获取各联邦学习节点的联邦学习应用数据,对各联邦学习节点的联邦学习应用数据中的模型参数进行聚合以生成全局模型参数,并且利用全局模型参数进行本地模型优化。在一些实施例中,还可以将所生成的全局模型参数发送给联邦学习参与节点。这种实现可对应于处理单元相关联的联邦学习节点为联邦学习侧的协调方。
156.应指出,上述直接在联邦学习侧生成全局模型参数的操作可应用于适当的模型训练场景,尤其是在基于模型元数据信息进行联邦学习的情况,其中例如可利用模型元数据进行参与方验证和发起验证等中的至少一种。
157.在一些实施例中,该全局模型参数也可经由区块链生成。特别地,各联邦学习参与
节点的联邦学习应用数据(例如,模型参数)可以发送至区块链侧,以便经由区块链生成子模型区块,然后各联邦学习节点可获取并且基于该子模型区块来生成全局模型参数,以进行本地模型优化。各联邦学习节点获取并基于子模型区块来生成全局模型区块的方式可与前述各联邦学习节点基于模型参数生成全局模型参数的方式相似,例如通过协调方进行,或者由各个学习节点自身生成,这里将不再详细描述。
158.在一些实施例中,所述处理电路可进一步配置为将由该联邦学习节点的联邦学习应用数据发送至区块链侧;获取子模型区块,所述子模型区块是基于经由区块链基于联邦学习参与节点的联邦学习模型参数生成的;基于所获取的子模型区块生成全局模型区块;并且基于所述全局模型区块进行本地模型优化。在一些实施例中,还可以将所生成的全局模型数据发送给联邦学习参与节点。这种实现可对应于处理单元相关联的联邦学习节点为联邦学习侧的协调方。
159.应指出,上述直接在联邦学习侧生成全局模型区块的操作可应用于适当的模型训练场景,尤其是在基于数据元数据信息、模型参数信息、模型元数据信息等进行联邦学习的情况,其中例如可利用这些信息进行参与方验证和发起验证等中的至少一种。
160.作为示例,可以通过广播方式在联邦学习侧告知进行全局模型参数或全局模型区块的生成。作为另一示例,还可以将信息直接传输给联邦学习参与节点,例如可以在前述指示信息中知晓所有联邦学习参与节点,以便进行传输。
161.在一些实施例中,所述处理电路可进一步配置为:向区块链侧发送联邦学习发起请求,所述联邦学习发起请求包含第三联邦学习相关信息;以及获取指示能够发起基于区块链执行联邦学习的信息。该联邦学习节点可对应于本公开的实施例中的联邦学习发起节点。
162.在一些实施例中,所述处理电路可进一步配置为:获取来自联邦学习发起请求中的特定联邦学习相关信息;验证本地联邦学习相关信息与所获取的特定联邦学习相关信息是否相似或匹配;并且在相似或匹配的情况下,确定与所述电子设备相关联的联邦学习节点意图参与联邦学习。这里的特定联邦学习相关信息可由区块链侧发送,可对应于第二联邦学习相关信息,例如可以为第三联邦学习相关信息的至少一部分,如前所述,或者为其它适当的可用于验证是否适于参与该联邦学习的信息。
163.根据本公开的实施例,验证本地联邦学习相关信息与所获取的特定联邦学习相关信息是否相似或匹配可以采用各种适当的方式来进行。在一些实施例中,可以验证本地联邦学习相关信息与第二联邦学习相关信息的特征相似性,例如各联邦学习相关信息所涉及的业务/应用等是否相似,例如它们所包含的信息是否都属于同一种业务/应用有关的特征。例如,在音频、视频等应用的情况下,两种信息是否都指示用于音频、视频应用等。在另一些实施例中,可以验证本地联邦学习相关信息与第二联邦学习相关信息的样本相似性,例如各联邦学习相关信息所包含的样本数据相关信息是否指示这些节点要进行联邦学习所采用的数据的类型、数据的来源等是否相似,例如,是否都使用过相同或相似类型的数据、相同或相似来源的数据等。并且在相似的情况下可认为两者匹配。
164.在一些实施例中,所述处理电路可进一步配置为:验证本地模型参数是否满足特定条件,并且在所述本地模型参数不能满足所述特定条件的情况下,经由迭代地执行基于区块链的联邦学习。作为示例,所述特定条件例如对应于特定终止条件,例如收敛条件、迭
代次数、模型性能要求等等中的至少一者,并且如果未达到收敛,未达到预定的迭代次数,未达到模型性能要求等等,则继续下一次联邦学习,直到满足了迭代停止条件(例如,可对应于模型性能要求、收敛条件,迭代次数等等)。迭代的终止判定还可以采用本领域已知的其它方式来实现,这里将不再详细描述。
165.在本公开的实施例中,迭代可由特定联邦学习侧的特定设备或者节点来触发,并且例如可从前述的不同联邦学习阶段进行迭代。在一些实施例中,可以仅迭代地执行联邦学习参与节点的操作,例如由联邦学习节点迭代地获取全局模型参数或全局模型区块,然后进行本地模型更新,如前所述。这样可无需执行前述的联邦学习发起以及联邦学习参与方验证的操作。在一些实施例中,可以从联邦学习参与者验证操作起进行迭代,例如可迭代地执行联邦学习参与者验证、然后联邦学习参与者获取全局模型参数或全局模型区块,并进行本地模型更新,如前所述。这样可无需执行前述的联邦学习发起。还在一些实施例中,可以从联邦学习意图参与者的验证操作起迭代地执行联邦学习,甚至可以从联邦学习发起开始迭代地执行联邦学习。
166.应指出,上述处理电路420所实现的过程/操作中的各种请求、信息等等的含义都与前文所述相同,这里将不再详细描述。此外,电子设备400和处理电路420可被以与前述的电子设备300和处理电路320相类似的实现方式来实现,例如处理器、单元、程序模块等等。
167.在一些实施例中,处理电路420可以包括传输单元422,被配置为将第一联邦学习相关信息传输至区块链侧;获取单元424,被配置为获取来自区块链侧的指示与所述电子设备相关联的联邦学习节点能否参与联邦学习的指示信息,所述指示信息是经由区块链对该所述联邦学习相关信息进行验证而生成的;以及优化单元426,被配置为在基于所述指示信息确定与所述电子设备相关联的联邦学习节点能够参与联邦学习的情况下,使得结合联邦学习侧的能够参与联邦学习的各联邦学习节点基于联邦学习进行模型优化。
168.在一些实施例中,处理电路420还可以包括用于获取全局模型参数的单元,所述全局模型参数是基于联邦学习侧的能够参与联邦学习的各联邦学习节点的模型参数而生成的;并且所述优化单元426被配置为基于所述全局模型参数进行模型优化。
169.在一些实施例中,处理电路420还可以包括用于获取联邦学习侧的能够参与联邦学习的各联邦学习节点的模型参数的单元;计算单元428,被配置为通过对各联邦学习节点的模型参数进行聚合以生成全局模型参数;以及用于将所述全局模型参数发送给各联邦学习节点的单元。
170.在一些实施例中,处理电路420还可以包括用于将由联邦学习节点通过本地模型训练获得的模型参数发送至区块链侧的单元,以及用于获取全局模型区块的单元,所述全局模型区块是经由区块链基于联邦学习侧的能够参与联邦学习的各联邦学习节点的模型参数而生成的;并且所述优化单元426被配置为基于所述全局模型区块进行本地模型优化。
171.在一些实施例中,处理电路420还可以包括用于获取经由区块链基于各联邦学习节点的模型参数生成的子模型区块的单元;并且所述计算单元被配置为将所获取的子模型区块聚合成全局模型区块。
172.在一些实施例中,处理电路420还可以包括用于将全局模型区块分发给联邦学习的能够参与联邦学习的其它联邦学习节点的单元。
173.在一些实施例中,处理电路420还可以包括用于获取第二联邦学习相关信息的单
元;验证单元430,被配置为验证本地联邦学习相关信息与所获取的联邦学习相关信息是否匹配;并且在匹配的情况下,确定与所述电子设备相关联的联邦学习节点意图参与联邦学习。
174.在一些实施例中,处理电路420还可以包括用于向区块链侧发送联邦学习发起请求的发起单元432,所述联邦学习发起请求包含第三联邦学习相关信息;以及用于获取指示能否发起基于区块链执行联邦学习的信息的单元,所述信息是经由区块链对所述第三联邦学习相关信息进行验证而生成的。
175.在一些实施例中,处理电路420还可以包括迭代触发单元434,被配置用于验证模型参数是否满足特定收敛条件,并且在所述模型参数不能满足所述特定收敛条件的情况下,触发迭代地进行基于区块链的联邦学习。
176.此外,与处理电路320相类似的,处理电路420也可包含前述的附加组件。这里将不再详细描述。
177.图4b示出了根据本公开的示例性实施例的联邦学习侧方法的流程图。在方法410中,在步骤s413中,将第一联邦学习相关信息传输至区块链侧;在步骤s414中,获取来自区块链侧的指示与所述电子设备相关联的联邦学习节点能否参与联邦学习的指示信息,所述指示信息是经由区块链对该所述联邦学习相关信息进行验证而生成的;以及在步骤s415中,被配置为在基于所述指示信息确定与所述电子设备相关联的联邦学习节点能够参与联邦学习的情况下,使得结合联邦学习侧的能够参与联邦学习的各联邦学习节点基于联邦学习进行模型优化。
178.在一些实施例中,步骤415还可包括获取全局模型参数,所述全局模型参数是基于联邦学习侧的能够参与联邦学习的各联邦学习节点的模型参数而生成的;并且基于所述全局模型参数进行模型优化。
179.在一些实施例中,步骤415还可以包括获取联邦学习侧的能够参与联邦学习的各联邦学习节点的模型参数;以及通过对各联邦学习节点的模型参数进行聚合以生成全局模型参数;以及用于将所述全局模型参数发送给各联邦学习节点。
180.在一些实施例中,步骤415还可以包括将由联邦学习节点通过本地模型训练获得的模型参数发送至区块链侧,以及用于获取全局模型区块,所述全局模型区块是经由区块链基于联邦学习侧的能够参与联邦学习的各联邦学习节点的模型参数而生成的;并且基于所述全局模型区块进行本地模型优化。
181.在一些实施例中,步骤415还可以包括获取经由区块链基于各联邦学习节点的模型参数生成的子模型区块;并且将所获取的子模型区块聚合成全局模型区块。
182.在一些实施例中,步骤415还可以包括将全局模型区块分发给联邦学习的能够参与联邦学习的其它联邦学习节点。
183.在一些实施例中,方法410还可以包括步骤s412,其中获取第二联邦学习相关信息;验证本地联邦学习相关信息与所获取的联邦学习相关信息是否匹配;并且在匹配的情况下,确定与所述电子设备相关联的联邦学习节点意图参与联邦学习。
184.在一些实施例中,方法410还可以包括步骤s411,其中向区块链侧发送联邦学习发起请求,所述联邦学习发起请求包含第三联邦学习相关信息;以及获取指示能否发起基于区块链执行联邦学习的信息,所述信息是经由区块链对所述第三联邦学习相关信息进行验
证而生成的。
185.在一些实施例中,方法410还可以步骤s416,其中验证模型参数是否满足特定收敛条件,并且在所述模型参数不能满足所述特定收敛条件的情况下,迭代地进行基于区块链的联邦学习。
186.应指出,根据本公开的方法还可包括与上述联邦学习侧电子设备的处理电路所执行的操作相对应的操作步骤,这里将不再详细描述。应指出,根据本公开的方法的各个操作可以由上述联邦学习侧电子设备来执行、尤其由联邦学习侧电子设备的处理电路或者相应的处理单元来执行,这里将不再详细描述。
187.以下将参照附图来描述根据本公开的实施例的基于区块链的联邦学习的总体实现。特别地,将描述整个基于区块链的联邦学习的系统架构的操作流程以及信令图。
188.图5a示出了根据本公开的实施例的基于区块链的联邦学习的总体流程图。图5b示出了根据本公开的实施例的基于区块链的联邦学习的总体信令图。
189.根据本公开的实施例,基于区块链的联邦学习方法能够由基于区块链的联邦学习系统执行,所述系统包括包含联邦学习侧和区块链侧。方法可包括如下步骤:由联邦学习侧的联邦学习节点将第一联邦学习相关信息传输至区块链侧;由所述区块链侧接收所述第一联邦学习相关信息,并经由区块链基于所述第一联邦学习相关信息,验证联邦学习节点是否能够参与联邦学习;由所述区块链侧将指示联邦学习参与方的指示信息告知所述联邦学习侧;由所述联邦学习侧基于所述指示信息确定联邦学习参与节点;并且基于由联邦学侧的各联邦学习节点的联邦学习应用数据得到的全局数据来对联邦学习节点进行优化。
190.在本公开的实施例中,该方法还可包括如下步骤:由所述联邦学习侧的联邦学习节点向区块链侧发送第三联邦学习相关信息;由区块链侧基于所述第三联邦学习相关信息来验证是否允许发起联邦学习,并且在允许发起联邦学习的情况下将第二联邦学习相关信息发送到联邦学习侧;由所述联邦学习侧中的各联邦学习节点基于所述联邦学习相关信息来判断是否该联邦学习节点是否是意图参与联邦学习的联邦学习意向节点。
191.在本公开的实施例中,该方法还可包括如下步骤:由所述联邦学习侧将各联邦学习节点的联邦学习应用数据发送至区块链侧;由区块链侧基于各联邦学习节点的联邦学习应用数据中的模型参数生成模型区块;由区块链侧将所述模型区块的生成通知所述联邦学习侧;并且联邦学习侧中的各联邦学习节点基于所述模型区块进行本地模型优化。模型区块的生成以及基于模型区块进行的优化可如前所述地执行,这里将不再详述。
192.在本公开的实施例中,该方法还可包括如下步骤:联邦学习侧的各联邦学习节点生成各自的联邦学习应用数据;在联邦学习侧基于各联邦学习节点的联邦学习应用数据中的模型参数生成全局模型参数;并且各联邦学习节点基于该全局模型参数执行本地模型优化。全局模型参数的生成以及基于其进行的优化可如前所述地执行,这里将不再详述。
193.在本公开的实施例中,上述流程或信令交互中的至少一些可以迭代地执行,直到满足特定条件。如上所述,这里将不再详细描述。
194.以下将描述根据本公开的实施例的基于区块链的联邦学习的示例性实现。
195.根据本公开的一些实施例,在第一类为联邦学习参与方不是区块链节点的联邦学习架构中,可以分别基于元数据上链、基于模型上链、基于模型元数据中的至少一者来实现上链,实现了各个参与方之间多方安全计算,进一步增强了参与方之间的可信机制。其中联
邦学习网络以适当的通信方式接入到区块链网络,并且上述的元数据、模型、模型元数据中的每一者都可对应于前述第一到第三联邦学习相关信息中的每一者,即作为其的一个示例。以下将参照第一到第三实施例对上述三种上链操作对此进行详细描述。
196.以下将参照附图6a-6c描述根据本公开的第一实施例的基于区块链的联邦学习的示例性实现。其中联邦学习的参与方不是区块链节点,并且各个参与节点将通过联邦学习网络与区块链网络之间的互联来进行基于区块链的联邦学习,并且通过基于元数据来接入区块链,并执行联邦学习过程中的操作。
197.该架构的工作流程为:联邦学习节点发起上链请求(数据的元数据)
→
区块链网络进行验证(身份认证和信息认证)
→
区块链网络确定参与方角色
→
区块链网络或者联邦学习网络计算全局模型。详细描述如下:
198.首先,联邦学习节点发起数据的元数据上链请求(步骤1)。特别地,联邦学习发起方(任意参与方)向区块链发出元数据上链请求,其中联邦学习发起方将联邦学习发起方的身份信息、元数据信息等中的至少一者提供到区块链,实际数据还存储在联邦学习发起方内。
199.然后,区块链网络基于所收到的信息进行验证(身份认证和信息认证)(步骤2-3)。特别地,区块链先对联邦学习发起方(任意参与方)进行身份验证,身份验证成功后验证元数据(例如,查看字段列表、样本数量、缺失比例,数据是否离散),验证成功后,区块链网络接受发起方的申请,然后,在区块链网络广播元数据。区块链向全网络广播联邦学习发起方的元数据。另一方面,如果验证不成功,则直接拒绝。
200.进一步地,区块链网络确定参与方角色(步骤4-6)。特别地,当各个联邦学习节点监听区块链的广播,下载元数据,将自己的本地数据与广播的元数据进行分析,例如,特征相似性或者样本id对齐,来决定是否参与联邦学习。然后,决定意向加入联邦学习的各个联邦学习节点将自身的元数据申请上传到区块链,并请求参与联邦学习。区块链侧对意向加入联邦学习的节点,进行身份验证和元数据验证(是否满足元数据标准以及联邦学习标准),来决定是否同意联邦学习请求,并将验证结果广播在全网络中,分配参与方角色。具体而言,在身份验证通过且元数据满足元数据标准和联邦学习标准的情况下,可认为发请求的意向方可作为联邦学习的参与方。
201.接下来,由区块链网络或者联邦学习网络计算全局模型(步骤7-10)。
202.联邦学习发起方(任意参与方)与参与方开启联邦学习,分别基于本地数据进行模型训练。然后发起模型上链请求,区块链形成多个子模型区块。各参与方将模型参数(模型权重、梯度等信息)通过区块链进行上链服务,经过智能合约对参与方上传的局部梯度进行安全审计,例如异常监测,抛弃那些可疑的模型参数。通过安全审计检查之后,运行区块链共识算法,生成多个子模型区块。
203.接下来,区块链网络或者联邦学习网络执行子模型区块聚合操作以形成全局模型,分为以下两种方法:
204.1)区块链网络计算,形成全局模型区块。在区块链节点中选择一个区块链节点,并分配“协调方”的角色(例如,选择各个区块链节点的轮流制或者投票制),协调者负责将各子模型的区块进行聚合计算和存储,并更新全局模型区块,然后,向全网广播,告知各个参与方已完成了聚合区块,各个联邦学习参与方下载全局模型区块,进行自己的模型参数迭
代优化,并更新本地模型。
205.2)联邦学习网络计算,形成全局模型。(a)在参与方中选择“协调方”(例如,协调方可以为发起方),由协调方下载多个子模型区块,本地聚合形成全局模型,将全局模型分发给各个参与方,各个参与方进行自己的模型参数迭代优化,并更新本地模型;(b)各个参与方下载多个子模型区块,在参与方本地聚合形成全局模型,进行自己的模型参数迭代优化,并更新本地模型。在这过程中联邦学习参与方所参与的交互和计算流程在区块链上存证,永久存储并不可篡改。特别地,联邦学习参与方与区块链之间的交互、模型区块的计算、联邦学习参与方之间的交易记录(模型交互记录)都可利用区块链交易存证机制能够记录在区块链中。
206.然后可以判断判断各个参与方模型参数是否收敛,若收敛,则停止模型训练循环执行。否则可循环执行在先的步骤,以迭代地执行联邦学习模型训练。在一种实现中,可以迭代地执行参与方模型训练,例如步骤7-9,其中每次迭代中的参与方基本相同;在另一种实现中,可迭代地执行参与方确认与模型训练,例如步骤5-9,其中每次迭代中意向节点可基本相同;在还另一种实现中,甚至可迭代地执行意向方确认、参与方确认以及模型训练,例如步骤4-9;其中每次迭代开始都要重新确定意向方并然后执行后续操作。在还另一种实现中,甚至可以依次循环步骤1-步骤9,其中每次迭代均从联邦学习发起开始。
207.以下将参照附图7a-7c描述根据本公开的第二实施例的基于区块链的联邦学习的示例性实现。其中联邦学习的参与方不是区块链节点,并且各个参与节点将通过联邦学习网络与区块链网络之间的互联来进行基于区块链的联邦学习,并且通过基于模型参数来接入区块链,并执行联邦学习过程中的操作。这里的模型参数可以包括模型权重、梯度等信息,如前所述。
208.首先联邦学习节点发起模型上链请求(步骤1-2)。特别地,联邦学习发起方(任意参与方)基于本地训练数据集进行模型训练,并且向区块链网络发起模型上链请求。
209.然后,区块链节点进行验证(身份认证和信息认证)(步骤3-4)特别地,区块链先对联邦学习发起方(参与方)进行身份验证,身份验证成功后验证模型参数的合法性(例如,是否存在的可疑模型),验证成功后,区块链网络接受发起方的申请,否则拒绝。然后,区块链向全网络广播该联邦学习发起方的模型。
210.然后,区块链节点确定参与方角色(步骤5-7)
211.各个联邦学习节点监听区块链的广播,下载该联邦学习发起方模型,分析该模型参数对于自己是否有效(例如,特征相似性或者样本id对齐),来决定是否参与联邦学习。
212.进一步地,意向加入联邦学习的节点基于本地数据集进行模型训练,将自身的模型申请上传到区块链。
213.然后,区块链对意向加入联邦学习的节点进行身份和模型验证,来决定是否同意联邦学习请求,并将验证结果广播在全网络中,分配参与方角色。
214.接下来,区块链网络或者联邦学习网络计算全局模型。(步骤8-10)。经由区块链,通过智能合约对参与方上传的模型进行异常监测并抛弃那些可疑的模型。再经过区块链共识算法后,生成多个子模型区块。然后由区块链网络或者联邦学习网络执行子模型区块聚合操作以形成全局模型。这里全局模型的计算方式可以如上述第一实施例那样执行,这里将不再详细描述。
215.本实施例的联邦学习模型训练可以迭代地执行。然后可以判断判断各个参与方模型参数是否收敛,若收敛,则停止模型训练循环执行。否则可循环执行在先的步骤,以迭代地执行联邦学习模型训练。特别地,可以如第一实施例那样执行,例如在迭代中参与方保持基本不变,例如步骤8-9,或者意向方基本不变地从参与方分配开始迭代,例如步骤6-9,或者从确定意向方开始进行迭代,如步骤5-9,或者甚至从联邦学习发起开始,例如步骤1-9。
216.以下将参照附图8a-8c描述根据本公开的第三实施例的基于区块链的联邦学习的示例性实现。其中联邦学习的参与方不是区块链节点,并且各个参与节点将通过联邦学习网络与区块链网络之间的互联来进行基于区块链的联邦学习,并且通过基于模型元数据参数来接入区块链。本实施例中的操作流程如下。
217.首先,联邦学习节点发起模型的元数据上链请求(步骤1-2)。联邦学习发起方(任意参与方)基于本地数据,完成本地模型训练。然后定义模型元数据,发起方向区块链发起模型元数据上链请求。
218.接下来,区块链节点进行验证(身份认证和信息认证)(步骤3-4)。特别地,区块链先对联邦学习发起方(参与方)进行身份验证,身份验证成功后验证模型元数据,例如验证模型是否存在异常模型、模型是否具备明显的特征。在验证之后,区块链向全网络广播该联邦学习发起方(任意参与方)的模型元数据。
219.然后,经由区块链网络确定参与方角色(步骤5-7)。特别地,各个联邦学习节点监听区块链的广播,下载模型元数据,对广播的模型元数据进行分析,例如,分析特征相似性或者数据id对齐,来决定是否参与联邦学习。然后,意向加入联邦学习的节点基于本地数据进行模型训练,将自身的模型元数据申请上传到区块链,以发起模型元数据上链请求。区块链接收到模型元数据请求对意向加入联邦学习的节点进行身份和模型元数据进行验证,来决定是否同意联邦学习请求,并将验证结果广播在全网络中,分配参与方角色。
220.然后,在联邦学习网络计算全局模型(步骤7-10)。特别地,在参与方中选取协调方(例如,协调方可以为发起方),各个参与方将本地参数模型发给协调方,协调方聚合各个参与方发来的本地模型,形成全局模型,协调方将全局模型分发给各个参与方,进行自己的模型参数迭代优化,并更新本地模型。或者,每个参与方可以获取其它各参与方的模型参数,例如获取各参与方的模型,从而在本地组合成全局模型,进行自己的模型参数迭代优化,并更新本地模型。
221.在这过程中,联邦学习参与方所参与的交互和计算流程在区块链上存证,永久存储并不可篡改。特别地,联邦学习参与方与区块链之间的信令交互、联邦学习参与方之间的模型参数计算以及交易记录(模型交互记录)都可利用区块链交易存证机制能够记录在区块链中。特别地,每个参与方都有地址信息,因此参与方间的交互可存证在区块链内。
222.本实施例的联邦学习模型训练可以迭代地执行。然后可以判断判断各个参与方模型参数是否收敛,若收敛,则停止模型训练循环执行。否则可循环执行在先的步骤,以迭代地执行联邦学习模型训练。例如,可以如前述实施例那样类似地针对不同的阶段执行迭代。
223.另一方面,依据区块链技术及联邦学习技术的融合,在第二类为联邦学习参与方是区块链节点的架构中,联邦学习节点将作为区块链节点在区块链中以进行联邦学习。在此情况下,区块链仍将对发起联邦学习的节点以及请求参与联邦学习的节点进行验证,以保证能够安全可靠地执行联邦学习,特别地参与到联邦学习中的节点是相对可靠的,在联
邦学习参与节点作为区块链节点在区块链中进行联邦学弟的情况下,区块链中联邦学习节点之间的通信可被以各种适当的方式来执行,例如可以通过广播方式来进行。以下将参照第四到第六实施例对上述三种上链操作对此进行详细描述。
224.以下将参照附图9a-9c描述根据本公开的第四实施例的基于区块链的联邦学习的示例性实现。其中联邦学习的参与方是区块链节点,并且各个参与节点将在区块链网络中进行基于区块链的联邦学习,并且通过基于元数据在区块链中进行广播以执行联邦学习。
225.详细的工作流程如下所示:
226.首先,区块链节点发起广播数据的元数据请求(步骤1)。特别地,联邦学习发起方(任意参与方)发起广播元数据请求,用户实际数据还存储在发起方上内。
227.接下来,区块链网络进行验证(信息认证)(步骤2-3)。特别地,区块链网络验证元数据(例如,查看字段列表、样本数量、缺失比例,数据是否离散),验证成功后,广播成功,否则拒绝。并且,区块链还向全网络广播该发起方的数据的元数据。
228.接下来,区块链网络确定参与方角色(步骤4-6)。特别地,各个区块链节点分析元数据监听广播信息,将自己的本地数据与广播的元数据进行分析,例如,特征相似性或者样本id对齐,来决定是否参与联邦学习。意向加入联邦学习的区块链节点请求将元数据广播于整个区块链网络,并请求联邦学习。然后,区块链网络对意向加入联邦学习的区块链节点的元数据进行验证(例如,查看字段列表、样本数量、缺失比例,数据是否离散),来决定是否同意联邦学习请求,并将验证结果广播在全网络中,分配参与方角色。
229.接下来,区块链网络计算全局模型(步骤7-10)。特别地,联邦学习发起方(任意区块链节点)以及联邦学习参与方基于本地数据集进行模型训练。然后,区块链网络通过智能合约算法,各个联邦学习参与方之间对模型异常监测,例如抛弃那些可疑的数据模型,再经过客户端之间的共识机制,生成子区块模型。然后,在区块链节点上中选取协调方(例如采用轮流制或者选票制),负责聚合子区块模型,形成全局区块模型,协调方将全局区块模型分发给各个参与方,进行自己的模型参数迭代优化,并更新本地模型。
230.本实施例的联邦学习模型训练可以迭代地执行。然后可以判断判断各个参与方模型参数是否收敛,若收敛,则停止模型训练循环执行。否则可循环执行在先的步骤,以迭代地执行联邦学习模型训练。例如,可以如前述实施例那样针对不同的阶段迭代地执行,这里将不再描述。
231.以下将参照附图10a-10c描述根据本公开的第五实施例的基于区块链的联邦学习的示例性实现。其中联邦学习的参与方是区块链节点,并且各个参与节点将在区块链网络中进行基于区块链的联邦学习,并且通过基于模型参数在区块链中进行广播以执行联邦学习。
232.首先,区块链节点发起广播模型请求(步骤1-2)。特别地,联邦学习发起方(任意参与方)基于本地训练数据集进行模型训练。联邦学习发起方(任意参与方)发起广播模型请求。
233.然后,区块链网络进行验证(信息认证)(步骤3-4)。区块链网络验证模型(例如,查看是否存在可疑的模型),验证成功后,广播成功,否则拒绝。区块链网络广播该发起方的模型信息。
234.然后,区块链网络确定参与方角色(步骤5-7)。各个区块链节点监听到区块链的广
播,获取该联邦学习发起方(参与方)模型参数,检查该模型参数对于自己是否有效,例如,特征相似性或者样本id对齐,来决定是否参与联邦学习。意向加入联邦学习的区块链节点利用本地数据集进行模型训练,形成本地模型,并将模型参数广播在全网络中。区块链网络对意向加入联邦学习的区块链节点的模型进行验证(例如查看是否存在可疑的模型),来决定是否同意联邦学习请求,并将验证结果广播在全网络中,分配参与方角色。
235.然后,区块链网络计算全局模型(步骤8-10)。特别地,通过区块链网络生成子区块模型,然后区块链网络形成全局区块模型。这里的可以采用如前文所述那样的类似的实现,这里将不再详细描述。
236.本实施例的联邦学习模型训练可以迭代地执行。然后可以判断判断各个参与方模型参数是否收敛,若收敛,则停止模型训练循环执行。否则可循环执行在先的步骤,以迭代地执行联邦学习模型训练。特别地,例如,可以如前述实施例那样针对不同的阶段迭代地执行,这里将不再描述。
237.以下将参照附图11a-11c描述根据本公开的第六实施例的基于区块链的联邦学习的示例性实现。其中联邦学习的参与方是区块链节点,并且各个参与节点将在区块链网络中进行基于区块链的联邦学习,并且通过基于模型元数据参数在区块链中进行广播以执行联邦学习。
238.首先,区块链节点发起广播模型元数据(步骤1-2)。联邦学习发起方(参与方)基于本地数据,完成本地模型训练。定义模型元数据,联邦学习发起方(任意参与方)发起广播模型请求。
239.然后,区块链网络进行验证(信息认证)(步骤3-4)。区块链网络验证模型元数据(例如,查看样本的数量是否充足、是否有明显的模型特征),验证成功后,广播成功,否则拒绝。区块链网络广播该发起方的模型元数据。
240.然后,区块链网络确定参与方角色(步骤5-7)。各个区块链节点监听到区块链的广播,获取该联邦学习发起方(参与方)模型元数据,检查该模型元数据对于自己是否有效,例如,特征相似性或者样本id对齐,来决定是否参与联邦学习。意向加入联邦学习的区块链节点利用本地数据集进行模型训练,形成本地模型,并将模型元数据广播在全网络中。区块链网络对意向加入联邦学习的区块链节点的模型元数据进行验证(例如,查看样本的数量是否充足、是否有明显的模型特征)),来决定是否同意联邦学习请求,并将验证结果广播在全网络中,分配参与方角色。
241.然后,区块链网络计算全局模型(步骤8-10)。特别地,通过区块链网络生成子区块模型,然后区块链网络形成全局区块模型。这里的可以采用如前文所述那样的类似的实现,这里将不再详细描述。
242.本实施例的联邦学习模型训练可以迭代地执行。然后可以判断判断各个参与方模型参数是否收敛,若收敛,则停止模型训练循环执行。否则可循环执行在先的步骤,以迭代地执行联邦学习模型训练。特别地,例如,可以如前述实施例那样针对不同的阶段迭代地执行,这里将不再描述。
243.应该注意的是,上面的描述仅仅是示例性的。本公开的实施例也可以以任何其他适当的方式来执行,并且仍然可以实现本公开的实施例所获得的有益效果。此外,本公开的实施例还可以应用于其他类似的应用示例,并且仍然可以实现本公开的实施例所获得的有
益效果。应当理解,根据本公开实施例的机器可读存储介质或程序产品中的机器可执行指令可以被配置成执行对应于上述设备和方法实施例的操作。当参考设备和方法的上述实施例时,机器可读存储介质或程序产品的实施例对于本领域技术人员来说是清楚的,因此将不再重复描述。用于承载或包括前述机器可执行指令的机器可读存储介质和程序产品也属于本公开的范围。这种存储介质可以包括但不限于软盘、光盘、磁光盘、存储卡、记忆棒等。
244.此外,应当理解,如上所述的一系列过程和设备也可以通过软件和/或固件来实现。在由软件和/或固件实现的情况下,构成相应软件的相应程序存储在相关设备的存储介质中,并且当执行该程序时,可以实现各种功能。作为示例,构成软件的程序可以从存储介质或网络安装到具有专用硬件结构的计算机,例如图12所示的通用计算机1200,并且当安装各种程序时,计算机能够执行各种功能等。图12是示出了作为可以在根据本公开的实施例中采用的信息处理设备的示例的计算机的示例性结构的框图。在一个示例中,计算机可以对应于根据本公开的区块链侧的上述示例性电子设备或者联邦学习侧的电子设备。
245.在图12中,中央处理单元(cpu)1201根据存储在只读存储器(rom)1202中的程序或者从存储部分1208加载到随机存取存储器(ram)1203的程序来执行各种处理。在ram 1203中,还根据需要存储当cpu 1201执行各种处理等时所需的数据。
246.cpu 1201、rom 1202和ram 1203经由总线1204相互连接。输入/输出接口1205也连接到总线1204。
247.以下组件连接到输入/输出接口1205:包括键盘、鼠标等的输入部分1206。;输出部分1207包括显示器,例如阴极射线管(crt)、液晶显示器(lcd)等。和扬声器等。;存储部分1208包括硬盘等。;以及包括诸如lan卡、调制解调器等网络接口卡的通信部分1209。通信部分1209经由诸如互联网的网络执行通信处理。
248.根据需要,驱动器1210也可以连接到输入/输出接口1205。诸如磁盘、光盘、磁光盘、半导体存储器等的可移动介质1211。根据需要安装在驱动器1210上,从而根据需要将从中读出的计算机程序安装到存储部分1208中。
249.在上述一系列处理由软件实现的情况下,从诸如互联网的网络或诸如可移动介质1211的存储介质安装构成软件的程序。
250.本领域的技术人员应该理解,存储介质不限于图8所示的可移动介质1211,其中存储有程序,并且与设备分开分发以向用户提供程序。可移动介质1211的示例包括磁盘(包括软盘)、光盘(包括cd-rom和数字多功能盘(dvd))、磁光盘(包括迷你盘(md)(tm))和半导体存储器。可选地,存储介质可以是rom 1202、存储部分1208中包括的硬盘等,程序存储在其中,并且与包含它们的设备一起分发给用户。
251.此外,应该理解,在上述实施例中,包括在一个单元中的多个功能可以由单独的设备来实现。或者,在上述实施例中由多个单元实现的多个功能可以分别由单独的设备实现。此外,上述功能之一可以由多个单元实现。不用说,这种配置包括在本公开的技术范围内。
252.这里,流程图中示出的步骤不仅包括以时间顺序描述的顺序执行的过程,还包括并行或单独执行的过程,而不是必须以时间顺序执行。此外,即使在按时间顺序处理的步骤中,不用说,也可以适当地改变顺序。
253.尽管已经详细描述了本公开及其优点,但是应当理解,在不脱离由所附权利要求限定的本公开的精神和范围的情况下,可以对其进行各种改变、替换和变更。此外,本公开
的实施例的术语“包括”、“包含”或其任何其他变体旨在涵盖非排他性的包含,使得包括一系列元素的过程、方法、物品或设备不仅包括那些元素,还包括未明确列出的其他元素,或者这种过程、方法、物品或设备固有的元素。没有更多的限制,由句子“包括一个...”定义的元件不排除在包括这些元素的过程、方法、物品或设备中存在其他相同元素的情况。
254.尽管已经详细描述了本公开的一些具体实施例,但是本领域技术人员应该理解,上述实施例仅仅是说明性的,并不限制本公开的范围。本领域技术人员应该理解,在不脱离本公开的范围和本质的情况下,可以组合、修改或替换上述实施例。