Giter VIP home page Giter VIP logo

kubefate's Introduction

License

Overview

Federated learning involves multiple parties to collaborately train a machine learning model, therefore it is usually based on a distributed system. KubeteFATE manages federated learning workloads using cloud native technologies such as containers. KubeFATE enables federated learning jobs to run across public, private and hybrid cloud environments.

FATE (Federated AI Technology Enabler) is an open-source project initiated by Webank's AI Department to provide a secure computing framework to support the federated AI ecosystem. It implements secure computation protocols based on homomorphic encryption and 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 quick development and playground FATE cluster with Docker Compose, while a production environment with Kubernetes.

Getting Involved

  • For any frequently asked questions, you can check in FAQ.
  • Please report bugs by submitting issues.
  • Submit contributions using pull requests

Project Structure

KubeFATE
|-- docker-deploy   
|-- k8s-deploy   

docker-deploy: The pricipal of docker-deploy is simple and quickly to set the environment up. 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 k8s deployment is design for a real production deployed and managed environment. It designed for flexibility to suit different various environments.

Major features of new KubeFATE k8s-deploy

  • Provide a single executable binary for initialing and managing FATE cluster
  • Full cycle FATE cluster management, includes deploying a new FATE cluster, querying existed FATE cluster, destroying a given FATE cluster and etc.
  • Support customized deployment
  • Support one KubeFATE to manage multiple FATE deployments
  • Provide cluster management service with RESTful APIs

For more details, please refer to Kubernetes Deployment.

Build KubeFATE

To use docker-deploy for docker compose deployment, you need to make sure [Docker Compose] installed

Refer to: Docker Compose Deployment for more details

To build KubeFATE binary, you need a [Go environment]
git clone https://github.com/FederatedAI/KubeFATE.git
cd KubeFATE
make build-linux-binary
To build KubeFATE service image, you need a [Docker environment]
git clone https://github.com/FederatedAI/KubeFATE.git
cd KubeFATE
make build-docker-image

Note on the usage of ".env"

By default, the installation script pulls the images from Docker Hub during the deployment. A user could also modify .env to specify a local registry (such as Harbor) to pull images from.

License

Apache License 2.0

kubefate's People

Contributors

dockerzhang avatar dylan-fan avatar hainingzhang avatar haozheng95 avatar jiahaoc1993 avatar laynepeng avatar owlet42 avatar pengluhyd avatar tanmc123 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.