p2p Federated Learning framework
Project description
P2PFL - Federated Learning over P2P networks
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.
✅ Features
- Easy to use and extend
- Fault tolerant
- Decentralized and Scalable
- Simulated (to-do, changed in 0.2.0) and real environments
- Privacy-preserving
- Framework agnostic
📥 Installation
Note We recommend using Python 3.9 or lower. We have found some compatibility issues with Python 3.10 and PyTorch.
👨🏼💻 For users
To install the library, you can simply run:
pip install p2pfl
Or you can install it from source:
git clone https://github.com/pguijas/p2pfl.git
cd p2pfl
pip install -e .
👨🏼🔧 For developers
To install the library for development we recommend using a virtual environment. For example, with pipenv
:
pipenv install --requirements requirements.txt
📚 Documentation
🚀 TO DO
Note Don't be shy, share your ideas with us!
- Agnostic installation with variants for different frameworks (include TensorFlow)
- Add secure channels and node authentication
- Improved simulation environment
- Control panel
- add FEMNIST example
- add typing
- New aggregation methods
- Hot node inclusion
- Secure aggregation
- Non trainable nodes (gossip nodes) to increase the efficiency of the network
👫 Contributing
Contributions are always welcome!
See CONTRIBUTING.md
for ways to get started.
Please adhere to this project's code of conduct specified in CODE_OF_CONDUCT.md
.
💬 Google Group
If you have any questions, or you to be notified of any updates, you can join the Google Group here.
📜 License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.