Giter VIP home page Giter VIP logo

kubefate's Introduction

Note: The master branch undergoes frequent changes and can be unstable or even broken during development. To obtain a stable version, we recommend using the releases instead of the master branch.

License

Overview

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 facilitates the deployment of FATE using both Docker Compose and Kubernetes. For a development environment of FATE, we recommend utilizing Docker Compose, while for a production environment, Kubernetes is the preferred option.

Getting Involved

  • To find answers to frequently asked questions, please refer to the FAQ section.
  • Please report bugs by submitting issues.
  • Submit contributions using pull requests.

Project Structure

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

docker-deploy: The primary objective is to swiftly establish a federated learning environment. Docker Compose allows for the deployment of FATE components on a single host. Leveraging Docker Compose, FATE can be configured for multi-party environments, facilitating collaborative federated setups. For further information, kindly refer to the Docker Compose Deployment documentation.

k8s-deploy: The deployment approach is specifically tailored for production environments, providing a robust and scalable solution. Its design offers exceptional flexibility, enabling seamless operation of FATE clusters across various environments with ease and efficiency.

Major features of KubeFATE k8s-deploy

  • Deliver an executable binary that simplifies the initialization and management of FATE clusters.
  • Provide the full life cycle management of FATE clusters, including deploying a new FATE cluster, querying an existing FATE cluster, destroying a given FATE cluster, etc.
  • Support customized deployment.
  • Efficiently manage multiple instances of FATE deployments simultaneously.
  • Offer a cluster management service with RESTful APIs.

For more details, please refer to Kubernetes Deployment.

Building KubeFATE

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

Specifying an image repository (registry)

By default, the installation script pulls the images from Docker Hub during the deployment process.

  • For docker compose mode, modify the .env file to specify the image registry.
  • For K8s mode, check out this offical document.

License

Apache License 2.0

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.