联邦学习中的参数共享
背景技术:1.本发明的实施例的领域总体上涉及分布式数据环境中的联邦学习。
2.联邦学习涉及多方之间的协作,以基于包括各方(即,数据方)所拥有的多个数据源的训练数据来学习/训练预测机器学习模型,而不共享/揭示训练数据。由协作产生的模型比仅基于一个数据源而单独学习的任何模型更准确。各方之间的信任可取决于各方之间的关系而变化。因此,各方之间的信任可能受到限制。各方可包括但不限于经由在其移动设备(例如,智能电话、物联网(iot)设备等)上操作的移动应用来提供个人数据的个人、同一伞状公司下的不同机构、同一域/领域内的竞争公司(例如,电缆公司、银行)等。
3.实现机器学习模型的协作训练的常规联邦学习系统出现许多问题。例如,2019年系统和机器学习大会(the 2019conference on systems and machine learning)(sysml’19)包括涵盖用于需要定制开发和维护以保持可扩展性的联邦学习的可扩展聚合器的会议。作为另一示例,开放机器学习(openml)(使用区块链来存储模型更新的另一常规方法)太慢。作为另一示例,通过聚合来自iot设备的数据来实现多个iot设备之间的协作的常规系统不允许模型版本化(即,机器学习模型的版本控制)。进一步,这样的常规系统不提供简单的查询方式,并且不允许信息的双向数据流。诸如和的使用消息队列的其他常规系统不允许模型版本化。因此,参与联邦学习的数据方/设备的多样性使得需要简单、鲁棒和成本高效的解决方案。
技术实现要素:4.根据一个方面,提供了一种用于跨多个数据方进行联邦学习的方法,包括:在对象存储库中给每个数据方分配对应命名空间;在对象存储库中分配共享命名空间;通过向至少一个数据方发布定制学习请求来触发一轮联邦学习,其中,向数据方发布的每个定制学习请求触发该数据方基于由该数据方拥有的训练数据和在对象存储库中的共享命名空间中存储的一个或多个模型参数来本地训练模型,并且将从本地训练产生的本地模型上传到分配给该数据方的在对象存储库中的对应命名空间;从对象存储库检索在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的至少一个本地模型;以及聚合从对象存储库检索的所述至少一个本地模型以获得共享模型。
5.根据另一方面,提供了一种用于跨多个数据方进行联邦学习的系统,包括:至少一个处理器;以及存储指令的非瞬态处理器可读存储器设备,所述指令在由所述至少一个处理器执行时使得所述至少一个处理器执行操作,所述操作包括:在对象存储库中给每个数据方分配对应命名空间;在对象存储库中分配共享命名空间;通过向至少一个数据方发布定制学习请求来触发一轮联邦学习,其中,向数据方发布的每个定制学习请求触发该数据方基于由所述数据方拥有的训练数据和在对象存储库中的共享命名空间中存储的一个或多个模型参数来本地训练模型,并且将从本地训练产生的本地模型上传到分配给该数据方的在对象存储库中的对应命名空间;从对象存储库检索在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的至少一个本地模型;以及聚合从对象存储库检索的所述至少
一个本地模型以获得共享模型。
6.根据另一方面,提供了一种用于跨多个数据方进行联邦学习的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令可由处理器执行以使处理器:在对象存储库中给每个数据方分配对应命名空间;在对象存储库中分配共享命名空间;通过向至少一个数据方发布定制学习请求来触发一轮联邦学习,其中,向数据方发布的每个定制学习请求触发该数据方基于由该数据方拥有的训练数据和在对象存储库中的共享命名空间中存储的一个或多个模型参数来本地训练模型,并且将从本地训练产生的本地模型上传到分配给该数据方的在对象存储库中的对应命名空间;从对象存储库检索在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的至少一个本地模型;以及聚合从对象存储库检索的所述至少一个本地模型以获得共享模型。
7.本发明的实施例总体上涉及分布式数据环境中的联邦学习,更具体地涉及在联邦学习中进行参数共享的方法和系统。
8.本发明的实施例提供了一种用于跨多个数据方进行联邦学习的方法。该方法包括:在对象存储库中给每个数据方分配对应命名空间;在对象存储库中分配共享命名空间;以及通过向至少一个数据方发布定制学习请求来触发一轮联邦学习。向数据方发布的每个定制学习请求触发该数据方基于由所述数据方拥有的训练数据和在对象存储库中的共享命名空间中存储的一个或多个模型参数来本地训练模型,并且将从本地训练产生的本地模型上传到分配给该数据方的在对象存储库中的对应命名空间。该方法还包括:从对象存储库检索在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的至少一个本地模型;以及聚合从对象存储库检索的所述至少一个本地模型以获得共享模型。将共享模型上传到对象存储库中的共享命名空间。向每个数据方通知上传到对象存储库中的共享命名空间的共享模型。其他实施例包括用于跨多个数据方进行联邦学习的系统以及用于跨多个数据方进行联邦学习的计算机程序产品。这些特征有助于提供简单、鲁棒和成本高效的联邦学习的可扩展且容错的解决方案的优点。这些特征还有助于提供涉及各数据方和聚合器的联邦学习系统,其中,该系统能够在任何类型的网络连接下运行,并且该系统为各数据方和聚合器提供标准化应用编程接口(api)。
9.可以包括以下特征中的一个或多个。在一些实施例中,为每个数据方存储在多轮联邦学习期间上传到分配给该数据方的在对象存储库中的对应命名空间的本地模型的多个版本。在一些实施例中,存储在多轮联邦学习期间上传到对象存储库中的共享命名空间的共享模型的多个版本。这些可选特征具有保留来自任何数据方的历史数据以及提供模型版本化以回溯旧模型状态的优点。
10.本发明的实施例的这些和其他方面、特征以及优点将参考附图以及在此的详细说明来理解,并且将借助于在所附权利要求书中特别指出的不同元件和组合来实现。应当理解,前面的总体描述和下面的附图说明以及对本发明的实施例的详细描述都是对本发明的示范性和说明性的优选实施例,而不是对所要求保护的本发明的实施例的限制。
附图说明
11.现在将仅通过举例并参考以下附图描述本发明的优选实施例:
12.图1示出了根据本发明实施方式的云计算环境;
13.图2描述了根据本发明的实施方式的抽象模型层;
14.图3示出了实现联邦学习的常规方法的示例系统;
15.图4示出用于实现去中心化的联邦学习的示例计算架构;
16.图5示出了根据本发明实施方式的示例性联邦学习系统;
17.图6是根据本发明实施例的用于跨多个数据方去中心化的联邦学习的示例过程的流程图;
18.图7是根据本发明实施例的用于以去中心化方式跨多个数据方控制联邦学习的示例过程的流程图;
19.图8是示出可用于实现本发明的实施方式的信息处理系统的高级框图。
20.参考附图,通过实例,详细描述说明了本发明的优选实施例以及优点和特征。
具体实施方式
21.本发明的实施例总体上涉及分布式数据环境中的联邦学习,具体地涉及用于联邦学习中进行参数共享的方法和系统。本发明的实施例提供了一种用于跨多个数据方进行联邦学习的方法。该方法包括:在对象存储库中给每个数据方分配对应命名空间;在对象存储库中分配共享命名空间;通过向至少一个数据方发布定制学习请求来触发一轮联邦学习,其中,向数据方发布的每个定制学习请求触发该数据方基于由该数据方拥有的训练数据和在对象存储库中的共享命名空间中存储的一个或多个模型参数来本地训练模型,并且将从本地训练产生的本地模型上传到分配给该数据方的在对象存储库中的对应命名空间;从对象存储库检索在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的至少一个本地模型;以及聚合从对象存储库检索的所述至少一个本地模型以获得共享模型。
22.本发明的另一个实施例提供了一种用于跨多个数据方进行联邦学习的系统。该系统包括至少一个处理器以及存储指令的非瞬态处理器可读存储器设备,这些指令在由该至少一个处理器执行时使该至少一个处理器执行操作。所述操作包括:在对象存储库中给每个数据方分配对应命名空间,在对象存储库中分配共享命名空间,以及通过向至少一个数据方发布定制学习请求来触发一轮联邦学习。向数据方发布的每个定制学习请求触发该数据方基于由所述数据方拥有的训练数据和在对象存储库中的共享命名空间中存储的一个或多个模型参数来本地训练模型,并且将从本地训练产生的本地模型上传到分配给该数据方的在对象存储库中的对应命名空间。所述操作进一步包括:从对象存储库检索在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的至少一个本地模型,以及聚合从对象存储库检索的所述至少一个本地模型以获得共享模型。
23.本发明的实施例提供了一种用于跨多个数据方进行联邦学习的计算机程序产品。该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令可由处理器执行以使处理器在对象存储库中给每个数据方分配对应命名空间,在对象存储库中分配共享命名空间,以及通过向至少一个数据方发布定制学习请求来触发一轮联邦学习。向数据方发布的每个定制学习请求触发该数据方基于由所述数据方拥有的训练数据和在对象存储库中的共享命名空间中存储的一个或多个模型参数来本地训练模型,并且将从本地训练产生
的本地模型上传到分配给该数据方的在对象存储库中的对应命名空间。所述程序指令还可以由处理器执行以使处理器从对象存储库检索在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的至少一个本地模型,以及聚合从对象存储库检索的所述至少一个本地模型以获得共享模型。
24.本发明的实施例提供简单、鲁棒和成本高效的联邦学习的可扩展和容错的解决方案。实施例提供涉及各数据方和聚合器的联邦学习系统,其中该系统能够在任何类型的网络连接性下操作,能够保留来自任何数据方的历史数据,提供模型版本化以回溯旧模型状态,以及为各数据方和聚合器提供标准化应用编程接口(api)。
25.应当理解,虽然本公开包括关于云计算的详细描述,但是本文给出的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
26.云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
27.特性如下:
28.按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。
29.广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和pda)的使用。
30.资源池化:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
31.快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
32.测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
33.服务模型如下:
34.软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
35.平台即服务(paas):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
36.基础设施即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
37.部署模型如下:
38.私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
39.社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
40.公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
41.混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
42.云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
43.图1示出按照本发明实施例的云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如例如个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n。节点10可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图1中所示的计算装置54a-n的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化装置通信。
44.图2示出由按照本发明实施例的云计算环境50提供的一组功能抽象层。应提前理解,图2中所示的组件、层和功能仅旨在是说明性的,本发明的实施例不限于此。如图所示,提供以下层和对应功能:
45.硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
46.虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
47.在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本追踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供
云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(sla)规划和履行85提供根据sla预期未来需求的云计算资源的预安排和采购。
48.在一个实施例中,工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟教室教学交付93;数据分析处理94;交易处理95;联邦学习96(例如如后文中详述的联邦学习系统430)。
49.令pi一般表示拥有一个或多个数据源的数据方(即,参与者),其中,1≤i≤n,i和n是整数。令di一般表示由数据方pi拥有的数据源。假设ri一般表示响应于数据源di接收的查询的来自数据源di的回复。
50.图3示出了实施联邦学习的常规方法的示例系统300。系统300是复合计算架构,包括聚合器310,其被配置为:(1)从多个数据方p1,p2,
…
,pn分别拥有的多个数据源d1,d2,...,dn收集数据,以及(2)聚合所收集的数据。在给定时期(epoch)(即,联合学习轮次或学习/训练轮次)内,聚合器310被配置为向数据方pi拥有的数据源di发送查询q,并从数据源di接收对查询q的回复ri。例如,如图3所示,响应于在给定时期内发送给每个数据方pi的查询q,聚合器310接收来自数据源d1的回复r1、来自数据源d2的回复r2、......以及来自数据源dn的回复rn,其中r1=q(d1),r2=q(d2),...,rn=q(dn)。系统300基于回复r1,r2,...,rn的聚合/组合来训练模型m。
51.系统300对聚合器310处的基础设施具有高要求,以确保故障恢复和高可用性。例如,系统300包括用于聚合器310的备份聚合器320。
52.系统300缺乏容易设置,需要复杂且昂贵的设置。系统300缺乏对多个平台/操作系统的支持(即,缺乏扩展到其他平台/操作系统的能力)。
53.由系统300引起的其他问题包括来自在给定时期内未被选择的数据方的数据(例如,历史数据)的丢失、记录的困难、较慢的发展周期、聚合器310不能连续地收集数据时数据方处的存储器拥塞。
54.图4示出了根据本发明的实施例的用于实现去中心化的联邦学习的示例计算架构400。在一个实施例中,计算架构400是集中式计算架构。在另一实施例中,计算架构400是分布式计算架构。
55.在一个实施例中,计算架构400包括计算资源,诸如但不限于一个或多个处理器单元410和一个或多个存储单元420。一个或多个应用可以利用计算架构400的计算资源在计算架构400上执行/操作。在一个实施例中,计算架构400上的应用包括但不限于联邦学习系统430。如本文稍后详细描述的,联邦学习系统430提供去中心化的、容错的和可扩展的联邦学习。
56.在一个实施例中,联邦学习系统430被配置为通过连接(例如无线连接,诸如wi-fi连接或蜂窝数据连接、有线连接或两者的组合)与一个或多个电子设备450和/或一个或多个远程服务器设备460交换数据。
57.在一个实施例中,电子设备450包括一个或多个计算资源,诸如但不限于一个或多个处理器单元451和一个或多个存储单元452。一个或多个应用程序可以利用电子设备450的一个或多个计算资源,诸如但不限于加载到或者下载到电子设备450的一个或多个软件应用454,在电子设备450上执行/操作。软件应用454的示例包括但不限于人工智能(ai)应
用等。
58.电子设备450的示例包括但不限于台式计算机、移动电子设备(例如,平板、智能电话、膝上型计算机等)、可穿戴设备(例如,智能手表等)、物联网(lot)设备、诸如智能电视之类的智能电器、等等。
59.在一个实施例中,电子设备450包括集成在或耦接到电子设备450的一个或多个输入/输出(i/o)单元453,诸如键盘、小键盘、触摸接口、显示屏等。用户可以利用电子设备450的i/o单元453来配置一个或多个用户偏好、配置一个或多个参数(例如,验证属性、阈值等)、提供输入等。
60.在一个实施例中,电子设备450和/或远程服务器设备460可以是历史数据和/或文档的源。
61.在一个实施例中,联邦学习系统430可以由托管在远程服务器设备460上的一个或多个在线服务(例如,ai服务)和/或在电子设备450上操作的一个或多个软件应用454(例如,ai应用)访问或利用。例如,在一个实施例中,在电子设备450上操作的虚拟助理、搜索引擎或另一类型的软件应用454可以调用系统430以执行任务。
62.图5示出了根据本发明实施方式的示例性联邦学习系统430。在一个实施例中,系统430包括聚合器500和对象存储库510。聚合器500被配置为通过在每轮联邦学习期间通过对象存储库510与多个数据方pi中的一个或者多个共享一个或者多个模型参数来以去中心化方式控制跨多个数据方pi(例如,p1,p2,...,pn)的一轮或者多轮联邦学习(即,一个或者多个时期或者一轮或多轮学习/训练运行)。
63.在一个实施例中,在发起/触发一轮或多轮联合学习之前,聚合器500被配置为,对于每个数据方pi,将对象存储库510中的对应命名空间分配(即,定义)给数据方pi。例如,如图所示。如图5所示,聚合器500将对象存储库510中的命名空间s1,s2,...,sn分别分配给数据方p1,p2,...,pn。
64.在一个实施例中,在发起/触发一轮或多轮联合学习之前,聚合器500还被配置为分配对象存储库510中的共享命名空间(sharednamespace),并将模型信息ms持久保存到对象存储库510中的共享命名空间。在第一/初始时期开始时,模型信息ms要么包括初始模型(即基本模型)、要么包括包含定义初始模型的一个或多个模型参数的初始模型参数集。
65.令qi一般表示为数据方pi定制的学习请求。
66.在一个实施例中,聚合器500向每个数据方pi传送对象存储库510中被分配/定义给数据方pi的对应命名空间和对象存储库510中的共享命名空间,其中共享命名空间是对模型信息ms的引用。例如,在一个实施例中,在给定时期内,聚合器500被配置成向给定时期中的多个数据方pi中的一个或多个发布为数据方pi定制的学习请求qi。学习请求qi包括但不限于:到对象存储库510的链接、对象存储库510中被分配/定义给数据方pi的对应命名空间、当前学习/训练轮次(即,联邦学习的当前时期或当前迭代/轮次)、用于将对学习请求qi的回复存储在对应命名空间中的文件名、对对象存储库510的凭证、以及对象存储库510中的共享命名空间。
67.在一个实施例中,在给定时期内,聚合器500被配置成向给定时期中的多个数据方pi中的每一个发布学习请求qi。在另一实施例中,在给定时期内,聚合器500被配置成选择多个数据方pi中的一个或多个(例如,根据针对动态选择而训练的模型),并向在给定时期内
选择的一个或多个数据方pi发布学习请求qi。系统430支持在给定时期内并行地训练多个本地模型。
68.假设r
′i一般表示由数据方pi本地训练的模型(“本地模型”)。
69.在一个实施例中,在给定时期内,响应于在给定时期内从聚合器500接收到学习请求qi,数据方pi被配置成:(1)从对象存储库510中的共享命名空间(包含在学习请求qi中)提取模型信息ms,(2)基于模型信息ms和数据方pi所拥有的训练数据来本地训练模型,以及(3)将从本地训练得到的本地模型r
′i上传到对象存储库510中的相应命名空间(包含在学习请求qi中)。
70.例如,如图5所示,在给定时期内,数据方p1基于数据方p1拥有的模型信息ms和数据源d1来本地训练模型,并且将由本地训练产生的模型上传到对象存储库510中的对应命名空间。作为另一个实例,数据方p2基于模型信息ms和由数据方p2拥有的数据源d2来本地训练模型,并且将由本地训练产生的模型上传到对象存储库510中的对应命名空间。作为又一个实例,数据方pn基于数据方pn拥有的模型信息ms和数据源dn来本地训练模型,并且将由本地训练产生的模型r
′n上传到对象存储库510中的对应命名空间。
71.如前所述,如果给定时期是第一/初始时期,则模型信息ms要么包括初始模型(即基本模型)、要么或包括包含定义初始模型的一个或多个模型参数的初始模型参数集。在第一/初始时期内,被发布学习请求qi的每个数据方pi基于数据方pi拥有的训练数据来本地训练初始模型,以获得其本地模型r
′i。
72.如本文稍后详细描述的,如果给定时期是后续时期(即,不是第一/初始时期),则模型信息ms包括共享模型或包含定义共享模型的一个或多个模型参数的模型参数集。共享模型代表在先前时期内上传到对象存储库510的多个本地模型r
′i的聚合。在后续时期内,被发布学习请求qi的每个数据方pi基于数据方pi拥有的训练数据来本地训练初始模型,,以获得其模型r
′i的新/更新版本。
73.在一个实施例中,在给定时期内,响应于数据方pi将其本地模型r
′i上传到对象存储库510中的对应命名空间si,对象存储库510被配置成通知聚合器500本地模型r
′i已被写到对应命名空间。在另一实施例中,在给定时期内,响应于数据方pi将其本地模型r
′i上传到对象存储库510中的对应命名空间,数据方pi被配置成通知聚合器500其本地模型r
′i已被写到对应命名空间。例如,在给定时期内,数据方pi向聚合器500通知其在对象存储库510中的对应命名空间
‘
中的本地模型r
′i的新/更新版本以及用于存储新/更新版本的文件名。在又一实施例中,在给定时期内,聚合器500被配置成定期地检查对象存储库510是否有上传到对象存储库510的一个或多个本地模型r
′i的一个或多个新/更新版本(即,基于时间的模式)。例如,聚合器500被配置为按照定时时间表从对象存储库510中的一个或多个命名空间检索一个或多个本地模型r
′i的一个或多个新/更新版本。
74.在一个实施例中,在给定时期内,在检查对象存储库510是否有一个或多个上传或从对象存储库510或一个或多个数据方pi接收一个或多个上传的一个或多个通知之后,聚合器500从对象存储库510检索一个或多个本地模型r
′i,执行该一个或多个本地模型r
′i的聚合,并将由聚合产生的共享模型存储在对象存储库510的共享命名空间中。如果给定时期是第一/初始时期,则聚合器500聚合在第一/初始时期内被上传到对象存储库510的一个或多个本地模型r
′i以获得共享模型。如果给定时期是后续时期,则聚合器500聚合在后续时
期内被上传到对象存储库510的一个或多个本地模型r
′i的一个或多个新/更新版本以获得共享模型的新/更新版本。
75.在一个实施例中,聚合器500将共享模型和共享模型的每个新/更新版本写到对象存储库510的共享命名空间(即,聚合器在几个时期之后将共享模型的多个版本持久保存到共享命名空间)。例如,使用指示特定时期的版本号来注释/标记共享模型的每个版本-,聚合器500在该特定时期期间通过聚合获得了共享模型的该版本。当系统430在每个时期之后跟踪每个模型时,系统430允许自动记录和自动模型版本化以启用进一步的应用。这些特征有助于保留来自任何数据方的历史数据以及提供模型版本化以回溯旧模型状态的优点。
76.在另一实施例中,在给定时期内,聚合器500将对象存储库510中的共享命名空间中的共享模型的旧/先前版本替换为给定时期的共享模型ms的新/更新版本。
77.在一个实施例中,系统430通过发布-订阅机制向每一数据方pi通知上传到共享命名空间的共享模型的新/更新版本。
78.在一个实施例中,聚合器500被配置成执行加速学习。例如,在一个实施例中,对于每个数据方pi,对象存储库510将包括其本地模型r
′i的多个版本的对应历史保持在对象存储库510中的对应命名空间中。
79.在一个实施例中,在给定时期已经结束之后,聚合器500通过将在给定时期期间获得的共享模型上传到共享命名空间并且向一个或多个数据方pi发布新学习请求qi来发起/触发联邦学习的另一迭代/轮次(即,另一时期或另一轮学习/训练)。
80.在一个实施例中,系统430中的故障恢复是容易的,因为聚合器500大部分是无状态的。例如,数据方pi无需为共享模型而依赖聚合器500,因为数据方pi可以直接从共享命名空间提取共享模型。不同于常规系统中的聚合器,聚合器500不是瓶颈或单个故障点。
81.在一个实施例中,系统430通过提供增加的网络连接性(即,可以处理更多连接并且可以在任何类型的网络连接性下操作)和改进的存储(即,更好的存储管理并且避免额外的跳(hop))来提高可扩展性。系统430提供对联邦学习的简单、鲁棒和成本高效的可扩展和容错解决方案。
82.在一个实施例中,系统430允许更快的开发周期,因为用于对象存储库的api经过良好的测试且是已知的。系统430为各数据方和聚合器提供标准化的api。
83.图6是根据本发明实施例的用于跨多个数据方去中心化的联邦学习的示例过程600的流程图。在过程框601,过程600开始。在过程框602中,聚合器(例如,图5中的聚合器500)在对象存储库(例如,图5中的对象存储库510)中定义每个数据方(“数据方”)的对应命名空间,定义对象存储库中的共享命名空间,并将初始模型持久保存到共享空间。在过程框603,聚合器向一个或多个数据方发布为数据方定制的包括到对象存储库的链接、对象存储库中的对应命名空间、当前时期(用于进行存储的文件名)、对对象存储库的凭证、以及共享命名空间的学习请求。在过程框604,被发布了学习请求的每个数据方从共享命名空间下载模型,在本地训练该模型,以及将由训练得到的本地模型上传到对象存储库中的对应命名空间。在过程框605,聚合器要么在预定时间量之后检查对象存储库是否有上传到对象存储库的当前时期的本地模型,要么从对象存储库或者一个或多个数据方接收到当前时期的本地模型被上传到对象存储库的通知。在过程框606,聚合器检索上传到对象存储库的当前时期的本地模型并执行聚合。在过程框607,聚合器执行加速学习。在过程框608,聚合器将由
聚合得到的模型存储在用于当前时期的共享命名空间中。在过程框609,聚合器确定是否存在另一轮联邦学习。如果聚合器确定存在另一轮联邦学习,则返回到过程框603。如果聚合器确定不存在另一轮联邦学习,则进行到过程框610,过程600结束。
84.在一个实施例中,过程框601-610由系统430的诸如聚合器500和对象存储库510的一个或多个组件执行。
85.图7是根据本发明实施例的用于以去中心化方式跨多个数据方控制联邦学习的示例过程700的流程图。在过程框701,在对象存储库中给每个数据方分配对应命名空间。在过程框702,在对象存储库中分配共享命名空间。在过程框703,通过向至少一个数据方发布定制学习请求来触发一轮联邦学习,其中,向数据方发布的每个定制学习请求触发数据方基于由数据方拥有的训练数据和存储在对象存储库中的共享命名空间中的一个或多个模型参数来本地训练模型,并且将从本地训练得到的本地模型上传到数据方被分配的对象存储库中的对应命名空间。在过程框704,从对象存储库检索在该轮联邦学习期间由该至少一个数据方上传到对象存储库的至少一个本地模型。在过程框705,聚合从对象存储库中检索的至少一个本地模型以获得共享模型。
86.在一个实施例中,过程框701-705由系统430的诸如聚合器500的一个或多个组件执行。
87.图8是示出用于实现本发明的一个实施例的信息处理系统800的高级框图。计算机系统包括一个或多个处理器,诸如处理器802。处理器802连接到通信基础设施804(例如,通信总线、交叉条或网络)。
88.计算机系统可包括转发来自语音通信基础设施804(或来自未示出的帧缓冲器)的图形、文本和其他数据以便在显示单元808上显示的显示接口806。在一个实施例中,计算机系统还包括主存储器810,优选地随机存取存储器(ram),并且还包括辅助存储器812。在一个实施例中,辅助存储器812包括例如硬盘驱动器814和/或代表例如软盘驱动器、磁带驱动器或光盘驱动器的可移动存储驱动器816。可移动存储驱动器816以本领域普通技术人员公知的方式从可移动存储单元818读取和/或写入可移动存储单元818。可移动存储单元818代表例如由可移动存储驱动器816读取和写入的软盘、光盘、磁带或光盘等。如将理解的,可移动存储单元818包括其中存储有计算机软件和/或数据的计算机可读介质。
89.在备选实施例中,辅助存储器812包括用于允许将计算机程序或其他指令加载到计算机系统中的其他类似装置。这样的装置包括例如可移动存储单元820和接口822。这样的装置的实例包括程序包和包接口(诸如在视频游戏设备中发现的)、可移动存储器芯片(诸如eprom或prom)和相关联的插座、以及允许软件和数据从可移动存储单元820传输到计算机系统的其他可移动存储单元820和接口822。
90.在一个实施例中,计算机系统还包括通信接口824。通信接口824允许软件和数据在计算机系统和外部设备之间传输。在一个实施方式中,通信接口824的实例包括调制解调器、网络接口(诸如以太网卡)、通信端口或pcmcia插槽和卡等。在一个实施例中,经由通信接口824传输的软件和数据是呈信号的形式,这些信号例如是能够被通信接口824接收的电子、电磁、光学或其他信号。这些信号经由通信路径(即,信道)826提供给通信接口824。在一个实施例中,通信路径826承载信号并用电线或电缆、光纤、电话线、蜂窝电话链路、rf链路和/或其他通信信道来实现。
91.本发明可以是任何可能的技术细节集成水平的系统、方法、和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。
92.计算机可读存储介质可以是可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡或具有记录在其上的指令的槽中的凸出结构之类的机械编码设备、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
93.本文所述的计算机可读程序指令,可以从计算机可读存储介质下载到相应的计算/处理设备,或者通过网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
94.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,这些编程语言包括面向对象的编程语言(如java、smalltalk、c++等)和常规的过程编程语言(如“c”编程语言或类似的编程语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
95.本文参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各个方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合,都可以通过计算机可读程序指令实现。
96.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图的框中规定的功能/动作的方面的指令的制造品。
97.也可将计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
98.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
99.从以上描述可见,本发明的实施例提供了一种用于实现本发明的实施例的系统、计算机程序产品和方法。本发明的实施例进一步提供用于实现本发明的实施例的非瞬态计算机可用存储介质。非瞬态计算机可用存储介质具有计算机可读程序,其中,该程序在计算机上被处理时,使计算机实现本文中所描述的本发明的实施例的步骤。在权利要求中提及单数形式的元件意指“一个或多个”,而非“仅为一”,除非明确地如此陈述。本领域普通技术人员当前已知或之后变得已知的上述示例性实施方式的元件的所有结构和功能等同物旨在被本权利要求涵盖。本文中任何权利要求的元件均不按35u.s.c.第112节第六段的规定作解释,除非该元件是用短语“用于
…
的装置”或“用于
…
的步骤”明确叙述的。
100.本文中使用的术语仅用于描述本发明的特定实施方式的目的,并不旨在进行限制。如本文中使用的,除非上下文另有明确指示,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。还应当理解,当在本说明书中使用术语“包括”和/或“包含”时,其规定存在所述特征、整体、步骤、操作、元件和/或部件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、部件和/或其组合。
101.权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等效物旨在包括用于结合如具体要求保护的其他要求保护的元件来执行所述功能的任何结构、材料或动作。
102.已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
技术特征:1.一种用于跨多个数据方进行联邦学习的方法,包括:在对象存储库中给每个数据方分配对应命名空间;在对象存储库中分配共享命名空间;通过向至少一个数据方发布定制学习请求来触发一轮联邦学习,其中,向数据方发布的每个定制学习请求触发该数据方基于由该数据方拥有的训练数据和在对象存储库中的共享命名空间中存储的一个或多个模型参数来本地训练模型,并且将从本地训练产生的本地模型上传到分配给该数据方的在对象存储库中的对应命名空间;从对象存储库检索在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的至少一个本地模型;以及聚合从对象存储库检索的所述至少一个本地模型以获得共享模型。2.根据权利要求1所述的方法,其中,将共享模型上传到对象存储库中的共享命名空间。3.根据权利要求2所述的方法,其中,向每个数据方通知上传到对象存储库中的共享命名空间的共享模型。4.根据权利要求2所述的方法,进一步包括:通过向至少一个数据方发布后续定制学习请求来触发后续一轮联邦学习,其中,向数据方发布的每个后续定制学习请求触发该数据方从对象存储库中的共享命名空间检索共享模型、基于该数据方拥有的训练数据来本地训练共享模型以及将从本地训练得到的本地模型的更新版本上传到分配给该数据方的在对象存储库中的对应命名空间。5.根据权利要求1所述的方法,其中,触发一轮联邦学习包括:选择一组数据方;以及通过向该组数据方中的每个数据方发布定制学习请求,触发该组数据方并行地本地训练一组模型。6.根据权利要求1所述的方法,其中,触发一轮联邦学习包括:通过向每个数据方发布定制学习请求来触发所述多个数据方并行地本地训练多个模型。7.根据权利要求1所述的方法,进一步包括:为每个数据方存储在多轮联邦学习期间上传到分配给该数据方的在对象存储库中的对应命名空间的本地模型的多个版本。8.根据权利要求1所述的方法,进一步包括:存储在多轮联邦学习期间上传到对象存储库中的共享命名空间的共享模型的多个版本。9.根据权利要求1所述的方法,进一步包括:从对象存储库接收在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的所述至少一个本地模型的至少一个通知。10.根据权利要求1所述的方法,进一步包括:从所述至少一个数据方接收在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的所述至少一个本地模型的至少一个通知。11.根据权利要求1所述的方法,进一步包括:
按照时间表定期地检查对象存储库以查找由一个或多个数据方上传到对象存储库的一个或多个本地模型。12.一种用于跨多个数据方进行联邦学习的系统,包括:至少一个处理器;以及存储指令的非瞬态处理器可读存储器设备,所述指令由所述至少一个处理器执行时,使所述至少一个处理器执行包括以下各项的操作:在对象存储库中给每个数据方分配对应命名空间;在对象存储库中分配共享命名空间;通过向至少一个数据方发布定制学习请求来触发一轮联邦学习,其中,向数据方发布的每个定制学习请求触发该数据方基于由所述数据方拥有的训练数据和在对象存储库中的共享命名空间中存储的一个或多个模型参数来本地训练模型,并且将从本地训练产生的本地模型上传到分配给该数据方的在对象存储库中的对应命名空间;从对象存储库检索在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的至少一个本地模型;以及聚合从对象存储库检索的所述至少一个本地模型以获得共享模型。13.根据权利要求12所述的系统,其中,将共享模型上传到对象存储库中的共享命名空间。14.根据权利要求13所述的系统,其中,所述操作进一步包括:通过向至少一个数据方发布后续定制学习请求来触发后续一轮联邦学习,其中,向数据方发布的每个后续定制学习请求触发该数据方从对象存储库中的共享命名空间检索共享模型、基于该数据方拥有的训练数据来本地训练共享模型以及将从本地训练得到的本地模型的更新版本上传到分配给该数据方的在对象存储库中的对应命名空间。15.根据权利要求12所述的系统,其中,触发一轮联邦学习包括:选择一组数据方;以及通过向该组数据方中的每个数据方发布定制学习请求,触发该组数据方并行地本地训练一组模型。16.根据权利要求12所述的系统,其中,触发一轮联邦学习包括:通过向每个数据方发布定制学习请求来触发所述多个数据方并行地本地训练多个模型。17.根据权利要求12所述的系统,其中,所述操作进一步包括:为每个数据方存储在多轮联邦学习期间上传到分配给该数据方的在对象存储库中的对应命名空间的本地模型的多个版本。18.根据权利要求12所述的系统,其中,所述操作进一步包括:存储在多轮联邦学习期间上传到对象存储库中的共享命名空间的共享模型的多个版本。19.一种用于跨多个数据方进行联邦学习的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令可由处理器执行以使处理器:在对象存储库中给每个数据方分配对应命名空间;
在对象存储库中分配共享命名空间;通过向至少一个数据方发布定制学习请求来触发一轮联邦学习,其中,向数据方发布的每个定制学习请求触发该数据方基于由该数据方拥有的训练数据和在对象存储库中的共享命名空间中存储的一个或多个模型参数来本地训练模型,并且将从本地训练产生的本地模型上传到分配给该数据方的在对象存储库中的对应命名空间;从对象存储库检索在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的至少一个本地模型;以及聚合从对象存储库检索的所述至少一个本地模型以获得共享模型。20.权利要求19的计算机程序产品,其中,将共享模型上传到对象存储库中的共享命名空间。21.一种计算机程序,包括适于在所述程序在计算机上运行时执行权利要求1至11中任一项所述的方法的程序代码装置。
技术总结一种用于跨多个数据方进行联邦学习的方法,包括在对象存储库中给每个数据方分配对应命名空间(701),在对象存储库中分配共享命名空间(702),以及通过向至少一个数据方发布定制学习请求来触发一轮联邦学习(703)。向数据方发布的每个定制学习请求触发该数据方基于由该数据方拥有的训练数据和在对象存储库中的共享命名空间中存储的一个或多个模型参数来本地训练模型,并且将从本地训练产生的本地模型上传到分配给该数据方的在对象存储库中的对应命名空间。该方法进一步包括从对象存储库检索在该轮联邦学习期间由所述至少一个数据方上传到对象存储库的至少一个本地模型(704),并聚合这些本地模型以获得共享模型(705)。(705)。(705)。
技术研发人员:S.拉贾莫尼 A.安瓦尔 周亦 H.路德维格 N.巴拉卡多安杰尔
受保护的技术使用者:国际商业机器公司
技术研发日:2021.03.18
技术公布日:2022/11/1