P2P Federated Learning (p2pfl) is a decentralized federated learning library, it allows creating basic federated learning systems on p2p networks using gossip protocols.
P2PFL is a general-purpose open-source library for the execution (simulated and in real environments) of Decentralized Federated Learning systems, specifically making use of P2P networks and the Gossisp protocol.
Note We recommend using Python 3.9 or lower. We have found some compatibility issues with Python 3.10 and PyTorch.
To install the library, you can simply run:
pip install p2pfl
Or you can install it from source. This installation method is recommended for developers (detailed in the next section).
To install the library for development we recommend using a virtual environment. We use Poetry for this purpose.
git clone https://github.com/pguijas/p2pfl.git
cd p2pfl
poetry install
You can also use the library with Docker. We provide a Docker image with the library installed. You can use it as follows:
docker ... # TODO
Note Don't be shy, share your ideas with us!
Contributions are always welcome!
See CONTRIBUTING.md
(CONTRIBUTING) for ways to get started.
Please adhere to this project's code of conduct specified in CODE_OF_CONDUCT.md
(CODE_OF_CONDUCT).
If you have any questions, or you to be notified of any updates, you can join the Google Group here.