Bootstrap

KubeFATE: 用云原生技术赋能联邦学习(二)

本文作者系 VMware 云原生实验室工程师陈家豪,FATE / KubeFATE 开源联邦学习项目的贡献者。

概述

在前面的文章中,我们介绍过如何使用KubeFATE来部署一个单节点的FATE联邦学习集群。在真实的应用场景中,联邦学习往往需要多个参与方联合起来一起完成任务。基于此,本文将讲述如何通过 KubeFATE 和 Docker-Compose 来部署两个参与方的FATE集群,并在集群上运行一些简单的测试以验证其功能的完整性。

FATE集群的组网方式

联邦学习的训练任务需要多方参与,如图1所示,每一个 party node 都是一方,并且每个 party node 都有各自的一套FATE集群。而 party node 和 party node 之间的发现方式有两种。分别是点对点和星型。默认情况下,使用 KubeFATE 部署的多方集群会通过点对点的方式组网,但KubeFATE 也可以单独部署 Exchange 服务以支持星型组网。

FATE集群组网方式

部署两方训练的集群

使用 KubeFATE 和 Docker-Compose  部署两方训练的集群

KubeFATE的使用分成两部分,第一部分是生成FATE集群的启动文件(docker-compose.yaml),第二个部分是通过 docker-compose 的方式去启动FATE集群。从逻辑上可将进行这两部分工作的机器分别称为部署机和目标机器。

部署机目标机关系图

目标

两个可以互通的FATE实例,每个实例均包括FATE所有组件,实例分别部署在不同的两台机器上。

准备工作

Docker的安装以及FATE镜像的下载请参考前文,接下来我们将把两台主机划分为workspace1和workspace2。其中workspace1既作为部署机也作为目标机,而workspace2则作为目标机,每个机器运行一个FATE实例。这里两台主机的IP分别为192.168.7.1和192.168.7.2。用户需要根据实际情况做出修改。具体部署架构如图所示。

部署架构图

以下操作需在workspace1上并以root用户进行。

下载并解压Kubefate1.3的kubefate-docker-compose.tar.gz资源包

# curl -OL
https://github.com/FederatedAI/KubeFATE/releases/download/v1.3.0/kubefate-docker-compose.tar.gz

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

定义需要部署的实例数目

根据以上定义party 10000的集群将部署在workspace1上,而party 9999的集群将部署在workspace2上。

 进入docker-deploy目录
# cd docker-deploy/

编辑parties.conf如下
# vi parties.conf 

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

更多请参考:

(全文完)

相关文章:

如果你对联邦学习感兴趣,可申请加入“KubeFATE开源社区群”交流,入群需要真实身份,并改昵称:姓名@单位。请先关注“亨利笔记”公众号,在公众号后台发送"FATE"信息即可。