BYTECODES

FATE联邦学习架构初识

一、 背景

FATE (Federated AI Technology Enabler) 是全球首个联邦学习工业级开源框架,可以让企业和机构在保护数据安全和数据隐私的前提下进行数据协作。 FATE项目使用多方安全计算 (MPC) 以及同态加密 (HE) 技术构建底层安全计算协议,以此支持不同种类的机器学习的安全计算,包括逻辑回归、基于树的算法、深度学习和迁移学习等。

二、 架构概述

系统分三层, 底层框架分计算管理、存储管理及联邦管理;中间层是联邦学习算法、HFL、VFL,负责机器学习、深度学习等;上层是应用层,负责任务管理,数据可视化等功能,下面两个图是从不同角度展示三层架构。

fate-overview-1


fate-arch-2

三、 功能概述

  1. 底层

    a) 存储管理

    b) 分布式计算

    c) 消息通讯

  2. 中间层

    Federatedml模块包括许多常见机器学习算法联邦化实现。所有模块均采用去耦的模块化方法开发,以增强模块的可扩展性。

    a) 联邦统计: 包括隐私交集计算,并集计算,皮尔逊系数, PSI等

    b) 联邦信息检索:基于OT的PIR(SIR)

    c) 联邦特征工程:包括联邦采样,联邦特征分箱,联邦特征选择等。

    d) 联邦机器学习算法:包括横向和纵向的联邦LR, GBDT, DNN,迁移学习, 无监督学习,纵向半监督学习等

    e) 模型评估:提供对二分类,多分类,回归评估,聚类评估,联邦和单边对比评估

    f) 安全协议:提供了多种安全协议,以进行更安全的多方交互计算。

  3. 上层

    a) FATE board: 可视化、任务查看,日志查看等功能。默认登陆用户名是admin密码是admin,登录默认端口是8080。数据来自FATE Flow

    b) FATE Flow:是一个联邦学习端到端全流程的多方联合任务调度平台

    c) Fate-Serving:是FATE的在线部分,在使用FATE进行联邦建模完成之后,可以使用fate-serving进行包括单笔预测、多笔预测以及多host预测在内的在线联合预测。

    d) FATE Cloud:是首个工业级的联邦学习云服务

四、 部署方式

  1. 本地测试可以使用docker部署,需要下载指定1.11.4版本

    a) wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/fate/${version}/release/standalone_fate_docker_image_${version}release.tar.gzb) docker load -i standalone_fate_docker_image${version}_release.tar.gz

    c) docker run -it --name standalone_fate -d -p 8080:8080 federatedai/standalone_fate:${version};

    d) 运行demo: examples目录下有很多测试程序可以使用。

  2. 其他

注意点

如果你使用docker安装后,使用flow init命令,然后试图连接服务器遇到类似一下错误,你需要到容器里修改配置文件里面的fateflow监听地址。

 {"retcode": 100,
    "retmsg": "('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))"}

即编辑conf/service_conf.yaml把host:127.0.0.1这一行里面的ip修改成容器的ip地址,然后重启服务

sh /data/projects/fate/fateflow/bin/service.sh  restart

最后,还需要修改 fateboard/conf/application.properties里面的fateflow连接,否则fate board连不上fate flow