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.
-
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、TensorFlow、PaddlePaddle and Jax, and user can conveniently design their own horizontal federation models.
- Easy to use: able to run in both docker environment and Conda environment.
-
Support for large language models
Running in standalone mode
# create and activate the virtual environment conda create -n xfl python=3.9.7 conda activate xfl # install redis and other dependencies # Ubuntu apt install redis-server # CentOS yum install epel-release yum install redis # MacOS brew install redis brew install coreutils # install python dependencies # update pip pip install -U pip # install dependencies pip install -r requirements.txt # set permission sudo chmod 755 /opt # enter the project directory cd ./demo/vertical/logistic_regression/2party # start running the demo sh run.sh