聯邦學習開源框架FATE新版本釋出!配套引擎EggRoll更新

新聞助手發表於2020-06-03

近日,全球首個聯邦學習工業級開源框架FATE(Federated AI Technology Enabler)正式迎來了1.4新版本釋出。在這一版本中,FATE著重提升了使用者在真實建模中的體驗,橫向聯邦增加了對Secureboost樹演算法的支援,縱向聯邦廣義線性模型系列則增加了對基於AIC及BIC進行逐步迴歸模型選擇的全面支援,縱向聯邦分箱也新增了最優分箱方法,支援iv\gini\chi-square\ks,同時,作為FATE計算/儲存/通訊引擎的EggRoll也迎來了全新的2.0,穩定性、效能以及使用者體驗顯著提升。作為側重點在完善FATE可用性的這一版本,相信能為開發者帶來更為流暢的使用體驗。

該專案GitHub地址:https://github.com/FederatedAI/FATE

主要更新點介紹:

1. 橫向聯邦新增對Secureboost樹演算法的支援,開發者可以在使用者資料特徵相同的橫向場景下構建GBDT模型,自此,FATE框架中樹演算法得以進一步完善,現在FATE的樹演算法已可支援所有的聯邦場景;

2. 縱向聯邦廣義線性模型系列,現已全面支援基於AIC及BIC進行逐步迴歸模型選擇,在平衡線性模型引數量與效果的場景中,將會自動選取特徵組合,減少選取模型過程中人工操作次數,提升開發者的使用體驗;

3.縱向聯邦分箱支援最優分箱方法,支援iv\gini\chi-square\ks,開發者從這一版本起,就可以在縱向聯邦分箱中使用最優分箱方法了,特徵工程的分箱方法進一步豐富化,相信能讓開發者更直觀感受到FATE建模過程中的實用性;

4. AI生態互操作:橫向聯邦NN支援pytorch backend,FATE新增了pytorch backend,即支援使用pytorch引擎搭建nn網路,換而言之,使用pytorch編寫的橫向nn模型,可相關使用配置檔案將其透過pytorch backend進行轉化,加入多方橫向聯邦學習,作為重要的深度學習庫,支援pytorch的呼聲一直很高,橫向nn在支援使用tensorflow和keras的基礎上,增加了pytorch backend,進一步豐富了FATE的功能性。

FederatedML:新增橫向secureboost演算法,廣義線性模型的逐步迴歸模型選擇以及最優分箱功能支援

在上一個版本中,FATE對訓練稀疏資料效率進行了提升,記憶體消耗也再度最佳化。而在1.4版本中,FederatedML的更新也延續了這一想法,主要集中提高了FATE的可用性。首當其衝的,便是完善了更多的常見功能。比如1.4中新增的橫向secureboost演算法,廣義線性模型的逐步迴歸模型選擇以及最優分箱功能支援等,都是在建模過程中使用者迫切希望得以實現的功能。除此以外,FATE 1.4也在努力提升原有演算法的體驗和應用範圍。比如本次更新進一步完善了橫向nn的功能,新增pytorch框架支援,提升建模效率的同時,增強了易用性,開發者不必同時掌握多種深度學習庫,即可滿足聯邦場景中的建模需求。最後,新版本還透過最佳化部分演算法的實現,大大提升了建模過程中的穩定性和效率,使得開發者能更順暢地使用FATE來實現自己的業務目標。

聯邦學習開源框架FATE新版本釋出!配套引擎EggRoll更新FATEBoard:新增Pearson相關性視覺化矩陣圖,支援GLMstepwise方法、橫向Secureboost等視覺化輸出

FATEBoard是聯邦學習建模的視覺化工具,為終端使用者視覺化和度量模型訓練的全過程,能夠幫助開發更簡單、高效地進行模型探索和模型理解。FATEBoard由任務儀表盤、任務視覺化、任務管理與日誌管理等模組組成,支援模型訓練過程全流程的跟蹤、統計和監控等,併為模型執行狀態、模型輸出、日誌追蹤等提供了豐富的視覺化呈現。

在FATE 1.4版本中,FATEBoard新增了Pearson相關性的視覺化矩陣圖,可幫助開發者檢視guest特徵之間,以及guest與host特徵之間的相關性大小。而對GLM(縱向LR、縱向線性迴歸、縱向poisson迴歸)的stepwise方法的結果視覺化輸出的支援,則能夠幫助開發者準確地觀察每一步的模型擬合統計、特徵分析、最大似然分析、待進入特徵分析等情況。對橫向Secureboost的視覺化樹模型輸出,LR、localbaseline在one_vs_rest下的視覺化輸出的支援,也進一步豐富了FATEBoard在更多場景下的適用性。

最後,新版本對FATEBoard的視覺和互動體驗上也做了重大提升,支援大資料量下圖表的視覺化,最佳化頁面視覺效果及互動細節。透過嘗試,建模人員可以明顯感受到FATEBoard的可用性與易用性在這一版本中所呈現的全方位提升,必將幫助建模人員更好地理解與分析模型。

支援EggRoll 2.0:穩定性、效能以及使用者體驗顯著提升

作為FATE 1.4版本的一個重點,EggRoll也迎來了巨大提升,在穩定性方面,FATE採用了全新的資源管理元件及session機制。從這一版本起,即使session出錯,也只需要一個簡單函式呼叫,臨時拉起的計算程式即可被清理。此外,此版本也移除了storage service,無需C++/native庫的編譯,開發者從下載程式碼到執行起來的步驟進一步減少,編譯與環境依賴也更加簡化,基本上已可實現開箱即用。最後,面對在任意網路下傳輸都會產生的丟包現象,新版本也做了適配,聯邦學習演算法在28%的丟包率之下依然可以實現正常執行。

在效能方面,在實踐中相信開發者能夠感受到,執行於Eggroll 2的聯邦學習演算法效能顯著提升,部分演算法甚至可以達到超過10倍的效能提升,此外,Join介面在聯邦學習場景下,也實現了比pyspark快16倍的速度,開發者的計算/建模將更為高效。

而在使用者體驗方面,新版本已可快速部署,只需Maven編譯、pip安裝依賴、修改配置,即可執行。此外,這一版本也變得更加易於除錯,新版本中不僅提供了必要的執行上下文資訊,還將除錯的關鍵系統狀態儲存在日誌檔案及資料庫中,當開發者遇到報錯資訊時,排查將變得更加快捷。最後,常駐程式在這一版本中也進行了大幅度削減,現在的常駐程式僅三個:

lClusterManager (CM):管理叢集的物理資源,管理session資訊

lNodeManager (NM):管理一個機器節點上的物理資源

lRollSite:管理跨站點通訊,等同以前的proxy + federation

其中,CM和NM都是無狀態的,非常輕量級,易於管理。開發者在使用過程中,可以直觀感受到這些提升帶來的更優質體驗。

總而言之,FATE 1.4版本是一次回望,對過往開發者們提到的一些問題進行了整合與思考,然後加入了迭代中。無論是FederatedML對常用功能、及原有演算法的體驗和應用範圍的提升,還是FATEBoard對適用場景的豐富、及視覺和互動體驗上的大力最佳化,又或者是FATEFlow針對實際生產應用,從模型、資料、日誌三個方面增強系統易管理、易擴充套件、易審計的能力,都能看到FATE對開發者使用體驗的思索與重視。FATE官方歡迎對聯邦學習有興趣的同仁一起貢獻程式碼,提交 Issues 或者 Pull Requests。詳情可查閱FATE官網專案貢獻者指南:https://fate.fedai.org/contribute/

另,FATE官方也在開展針對1.4版本的圓桌討論會,詳情可新增FATE助手:FATEZS001,進一步交流及瞭解。

相關文章