A 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 Gossip protocol.
✨ Key Features
P2PFL offers a range of features designed to make decentralized federated learning accessible and efficient. For detailed information, please refer to our documentation.
Feature | Description |
---|---|
🚀 Easy to Use | Get started quickly with our intuitive API. |
🛡️ Reliable | Built for fault tolerance and resilience. |
🌐 Scalable | Leverages the power of peer-to-peer networks. |
🧪 Versatile | Experiment in simulated or real-world environments. |
🔒 Private | Prioritizes data privacy with decentralized architecture. |
🧩 Flexible | Integrate with PyTorch and TensorFlow (coming soon!). |
📈 Real-time Monitoring | Manage and track experiment through P2PFL Web Services. |
🧠 Model Agnostic | Use any machine learning model you prefer (e.g., PyTorch models). |
📡 Communication Protocol Agnostic | Choose the communication protocol that best suits your needs (e.g., gRPC). |
📥 Installation
Note: We recommend using Python 3.9 or lower. We have found some compatibility issues with Python 3.10 and PyTorch.
👨🏼💻 For Users
pip install p2pfl
👨🏼🔧 For Developers
🐍 Python (using Poetry)
git clone https://github.com/pguijas/p2pfl.git
cd p2pfl
poetry install -E torch
Note: Use the extras (
-E
) flag to install specific dependencies (e.g.,-E torch
). Use--no-dev
to exclude development dependencies.
🐳 Docker
docker build -t p2pfl .
docker run -it --rm p2pfl bash
🎬 Quickstart
To start using P2PFL, follow our quickstart guide in the documentation.
📚 Documentation & Resources
- Documentation: https://pguijas.github.io/p2pfl/
- End-of-Degree Project Report: other/memoria.pdf
- Open Source Project Award Report: other/memoria-open-source.pdf
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md
for guidelines. Please adhere to the project's code of conduct in CODE_OF_CONDUCT.md
.
💬 Community
Connect with us and stay updated:
- GitHub Discussions: - For general discussions, questions, and ideas.
- GitHub Issues: - For reporting bugs and requesting features.
- Google Group: - For discussions and announcements.
- Slack: - For real-time conversations and support.
⭐ Star History
A big thank you to the community for your interest in P2PFL! We appreciate your support and contributions.
📜 License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file p2pfl-0.3.0.tar.gz
.
File metadata
- Download URL: p2pfl-0.3.0.tar.gz
- Upload date:
- Size: 66.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99971e211ae6ea055fe85cd0adac2a7106f973bb856e95495703f5bcca976865 |
|
MD5 | fa161dc00fa741eb9f04966841c6f3fe |
|
BLAKE2b-256 | dbf484cfffed73606da542bfa4568ab181119f5244d22d7a1a05ff1cb367b346 |
File details
Details for the file p2pfl-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: p2pfl-0.3.0-py3-none-any.whl
- Upload date:
- Size: 120.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c0a8a830acf6b6a4a921f9f345ad3a8f054e30654dcf2af208e5741ea2a4318 |
|
MD5 | 4e712bcb5e8f47a8a7a4847a58813460 |
|
BLAKE2b-256 | a6589c9c7cd9c2ef1d05aab8c9e1bee00692a038ba63d34391a007b1a5fdabb9 |