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.
-
Join our maillist Fate-FedAI Group IO. You can ask questions and participate in the development discussion.
-
For any frequently asked questions, you can check in FAQ.
-
Please report bugs by submitting issues.
-
Submit contributions using pull requests
FATE already supports a number of federated learning algorithms, including vertical federated learning, horizontal federated learning, and federated transfer learning. More details are available in federatedml.
FATE can be installed on Linux or Mac. Now, FATE can support:
-
Native installation: standalone and cluster deployments;
-
KubeFATE installation:
-
Multipal parties deployment by docker-compose, which for devolopment and test purpose;
-
Cluster (multi-node) deployment by Kubernetes
-
Software environment :jdk1.8+、Python3.6、python virtualenv、mysql5.6+、redis-5.0.2
FATE provides Standalone runtime architecture for developers. It can help developers quickly test FATE. Standalone support two types of deployment: Docker version and Manual version. Please refer to Standalone deployment guide: standalone-deploy
FATE also provides a distributed runtime architecture for Big Data scenario. Migration from standalone to cluster requires configuration change only. No algorithm change is needed.
To deploy FATE on a cluster, please refer to cluster deployment guide: cluster-deploy.
git clone --recursive [email protected]:FederatedAI/FATE.git
Using KubeFATE, FATE can be deployed by either docker-compose or Kubernetes:
-
For development or testing purposes, docker-compose is recommended. It only requires Docker enviroment. For more detail, please refer to Deployment by Docker Compose.
-
For a production or a large scale deployment, Kubernetes is recommended as an underlying infrastructure to manage FATE system. For more detail, please refer to Deployment on Kubernetes.
More instructions can be found in KubeFATE.
A script to run all the unittests has been provided in ./federatedml/test folder.
Once FATE is installed, tests can be run using:
sh ./federatedml/test/run_test.sh
All the unittests shall pass if FATE is installed properly.
We have provided a python script for quick starting modeling task. This scrip is located at "examples/federatedml-1.x-examples"
- Start standalone version hetero-lr task (default)
python quick_run.py
- Host party:
python quick_run.py -r host
This is just uploading data
- Guest party:
python quick_run.py -r guest
The config files that generated is stored in a new created folder named user_config
Once you finish one training task, you can start a predict task. You need to modify "TASK" variable in quick_run.py script as "predict":
# Define what type of task it is
# TASK = 'train'
TASK = 'predict'
Then all you need to do is running the following command:
python quick_run.py
Please note this works only if you have finished the trainning task.
We provided functions such as tracking component output models or logs etc. through a tool called fate-flow. The deployment and usage of fate-flow can be found here
FATE provides some API documents in doc-api, including federatedml, eggroll, federation.
How to develop your federated learning algorithm using FATE? you can see FATE develop guide document in develop-guide
FATE also provides many other documents in doc. These documents can help you understand FATE better.