聯邦學習開源框架FATE新版本發佈!配套引擎EggRoll更新,聯邦應用場景再拓展

如何在保證本地訓練數據不公開的前提下,實現多個數據擁有者協同訓練一個共享的機器學習模型?傳統的機器學習方法需要將所有的數據集中到一個地方(例如數據中心),然後進行機器學習模型的訓練。但這種基於集中數據的做法無疑會嚴重侵害用戶隱私和數據安全。如今,世界上越來越多的人開始強烈要求科技公司必須根據用戶隱私法律法規妥善地處理用戶的數據,歐盟的《通用數據保護條例》是一個很好的例子。而聯邦學習這門技術,則可以將分佈式機器學習、密碼學、基於金融規則的激勵機制和博弈論結合起來,從而解決分散數據的使用問題。

FATE(Federated AI Technology Enabler)作爲首個聯邦學習的工業級開源框架,實現了同態加密和多方計算(MPC)的安全計算協議,其支持聯邦學習架構,內置了多種機器學習算法的聯邦學習實現,FATE的每一次更新迭代,都在一定程度上代表着聯邦學習的前進方向。

近日,全球首個聯邦學習工業級開源框架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來實現自己的業務目標。

FATEBoard:新增Pearson相關性可視化矩陣圖,支持GLM的stepwise方法、橫向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安裝依賴、修改配置,即可運行。此外,這一版本也變得更加易於調試,新版本中不僅提供了必要的運行上下文信息,還將調試的關鍵系統狀態保存在日誌文件及數據庫中,當開發者遇到報錯信息時,排查將變得更加快捷。最後,常駐進程在這一版本中也進行了大幅度削減,現在的常駐進程僅三個:

  • ClusterManager (CM):管理集羣的物理資源,管理session信息

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

  • RollSite:管理跨站點通信,等同以前的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,進一步交流及瞭解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章