Skip to content

Releases: epfml/disco

v3.0.0: LLM support, Improved UI, Aggregator Refactor

24 Jul 13:40
Compare
Choose a tag to compare

Changes summary

Machine Learning and collaborative learning

  • Add LLM support based on gpt-tfjs, for collaborative pre-training and fine-tuning #643 #644
  • Split the collaborative training logic into the Aggregator and Client abstractions #578.
  • Support text datasets and tokenization via Transformers.js #577 #651
  • Benchmark gpt-tfjs #659
  • Add browser support for LLM (tokenization, memory requirements, IndexedDB storage) #675
  • Improve all base ML tasks #616 #660

Technical

  • Update and extend documentation #614 #636, a table of content can be found in DEV.md
  • Greatly simplify repository management via NPM workspaces #617
  • Extend ESLint coverage #625
  • Upgrade codebase to ES2022 modules and typescript #652
  • Upgrade Node.js from v16 to v20 #653
  • Update dependencies and fix security issues #655
  • discojs is now a standalone package #664
    • discojs-node & discojs-web provide platform specific helpers
  • Publish a container image to easily run the server #664
  • Rolling releases for NPM packages and container image, each push to develop builds and deploys latest version #664

User Interface

Screenshot 2024-07-03 at 16 07 34 Screenshot 2024-07-03 at 16 09 52 Screenshot 2024-07-03 at 16 08 27

Downgrades

  • The Byzantine-Robust aggregator support is temporarily inactive, due to the aggregator refactoring #578

Additional PRs merged

New Contributors

Full Changelog: v2.1.1...v3.0.0

v2.1.1

15 Nov 14:11
Compare
Choose a tag to compare

Disco v2.1.1 Release Notes

New Features

  • Disco Server
    • Exposes an API to easily start a server on a given port and add new tasks (as the server host)
    • Supports digest verification of task models being downloaded from the Internet, useful for pre-trained or custom-hosted models
  • Disco.js
    • Exposes fetchTasks and pushTask functions to easily fetch tasks or add a new one to a remote Disco server (as a client)
  • Web Client
    • Fixed the display of task parameters

New Server Package

The Disco Server is now available as a package on NPM, easy to use and integrate within your project.

Versioning

Both the Disco.js and Disco Server libs follow the same versioning scheme. This is why both Disco.js and Disco Server will receive a version bump even if only one of the two libs is receiving code changes.

Moreover, Disco Server being dependent on Disco.js, it means that Disco Server version 2.1.1 will require and be compatible with any Disco.js version between >=2.1.1 and <3.0.0

v2.0.0

04 Nov 16:20
Compare
Choose a tag to compare

Disco v2.0 release notes

Main new features

  • Byzantine-robust training for federated learning
  • Fully P2P communication for decentralized training
  • Task Creation Form - Bring new ML tasks to Disco by simply filling a web form: no programming knowledge required
  • More clear split of the Disco projects into discojs, web-client, cli and server
  • Disco.js available as two independent NPM packages:
    • @epfml/discojs running in the browser as native JS
    • @epfml/discojs-node running on Node.js
  • Web Client: Lots of UI/UX improvements
  • CLI: Improved CLI for running experiments without any browser or UI. Self-contained example here
  • Development & Documentation
    • Development support for Apple Silicon and Windows (in addition to Linux and Mac)
    • Much improved documentation, both for task contributors and for developers
  • Miscellaneous
    • The GitHub repository's download size was reduced from 186MiB down to 3.51MiB!

Closed issues

More than 50 closed issues, bug fixes and new features:
https://github.com/epfml/disco/milestone/6?closed=1

v1.0.0

04 Nov 16:28
Compare
Choose a tag to compare

Initial Disco 🔮 release.

Supporting decentralized ✨ and federated 🌟 learning of arbitrary deep learning models with clients in browser or javascript.
Privacy: supports secure aggregation and differential privacy

See ReadMe, documentation and developer guide for more information
https://github.com/epfml/disco/