使用FATE进行图片识别的深度神经网络联邦学习

本文详述了使用FATE框架进行图片识别的联邦深度学习过程,涵盖FATE的介绍、KubeFATE的部署、数据集准备、FATE Pipeline的构建以及模型的训练与预测。通过实例展示了在MNIST数据集上如何实现DNN的联邦学习。
摘要由CSDN通过智能技术生成

*本文作者系VMware云原生实验室工程师 彭路

FATE(Federated AI Technology Enabler)是联邦机器学习技术的一个框架,其旨在提供安全的计算框架来支持联邦 AI 生态。FATE 实现了基于同态加密和多方计算(MPC)的安全计算协议,它支持联邦学习架构和各种机器学习算法的安全计算,包括逻辑回归、基于树的算法、深度学习和转移学习。

联邦机器学习又名联邦学习、联合学习与联盟学习,它能有效帮助多个机构在满足用户隐私保护、数据安全和相关法规的要求下,进行数据使用和机器学习建模,消除由于行业竞争、隐私安全与行政手续等问题带来的数据孤岛,让以数据为基础的机器学习顺利进行。

KubeFATE支持通过Docker Compose和Kubernetes进行FATE部署。我们建议使用Docker Compose安装快速开发和学习FATE集群,同时使用Kubernetes安装生产环境。

深度神经网络(DNN)是在输入和输出层之间具有多层的人工神经网络(ANN)。

本文以经典的神经网络MNIST为例子,展示联邦学习版的深度神经网络训练过程。我们使用KubeFATE快速进行FATE框架的部署。因为模拟联邦学习的双方,我们需要准备两台Ubuntu的机器(物理机或虚拟机)。

一.安装docker和docker-compose
Ubuntu 安装docker:

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

安装docker-compose:

$ sudo curl -L 
https://github.com/docker/compose/releases/download/1.23.2/docker-compo
se-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

二.安装KubeFATE
学习环境推荐使用Docker方式部署。使用Docker方式部署分为两步,先根据parties.conf配置文件生成docker-compose文件。通过scp把docker-compose文件复制到目标机器上,然后通过ssh命令登录到目标机器并运“docker-compose up”。

选择两台机器其中之一作为部署机。

1.在KubeFATE的release页面下载软件包kubefate-docker-compose.tar.gz并解压:

$ wget 
https://github.com/FederatedAI/KubeFATE/releases/download/v1.3.0-a/kubefate-docker-compose.tar.gz

$ tar xzf kubefate-docker-compose.tar.gz

2.进入docker-deploy/ 目录,修改parties.conf文件:

$ cd docker-deploy
$ vi parties.conf
parties.conf:

user=root
dir=/data/projects/fate
partylist=(10000 9999)
partyiplist=(10.160.175.20 10.160.162.5)
servingiplist=(10.160.175.20 10.160.162.5)
exchangeip=

说明:
user:两台目标机器的用户id,建议用户root或权限合适的用户。
dir:目标机器上存放docker-compose文件的目录。
partylist:FATE集群的party列表。这里是两方,用数字表示。
partyiplist:FATE训练集群的IP地址,与partylist对应,例如上例id为10000的训练集群ip地址是10.160.175.20。注意这里要替换成你准备的两台机器对应的IP。
servingiplist:FATE在线推理集群的IP地址,与partylist对应,可以和训练集群在一台机器上,也可以单独是一台机器。本文里训练集群和在线推理集群使用同一台机器。
exchangeip:多于两方部署的时候推荐使用exchange模式。Exchange是一个集中交换数据的节点,记录了所有party的IP地址,每个party只需要知道exchange节点的IP地址就可交换数据。本文是两方直连,所有不填写exchange。

3.生成部署FATE的docker-compose文件

$ bash generate_config.sh

命令会在outputs文件夹下面生成对应的压缩包:confs-.tar和serving-.tar。

4.部署FATE

$ bash docker_deploy.sh all

因为用到了scp和ssh命令,所以运行这条命令的时候需要输入密码。为了方便可以在部署机和目标机之间做免密码处理。

两台机器在互联网可用环境下,Docker会自动下载FATE需要的镜像。如果是没有互联网的环境,参考Github上使用离线镜像文章使用离线镜像文章。
(https://github

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值