Skip to content

Proof of Concept of a Federated Learning framework that maintains the privacy of the participants involved.

License

Notifications You must be signed in to change notification settings

DeltaML/federated-learning-poc

Repository files navigation

DeltaML/federated-learning-poc

Build Status Coverage Status

Repository that contains a Proof of Concept for the implementation of a Federated Learning framework.

IMPORTANT:

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:

The current repositories are:

Getting Started

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.

Prerequisites

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

Deployment

Using docker-compose

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>

Using Pycharm

Model Buyer

Script Path: .../model_buyer/virtualenv/bin/gunicorn
Parameters: -b "0.0.0.0:9090" wsgi:app --preload
Working directory: ../model_buyer

Federated Trainer

Script Path: .../federated_trainer/virtualenv/bin/gunicorn
Parameters: -b "0.0.0.0:8080" wsgi:app --preload
Working directory: ../federated_trainer

Data Owner

Script Path: .../data_owner/virtualenv/bin/gunicorn
Parameters: -b "0.0.0.0:5000" wsgi:app --preload
Working directory: ../data_owner

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

About

Proof of Concept of a Federated Learning framework that maintains the privacy of the participants involved.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published