联邦学习框架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
可以看到执行的所有任务的情况

 

 

 

 
 
 

 

posted on 2020-11-20 15:06  ccbupt  阅读(610)  评论(0编辑  收藏  举报

导航