Manage federated learning workload using cloud native technologies.
masterbranch is constantly in an unstable or even broken state during development. Please use releases instead of the
masterbranch in order to get a stable version.
Federated learning involves multiple parties to collaboratively train a machine learning model, therefore it is usually based on a distributed system. KubeteFATE operationalizes federated learning workloads using cloud native technologies such as containers and Kubernetes. KubeFATE enables federated learning tasks to run across public, private and hybrid cloud environments.
FATE (Federated AI Technology Enabler) is an open-source project to provide a secure computing framework to support the federated AI ecosystem. It implements secure computation protocols based on homomorphic encryption and secure multi-party computation (MPC). It supports federated learning architectures and secure computation of various machine learning algorithms, including logistic regression, tree-based algorithms, deep learning and transfer learning.
KubeFATE supports the deployment of FATE via Docker Compose and Kubernetes. We recommend installing a development environment of FATE via Docker Compose, and a production environment via Kubernetes.
KubeFATE |-- docker-deploy |-- k8s-deploy
docker-deploy: The principle is to quickly set up an federated learning environment . Docker Compose can deploy FATE components on a single host. By using Docker Compose, FATE can be set up for environments of multiple parties which are collaborating in a federated manner. Please refer to Docker Compose Deployment for more details.
k8s-deploy: The deployment approach is designed for a production environment. It is designed with flexibility to operate FATE clusters in different environments.
For more details, please refer to Kubernetes Deployment.
To build the binary of KubeFATE (both CLI and KubeFATE service), a Golang development environment is needed.
$ git clone https://github.com/FederatedAI/KubeFATE.git $ cd KubeFATE/k8s-deploy/ $ make kubefate-without-swag
To build the container image of KubeFATE service, a Docker environment is needed.
$ make docker-build
By default, the installation script pulls the images from Docker Hub during the deployment. A user could also modify the file
.envto specify a local registry (such as Harbor) to pull images from. A local registry can improve the efficiency of the deployment.