联邦学习FATE框架入门

在这里插入图片描述

文章开始先附上github的仓库FATE

FATE的克隆和安装

首先我们从github上克隆FATE仓库。

git clone https://github.com/FederatedAI/FATE.git

最近新学会的一个方法,大大提升克隆的速度,亲测有效。

git clone https://github.com.cnpmjs.org/FederatedAI/FATE.git

安装过程请参考仓库中的Readme文档,本人是在Linux16.04上按照Native中的单机部署,通过docker-compose进行部署的,推荐大家也按照这种方式。OS推荐linux16.04,或者CentOS7,具体步骤其他博客里面有,可移步参考,特别要注意的是各个软件的版本最好按照教程里面的进行安装,我之前没注意版本问题,导致一直有各种各样的小问题。
安装完成重新开机之后,遇到一个问题,模型可以训练,但是fate board连接不上,看不到训练情况,找了很久原因原来是镜像没有关机后重启,手动重启之后即可,怪自己没用过Docker、、、

docker ps -a           #查看所有的docker镜像
docker restart XXXX             #重启对应的镜像

FATE集群架构


上图就是FATE的整体架构,首先我们要明白联邦学习需要多个参与方client的参与,和分布式有这很多的相似之处,对应图片里面的egg manager、storage service、processor,象征着不同的机器、终端,承担模型训练的计算和存储功能。
FATE Flow承担作业调度的角色,有点类似于CPU,控制着整个系统的运转。
Roll和Egg用来计算和存储。
Mete service用来定位不同数据在不同机器的位置。
Federation在不同功能单元之间传输信息,Proxy提供路由功能。
Mysql用来存放系统的数据和工作日志等。
Redis用来存放工作队列job queue,供FATE Flow读取。
FATE Serving和Serving Proxy一起提供在线推理。
总体看来,FATE的架构还是清晰易于理解的。

现有的算法组件

在这里插入图片描述
以上为FATE现在以及实现的功能组件。
第一行指的是支持的数据输入的格式,有稠密格式和稀疏格式,稀疏格式又可分为数值和标签。对数据格式不清楚的可以看这里
第二行指的是纵向联邦统计,包括交集(样本对齐)、并集和皮尔逊相关系数。
特征工程包括采样、分箱、选择、规范化、one-hot编码。
接下里两行是目前实现的模型组件,包括回归、神经网路、迁移学习、树模型等。
下面一行表示评价指标,其中Local Comparison表示联邦学习和本地学习之间的比较。
最后是多方安全计算(MPC),列出了FATE用的几种加密手段。

本篇心得就从宏观上简单介绍了FATE的框架,下篇打算介绍一个克隆下来的FATE仓库。

Logo

更多推荐