DISCO - Distributed Collaborative Machine Learning
DISCO leverages federated 🌟 and decentralized ✨ learning to allow several data owners to collaboratively build machine learning models without sharing any original data.
The latest version is always running on the following link, directly in your browser, for web and mobile:
🕺 https://epfml.github.io/disco/ 🕺
🪄 DEVELOPERS: Contribute or customize DISCO HERE
❓ WHY DISCO?
- To build deep learning models across private datasets without compromising data privacy, ownership, sovereignty, or model performance
- To create an easy-to-use platform that allows non-specialists to participate in collaborative learning
⚙️ HOW DISCO WORKS
- DISCO has a public model – private data approach
- Private and secure model updates – not data – are communicated to either:
- a central server : federated learning ( 🌟 )
- directly between users : decentralized learning ( ✨ ) i.e. no central coordination
- Model updates are then securely aggregated into a trained model
- See more HERE
❓ DISCO TECHNOLOGY
- DISCO supports arbitrary deep learning tasks and model architectures, via TF.js
- ✨ relies on peer2peer communication
- Learn more about secure aggregation and differential privacy for privacy-respecting training HERE
🧪 RESEARCH-BASED DESIGN
DISCO aims to enable open-access and easy-use distributed training which is
- 🌪️ efficient (R1, R2)
- 🔒 privacy-preserving (R3, R4)
- 🛠️ fault-tolerant and dynamic over time (R5)
- 🥷 robust to malicious actors and data poisoning (R6, R7)
- 🍎 🍌 interpretable in imperfectly interoperable data distributions (R8)
- 🪞 personalizable (R9)
- 🥕 fairly incentivizes participation
🏁 HOW TO USE DISCO
- Start by exploring our example DISCOllaboratives in the
Tasks
tab. - The example models are based on popular datasets such as Titanic, MNIST or CIFAR-10
- It is also possible to create a custom task without coding. Just upload the following 2 files:
- A
TensorFlow.js
model file in JSON format (useful links to create and save your model) - A weight file in
.bin
format- These are the initial weights provided to new users joining your task (pre-trained or random initialisation)
- You can choose from several existing dataloaders
- Then...select your DISCO training scheme (🌟 or ✨) ... connect your data and... 📊
- A
Note: Currently only
CSV
andImage
data types are supported. Adding new data types, preprocessing code or dataloaders, is accessible in developer mode (see developer guide). Specific instructions on how to build a custom task can be found HERE
__
JOIN US
- You are welcome on slack