XFL is a high-performance, high-flexibility, high-applicability, lightweight, open and easy-to-use Federated Learning framework. It supports a variety of federation models in both horizontal and vertical federation scenarios. To enable users to jointly train model legally and compliantly to unearth the value of their data, XFL adopts homomorphic encryption, differential privacy, secure multi-party computation and other security technologies to protect users' local data from leakage, and applies secure communication protocols to ensure communication security.
Highlights
-
High-performance algorithm library
- Comprehensive algorithms: support a variety of mainstream horizontal/vertical federation algorithms.
- Excellent performance: significantly exceeds the average performace of federated learning products.
- Network optimization: adapt to high latency, frequent packet loss, and unstable network environments.
-
Flexible deployment
- parties: support two-party/multi-party federated learning.
- schedulering: any participant can act as a task scheduler.
- hardware: support CPU/GPU/hybrid deployment.
-
Lightweight, open and easy to use:
- Lightweight: low requirements on host performance.
- Open: support mainstream machine learning frameworks such as Pytorch and Tensorflow, and user can conveniently design their own horizontal federation models.
- Easy to use: able to run in both docker environment and Conda environment.
Quick Start Demo
Running in standalone mode
# create and activate the virtual environment
conda create -n xfl python=3.9.7
conda activate xfl
# install dependencies
pip install -r requirements.txt
# enter the project directory
cd ./demo/vertical/logistic_regression/2party
# start running the demo
sh run.sh