Categories
程式開發

全球首個聯邦學習工業級開源框架FATE上雲


2019 年 2 月,微眾銀行 AI 團隊自主研發的全球首個工業級聯邦學習框架FATE(Federated AI Technology Enabler)正式發布,提供基於數據隱私保護的分佈式安全計算框架,為機器學習、深度學習、遷移學習算法提供高性能的安全計算支持。 10月31日,FATE v1.1版本正式發布,聯合VMware中國研發開放創新中心雲原生實驗室團隊發布KubeFATE項目,通過把FATE的所有組件用容器的形式封裝,實現了使用Docker Compose或Kubernetes(Helm Charts)來部署。

全球首個聯邦學習工業級開源框架FATE上雲 1

隨著用戶數據安全和隱私保護相關政策出台,企業在給用戶提供更好的創新服務時也面臨著數據安全和用戶隱私問題。而聯邦學習則能夠幫助企業在符合數據安全和政策法規的前提下,持續更好地輸出創新服務,提升服務質量。

作為聯邦學習全球首個工業級開源框架,FATE v1.1版本於10月31日正式發布。在這個版本中,FATE聯合VMware中國研發開放創新中心雲原生實驗室的團隊發布了KubeFATE項目,通過把FATE的所有組件用容器的形式封裝,實現了使用Docker Compose或Kubernetes(Helm Charts)來部署。現代應用以DevOps方式開發,基於容器部署應用的優勢相當明顯,應用不僅可以無差別地運行在支持容器的平台上,還可以按需靈活地實現多實例水平擴展。該項目現已發佈在GitHub上。

項目地址:https://github.com/FederatedAI/KubeFATE

目前主流的雲平台,如AWS、Azure、阿里雲、騰訊雲等,都有基於容器和Kubernetes的雲原生服務,使得容器應用的部署和運行已經標準化和商品化。通過KubeFATE項目,開發者可以輕鬆地在公有云或私有云中部署和使用FATE項目。

全球首個聯邦學習工業級開源框架FATE上雲 2

另外,本次FATE v1.1版本在算法和功能基礎了進行重大升級和提升:不僅上線了橫向聯邦學習通用算法框架,增加了DNN、回歸等多個聯邦算法,並開始支持多方縱向聯邦建模,支持spark引擎,支持FATEServing服務治理,支持secureboost在線預測等;1.1版本再一次提升了聯邦學習建模體驗,更豐富的功能、更全面的算法,同時幫助更多的企業和用戶參與對FATE技術和應用的深入研究。

FederatedML:提供易擴展的橫向算法框架支持橫向算法開發

在新版本中,FATE使開發更加輕鬆,開發者可以更關注算法本身,而將更多通用的通信傳輸內容交給框架。 FATE v1.1提供易擴展的橫向聯邦學習通用算法框架,支持Secure Aggregation,通過封裝橫向聯邦學習的主要流程,開發者能夠簡單地實現橫向聯邦學習算法。

全球首個聯邦學習工業級開源框架FATE上雲 3

在算法方面,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)兩種部署方式。

全球首個聯邦學習工業級開源框架FATE上雲 4

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。