{"id":19066122,"url":"https://github.com/epfml/disco","last_synced_at":"2025-05-15T20:03:40.421Z","repository":{"id":37814060,"uuid":"274528384","full_name":"epfml/disco","owner":"epfml","description":"DISCO is a code-free and installation-free browser platform that allows any non-technical user to collaboratively train machine learning models without sharing any private data.","archived":false,"fork":false,"pushed_at":"2025-05-05T16:34:18.000Z","size":15224,"stargazers_count":165,"open_issues_count":73,"forks_count":28,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2025-05-11T03:36:45.185Z","etag":null,"topics":["browser","collaborative-learning","decentralized-learning","federated-learning","machine-learning","mobile","privacy-preserving"],"latest_commit_sha":null,"homepage":"https://discolab.ai","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epfml.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-06-23T23:20:33.000Z","updated_at":"2025-05-06T15:04:00.000Z","dependencies_parsed_at":"2024-03-25T14:13:07.784Z","dependency_job_id":"9881637b-6b09-4439-8b9a-acd5d6acd29d","html_url":"https://github.com/epfml/disco","commit_stats":{"total_commits":2288,"total_committers":46,"mean_commits":49.73913043478261,"dds":0.8002622377622377,"last_synced_commit":"a5735e8910440aa5355298b8f1b6fb5446ab3243"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfml%2Fdisco","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfml%2Fdisco/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfml%2Fdisco/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfml%2Fdisco/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epfml","download_url":"https://codeload.github.com/epfml/disco/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414493,"owners_count":22067271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","collaborative-learning","decentralized-learning","federated-learning","machine-learning","mobile","privacy-preserving"],"created_at":"2024-11-09T00:54:32.054Z","updated_at":"2025-05-15T20:03:39.585Z","avatar_url":"https://github.com/epfml.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg \n    src=\"https://storage.googleapis.com/deai-313515.appspot.com/gifs/disco_middle.gif\" \n  /\u003e\n\u003c/p\u003e  \n\n# **DISCO** - DIStributed COllaborative Machine Learning\n\nDISCO leverages federated :star2: and decentralized :sparkles: learning to allow several data owners to collaboratively build machine learning models without sharing any original data.\n\nThe latest version is always running on the following link, for web and mobile:\n\u003cp align=\"center\"\u003e\n  \u003cb\u003e :man_dancing: https://discolab.ai/ :man_dancing:\u003c/b\u003e\n\u003c/p\u003e\n\n___\n:magic_wand: **DEVELOPERS:** DISCO is written fully in JavaScript/TypeScript. Have a look at our [developer guide](DEV.md).\n___\n\n:question: **WHY DISCO?** \n- To build deep learning models across private datasets without compromising data privacy, ownership, sovereignty, or model performance\n- To create an easy-to-use platform that allows non-specialists to participate in collaborative learning\n\n___\n\n:gear: **HOW DISCO WORKS**\n- DISCO has a *public model – private data* approach\n- Private and secure model updates – *not data* – are communicated to either:\n\t- a central server : **federated** learning ( :star2: )\n\t- directly between users : **decentralized** learning ( :sparkles: ) i.e. no central coordination\n- Model updates are then securely aggregated into a trained model\n- See more [HERE](https://discolab.ai/#/information)\n\n___\n:question: **DISCO TECHNOLOGY** \n- DISCO runs arbitrary deep learning tasks and model architectures in your browser, via [TF.js](https://www.tensorflow.org/js)\n- Decentralized learning :sparkles: relies on [peer2peer](https://github.com/feross/simple-peer) communication\n- Have a look at how DISCO ensures privacy and confidentiality [HERE](docs/PRIVACY.md)\n\n___\n\n:test_tube: **RESEARCH-BASED DESIGN**\n\nDISCO leverages latest research advances, enabling open-access and easy-use distributed training which is\n\n- :lock: privacy-preserving ([R1](https://eprint.iacr.org/2017/281.pdf))\n- :hammer_and_wrench: dynamic and asynchronous over time ([R2](https://arxiv.org/abs/2106.06639), [R7](https://arxiv.org/abs/2206.08307))\n- :ninja: robust to malicious actors ([R3](https://arxiv.org/abs/2012.10333) (partially))\n\nAnd more on the roadmap\n\n- :tornado: efficient ([R4](https://github.com/epfml/powergossip), [R5](https://github.com/epfml/ChocoSGD))\n- :lock: privacy-preserving while Byzantine robust ([R6](https://arxiv.org/abs/2006.04747))\n- :ninja: resistant to data poisoning ([R8](https://arxiv.org/abs/2006.09365))\n- :apple: :banana: interpretable in imperfectly interoperable data distributions ([R9](https://arxiv.org/abs/2107.06580))\n- :mirror: personalizable ([R10](https://arxiv.org/abs/2103.00710))\n- :carrot: fairly incentivizing participation\n\n___\n\n\n:checkered_flag: **HOW TO USE DISCO**\n- Start by exploring our examples tasks in the [`DISCOllaboratives` page](https://discolab.ai/#/list). \n- The example DISCOllaboratives are based on popular ML tasks such as [GPT2](https://d4mucfpksywv.cloudfront.net/better-language-models/language-models.pdf), [Titanic](https://www.kaggle.com/c/titanic), [MNIST](https://www.kaggle.com/c/digit-recognizer) or [CIFAR-10](https://www.kaggle.com/pankrzysiu/cifar10-python)\n- It is also possible to create your own DISCOllaboratives without coding on the [custom training page](https://discolab.ai/#/create):\n\t- Upload the initial model\n\t- Choose between federated and decentralized for your DISCO training scheme ... connect your data and... done! :bar_chart:\n\t- For more details on ML tasks and custom training have a look at [this guide](./docs/TASK.md)\n","funding_links":[],"categories":["Framework"],"sub_categories":["2022"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepfml%2Fdisco","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepfml%2Fdisco","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepfml%2Fdisco/lists"}