Zilinghan / APPFL

Argonne Privacy-Preserving Federated Learning framework

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

APPFL: Argonne Privacy-Preserving Federated Learning

image

DOI Documentation Status

APPFL is an open-source software framework that allows research communities to implement, test, and validate various ideas for privacy-preserving federated learning (PPFL). With this framework, developers and/or users can

  • train a user-defined neural network model on decentralized data with differential privacy,
  • simulate various PPFL algorithms on high-performance computing (HPC) architecture with MPI,
  • implement user-defined PPFL algorithms in a plug-and-play manner.

Such algorithmic components include federated learning (FL) algorithm, privacy technique, communication protocol, FL model to train, and data.

  • Documentation: please check out the documentation for tutorials, users guide, and developers guide.

Installation

We highly recommend to create new Conda virtual environment and install the required packages for APPFL.

conda create -n APPFL python=3.8
conda activate APPFL

User installation

For most users such as data scientists, this simple installation must be sufficient for running the package.

pip install pip --upgrade
pip install "appfl[analytics,examples]"

If we want to even minimize the installation of package dependencies, we can skip the installation of a few pacakges (e.g., matplotlib and jupyter):

pip install "appfl"

Developer installation

Code developers and contributors may want to work on the local repositofy. To set up the development environment,

git clone https://github.com/APPFL/APPFL.git
cd APPFL
pip install -e ".[dev,examples,analytics]"

On Ubuntu: If the install process failed, you can try:

sudo apt install libopenmpi-dev,libopenmpi-bin,libopenmpi-doc

Acknowledgements

This material is based upon work supported by the U.S. Department of Energy, Office of Science, under contract number DE-AC02-06CH11357.

About

Argonne Privacy-Preserving Federated Learning framework

License:MIT License


Languages

Language:Python 100.0%