隐私计算--29--联邦学习平台FATE实践

一、FATE平台介绍

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

FATE包括以下主要功能:

● 提供了一种基于数据隐私保护的分布式安全计算框架;
● 为机器学习、深度学习、迁移学习等常用算法提供了高性能的安全计算支持;
● 支持包括同态加密、秘密共亨、Diffie Hellman等多种多方安全计算协议,确保数据和模型的安全;
● 提供了一套友好的跨域交互信息管理方案和详细的开发文档,极大方便了开发人员的使用。

其他详细介绍请阅读官方文档,本篇文章主要介绍该平台的部署搭建以及简单测试,部署以CentOS-7操作系统为承载平台,使用Docker部署。

开源地址:https://github.com/FederatedAI/FATE

二、部署实践

安装docker和docker-compose这里不做说明,详细步骤请移步该篇博客:https://security.blog.csdn.net/article/details/123852276

之后运行以下命令即可,这里最新版本是1.7.2,所以我们以该版本为准:

# 下载
wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/fate/1.7.2/release/standalone_fate_docker_image_1.7.2_release.tar

# 加载
docker load < standalone_fate_docker_image_1.7.2_release.tar

# 查看
docker images | grep federatedai/standalone_fate

# 启动
docker run -d --name standalone_fate -p 8080:8080 federatedai/standalone_fate:1.7.2

# 验证
docker ps -a | grep standalone_fate

之后访问地址:http://ip:8080/

登录口令:admin/admin

登录后效果如下,可以看到平台是成功运行的。

(此时看到内容是空白的,这是因为还没有进行数据学习的原因)
隐私计算--29--联邦学习平台FATE实践_第1张图片

三、编程范式

用FATE构建联邦学习模型有以下两种不同的编程范式:

● 组件化配置:即用户将模型训练拆分为不同的任务,每一个任务以组件的形式通过有向无环图(DAG)图相连,联邦模型训练所需要的有关参数都在配置文件中定义。在该模式下,用户只需要自定义和提交配置文件,就可以直接执行联邦训练。

● 脚本编程:FATE提供API接口,用户通过脚本编程的方式实现联邦模型,这与直接使用Python编程相似。

使用组件化配置构建联邦学习模型,需要提供两个配置文件:

● dsl配置文件:FATE内置的一套自定义领域特定语言。在dsl中,常见的机器学习任务会被划分为不同的模块。

● conf配置文件:在dsl配置文件中,不同的组件模块有不同的参数配置,这些参数统一放在conf文件中设置。

我们可以进入到正在运行的docker镜像中,执行一个预定脚本进行测试:

# 进入正在运行的Docker镜像中
docker exec -it xxxxxxxxxxxx /bin/bash

# 执行预置脚本
cd fate/fateflow/python/fate_flow
python fate_flow_client.py -f submit_job -d /data/projects/fate/examples/dsl/v2/data_split/test_homo_data_split_job_dsl.json -c /data/projects/fate/examples/dsl/v2/data_split/test_homo_data_split_job_conf.json

执行后返回结果如下:
隐私计算--29--联邦学习平台FATE实践_第2张图片
此时访问返回的board_url地址,就看到了页面上已经有数据了。这里报错是因为没有上传需要学习的原始数据,仅仅只是运行了一个学习脚本,没有原始学习数据自然就报错了。如果要完整的验证平台效果,可以自己造一些数据上传上去,具体操作可以研究FATE开源项目,这里就不做介绍了。

隐私计算--29--联邦学习平台FATE实践_第3张图片

你可能感兴趣的:(数据安全与隐私计算,联邦学习,横向联邦学习,纵向联邦学习)