FedLCM:統一的聯邦學習生命週期管理平臺

語言: CN / TW / HK

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的核心概念

上圖是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

A.部署FedLCM

FedLCM本身可以以容器的方式,通過docker-compose或者Kubernetes部署執行。具體部署步驟可以參考GitHub倉庫中的README.md文件。

(地址是:http://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目前支援部署的服務端點的型別是KubeFATE。使用者可以一步步按照提示在Kubernetes基礎設施上安裝KubeFATE。同時FedLCM也支援在安裝服務端點同時自動安裝Ingress Controller服務。

  • 建立聯邦: 使用者只需要提供簡單的資訊就可以建立一個聯邦。其中的“主域名”將會作為該聯邦中各個服務的域名的基礎。

  • 建立參與方:使用者可以在當前聯邦下建立Exchange和Cluster(即FATE-Flow和各個基礎引擎組成的叢集), 也支援將其他聯邦下的Exchange或Cluster引入當前聯邦,以便於FedLCM更新其他參與方的路由表資訊。建立Exchange與Cluster的步驟相似, 使用者只要按照步驟提示就可快速完成建立。

完成以上流程後, 我們就擁有了一個聯邦並管理著多個參與方。

  • 在聯邦頁面,我們可以看到整個聯邦的詳情,包括各個參與方的狀態等:

  • 參與方Cluster詳情: 在 Ingress 資訊一欄可以看到多個服務的網路資訊,其中 client 提供Jupyter notebook服務來建立 FATE job,fateboard提供監控FATE  job 的服務。通過修改 hosts 檔案或者配置 DNS 伺服器後可訪問到相應服務。如果使用1.6.1版本的chart建立FATE cluster, 使用者也可以使用Site Portal服務來建立FATE Job, 下一章節將簡單介紹此服務。

在FedLCM的開源倉庫中,有上述步驟的詳細文件,請參閱如下文件:http://github.com/FederatedAI/FedLCM/blob/main/doc/Getting_Started_FATE_zh.md 。

C.使用Site Portal

  • 如果使用1.6.1版本的chart建立FATE cluster, 部署成功後在“公開服務“一欄會包含 Site Portal 服務, 點選即可跳轉到當前參與方的站點管理系統。

  • 進入Site Portal後, 使用者可以通過配置站點資訊連線到FML Manager和 FATE-Flow服務。

  • 使用者可上傳資料到系統並建立一個專案, 並邀請同一聯邦下的參與方加入專案。

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

  • Site Portal支援建立模型訓練,預測和PSI任務。當參與方向專案中關聯資料後, 就可以發起一個FATE訓練任務。目前Site Portal支援Json模板模式及拖拽互動模式來構建FATE訓練任務Pipeline並生成DSL。
  • 訓練任務建立並完成後會生成最終模型。各個參與方可以用此模型進行之後的預測任務。

由於篇幅原因,以上只是Site Portal簡單的功能介紹。關於Site Portal詳盡使用說明請閱讀FedLCM專案庫的相關文件,包括:

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

2.訓練任務建立說明:http://github.com/FederatedAI/FedLCM/blob/main/doc/Site_Portal_Create_Job_Guide_zh.md

結語

至此我們就完成從部署FedLCM、部署FATE叢集到發起FATE Job的一整套流程。FedLCM以圖形化的方式幫助使用者高效、安全地完成聯邦學習中的各個步驟,也方便使用者更好地管理聯邦學習中的各個元素。FedLCM開源專案的地址在: http://github.com/FederatedAI/FedLCM 或點選閱讀原文檢視 。

歡迎大家使用並向我們提出寶貴意見, 更歡迎參與貢獻到FedLCM的開源專案中。

 

內容來源|公眾號:VMware中國研發中心

「其他文章」