CN112700014A - 部署联邦学习应用的方法、装置、***和电子设备 - Google Patents

部署联邦学习应用的方法、装置、***和电子设备 Download PDF

Info

Publication number
CN112700014A
CN112700014A CN202011306666.1A CN202011306666A CN112700014A CN 112700014 A CN112700014 A CN 112700014A CN 202011306666 A CN202011306666 A CN 202011306666A CN 112700014 A CN112700014 A CN 112700014A
Authority
CN
China
Prior art keywords
container
state
information
container cluster
cluster
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.)
Granted
Application number
CN202011306666.1A
Other languages
English (en)
Other versions
CN112700014B (zh
Inventor
赵鹏
陈逸翔
李龙一佳
范德良
吴迪
刘小兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lemon Inc Cayman Island
Original Assignee
Lemon Inc Cayman Island
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lemon Inc Cayman Island filed Critical Lemon Inc Cayman Island
Priority to CN202011306666.1A priority Critical patent/CN112700014B/zh
Publication of CN112700014A publication Critical patent/CN112700014A/zh
Priority to PCT/SG2021/050702 priority patent/WO2022108525A1/zh
Application granted granted Critical
Publication of CN112700014B publication Critical patent/CN112700014B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Stored Programmes (AREA)
  • Manipulator (AREA)

Abstract

本公开实施例公开了部署联邦学习应用的方法、装置、***和电子设备。该方法的一具体实施方式包括:检测容器集群中的预设设置信息接收容器是否接收到用于实现联邦学习应用的第一设置信息,第一设置信息包括功能模块信息、功能模块对应的环境变量;响应于检测结果为是,在容器集群创建并运行与功能模块信息所指示的各功能模块分别对应的容器,以使容器与对端容器集群中根据第一设置信息创建并运行的各容器共同实现联邦学习任务,其中容器集群为联邦学习任务的一方对应的容器集群,对端容器集群为联邦学习任务其他方对应的容器集群。实现了容器集群中自动根据联邦学习应用的设置信息在容器集群中部署联邦学习应用。

Description

部署联邦学习应用的方法、装置、***和电子设备
技术领域
本公开涉及互联网技术领域,尤其涉及一种部署联邦学习应用的方法、装置、***和电子设备。
背景技术
随着机器学习和深度学习技术发展,在多个领域取得了比较大的成功。目前的机器学习和深度学习通常使用单方的数据来对模型进行训练。
为了使用多方的数据对模型进行训练,同时又满足各方数据的隐私保护的要求,目前提出了一种联邦学习(Federated machine learning, 或者,Federated Learning)的机器学习框架。
发明内容
提供该公开内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该公开内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本公开实施例提供了一种部署联邦学习应用的方法、装置、***和电子设备。
第一方面,本公开实施例提供了一种部署联邦学习应用的方法,应用于容器集群中设置的控制模块,该方法包括:检测容器集群中的预设设置信息接收容器是否接收到用于实现联邦学习应用的第一设置信息,所述第一设置信息包括功能模块信息、功能模块对应的环境变量,所述功能模块信息包括功各能模块的数量信息;响应于检测结果为是,在所述容器集群创建并运行与所述功能模块信息所指示的各功能模块分别对应的容器,以使所述容器与对端容器集群中根据所述第一设置信息创建并运行的各容器共同实现联邦学习任务,其中所述容器集群为联邦学习任务的一方对应的容器集群,对端容器集群为所述联邦学习任务其他方对应的容器集群。
第二方面,本公开实施例提供了一种部署联邦学习应用的装置,应用于容器集群中设置的控制模块,包括:检测单元,用于检测容器集群中的预设设置信息接收容器是否接收到用于实现联邦学习应用的第一设置信息,所述第一设置信息包括功能模块信息、功能模块对应的环境变量,所述功能模块信息包括功各能模块的数量信息;创建单元,用于响应于检测结果为是,在所述容器集群创建并运行与所述功能模块信息所指示的各功能模块分别对应的容器,以使所述容器与对端容器集群中根据所述第一设置信息创建并运行的各容器共同实现联邦学习任务,其中所述容器集群为联邦学习任务的一方对应的容器集群,对端容器集群为所述联邦学习任务其他方对应的容器集群。
第三方面,本公开实施例提供了一种部署联邦学习应用的***,包括第一容器集群,至少一个第二容器集群,第一容器集群对应联邦学习任务发起方,第二容器集群对应联邦学习任务接收方;第一容器集群包括预先设置的第一设置信息接收容器,第一控制模块,所述第二容器集群包括预先设置的第二设置信息接收容器,第二控制模块,其中所述第一设置信息接收容器接收用户输入的用于实现联邦学习应用的第一设置信息,所述第一设置信息包括功能模块信息、功能模块对应的环境变量,所述功能模块信息包括功能模块的数量信息;所述第二设置信息接收容器接收所述第一设置信息接收容器发送的所述第一设置信息;第一控制模块在第一容器集群创建并运行与所述功能模块信息所指示的各功能模块分别对应的第一容器;第二控制模块在第二容器集群中创建并运行与所述功能模块信息所指示的各功能模块分别对应的第二容器,以实现联邦学习任务。
第四方面,本公开实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的部署联邦学习应用的方法。
第五方面,本公开实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的部署联邦学习应用的方法的步骤。
本公开实施例提供的部署联邦学习应用的方法、装置、***和电子设备,通过在容器集群中设置控制模块,通过控制模块检测信息接收容器是否接收到用于实现联邦学习应用的第一设置信息,并根据检测到的第一设置信息创建并运行与第一设置信息对应的容器。上述容器用于实现联邦学习任务。从而在容器集群中部署联邦学习应用时,通过在容器集群中设置的控制模块来自动根据联邦学习应用的设置信息在容器集群中部署联邦学习应用,使得联邦学习应用可以实现学习任务。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是根据本公开的部署联邦学习应用的方法的一个实施例的流程图;
图2是根据本公开的部署联邦学习应用的方法的又一个实施例的流程图;
图3是根据本公开的联邦学习应用各状态转换的示意图;
图4是根据本公开的部署联邦学习应用的装置的一个实施例的结构示意图;
图5是本公开的一个实施例的部署联邦学习应用的方法、部署联邦学习应用的装置可以应用于其中的示例性***架构;
图6是根据本公开实施例提供的电子设备的基本结构的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
联邦学习的主要实现是基于分布在多个设备上的数据集构建机器学习模型,同时防止数据泄露。由于在训练机器学习模型的基础上,可以防止数据泄露,可以将联邦学习扩展到不同组织之间的协作学习。
不同组织间的联邦学习可以包括至少两个协作学习方。至少两个协作学习方中可以包括至少一个学习对。学习对可以包括两个协作方。
对于两个协作方,一个协作方可以设置自己的联邦学习应用。可以利用联邦学习应用以及己方的数据来训练自身机器学习模型,可以将使用己方数据训练机器学习模型得到的梯度信息发送对个另一个习作方的联邦学习应用,以使另一方的联邦学习应用利用上述一个协作方发送的梯度信息调整自己的机器学习模型。由于梯度信息不会公开原始数据信息,因此,实现了两个协作方在互不相对方泄露数据的前提下,实现了共同对机器学习模型的训练。
对于每一个协作方,需要部署本端的联邦学习应用。
请参考图1,其示出了根据本公开的部署联邦学习应用的方法的一个实施例的流程。应用于容器集群中设置的控制模块,如图1所示该部署联邦学习应用的方法,包括以下步骤:
步骤101,检测容器集群中的预设设置信息接收容器是否接收到用于实现联邦学习应用的第一设置信息,第一设置信息包括功能模块信息、功能模块对应的环境变量。
联邦学习应用可以设置在容器集群中。容器集群中可以包括多个容器。这里的容器集群可以为任意容器集群,例如K8S集群。
对于任一个联邦学习的协作方,可以在该协作方对应的容器集群中部署联邦学习应用。
在本实施例中,可以在容器集群中预先设置控制模块。该控制模块实现发现联邦学习应用部署请求,根据联邦学习应用部署创建并启动实现联邦学习应用的多个容器。
在容器集群中可以预先设置的设置信息接收容器。设置信息接收容器可以接收第一设置信息。
容器集群可以向用户提供方用于访问信息接收容器的预设接口。设置信息接收容器中可以包括多个预先准备的多个设置信息。
在一些可选的实现方式中,上述容器集群可以为联邦学习任务发起方对应的第一容器集群。在这些应用场景中,用户可以通过第一容器集群向用户提供预设接口浏览上述预先准备的多个设置信息。用户可以通过上述预设接口从上述预先准备的多个设置信息中确定待创建的联邦学习应用的第一设置信息。
上述预先准备的多个设置信息可以包括功能模块信息。上述功能模块例如可包括联邦学习应用的tensorflow原生的参数服务 (parameter server,PS)模块,数据求交任务的控制组件(data master),实现数据求交任务的执行模块。或者,训练任务的控制组件(trainer master),实训练任务的执行模块。
在一些应用场景中,上述各预先准备的设置信息可以展示在与用户交互的界面中。用户可以从上述用户界面中显示的多个预先准备的设置信息中选择目标功能模块,以及目标功能模块对应的环境变量。上述第一设置信息可以包括用户选择的目标功能模块以及目标功能模块对应的环境变量。此外,上述第一设置信息还可以包括目标功能模块对应的数量信息。
在一些可选的实现方式中,上述所述容器集群为联邦学习任务接收方对应的第二容器集群,上述第一设置信息为联邦学习任务发起方对应的第一容器集群发送的、用户向所述第一容器集群输入的信息。
在这些可选的实现方式中,上述第二容器集群设置信息接收容器所接收的第一设置信息,是由联邦学习任务发起方对应的第一容器集群发送的。
也即,在联邦学习任务中,联邦学习任务发起方在向其对应的第一容器集群中输入了第一设置信息之后,上述第一容器集群可以将上述第一设置信息发送给预先确定联邦学习任务接收方对应的第二容器集群。第二容器集群在接收到上述第一设置信息之后,将上述第一设置信息置入预设设置信息接收容器。
在一些应用场景中,上述第一容器集群可以通过控制台(例如 webconsole)将上述第一设置信息发送给第二容器集群。
上述控制模块可以每隔预设时间间隔检测一次上述设置信息容器是否接收到上述用于实现联邦学习应用的第一设置信息。上述预设时间间隔例如可以为30s、50s、1分钟等。预设时间间隔可以根据应用场景进行设置,此处不进行限制。
步骤102,响应于检测结果为是,在所述容器集群创建并运行与所述功能模块信息所指示的各功能模块分别对应的容器,以使容器与对端容器集群中根据第一设置信息创建并运行的各容器共同实现联邦学习任务,其中容器集群为联邦学习任务的一方对应的容器集群,对端容器集群为所述联邦学习任务其他方对应的容器集群。
上述控制模块可以根据第一设置信息生成待生成的各目标功能模块分别对应的容器的配置信息(ConfigMap)。上述配置信息可以包括容器所需的环境变量,容器启动所需的命令参数。
上述控制模块可以根据第一设置信息在上述容器集群中创建与各目标功能模块分别对应的容器。
对于每一个容器,上述控制模块可以将与该容器对应的配置信息挂载到该容器中。
对于每一个容器,上述控制模块将完成该容器对应的功能的应用程序镜像至该容器。该容器处于可运行状态。
在本端容器集群中创建并运行了完成联邦学习任务的容器之后,本端的联邦学习应用部署完成。
相应地,为完成同一联邦学习任务的对端容器集群也根据上述第一设置信息完成了创建并运行实现联邦学习任务的容器,也即对端容器集群中也部署了联邦学习应用。
本端容器集群中的各容器将与对端容器集群中的根据第一设置信息创建并运行的各容器共同实现本次联邦学习任务。
本公开的上述实施例提供的部署联邦学习应用的方法,通过在容器集群中设置控制模块,通过控制模块检测信息接收容器是否接收到用于实现联邦学习应用的第一设置信息,并根据检测到的第一设置信息创建并运行与第一设置信息对应的容器。上述容器用于实现联邦学习任务。从而在容器集群中部署联邦学习应用时,通过在容器集群中设置的控制模块来自动根据联邦学习应用的设置信息在容器集群中部署联邦学习应用,使得联邦学习应用可以实现学习任务。
请参考图2,其示出了根据本公开的部署联邦学习应用的方法的一个实施例的流程。应用于容器集群中设置的控制模块,如图2所示该部署联邦学习应用的方法,包括以下步骤:
步骤201,检测容器集群中的预设设置信息接收容器是否接收到用于实现联邦学习应用的第一设置信息,所述第一设置信息包括功能模块信息、功能模块对应的环境变量。
在本实施中,上述步骤201的具体实现可以与图1所示实施例中的步骤101的实现方式相同或相似,此处不赘述。
步骤202,响应于检测结果为是,在所述容器集群创建与第一设置信息所指示的各功能模块分别对应的容器。
在本实施中,上述步骤202的具体实现可以与图1所示实施例中的步骤102中的相关部分的阐述,此处不赘述。
步骤203,在容器集群中,确定联邦学习应用的当前状态。
在本实施例中,上述容器集群中可以预先存储联邦学习应用的状态机。上述状态机可以包括依次排列的多个状态。
在一些应用场景中,上述容器集群可以是发起联邦学习任务方对应的第一容器集群。在该容器集群中的状态机的多个状态例如可以包括新建、启动、运行、结束等。
在另外一些应用场景中,上述容器集群可以是接收联邦学习任务方对应的第二容器集群。在该容器集群中的状态机的多个状态例如可以包括新建、启动、同步、运行、结束等。
请参考图3中,其示出了本实施例中的状态机的各状态的示意图。图3中实线描述的状态机可以为联邦学习任务发起方的第一容器集群对应的状态机。包括虚线的分支的状态机可以为联邦学习任务接收方的第二容器集群对应的状态机。
上述控制模块(Controller)可以根据在容器集群创建的各容器的运行状态,确定联邦学习应用的当前状态。Controller自身是一个无状态服务。可以通过容器的调度(Deployment)管理。通过K8s Deployment管理。Controller检测联邦学习应用的状态,并不断调整联邦学习应用的状态。上述容器集群可以是任意容器集群,在一些应用场景中,上述容器集群可以是K8S。
作为一个示意性说明,若接收到用于部署联邦学习应用的第一配置新时,可以将联邦学习应用的状态设置为新建状态。也即上述步骤 203可以包括:响应于确定接收到所述第一设置信息,将当前联邦学习应用设置为新建状态。
作为另一个示意性说明,当上述控制模块对各容器进行配置使得各容器处于可运行状态时,可以将联邦学习应用的状态设置为启动状态。
在一些应用场景中,上述控制模块可以将联邦学习应用的状态临时进行保存。例如可以保存至用于存储联邦学习应用的状态的容器中。又例如可以保存至上述设置信息接收容器中。若将当前确定的联邦学习应用的状态临时保存在上述设置信息接收容器中,用户还可以通过预设接口获取联邦学习应用的当前状态。
步骤204,执行将联邦学习应用的状态调整至状态机中的当前状态的下一状态的操作。
状态机中的状态包括新建状态和启动状态,以及上述步骤204的当前状态,包括:响应于确定联邦学习应用的状态为新建状态,在所述容器集群中创建第一设置信息所指示的各功能模块对应的容器,对所述容器执行配置操作,使得容器处于启动状态。
实践中,对于每一个容器,上述配置操作可以包括如下步骤:
首先,创建该容器对应的配置信息,将所述配置信息挂载至该容器。
上述配置信息例如可以包括配置信息可以包括容器所需的环境变量,容器启动所需的命令参数。
其次,将完成该容器对应的功能的应用程序镜像至该容器。
最后,为该容器生成唯一网络标识,并将该唯一网络标识置于该容器的环境变量中。
创建每一个容器后,为该容器设置一个序号。该序号为容器在该容器集群中所创建的容器在的序号。再根据序号生成该容器的唯一网络标识。
可以使用各种生成唯一网络标识的方法,为容器生成唯一网络标识。
作为一种可选的实现方式,上述为该容器生成唯一网络标识,包括:为该容器创建无头服务,将所创建的无头服务的标识作为该容器的唯一网络标识。
使用无头服务(headless Service)创建容器的唯一网络标识是目前广泛研究和应用的公知技术,此处不进行赘述。
在一些应用场景中,上述容器集群为联邦学习任务接收方对应的第二容器集群。第二容器集群中的状态机中的状态包括启动状态和同步状态,以及上述步骤204包括:响应于检测到联邦学习应用的当前状态为启动状态,执行如下将该联邦学习应用调整至同步状态的操作:将所述第二容器集群中处于可运行状态的容器的唯一网络标识发送给联邦学习任务发起方对应的第一容器集群;响应于接收到所述第一容器集群发送的发送成功的反馈信息,将该联邦学习应用的状态调整至同步状态。
在这些应用场景中,第二容器集群在确定了本端中为了实现联邦学习应用的各容器的唯一网络标识后,可以将本端各容器的唯一网络标识发送给第一容器集群,由第一容器集群的控制模块将两端的容器进行配对。
第二容器集群在向第一容器集群发送了本端的各容器的唯一网络标识后,可以将本端的联邦学习应用的状态置为同步状态。可以将上述同步状态保存在第二容器中的用于记录联邦学习应用的状态的容器中。或者可以将上述同步状态临时保存在本端的设置信息接收容器中。
在一些应用场景中,上述容器集群为联邦学习任务发起方对应的第一容器集群。第一容器集群中的各容器为第一容器,第一容器集群中状态机中的状态包括启动状态和运行状态;以及上述步骤204包括:响应于检测到第一容器集群的联邦学习应用的状态处于启动状态,执行如下将该联邦学习应用调整至运行状态的操作:检测是否收到联邦学习任务接收方对应的第二容器集群发送的第二容器的信息,响应于检测结果为是,对至少一个第一容器和至少一个第二容器进行配对;根据配对结果生成第一配对结果信息,将第一配对结果信息置入各第一容器的配置信息;并将第一配对结果信息发送给第二控制模块;响应于接收到第二控制模块反馈的接收成功信息,将第一容器集群的联邦学习应用的状态置于运行状态,其中所述第二容器为在所述第二容器集群创建的为实现所联邦学习应用的容器。
在这些应用场景中,执行联邦学习任务的第一容器集群中的第一控制模块可以对本端的第一容器和第二容器集群中的第二容器进行配对。第一控制模块可以根据配对结果生成第一配对结果信息,将上述第一配对结果信息置入各第一容器的配置信息中。第一容器可以根据上述第一配对结果信息确定与该第一容器配对的一个第二容器。
在这些应用场景中,第一控制模块实现了为执行联邦学习任务的两个容器集群中的容器进行了配对。在配对成功后,第一控制模块可以将第一容器集群中部署的联邦学习应用的状态置为运行状态。
作为一种可选的实现方式,所述根据配对结果生成第一配对结果信息,包括:对于配对结果中的每一个第一容器和第二容器对,将第一容器的唯一网络标识作为一个键值对中的键的值,将第二容器的唯一网络标识作为该键值对中的对的值,得到与配对结果对应的键值对信息。
在这种可选的实现方式中,以键值对的方式来表征配对结果信息,可以比较简洁的表征配对结果。
在一些应用场景中,上述容器集群为联邦学习任务接收方对应的第二容器集群,第二容器集群中的容器为第二容器,所述状态机中的状态包括同步状态和运行状态,以及上述步骤204包括:
响应于检测到第二容器集群中的联邦学习应用当前的状态为同步状态,执行如下将该联邦学习***置于运行状态的操作:检测是否收到第一容器集群发送的用于表征第一容器和第二容器配对结果的第一配对结果信息;响应于检测到检测结果为接收到第一配对结果信息,将接收到的第一配对结果信息调整为本端配对结果信息,并将本端配对结果信息置入各第二容器的配置信息中;将本端该联邦学习应用置于运行状态;其中,第一容器集群中的各容器为第一容器。
作为一种实现方式,第一配对结果信息包括键值对。上述键值对这个的键为第一容器的唯一网络标识,值为与第一容器配对的第二容器的网络唯一标识。上述将接收到的第一配对结果信息调整为本端配对结果信息,包括:对于每一个键值对,将该键值对中键对应的第一容器的唯一网络标识和值对应的第二容器的网络唯一标识进行位置对调。作为示意性说明,上述第一配对结果信息中包括的一个键值对A:B,A为该键值对中的键,且A为第一容器集群中的一个第一容器;B为该键值对中的值,且B为第二容器集群中的一个第二容器。可以将B 与A进行对调,得到第二容器集群的本端键值对B:A。也即在第二容器集群中,B为本端键值对中的键,A为本端键值对中的值。
这样一来,第一容器集群中的各第一容器和第二容器集群中的各第二容器都可以读取上述配对结果。使得互相配对的第一容器和第二容器之间可以根据上述配对结果互相发送联邦学习任务的中间信息。
在一些可选的实现方式中,上述状态机包括运行状态和正常结束状态。上述步骤204可以进一步包括:响应于接收到结束所述联邦应用的结束指令,将所述联邦应用置为结束状态,其中所述结束指令包括以下之一的方式生成的结束指令:响应于检测到所述容器集群中的各容器正常退出,向对端容器集群发送正常结束请求,根据对端容器集群发送的接收结束请求成功的反馈信息,生成所述结束指令;根据接收到的对端容器集群发送的正常结束请求,生成所述结束指令。
在这些可选的实现方式中,容器集群可以为联邦学习任务发起方对应的第一容器集群,也可以为容器集群可以为联邦学习任务接收方对应的第二容器集群。若上述容器集群为上述第一容器集群,上述对端容器集群可以为上述第二容器集群。若上述容器集群为上述第二容器集群,上述对端容器集群可以为上述第一容器集群。
上述容器集群中的各容器在执行完本次联邦学习任务后,可以正常退出运行。当控制模块确定本容器集群中的各容器正常退出运行后,可以向对端容器集群发送结束请求,当控制模块接收到对端容器集群发送的接收结束请求成功的反馈信息,生成结束指令,控制模块可以根据该结束指令,将联邦学习应用置于结束状态。通过上述操作,执行联邦学习任务的两个容器集群中的联邦学习应用可以同步被正常结束。
在将联邦学习应用置于结束状态的过程中,可以清理容器,例如清理容器的配置信息,各容器的网络唯一标识等。
在一些可选的实现方式中,上述状态机包括运行状态和异常关闭状态。上述步骤204可以进一步包括:响应于接收到异常关闭指令,将所述联邦应用至于异常关闭状态。
其中,所述异常关闭指令包括以下之一的方式生成的异常关闭指令:响应于与检测到所述容器集群中运行联邦学习***应用的参数服务器的容器异常,向对端发送关闭请求,根据对端发送的接收关闭请求成功的反馈信息,生成所述异常关闭指令;响应于检测到所述容器集群中运行用于实现联邦学习任务的应用的容器异常的次数超过预设次数阈值;向对端发送关闭请求,根据对端发送的接收关闭请求成功的反馈信息,生成所述异常关闭指令;根据对端容器集群发送的关闭请求,生成异常关闭指令。
由于联邦学习***应用的参数服务器需要为各运行实现联邦学习任务的应用的容器提供访问服务,当运行联邦学习***应用的参数服务器的容器异常时,各运行实现联邦学习任务的应用的容器无法正常运行。因此,当运行联邦学习***应用的参数服务器的容器异常时,可以生成异常关闭指令。
在这些可选的实现方式中,上述操作,执行联邦学习任务的两个容器集群中的联邦学习应用可以同步被异常关闭。
与图1所示实例相比,本实施例突出了控制模块根据预设状态机对联邦学习应用的状态进行调整的步骤,使得联邦学习应用在容器集群按照上述各状态运行,有助于提高设置在容器集群中的联邦学习应用的文档性。
在本申请的部署联邦学习应用的方法各实施例的一些可选的实现方式中,图1所示实施例中的步骤102和图2所示实施例的部署联邦学习应用的方法的步骤203可以进一步包括:
在该容器机器集群内,将所生成的为本次联邦学习任务提供服务的容器的唯一网络标识和端口,注入到运行实现联邦学习任务的应用的容器的环境变量中,以使运行实现联邦学习任务的应用的容器访问所述提供服务的容器。
在本申请的部署联邦学习应用的方法各实施例的一些可选的实现方式中,图1所示实施例中的步骤102和图2所示实施例的部署联邦学习应用的方法的步骤204可以进一步包括:
在预设容器中创建信息出入代理控制器实例,并为出入代理控制器实例分配公网地址;
将各容器的唯一网络标识以及预设加密规则写入信息出入代理控制器的代理规则,以使所述信息出入代理器实例解析对端容器集群发送的中间信息进行解密,并根据各容器的唯一网络标识将所述中间信息发送给中间信息所指示的所述容器集群中的目标容器。
进一步可选地,上述部署联邦学习应用的方法还包括:
利用所述信息出入代理器执行如下中间信息发出操作:接收本端一容器发出的执行联邦学习任务得到的中间信息;使用预设规则为所述中间信息加密后通过所述外网地址发送给对端的信息出入代理器。
在这些可选的实现方式中,上述信息出入代理控制器可以为 Nginx Ingress控制器。信息出入代理控制器控制器需要公网地址。对于由对端容器集群发送的进入的中间信息。信息出入代理控制器可以对中间进行解密,并根据解密后的中间信息确定将上述中间信息发送至的本端的目标容器。然后将上述解密后的中间信息发送给上述确定的本端的目标容器。
对于向对端容器集群发出的发出中间信息,通过以下方式将多个不同容器的中间信息收敛到信息出入代理器中,首先,本端容器根据信息出入代理器在本容器集群中的网络唯一标识,将中间信息发送给信息出入代理控制器。上述中间新的头文件中可一包括两个头关键字,一个头关键字表示主机为外部主机名称,另一个头关键字表示中间信息待发送至的对端网络集群中的目标容器的唯一网络标识。其次,信息出入代理器中查找与外部主机名称对应的对端网络集群的信息出入代理器的网络名称,并根据对端网络集群的信息出入代理器的网络名称确定对端网络集群的信息出入代理器的外网地址。再次,信息出入代理器对上述中间信息进行加密后发送上述对端网络集群的信息出入代理器的外网地址。
在这些可选的实现方式中,通过信息处理代理服务器对进入的信息和发出的信息进行管理,在向对端容器集群发出信息时,可以由信息处理代理服务器执行对发出信息的加密操作,在接收到对端集群发送的进入的中间信息时,由从而本端信息处理代理服务器对进入的信息解密后发送给本端的对应容器。从而容器集群中的执行联邦学习任务的容器不需要执行加密操作,简化了执行联邦学习任务的容器的配置。
进一步参考图4,作为对上述各图所示方法的实现,本公开提供了一种部署联邦学习应用的装置的一个实施例,该装置实施例与图1 所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例的部署联邦学习应用的装置应用于容器集群中设置的控制模块,包括:检测单元401和创建单元402。其中,检测单元401,用于检测容器集群中的预设设置信息接收容器是否接收到用于实现联邦学习应用的第一设置信息,所述第一设置信息包括功能模块信息、功能模块对应的环境变量,所述功能模块信息包括功各能模块的数量信息;创建单元402,用于响应于检测结果为是,在所述容器集群创建并运行与所述功能模块信息所指示的各功能模块分别对应的容器,以使所述容器与对端容器集群中根据所述第一设置信息创建并运行的各容器共同实现联邦学习任务,其中所述容器集群为联邦学习任务的一方对应的容器集群,对端容器集群为所述联邦学习任务其他方对应的容器集群。
在本实施例中,部署联邦学习应用的装置的检测单元401和创建单元402的具体处理及其所带来的技术效果可分别参考图1对应实施例中步骤101和步骤102的相关说明,在此不再赘述。
在一些可选的实现方式中,所所述容器集群为联邦学习任务发起方对应的第一容器集群,所述第一设置信息为用户通过预设接口向所述信息接收容器输入的信息。
在一些可选的实现方式中,所述容器集群为联邦学习任务接收方对应的第二容器集群,所述第一设置信息为联邦学习任务发起方对应的第一容器集群发送的、用户向所述第一容器集群输入的信息。
在一些可选的实现方式中,在容器集群中预先设置状态机,所述状态机包括与联邦学习应用对应的多个状态;以及创建单元402进一步用于:在所述容器集群中,确定联邦学习应用的当前状态;执行将所述联邦学习应用的状态调整至所述状态机中的所述当前状态的下一状态的操作。
在一些可选的实现方式中,所述状态机中的状态包括新建状态和启动状态,以及创建单元402进一步用于:响应于确定接收到所述第一设置信息,将当前联邦学习应用设置为新建状态;响应于确定联邦学习应用的状态为新建状态,在所述容器集群中创建第一设置信息所指示的各功能模块对应的容器,对所述容器执行配置操作,使得容器处于启动状态。
在一些可选的实现方式中,创建单元402进一步用于:对于每一个容器,执行如下配置操作:创建该容器对应的配置信息,将所述配置信息挂载至该容器;将完成该容器对应的功能的应用程序镜像至该容器;为该容器生成唯一网络标识,并将该唯一网络标识置于该容器的环境变量中。
在一些可选的实现方式中,创建单元402进一步用于:为该容器创建无头服务,将所创建的无头服务的标识作为该容器的唯一网络标识。
在一些可选的实现方式中,所述容器集群为联邦学习任务接收方对应的第二容器集群,所述状态机中的状态包括启动状态和同步状态,以及创建单元402进一步用于:响应于检测到所述联邦学习应用的当前状态为启动状态,执行如下将该联邦学习应用调整至同步状态的操作:将所述第二容器集群中处于可运行状态的容器的唯一网络标识发送给联邦学习任务发起方对应的第一容器集群;响应于接收到所述第一容器集群发送的发送成功的反馈信息,将该联邦学习应用的状态调整至同步状态。
在一些可选的实现方式中,所述容器集群为联邦学习任务发起方对应的第一容器集群,第一容器集群中的各容器为第一容器,所述状态机中的状态包括启动状态和运行状态,以及创建单元402进一步用于:响应于检测到第一容器集群的联邦学习应用的状态处于启动状态,执行如下将该联邦学习应用调整至运行状态的操作:检测是否收到联邦学习任务接收方对应的第二容器集群发送的第二容器的信息,响应于检测结果为是,对至少一个第一容器和至少一个第二容器进行配对;根据配对结果生成第一配对结果信息,将第一配对结果信息置入各第一容器的配置信息;并将第一配对结果信息发送给第二控制模块;响应于接收到第二控制模块反馈的接收成功信息,将第一容器集群的联邦学习应用的状态置于运行状态,其中所述第二容器为在所述第二容器集群创建的为实现所联邦学习应用的容器。
在一些可选的实现方式中,创建单元402进一步用于:对于配对结果中的每一个第一容器和第二容器对,将第一容器的唯一网络标识作为一个键值对中的键的值,将第二容器的唯一网络标识作为该键值对中的对的值,得到与配对结果对应的键值对信息。
在一些可选的实现方式中,所述容器集群为联邦学习任务接收方对应的第二容器集群,第二容器集群中的容器为第二容器,所述状态机中的状态包括同步状态和运行状态,以及创建单元402进一步用于:响应于检测到第二容器集群中的联邦学习应用当前的状态为同步状态,执行如下将该联邦学习***置于运行状态的操作:检测是否收到第一容器集群发送的用于表征第一容器和第二容器配对结果的第一配对结果信息;响应于检测到检测结果为接收到所述第一配对结果信息,将接收到的第一配对结果信息调整为本端配对结果信息,并将本端配对结果信息置入各第二容器的配置信息中;将本端该联邦学习应用置于运行状态;其中,第一容器集群中的各容器为第一容器。
在一些可选的实现方式中,所述状态包括运行状态和结束状态,以及创建单元402进一步用于:响应于接收到结束所述联邦应用的结束指令,将所述联邦应用置为结束状态,其中所述结束指令包括以下之一的方式生成的结束指令:响应于检测到所述容器集群中的各容器正常退出,向对端容器集群发送正常结束请求,根据对端容器集群发送的接收结束请求成功的反馈信息,生成所述结束指令;根据接收到的对端容器集群发送的正常结束请求,生成所述结束指令。
在一些可选的实现方式中,所述状态包括运行状态和异常关闭状态,以及创建单元402进一步用于:响应于接收到异常关闭指令,将所述联邦应用至于异常关闭状态;其中所述异常关闭指令包括以下之一的方式生成的异常关闭指令:响应于与检测到所述容器集群中运行联邦学习***应用的参数服务器的容器异常,向对端发送关闭请求,根据对端发送的接收关闭请求成功的反馈信息,生成所述异常关闭指令;响应于检测到所述容器集群中运行用于实现联邦学习任务的应用的容器异常的次数超过预设次数阈值;向对端发送关闭请求,根据对端发送的接收关闭请求成功的反馈信息,生成所述异常关闭指令;根据对端容器集群发送的关闭请求,生成异常关闭指令。
在一些可选的实现方式中,所述创建单元402进一步用于:在该容器机器集群内,将所生成的为本次联邦学习任务提供服务的容器的唯一网络标识和端口,注入到运行实现联邦学习任务的应用的容器的环境变量中,以使运行实现联邦学习任务的应用的容器访问所述提供服务的容器。
在一些可选的实现方式中,所述创建单元402进一步用于:创建信息出入代理器实例,并为信息出入代理器实例分配外网地址;将各容器的唯一网络标识以及预设加密规则写入代理控制器的代理规则,以利用所述信息出入代理器实例解析对端容器集群发送的中间信息进行解密,并根据所述各容器的唯一网络标识将所述中间信息发送给中间信息所指示的所述容器集群中的目标容器,所述中间信息由对端容器执行联邦学习任务产生。
在一些可选的实现方式中,所述创建单元402进一步用于:利用所述信息出入代理器执行如下中间信息发出操作:接收本端一容器发出的执行联邦学习任务得到的中间信息;使用预设规则为所述中间信息加密后通过所述外网地址发送给对端的信息出入代理器。
请参考图5,图5示出了本公开的一个实施例的部署联邦学习应用的方法、部署联邦学习应用的装置可以应用于其中的示例性***架构。
如图5所示,***架构包括第一容器集群和至少一个第二容器集群。第一容器集群对应联邦学习任务发起方,第二容器集群对应联邦学习任务接收方。也就是说,联邦学习任务发起方可以在第一容器集群中部署联邦学习应用,联邦学习任务接收方可以在第二容器集群中部署联邦学习应用。
第一容器集群包括预先设置的第一设置信息接收容器,第一控制模块,所述第二容器集群包括预先设置的第二设置信息接收容器,第二控制模块。
所述第一设置信息接收容器接收用户输入的用于实现联邦学习应用的第一设置信息,所述第一设置信息包括功能模块信息、功能模块对应的环境变量,所述功能模块信息包括功能模块的数量信息。
所述第二设置信息接收容器接收所述第一设置信息接收容器发送的第一设置信息。
第一容器集群的控制台1可以将用户输入的第一设置信息通过网络传输给第二容器集群的控制台2。控制台2可以将上述第一设置信息发送给上述第二集群中的第二设置信息接收容器。
第一控制模块在第一容器集群创建并运行与第一设置新信息所指示的各功能模块分别对应的第一容器,如图5所示的容器1、容器2和容器3。第二控制模块在第二容器集群中创建并运行与第一设置信息所指示的各功能模块分别对应的第二容器,如图5所示的容器1’,容器2’和容器3。在第一容器和第二容器运行时实现联邦学习任务。
第一控制模块可以为所创建的各个第一容器设置唯一网络标识。对于每一个第一容器,将该第一容器的唯一网络标识设置待该第一容器的环境变量中。第二控制模块可以为所创建的各个第二容器设置唯一网络标识。对于每一个第二容器,将该第二容器的唯一网络标识设置待该第二容器的环境变量中。第一控制模块可以与第二控制模块进行信息交互。第二控制模块可以将各第二容器的唯一网络标识发送给第一控制模块。第一控制模块为第一容器和第二容器进行配对。并将配对结果置入各第一容器的配置信息中。第一控制模块将配对结果发送给第二控制模块。第二控制模块根据配对结果生成本端的配对结果,将本端的配对结果置入各第二容器的配置信息中。
第一控制模块可以在第一容器集群中创建用于运行信息处理代理器的容器。第二控制模块可以在第二容器集群中创建用于运行信息处理代理器的容器。信息出入代理器例如可以为Nginx Ingress代理器。信息出入代理器可以具有公网地址。
第一容器在第一容器集群中可以获取联邦学习任务发起方的原始数据,执行本端的联邦学习任务。对于每一个第一容器,将根据本端原始数据执行联邦学习任务的中间信息(模型训练的梯度信息),根据配配对结果确定与该第一容器配对的目标第二容器。该第一容器可以将上述中间信息发送给信息出入代理器。信息出入代理器可以对上述中间信息进行加密等处理,并将处理后的中间信息发送给第二容器集群的信息出入代理器。第二容器集群的信息出入代理器接收到上述经过处理的中间信息进行解析,例如进行解密等。通过解析后的中间信息确定中间信息指示的本端的目标第二容器。并将解析后的中间信息发送给上述第二信息出入代理器发送给目标第二容器。目标第二容器接收到上述中间信息之后,使用上述中间信息在目标第二容器中继续根据上述中间信息执行联邦学习任务。相应地,第二容器集群中的第二容器也可以使用上述过程将第二容器根据本端的原始数据执行联邦学习任务的中间信息(例如梯度信息)发送给与该第二容器配对的第一容器。第一容器接收到与之配对的第二容器发送的中间信息之后,使用上述中间信息在该第一容器中继续根据上述中间信息执行联邦学习任务。
需要说明的是,本公开实施例所提供的部署联邦学习应用的方法可以由设置在第一容器集群和第二容器集群中的第一控制模块或者第二控制模块执行,相应地,部署联邦学习应用的装置可以设置在第一容器集群和第二容器集群中的第一控制模块或者第二控制模块。
应该理解,图5中的第一容器集群、第二容器集群、第一控制模块、第二控制模块、第一容器、第二容器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的第一容器集群、第二容器集群、第一控制模块、第二控制模块、第一容器、第二容器。
下面参考图6,其示出了适于用来实现本公开实施例的电子设备(例如图5中的第一容器集群或第二容器集群中的电子设备)的结构示意图。
如图6所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备 600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线 604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置 607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、 RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP (HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:检测容器集群中的预设设置信息接收容器是否接收到用于实现联邦学习应用的第一设置信息,所述第一设置信息包括功能模块信息、功能模块对应的环境变量;响应于检测结果为是,在所述容器集群创建并运行与所述第一设置信息所指示的各功能模块分别对应的容器,以使所述容器与对端容器集群中根据所述第一设置信息创建并运行的各容器共同实现联邦学习任务,其中所述容器集群为联邦学习任务的一方对应的容器集群,对端容器集群为所述联邦学习任务其他方对应的容器集群。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网 (WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (20)

1.一种部署联邦学习应用的方法,其特征在于,应用于容器集群中设置的控制模块,该方法包括:
检测容器集群中的预设设置信息接收容器是否接收到用于实现联邦学习应用的第一设置信息,所述第一设置信息包括功能模块信息、功能模块对应的环境变量;
响应于检测结果为是,在所述容器集群创建并运行与所述第一设置信息所指示的各功能模块分别对应的容器,以使所述容器与对端容器集群中根据所述第一设置信息创建并运行的各容器共同实现联邦学习任务,其中所述容器集群为联邦学习任务的一方对应的容器集群,对端容器集群为所述联邦学习任务其他方对应的容器集群。
2.根据权利要求1所述的方法,其特征在于,所述容器集群为联邦学习任务发起方对应的第一容器集群,所述第一设置信息为用户通过预设接口向所述信息接收容器输入的信息。
3.根据权利要求1所述的方法,其中在于,所述容器集群为联邦学习任务接收方对应的第二容器集群,所述第一设置信息为联邦学习任务发起方对应的第一容器集群发送的、用户向所述第一容器集群输入的信息。
4.根据权利要求1所述的方法,其特征在于,在容器集群中预先设置状态机,所述状态机包括与联邦学习应用对应的多个状态;以及所述在所述容器集群创建并运行与所述功能模块信息所指示的各功能模块分别对应的容器,包括:
在所述容器集群中,确定联邦学习应用的当前状态;
执行将所述联邦学习应用的状态调整至所述状态机中的所述当前状态的下一状态的操作。
5.根据权利要求4所述的方法,其特征在于,所述状态机中的状态包括新建状态和启动状态,以及
所述在所述容器集群中,确定联邦学习应用的当前状态,包括:
响应于确定接收到所述第一设置信息,将当前联邦学习应用设置为新建状态;以及
所述执行将所述联邦学习应用的状态调整至所述状态机中的所述当前状态的下一状态的操作,包括:
响应于确定联邦学习应用的状态为新建状态,在所述容器集群中创建第一设置信息所指示的各功能模块对应的容器,对所述容器执行配置操作,使得容器处于启动状态。
6.根据权利要求5所述的方法,其特征在于,对于每一个容器,上述配置操作包括:
创建该容器对应的配置信息,将所述配置信息挂载至该容器;
将完成该容器对应的功能的应用程序镜像至该容器;
为该容器生成唯一网络标识,并将该唯一网络标识置于该容器的环境变量中。
7.根据权利要求6所述的方法,其特征在于,所述为该容器生成唯一网络标识,包括:
为该容器创建无头服务,将所创建的无头服务的标识作为该容器的唯一网络标识。
8.根据权利要求4所述的方法,其特征在于,所述容器集群为联邦学习任务接收方对应的第二容器集群,所述状态机中的状态包括启动状态和同步状态,以及
所述执行将所述联邦学习应用的状态调整至所述状态机中的所述当前状态的下一状态的操作,包括:
响应于检测到所述联邦学习应用的当前状态为启动状态,执行如下将该联邦学习应用调整至同步状态的操作:将所述第二容器集群中处于可运行状态的容器的唯一网络标识发送给联邦学习任务发起方对应的第一容器集群;响应于接收到所述第一容器集群发送的发送成功的反馈信息,将该联邦学习应用的状态调整至同步状态。
9.根据权利要求4所述的方法,其特征在于,所述容器集群为联邦学习任务发起方对应的第一容器集群,第一容器集群中的各容器为第一容器,所述状态机中的状态包括启动状态和运行状态,以及
所述执行将所述联邦学习应用的状态调整至所述状态机中的所述当前状态的下一状态的操作,包括:
响应于检测到第一容器集群的联邦学习应用的状态处于启动状态,执行如下将该联邦学习应用调整至运行状态的操作:检测是否收到联邦学习任务接收方对应的第二容器集群发送的第二容器的信息,响应于检测结果为是,对至少一个第一容器和至少一个第二容器进行配对;根据配对结果生成第一配对结果信息,将第一配对结果信息置入各第一容器的配置信息;并将第一配对结果信息发送给第二控制模块;响应于接收到第二控制模块反馈的接收成功信息,将第一容器集群的联邦学习应用的状态置于运行状态,其中
所述第二容器为在所述第二容器集群创建的为实现所联邦学习应用的容器。
10.根据权利要求9所述的方法,其特征在于,所述根据配对结果生成第一配对结果信息,包括:
对于配对结果中的每一对的第一容器和第二容器,将第一容器的唯一网络标识作为一个键值对中的键的值,将第二容器的唯一网络标识作为该键值对中的对的值,得到与配对结果对应的键值对信息。
11.根据权利要求4所述的方法,其特征在于,所述容器集群为联邦学习任务接收方对应的第二容器集群,第二容器集群中的容器为第二容器,所述状态机中的状态包括同步状态和运行状态,以及
所述执行将所述联邦学习应用的状态调整至所述状态机中的所述当前状态的下一状态的操作,包括:
响应于检测到第二容器集群中的联邦学习应用当前的状态为同步状态,执行如下将该联邦学习***置于运行状态的操作:检测是否收到第一容器集群发送的用于表征第一容器和第二容器配对结果的第一配对结果信息;响应于检测到检测结果为接收到所述第一配对结果信息,将接收到的第一配对结果信息调整为本端配对结果信息,并将本端配对结果信息置入各第二容器的配置信息中;将本端该联邦学习应用置于运行状态;
其中,第一容器集群中的各容器为第一容器。
12.根据权利要求4所述的方法,其特征在于,所述状态包括运行状态和结束状态,以及
所述执行将所述联邦学习应用的状态调整至所述状态机中的所述当前状态的下一状态的操作,包括:
响应于接收到结束所述联邦应用的结束指令,将所述联邦应用置为结束状态,其中
所述结束指令包括以下之一的方式生成的结束指令:
响应于检测到所述容器集群中的各容器正常退出,向对端容器集群发送正常结束请求,根据对端容器集群发送的接收结束请求成功的反馈信息,生成所述结束指令;
根据接收到的对端容器集群发送的正常结束请求,生成所述结束指令。
13.根据权利要求4所述的方法,其特征在于,所述状态包括运行状态和异常关闭状态,以及
所述执行将所述联邦学习应用的状态调整至所述状态机中的所述当前状态的下一状态的操作,包括:
响应于接收到异常关闭指令,将所述联邦应用至于异常关闭状态;其中
所述异常关闭指令包括以下之一的方式生成的异常关闭指令:
响应于与检测到所述容器集群中运行联邦学习***应用的参数服务器的容器异常,向对端发送关闭请求,根据对端发送的接收关闭请求成功的反馈信息,生成所述异常关闭指令;
响应于检测到所述容器集群中运行用于实现联邦学习任务的应用的容器异常的次数超过预设次数阈值;向对端发送关闭请求,根据对端发送的接收关闭请求成功的反馈信息,生成所述异常关闭指令;
根据对端容器集群发送的关闭请求,生成异常关闭指令。
14.根据权利要求要求1所述的方法,其特征在于,所述方法还包括:
在该容器机器集群内,将所生成的为本次联邦学习任务提供服务的容器的唯一网络标识和端口,注入到运行实现联邦学习任务的应用的容器的环境变量中,以使运行实现联邦学习任务的应用的容器访问所述提供服务的容器。
15.根据权利要求1所示所述的方法,其特征在于,所述响应于检测结果为是,在所述容器集群创建并运行与所述功能模块信息所指示的各功能模块分别对应的容器,包括:
创建信息出入代理器实例,并为信息出入代理器实例分配外网地址;
将各容器的唯一网络标识以及预设加密规则写入信息代理器的代理规则,以利用所述信息出入代理器实例解析对端容器集群发送的中间信息进行解密,并根据所述各容器的唯一网络标识将所述中间信息发送给中间信息所指示的所述容器集群中的目标容器,所述中间信息由对端容器执行联邦学习任务产生。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
利用所述信息出入代理器执行如下中间信息发出操作:接收本端一容器发出的执行联邦学习任务得到的中间信息;使用预设规则为所述中间信息加密后通过所述外网地址发送给对端的信息出入代理器。
17.一种部署联邦学习应用的装置,其特征在于,应用于容器集群中设置的控制模块,包括:
检测单元,用于检测容器集群中的预设设置信息接收容器是否接收到用于实现联邦学习应用的第一设置信息,所述第一设置信息包括功能模块信息、功能模块对应的环境变量;
创建单元,用于响应于检测结果为是,在所述容器集群创建并运行与所述功能模块信息所指示的各功能模块分别对应的容器,以使所述容器与对端容器集群中根据所述第一设置信息创建并运行的各容器共同实现联邦学习任务,其中所述容器集群为联邦学习任务的一方对应的容器集群,对端容器集群为所述联邦学习任务其他方对应的容器集群。
18.一种部署联邦学习应用的***,其特征在于,包括第一容器集群,至少一个第二容器集群,第一容器集群对应联邦学习任务发起方,第二容器集群对应联邦学习任务接收方;第一容器集群包括预先设置的第一设置信息接收容器,第一控制模块,所述第二容器集群包括预先设置的第二设置信息接收容器,第二控制模块,其中
所述第一设置信息接收容器接收用户输入的用于实现联邦学习应用的第一设置信息,所述第一设置信息包括功能模块信息、功能模块对应的环境变量,所述功能模块信息包括功能模块的数量信息;
所述第二设置信息接收容器接收所述第一设置信息接收容器发送的所述第一设置信息;
第一控制模块在第一容器集群创建并运行与所述功能模块信息所指示的各功能模块分别对应的第一容器;第二控制模块在第二容器集群中创建并运行与所述功能模块信息所指示的各功能模块分别对应的第二容器,以实现联邦学习任务。
19.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-16中任一所述的方法。
20.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-16中任一所述的方法。
CN202011306666.1A 2020-11-18 2020-11-18 部署联邦学习应用的方法、装置、***和电子设备 Active CN112700014B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011306666.1A CN112700014B (zh) 2020-11-18 2020-11-18 部署联邦学习应用的方法、装置、***和电子设备
PCT/SG2021/050702 WO2022108525A1 (zh) 2020-11-18 2021-11-16 部署联邦学习应用的方法、装置、***和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011306666.1A CN112700014B (zh) 2020-11-18 2020-11-18 部署联邦学习应用的方法、装置、***和电子设备

Publications (2)

Publication Number Publication Date
CN112700014A true CN112700014A (zh) 2021-04-23
CN112700014B CN112700014B (zh) 2023-09-29

Family

ID=75505929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011306666.1A Active CN112700014B (zh) 2020-11-18 2020-11-18 部署联邦学习应用的方法、装置、***和电子设备

Country Status (2)

Country Link
CN (1) CN112700014B (zh)
WO (1) WO2022108525A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672348A (zh) * 2021-08-10 2021-11-19 支付宝(杭州)信息技术有限公司 基于容器集群对联合计算多方进行服务校验的方法及***
CN113672352A (zh) * 2021-08-23 2021-11-19 支付宝(杭州)信息技术有限公司 一种基于容器部署联邦学习任务的方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170279849A1 (en) * 2016-03-24 2017-09-28 Cisco Technology, Inc. Constraint-aware resource synchronization across hyper-distributed learning systems
US20190317825A1 (en) * 2018-04-16 2019-10-17 Kazuhm, Inc. System for managing deployment of distributed computing resources
CN110874649A (zh) * 2020-01-16 2020-03-10 支付宝(杭州)信息技术有限公司 基于状态机的联邦学习方法、***、客户端及电子设备
CN111507481A (zh) * 2020-04-17 2020-08-07 腾讯科技(深圳)有限公司 一种联邦学习***
CN111537945A (zh) * 2020-06-28 2020-08-14 南方电网科学研究院有限责任公司 基于联邦学习的智能电表故障诊断方法及设备
CN111784002A (zh) * 2020-09-07 2020-10-16 腾讯科技(深圳)有限公司 分布式数据处理方法、装置、计算机设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111338784B (zh) * 2020-05-25 2020-12-22 南栖仙策(南京)科技有限公司 一种实现代码仓库与计算服务整合的方法及***
CN111598186B (zh) * 2020-06-05 2021-07-16 腾讯科技(深圳)有限公司 基于纵向联邦学习的决策模型训练方法、预测方法及装置
KR102163402B1 (ko) * 2020-06-15 2020-10-08 주식회사 딥노이드 멀티 노드와 멀티 gpu를 이용한 분산 학습 시스템 및 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170279849A1 (en) * 2016-03-24 2017-09-28 Cisco Technology, Inc. Constraint-aware resource synchronization across hyper-distributed learning systems
US20190317825A1 (en) * 2018-04-16 2019-10-17 Kazuhm, Inc. System for managing deployment of distributed computing resources
US20190318240A1 (en) * 2018-04-16 2019-10-17 Kazuhm, Inc. Training machine learning models in distributed computing systems
CN110874649A (zh) * 2020-01-16 2020-03-10 支付宝(杭州)信息技术有限公司 基于状态机的联邦学习方法、***、客户端及电子设备
CN111507481A (zh) * 2020-04-17 2020-08-07 腾讯科技(深圳)有限公司 一种联邦学习***
CN111537945A (zh) * 2020-06-28 2020-08-14 南方电网科学研究院有限责任公司 基于联邦学习的智能电表故障诊断方法及设备
CN111784002A (zh) * 2020-09-07 2020-10-16 腾讯科技(深圳)有限公司 分布式数据处理方法、装置、计算机设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672348A (zh) * 2021-08-10 2021-11-19 支付宝(杭州)信息技术有限公司 基于容器集群对联合计算多方进行服务校验的方法及***
CN113672348B (zh) * 2021-08-10 2024-06-18 支付宝(杭州)信息技术有限公司 基于容器集群对联合计算多方进行服务校验的方法及***
CN113672352A (zh) * 2021-08-23 2021-11-19 支付宝(杭州)信息技术有限公司 一种基于容器部署联邦学习任务的方法及装置
CN113672352B (zh) * 2021-08-23 2024-05-31 支付宝(杭州)信息技术有限公司 一种基于容器部署联邦学习任务的方法及装置

Also Published As

Publication number Publication date
CN112700014B (zh) 2023-09-29
WO2022108525A1 (zh) 2022-05-27

Similar Documents

Publication Publication Date Title
JP2022141757A (ja) メディア・ストリーミング・システムおよび方法
US10021195B2 (en) Cross-device synchronization system for account-level information
CN109831464A (zh) 用于解密数据的方法和装置
WO2020216204A1 (zh) 信息获取方法和装置
CN112700014B (zh) 部署联邦学习应用的方法、装置、***和电子设备
US20170324686A1 (en) System and method for secure and efficient communication within an organization
CN109862560A (zh) 一种蓝牙认证方法、装置、设备和介质
CN107172001A (zh) 网站代理服务器的控制方法、密钥代理服务器及网站代理服务器
CN112765642A (zh) 数据处理方法、数据处理装置、电子设备及介质
US10372710B2 (en) Using metadata to take action on an SMS message on a proprietary system
CN110046000B (zh) 小程序运行方法和装置
CN109660609B (zh) 一种设备识别方法和装置以及存储介质
CN110266701A (zh) 智能设备数据传输方法、装置、介质及电子设备
CN110275787A (zh) 在线平台数据传输方法、装置、介质及电子设备
CN112073175B (zh) 数据处理方法、装置、***及电子设备
CN113807157A (zh) 基于联邦学习训练神经网络模型的方法、装置和***
CN105094902B (zh) 控制应用程序登录状态的***和方法
CN110825815A (zh) 基于区块链的云笔记***信息处理方法、设备及介质
CN113472737B (zh) 边缘设备的数据处理方法、装置及电子设备
CN115567596A (zh) 云服务资源部署方法、装置、设备及存储介质
CN112257039B (zh) 身份属性添加方法、装置和电子设备
CN113961931A (zh) adb工具使用方法、装置和电子设备
CN110492998B (zh) 加解密数据的方法
CN113204459A (zh) U盾测试方法、装置、设备和介质
CN111885200B (zh) 数据传输方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant