1. Fate介紹
FATE (Federated AI Technology Enabler) 是微眾銀行AI部門發起的開源項目,為聯邦學習生態系統提供了可靠的安全計算框架。FATE項目使用多方安全計算 (MPC) 以及同態加密 (HE) 技術構建底層安全計算協議,以此支持不同種類的機器學習的安全計算,包括邏輯回歸、基於樹的算法、深度學習和遷移學習等。
1.1 FederatedML
一個實用的、可擴展的聯邦機器學習庫。
Federatedml包括許多常見機器學習算法的實現以及必要的實用工具。所有模塊均采用去耦模塊化方法開發,以增強可擴展性。具體來說,提供:
- FML算法:用於DataIO,數據預處理,特征工程和建模的聯合機器學習算法。下面列出了更多詳細信息。
- 實用程序:啟用聯合學習的工具,例如加密工具,統計模塊,參數定義以及傳遞變量自動生成器等。
- 框架:用於開發新算法模塊的工具包和基礎模型。框架提供了可重用的功能,以標准化模塊並使它們緊湊。
- 安全協議:提供多種安全協議,以實現更安全的多方交互計算
1.2 FATE Serving
一個可擴展的、高性能的聯邦學習模型服務系統。
FATE-Serving是針對聯合學習模型的高性能工業化服務系統,專為生產環境而設計。
FATE-Serving現在支持
• 高性能的在線聯合學習算法。
• 聯合學習在線推理管道。
• 動態加載聯合學習模型。
• 可以服務於多個模型或同一模型的多個版本。
• 支持A / B測試實驗模型。
• 使用聯合學習模型進行實時推理。
• 支持多級緩存以獲取遠程方聯合推斷結果。
• 支持用於生產部署的預處理,后處理和數據訪問適配器。
原理:
1.3 FATEFlow
FATEFlow是聯邦學習建模Pipeline 調度和生命周期管理工具,為用戶構建端到端的聯邦學習pipeline生產服務。FATEFlow實現了pipeline的狀態管理及運行的協同調度,同時自動追蹤任務中產生的數據、模型、指標、日志等便於建模人員分析。另外,FATEFlow還提供了聯邦機制下的模型一致性管理以及生產發布功能。
FATEFlow調度流程:
1.4 FATEBoard
FATEBoard是聯邦學習建模的可視化工具,為終端用戶可視化和度量模型訓練的全過程,幫助用戶更簡單而高效地進行模型探索和模型理解。
FATEBoard由任務儀表盤、任務可視化、任務管理與日志管理等模塊組成,支持模型訓練過程全流程的跟蹤、統計和監控等,並為模型運行狀態、模型輸出、日志追蹤等提供了豐富的可視化呈現。FATEBoard可大大增強聯邦建模的操作體驗,讓聯邦建模更易於理解與實施,有利於建模人員持續對模型探索與優化。
1.5 Federated Network
聯邦學習多方通信網絡。
架構如下:
• 聯邦學習方之間的跨站點通信
• 模組
○ MetaService:元數據管理者和持有者
○ Proxy:應用程序層傳輸端點
○ Federation :全局對象的抽象和實現,即各方之間要“聯合”的數據
○ Fate-Exchange: 負責通信
1.6 KubeFATE
使用雲本地技術管理聯邦學習工作負載。
當前,KubeFATE支持通過Docker Compose和Kubernetes 進行FATE部署。
2.Fate部署架構說明
3.環境准備
系統工具 | 版本 | 備注 |
---|---|---|
CentOS | 7 | 配置:4核 8G 256G |
Docker | 18.09.4 | |
Docker-compose | 1.23.2 | 參考:CentOS7安裝Docker-compose推薦方案 |
GO | 1.13.4 | 參考:CentOS7安裝Go |
4. 部署
由於是通過Docker-Compose方式,下載官方部署腳本
打開控制台,輸入以下命令:
wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/docker_standalone-fate-1.2.0.
解壓包
tar -xvf docker_standalone-fate-1.2.0.tar.gz
執行部署腳本
cd docker_standalone-fate-1.2.0
bash install_standalone_docker.sh
執行成功后,查看當前啟動容器
docker ps
其中:
fate_fateboard : 監控面板
fate_python: 單機版 Federated Network
5. 單機測試
運行測試腳本
CONTAINER_ID=`docker ps -aqf "name=fate_python"` docker exec -t -i ${CONTAINER_ID} bash bash ./federatedml/test/run_test.sh
測試完成,控制台輸出如下結果:

6.執行測試任務
進入fate_python容器
docker exec -it fate_python bash
進入example目錄
cd /fate/examples/federatedml-1.x-examples
執行快速測試腳本
python quick_run.py
執行完成后控制台輸出如下:

7.查看測試任務執行情況
上面單機部署中,包含的其中一個容器fate_fateboard是監控面板
訪問http://ip:8080
可以看到執行的所有任務的情況
