Repository that contains a Proof of Concept for the implementation of a Federated Learning framework.
The code found in this repository was divided and moved into several repositories one for each component of a platform that uses Federated Learning to train models preserving the privacy, Homomorphic Encryption to secure the model and Smart Contracts to pay each participant in the platform for the job done without having to trust in a third party. An explanation of the whole project can be found in:
- https://github.com/DeltaML/report (currently only in spanish).
The current repositories are:
- Model Buyer:
- Data Owner:
- Federated Aggregator:
- Smart Contract:
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Federated Trainer usage and configuration
You can see the federated trainer Readme in Federated Trainer
Data owner usage and configuration
You can see the Data owner Readme in Data owner
Model buyer usage and configuration
You can see the Model buyer Readme in Model buyer
First build
docker-compose build
Then run
docker-compose up
Run and scale data owners
docker-compose up --scale cte_data_owner=<N_DATA_OWNERS>
Script Path: .../model_buyer/virtualenv/bin/gunicorn
Parameters: -b "0.0.0.0:9090" wsgi:app --preload
Working directory: ../model_buyer
Script Path: .../federated_trainer/virtualenv/bin/gunicorn
Parameters: -b "0.0.0.0:8080" wsgi:app --preload
Working directory: ../federated_trainer
Script Path: .../data_owner/virtualenv/bin/gunicorn
Parameters: -b "0.0.0.0:5000" wsgi:app --preload
Working directory: ../data_owner
We use SemVer for versioning. For the versions available, see the tags on this repository.
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details