FedLCM:统一的联邦学习生命周期管理平台

时间:2023-02-09 16:03:57

VMware云原生实验室团队在上周开源发布了联邦学习的生命周期管理项目FedLCM并贡献到LF AI & DATA基金会和FATE开源社区。

联邦学习是人工智能与数据领域中最为火热的方向之一,作为社区期待已久的项目,FedLCM从包含多个参与方的联邦的维度,借助云原生技术极大地简化了联邦学习系统部署维护和使用的复杂度,赋能跨云、跨边缘设备等场景下的联邦学习应用。本文对FedLCM的设计、功能、使用方式等进行了详细的介绍,也期待项目的开源能够进一步促进相关领域的创新发展和生产实践。

背景

随着联邦学习相关领域的研究和应用不断的发展,越来越多的用户投入到了以FATE为代表的联邦学习系统的开发和使用之中,相关社区生态也在进一步的壮大。联邦学习系统天然有着分布式的特性,部署和使用都有一定的门槛,为此,FATE社区提供了包括KubeFATE和AnsibleFATE等项目来帮助用户完成FATE系统在一个站点,即一个参与方内部的部署和运维管理等任务。而联邦学习需要有多个参与方,因此各方都需要在本方环境中进行FATE的部署安装管理,并配置各方的互联信息,才能形成一个可以运行真正训练任务的“联邦“。此外,当前的部署解决方案(包括 KubeFATE和AnsibleFATE)是基于命令行的,需要用户有一定基础知识,在进行FATE系统部署时的步骤也较为复杂,对很多用户来说仍然有一些负担。

为了应对以上挑战,并进一步降低FATE系统的使用门槛,VMware云原生实验室开发了FedLCM (Federation Lifecycle Manager)项目,并开源贡献到FATE社区。FedLCM是一个从联邦维度对FATE系统各方进行统一管理的解决方案,提供基于网页图形化界面的FATE联邦和集群部署管理平台。

FedLCM简介

A.FedLCM的基本功能

顾名思义,FedLCM的核心功能是Lifecycle Manager服务:即FATE联邦与集群部署的生命周期管理。通过使用Lifecycle Manager的图形化界面,用户可以在几分钟内轻松部署FATE Exchange以及各个参与方的FATE系统组件,如FATE-Flow、各个基础引擎等。除了简化部署流程之外,FedLCM 还包含其他生命周期管理功能,如自动更新各方的路由配置以快速组建起FATE联邦、证书签发与安装、多个联邦多个部署实例的安装卸载等等。需要说明的是,FedLCM并不是KubeFATE或其他部署方案的替代者,而是基于这些面向单方的方案,来完成在多个参与方部署的流程。

同时,FedLCM项目也为用户提供了一个站点管理平台 - Site Portal ,这是一个图形化的联邦学习任务管理服务,Site Portal的用户通过简单的操作就可以发起或加入一个联邦学习任务,并提供了包括项目、数据、模型等等的联邦学习要素的管理功能(在FedLCM的v0.1.0版本中,Site Portal服务需与FATE v1.6.1一起使用)。

B.FedLCM的核心概念

FedLCM:统一的联邦学习生命周期管理平台

上图是Lifecycle Manager服务的核心元素和它们之间的关联关系,具体来说,它包括以下几个核心概念:

1.      基础设施(Infrastructure):底层的基础设施资源是一切生命周期管理的基础,例如 Kubernetes集群、单机/VM 或其他设备等,目前FedLCM支持的基础设施是Kubernetes,FATE系统会以容器的形式运行在用户配置的Kubernetes基础设施之上。

2.      服务端点(Endpoint) :在基础设施上运行的,面向该基础设施的部署管理服务,Lifecycle Manager可以对其进行安装卸载等管理,并基于它来完成在对应的基础设施上的FATE系统的安装管理。目前FedLCM支持的服务端点种类即是K8s模式下的KubeFATE服务。

3.      联邦(Federation) :即一个可以由多个联邦学习参与者加入的联邦学习网络。是Lifecycle Manager架构中用户使用的最顶层的实体。

4.      联邦学习参与方(Participant) :即联邦内的一个参与方。它可以是一个FATE Exchange,或者是一个 FATE系统(也被称为FATE Cluster)。在一个联邦下允许创建一个Exchange和多个Cluster,也可以引入外部通过其他方式安装的Exchange 和 Cluster,以便于与其他方互联。

Lifecycle Manager服务设计的初衷是尽量灵活,它可以支持部署与管理多个联邦、不同类型的基础设施、服务端点等,且联邦学习参与方可以部署在以上任何一个实例上。除了以上核心概念之外,还有其他的一些实体与服务扮演着重要的角色,例如: Chart服务管理着用于部署 FATE 参与方的Helm Chart,这是与KubeFATE配合时不可或缺的资源;事件(Event)服务记录相关实体的重要事件与信息;证书 (Certificate)服务在FATE部署中为一些需要TLS的服务颁发证书等等。这些服务与核心实体相关联,用于整个生命周期管理的工作流,一起组成Lifecycle Manager的主要功能。

除此之外,Lifecycle Manager还可以部署一些其他重要服务,包括可用于颁发证书的 CA 服务,以及前文所述的,可以与各个参与方的FATE 实例同时运行的站点管理服务Site Portal。该服务可以帮助管理各个站点信息与联邦学习任务,用户可通过网页界面来管理 FATE 任务、模型、数据等,加速联邦学习任务的工作流程。这几个服务的部署场景如下图示例所示。

FedLCM:统一的联邦学习生命周期管理平台

如何使用FedLCM

A.部署FedLCM

FedLCM本身可以以容器的方式,通过docker-compose或者Kubernetes部署运行。具体部署步骤可以参考GitHub仓库中的README.md文档。

(地址是:https://github.com/FederatedAI/FedLCM/blob/main/README_zh.md)

B.使用Lifecycle Manager

成功部署 FedLCM 后,用户可以通过它的网页进行后续的所有操作。一个使用FedLCM的最基本流程大概有下面几步骤:

  • 配置 CA:FedLCM 服务可以使用一个证书颁发机构来向各组件签发证书。FedLCM集成了流行的开源CA服务StepCA, 在docker-compose 和 K8s 部署方案中都默认内置一个可以直接使用的 StepCA 服务,方便用户快速开始。如果有需要,用户也可以接入已经存在的外部StepCA服务。当然,FedLCM也支持不配置任何CA,此时,用户需要手动为需要部署的FATE组件等签发证书。

  • 添加基础设施:FedLCM服务计划支持多种基础设施, 比如VM或者Kubernetes 集群。目前用户可以通过提交一个kubeconfig文件将K8s 集群添加为基础设施,目前FedLCM也支持为基础设施设置自定义镜像仓库等配置。

FedLCM:统一的联邦学习生命周期管理平台

  • 安装服务端点:  FedLCM目前支持部署的服务端点的类型是KubeFATE。用户可以一步步按照提示在Kubernetes基础设施上安装KubeFATE。同时FedLCM也支持在安装服务端点同时自动安装Ingress Controller服务。

FedLCM:统一的联邦学习生命周期管理平台

  • 创建联邦: 用户只需要提供简单的信息就可以创建一个联邦。其中的“主域名”将会作为该联邦中各个服务的域名的基础。

FedLCM:统一的联邦学习生命周期管理平台

  • 创建参与方:用户可以在当前联邦下创建Exchange和Cluster(即FATE-Flow和各个基础引擎组成的集群), 也支持将其他联邦下的Exchange或Cluster引入当前联邦,以便于FedLCM更新其他参与方的路由表信息。创建Exchange与Cluster的步骤相似, 用户只要按照步骤提示就可快速完成创建。

FedLCM:统一的联邦学习生命周期管理平台

完成以上流程后, 我们就拥有了一个联邦并管理着多个参与方。

  • 在联邦页面,我们可以看到整个联邦的详情,包括各个参与方的状态等:

FedLCM:统一的联邦学习生命周期管理平台

  • 参与方Cluster详情: 在 Ingress 信息一栏可以看到多个服务的网络信息,其中 client 提供Jupyter notebook服务来创建 FATE job,fateboard提供监控FATE  job 的服务。通过修改 hosts 文件或者配置 DNS 服务器后可访问到相应服务。如果使用1.6.1版本的chart创建FATE cluster, 用户也可以使用Site Portal服务来创建FATE Job, 下一章节将简单介绍此服务。

FedLCM:统一的联邦学习生命周期管理平台

在FedLCM的开源仓库中,有上述步骤的详细文档,请参阅如下文档:https://github.com/FederatedAI/FedLCM/blob/main/doc/Getting_Started_FATE_zh.md 。

C.使用Site Portal

  • 如果使用1.6.1版本的chart创建FATE cluster, 部署成功后在“公开服务“一栏会包含 Site Portal 服务, 点击即可跳转到当前参与方的站点管理系统。

FedLCM:统一的联邦学习生命周期管理平台

  • 进入Site Portal后, 用户可以通过配置站点信息连接到FML Manager和 FATE-Flow服务。

FedLCM:统一的联邦学习生命周期管理平台

  • 用户可上传数据到系统并创建一个项目, 并邀请同一联邦下的参与方加入项目。

(Site-1 邀请Site-2加入project)

  • Site Portal支持创建模型训练,预测和PSI任务。当参与方向项目中关联数据后, 就可以发起一个FATE训练任务。目前Site Portal支持Json模板模式及拖拽交互模式来构建FATE训练任务Pipeline并生成DSL。
  • 训练任务创建并完成后会生成最终模型。各个参与方可以用此模型进行之后的预测任务。

由于篇幅原因,以上只是Site Portal简单的功能介绍。关于Site Portal详尽使用说明请阅读FedLCM项目库的相关文档,包括:

1.整体使用指南:https://github.com/FederatedAI/FedLCM/blob/main/doc/Site_Portal_In_FedLCM_Configuration_Guide_zh.md

2.训练任务创建说明:https://github.com/FederatedAI/FedLCM/blob/main/doc/Site_Portal_Create_Job_Guide_zh.md

结语

至此我们就完成从部署FedLCM、部署FATE集群到发起FATE Job的一整套流程。FedLCM以图形化的方式帮助用户高效、安全地完成联邦学习中的各个步骤,也方便用户更好地管理联邦学习中的各个元素。FedLCM开源项目的地址在: https://github.com/FederatedAI/FedLCM 或点击阅读原文查看 。

欢迎大家使用并向我们提出宝贵意见, 更欢迎参与贡献到FedLCM的开源项目中。

 

内容来源|公众号:VMware中国研发中心