圖1 FATEBoard功能架構(gòu)總覽

圖2 FATEBoard界面示意圖

FATEFlow:高性能聯(lián)邦學(xué)習(xí)pipeline生產(chǎn)服務(wù)

FATEFlow是聯(lián)邦學(xué)習(xí)建模Pipeline 調(diào)度和生命周期管理工具,為用戶構(gòu)建端到端的聯(lián)邦學(xué)習(xí)pipeline生產(chǎn)服務(wù)。FATEFlow實(shí)現(xiàn)了pipeline的狀態(tài)管理及運(yùn)行的協(xié)同調(diào)度,同時(shí)自動(dòng)追蹤任務(wù)中產(chǎn)生的數(shù)據(jù)、模型、指標(biāo)、日志等便于建模人員分析。另外,F(xiàn)ATEFlow還提供了聯(lián)邦機(jī)制下的模型一致性管理以及生產(chǎn)發(fā)布功能。

在FATE 0.3版本以前,啟動(dòng)任務(wù)的模塊是由Workflow完成。在Workflow中,各算法組件的順序被完全固定,用戶只能選擇是否開啟某個(gè)模塊,無法按照需求調(diào)整組件順序,甚至多次調(diào)用同一個(gè)組件。每多開發(fā)一個(gè)組件,都要修改整體的Workflow,以適應(yīng)新組件的添加。這種設(shè)計(jì),使開發(fā)者在添加新組件時(shí),修改部分過多,限制了整體系統(tǒng)的可擴(kuò)展性。

而FATE 1.0新推出的FATEFlow良好解決了workflow中由于需要提前規(guī)定算法組建順序而造成的流程排版復(fù)雜問題,在調(diào)用模塊時(shí)不再存在大一統(tǒng)組件,每一次建模任務(wù)都能自定義算法流程。在FATE v1.0版本中,開發(fā)者自定義流程只要一個(gè)普通的json文件就可以實(shí)現(xiàn),這使得開發(fā)者在添加新組件時(shí),不用修改過多部分,極大程度地提升了整體系統(tǒng)的可擴(kuò)展性。

FATEFlow提供了極為豐富的功能,主要包括:

DAG定義聯(lián)邦學(xué)習(xí)Pipeline

多方非對稱Pipeline DAG、通用json格式DAG DSL、DSL-Parser

聯(lián)邦任務(wù)協(xié)同調(diào)度

多方任務(wù)隊(duì)列管理、協(xié)同分發(fā)任務(wù)、任務(wù)一致性保證、多方狀態(tài)同步等

聯(lián)邦任務(wù)生命周期管理

多方啟停、狀態(tài)檢測等

聯(lián)邦模型管理

聯(lián)邦模型存取、聯(lián)邦模型一致性、版本管理、發(fā)布管理等

聯(lián)邦任務(wù)輸入輸出實(shí)時(shí)追蹤

數(shù)據(jù)、模型、自定義指標(biāo)、日志等實(shí)時(shí)記錄存儲

此外,F(xiàn)ateFlow還提供了多種接口,方便用戶完整把握整個(gè)建模任務(wù)。包括:

上傳和下載數(shù)據(jù)功能,使得用戶可以方便地切換數(shù)據(jù)源;

狀態(tài)查詢功能,獲得每個(gè)組件的實(shí)時(shí)狀態(tài);

下載功能,獲取每個(gè)組件的配置文件和中間結(jié)果,最大程度方便用戶調(diào)試。

在FATE 1.0版本中,用戶自定義流程得以進(jìn)一步簡化,過程非常簡單,只需通過一個(gè)普通的json文件即可將算法全流程實(shí)現(xiàn)。

QQ截圖20190821092142.png

而配置運(yùn)行DSL,也只需要三步:

1.module: 模型組件,F(xiàn)ATE當(dāng)前支持11個(gè)模型組件

2.Input:

?data: 數(shù)據(jù)輸入

?model: 模型輸入

?isometric_model: 異構(gòu)模型,當(dāng)前只用于Feature Selection

3.Output

?data: 數(shù)據(jù)輸出

?model: 模型輸出

通過以上配置,dsl-parser能自動(dòng)對用戶設(shè)定的json文件,解析出完成的算法DAG圖,并將其通過FATEBoard展示出來,使得用戶可以清晰地看到整個(gè)算法流程的架構(gòu)。

DAG圖示意

FederatedML:重大升級所有算法模塊運(yùn)行機(jī)制

FederatedML支持FATEFlow以組件模塊化的方式構(gòu)建任意模型,支持FATEBoard回調(diào)中間統(tǒng)計(jì)結(jié)果以可視化展示。另外,還增加和升級了多項(xiàng)重要功能:

優(yōu)化算法模塊增加對Nesterov Momentum SGD 優(yōu)化算法的支持,極大提升了聯(lián)邦學(xué)習(xí)算法的收斂速度;

多方安全協(xié)議增加對Affine Transform的加法同態(tài)加密算法的支持;

聯(lián)邦特征分箱增加對稀疏輸入格式的支持;

升級評估指標(biāo)以覆蓋大部分分類評估與回歸評估;

重構(gòu)和升級算法參數(shù)類,實(shí)現(xiàn)算法參數(shù)定義和校驗(yàn)一體化。

FATEServing:聯(lián)邦推理功能升級

在線聯(lián)邦推理中,F(xiàn)ATE 1.0新增了在線聯(lián)邦建模pipeline的DSL解析器,允許用戶生成聯(lián)邦推理pipeline并進(jìn)行聯(lián)邦推理。

總之,F(xiàn)ATE 1.0版本為聯(lián)邦學(xué)習(xí)建模帶來更豐富更強(qiáng)大的功能,極大提升了聯(lián)邦建模體驗(yàn)。微眾銀行AI團(tuán)隊(duì)歡迎對聯(lián)邦學(xué)習(xí)有興趣的同仁一起貢獻(xiàn)代碼,提交 Issues 或者 Pull Requests。詳情可查閱 FATE項(xiàng)目貢獻(xiàn)指南:https://github.com/WeBankFinTech/FATE/blob/master/CONTRIBUTING.md

分享到

Fred

baiyan

相關(guān)推薦