P2pfl Save

P2P Federated Learning (p2pfl) is a decentralized federated learning library, it allows creating basic federated learning systems on p2p networks using gossip protocols.

Project README

GitHub Logo

P2PFL - Federated Learning over P2P networks

GitHub license GitHub issues GitHub contributors GitHub forks GitHub stars GitHub activity

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. This installation method is recommended for developers (detailed in the next section).

👨🏼‍🔧 For developers

🐍 Python

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

🐳 Docker

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

📚 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
  • gossip learning option

👫 Contributing

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).

💬 Google Group

If you have any questions, or you to be notified of any updates, you can join the Google Group here.

📜 License

GNU General Public License, Version 3.0

Open Source Agenda is not affiliated with "P2pfl" Project. README Source: pguijas/p2pfl

Open Source Agenda Badge

Open Source Agenda Rating