Skip to content
forked from epfml/disco

Decentralized & federated privacy-preserving ML training, using p2p networking, in JS

License

Notifications You must be signed in to change notification settings

peacefulotter/disco

 
 

Repository files navigation

DISCO - Dis​tributed Co​llaborative 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 (:star2: or :sparkles:) ... connect your data and... :bar_chart:

Note: Currently only CSV and Image 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

About

Decentralized & federated privacy-preserving ML training, using p2p networking, in JS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 53.3%
  • Vue 44.3%
  • CSS 1.5%
  • JavaScript 0.3%
  • Shell 0.2%
  • Batchfile 0.2%
  • Other 0.2%