微眾銀行開發的全球首個工業級聯邦學習開源框架 FATE 升級 v1.1!特別支持雲上部署
- 2019 年 11 月 22 日
- 筆記
此外,FATE 還聯合 VMware 中國研發開放創新中心雲原生實驗室的團隊一起搞了個「大事」——支持在公有雲和私有雲中部署及使用,全容器化雲原生部署方案。

FATE 作為聯邦學習全球首個工業級開源框架,支持聯邦學習架構體系,為機器學習、深度學習、遷移學習提供了高性能聯邦學習機制,FATE 本身還支持多種多方安全計算協議,如同態加密、秘密共享、哈希散列等,具有友好的跨域交互信息管理方案。
在 10 月 31 日正式發佈的 FATE v1.1 版本中,FATE 聯合 VMware 中國研發開放創新中心雲原生實驗室的團隊一起搞了個「大事」——發佈了 KubeFATE 項目,通過把 FATE 的所有組件用容器的形式封裝,實現了使用 Docker Compose 或 Kubernetes(Helm Charts)來部署。
現代應用以 DevOps 方式開發,基於容器部署應用的優勢相當明顯,應用不僅可以無差別地運行在支持容器的平台上,還可以按需靈活地實現多實例水平擴展。目前主流的雲平台,如國外的 AWS,Azure,國內的阿里雲、騰訊雲等,都有基於容器和 Kubernetes 的雲原生服務,使得容器應用的部署和運行已經標準化和商品化。
換句話說,通過 KubeFATE 項目,開發者可以輕鬆地在公有雲或私有雲中部署和使用 FATE 項目。
該項目現已發佈在GitHub:
https://github.com/FederatedAI/KubeFATE

另外,本次FATE v1.1版本在算法和功能基礎了進行重大升級和提升:
不僅上線了橫向聯邦學習通用算法框架,增加了DNN、回歸等多個聯邦算法,並開始支持多方縱向聯邦建模,支持spark引擎,支持FATEServing服務治理,支持secureboost在線預測等。
具體更新詳情如下文所示。
FederatedML:提供易擴展的橫向算法框架支持橫向算法開發
在新版本中,FATE使開發更加輕鬆,開發者可以更關注於算法具體本身,而將更多通用的通信傳輸內容交給框架。FATE v1.1提供易擴展的橫向聯邦學習通用算法框架,支持Secure Aggregation,通過封裝橫向聯邦學習的主要流程,開發者能夠簡單地實現橫向聯邦學習算法。

在算法方面,FATE新增了對橫向DNN、縱向線性回歸、縱向泊松回歸等聯邦算法的支持,以及更多算法支持多方聯邦建模,豐富了更多的建模場景,提升了FATE的實用性。
值得一提的是,線性回歸在預測連續標籤等應用場景上非常有力,而泊松回歸則能更好的協助開發者預測次數與頻率,如在購買保險和評估意外發生風險等場景里,泊松回歸都能對頻率進行預測。
此外,從這一版本開始,FATE也正式開始支持多方縱向聯邦建模,可以實現縱向場景下的多個數據提供方共同訓練聯邦模型。
最後,FATE也對連接Spark進行了嘗試,FATE v1.1支持已有Spark集群的開發者直接復用現有資源,可以選擇Spark作為計算引擎,根據實際情況靈活配置。
更多可前往GitHub了解: https://github.com/FederatedAI/FATE/tree/master/federatedml
FATEFlow:高性能聯邦學習Pipeline生產服務
FATEFlow是聯邦學習建模Pipeline 調度和生命周期管理工具,為用戶構建端到端的聯邦學習Pipeline生產服務。v1.1版本中,FATEFlow主要在穩定性及易用性上進行了提升,例如:
- 上傳下載文件支持查看作業狀態,對於大文件和對接其他系統有較大幫助;
- 支持取消等待中的作業;
- 支持對作業設置超時時間;
- 優化作業日誌,統一存放於以作業ID命名的日誌文件夾,提高排查問題效率;
FATEBoard:簡單高效,聯邦學習建模過程可視化
FATEBoard是聯邦學習建模的可視化工具,為終端用戶可視化和度量模型訓練的全過程,幫助用戶更簡單而高效地進行模型探索和模型理解。新版本中,job工作流展示進一步優化,並支持組件數據與模型的輸入輸出端口分離,提供更直觀的數據傳輸與模型傳輸展示;
另外,現已支持模型訓練過程中的評估結果可視化,便於實時關注與跟蹤中間訓練過程和結果;更提供secureboost樹模型的可視化展示,不僅可以清晰地觀測模型中每顆決策樹,還能查看不同標籤下的樹模型。
FATEServing:服務治理,重啟自動恢復模型
在新版本中,模型加載成功後會在本地文件中保存,在重啟之後會從本地文件中恢復之前加載的模型。
此外,v1.1版本引入zookeeper作為註冊中心,提供了有限的服務治理功能,能夠動態的註冊grpc接口,在某些機器宕機的情況下,能夠自動的切換流量 。
KubeFATE:FATE部署能力升級
FATE v1.1版本提供打包好的Docker容器鏡像,大大降低FATE的使用門檻,避免開發者「倒在起跑線上」。如果是企業開發者,還可以發現離線部署FATE的能力也得到了提升,藉助 Harbor 開源容器鏡像倉庫,可以自動同步網上的鏡像,為運維減壓。
KubeFATE主要提供了Docker compose和Kubernetes(Helm Chart)兩種部署方式。
- Docker-Compose可以將FATE的所有組件部署在單個節點中,並且支持多個合作方的部署。開發者無需編譯代碼,可使用Docker compose迅速搭建測試環境。當前Docker compose可將FATE部署在一個或多個節點中,有利於開發者對FATE功能的熟悉和了解。
- Docker-Compose的單節點部署方式定位於測試。在生產環境中,往往需要多節點部署,此時採用Kubernetes的方式更佳。KubeFATE提供了Helm Charts來把FATE部署到Kubernetes方法,可在支持Kubernetes的雲上直接部署FATE,並且可以按照需求定製部署的細節,例如把計算模塊部署在有GPU的節點上等等。
Harbor是開源鏡像倉庫,提供鏡像的訪問控制、遠程同步、安全漏洞掃描等強大能力,國內的用戶絕大部分使用Harbor管理鏡像。KubeFATE項目將Harbor集成到其中,可提供本地鏡像管理能力,無需依賴Docker Hub等雲服務,大大提高了效率和安全性。此外,Harbor還能複製遠程的鏡像,可把鏡像在公有雲或數據中心之間雙向複製,遇到故障可自動恢復,從而簡化運維複雜度。
總的來說,FATE v1.1版本增加了多個聯邦算法的支持,為聯邦學習建模帶來更豐富更強大的功能,同時聯合VMware推出KubeFATE,簡化FATE使用門檻,對初接觸開發者更為友好。團隊也歡迎對聯邦學習有興趣的同仁一起貢獻代碼,提交 Issues 或者 Pull Requests。
詳情可查閱 FATE官網項目貢獻者指南: https://fate.fedai.org/contribute/