圖1 FATEBoard功能架構總覽
圖2 FATEBoard界面示意圖
FATEFlow:高性能聯邦學習pipeline生產服務
FATEFlow是聯邦學習建模Pipeline 調度和生命周期管理工具,為用戶構建端到端的聯邦學習pipeline生產服務。FATEFlow實現了pipeline的狀態(tài)管理及運行的協同調度,同時自動追蹤任務中產生的數據、模型、指標、日志等便于建模人員分析。另外,FATEFlow還提供了聯邦機制下的模型一致性管理以及生產發(fā)布功能。
在FATE 0.3版本以前,啟動任務的模塊是由Workflow完成。在Workflow中,各算法組件的順序被完全固定,用戶只能選擇是否開啟某個模塊,無法按照需求調整組件順序,甚至多次調用同一個組件。每多開發(fā)一個組件,都要修改整體的Workflow,以適應新組件的添加。這種設計,使開發(fā)者在添加新組件時,修改部分過多,限制了整體系統(tǒng)的可擴展性。
而FATE 1.0新推出的FATEFlow良好解決了workflow中由于需要提前規(guī)定算法組建順序而造成的流程排版復雜問題,在調用模塊時不再存在大一統(tǒng)組件,每一次建模任務都能自定義算法流程。在FATE v1.0版本中,開發(fā)者自定義流程只要一個普通的json文件就可以實現,這使得開發(fā)者在添加新組件時,不用修改過多部分,極大程度地提升了整體系統(tǒng)的可擴展性。
FATEFlow提供了極為豐富的功能,主要包括:
DAG定義聯邦學習Pipeline
多方非對稱Pipeline DAG、通用json格式DAG DSL、DSL-Parser
聯邦任務協同調度
多方任務隊列管理、協同分發(fā)任務、任務一致性保證、多方狀態(tài)同步等
聯邦任務生命周期管理
多方啟停、狀態(tài)檢測等
聯邦模型管理
聯邦模型存取、聯邦模型一致性、版本管理、發(fā)布管理等
聯邦任務輸入輸出實時追蹤
數據、模型、自定義指標、日志等實時記錄存儲
此外,FateFlow還提供了多種接口,方便用戶完整把握整個建模任務。包括:
上傳和下載數據功能,使得用戶可以方便地切換數據源;
狀態(tài)查詢功能,獲得每個組件的實時狀態(tài);
下載功能,獲取每個組件的配置文件和中間結果,最大程度方便用戶調試。
在FATE 1.0版本中,用戶自定義流程得以進一步簡化,過程非常簡單,只需通過一個普通的json文件即可將算法全流程實現。
而配置運行DSL,也只需要三步:
1.module: 模型組件,FATE當前支持11個模型組件
2.Input:
?data: 數據輸入
?model: 模型輸入
?isometric_model: 異構模型,當前只用于Feature Selection
3.Output
?data: 數據輸出
?model: 模型輸出
通過以上配置,dsl-parser能自動對用戶設定的json文件,解析出完成的算法DAG圖,并將其通過FATEBoard展示出來,使得用戶可以清晰地看到整個算法流程的架構。
DAG圖示意
FederatedML:重大升級所有算法模塊運行機制
FederatedML支持FATEFlow以組件模塊化的方式構建任意模型,支持FATEBoard回調中間統(tǒng)計結果以可視化展示。另外,還增加和升級了多項重要功能:
優(yōu)化算法模塊增加對Nesterov Momentum SGD 優(yōu)化算法的支持,極大提升了聯邦學習算法的收斂速度;
多方安全協議增加對Affine Transform的加法同態(tài)加密算法的支持;
聯邦特征分箱增加對稀疏輸入格式的支持;
升級評估指標以覆蓋大部分分類評估與回歸評估;
重構和升級算法參數類,實現算法參數定義和校驗一體化。
FATEServing:聯邦推理功能升級
在線聯邦推理中,FATE 1.0新增了在線聯邦建模pipeline的DSL解析器,允許用戶生成聯邦推理pipeline并進行聯邦推理。
總之,FATE 1.0版本為聯邦學習建模帶來更豐富更強大的功能,極大提升了聯邦建模體驗。微眾銀行AI團隊歡迎對聯邦學習有興趣的同仁一起貢獻代碼,提交 Issues 或者 Pull Requests。詳情可查閱 FATE項目貢獻指南:https://github.com/WeBankFinTech/FATE/blob/master/CONTRIBUTING.md