聯邦學習框架FATE單機部署


1. Fate介紹

FATE (Federated AI Technology Enabler) 是微眾銀行AI部門發起的開源項目,為聯邦學習生態系統提供了可靠的安全計算框架。FATE項目使用多方安全計算 (MPC) 以及同態加密 (HE) 技術構建底層安全計算協議,以此支持不同種類的機器學習的安全計算,包括邏輯回歸、基於樹的算法、深度學習和遷移學習等。

Fate主要包含:

1.1 FederatedML

一個實用的、可擴展的聯邦機器學習庫。

Federatedml包括許多常見機器學習算法的實現以及必要的實用工具。所有模塊均采用去耦模塊化方法開發,以增強可擴展性。具體來說,提供:

  1. FML算法:用於DataIO,數據預處理,特征工程和建模的聯合機器學習算法。下面列出了更多詳細信息。
  2. 實用程序:啟用聯合學習的工具,例如加密工具,統計模塊,參數定義以及傳遞變量自動生成器等。
  3. 框架:用於開發新算法模塊的工具包和基礎模型。框架提供了可重用的功能,以標准化模塊並使它們緊湊。
  4. 安全協議:提供多種安全協議,以實現更安全的多方交互計算

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
可以看到執行的所有任務的情況

 

 

 

 
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM