All Projects → learning-at-home → Hivemind

learning-at-home / Hivemind

Licence: mit
Decentralized deep learning in PyTorch. Built to train models on thousands of volunteers across the world.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Hivemind

Faust
Python Stream Processing. A Faust fork
Stars: ✭ 124 (-81.24%)
Mutual labels:  asyncio, distributed-systems
Xaynet
Xaynet represents an agnostic Federated Machine Learning framework to build privacy-preserving AI applications.
Stars: ✭ 111 (-83.21%)
Mutual labels:  neural-networks, distributed-systems
Faust
Python Stream Processing
Stars: ✭ 5,899 (+792.44%)
Mutual labels:  asyncio, distributed-systems
Awesome Distributed Deep Learning
A curated list of awesome Distributed Deep Learning resources.
Stars: ✭ 277 (-58.09%)
Mutual labels:  neural-networks, distributed-systems
public
BitDust project source codes : official Public Git repository (mirror on GitHub) : https://bitdust.io
Stars: ✭ 19 (-97.13%)
Mutual labels:  dht, asynchronous-programming
Cppcoro
A library of C++ coroutine abstractions for the coroutines TS
Stars: ✭ 2,118 (+220.42%)
Mutual labels:  asyncio, asynchronous-programming
Dpwa
Distributed Learning by Pair-Wise Averaging
Stars: ✭ 53 (-91.98%)
Mutual labels:  neural-networks, distributed-systems
Minotaur
A pythonic, asynchronous, inotify interface
Stars: ✭ 163 (-75.34%)
Mutual labels:  asyncio, asynchronous-programming
Layr
A decentralized (p2p) file storage system built atop Kademlia DHT that enforces data integrity, privacy, and availability through sharding, proofs of retrievability, redundancy, and encryption, with smart-contract powered incentive scheme
Stars: ✭ 90 (-86.38%)
Mutual labels:  distributed-systems, dht
Swim
Distributed software platform for building stateful, massively real-time streaming applications.
Stars: ✭ 368 (-44.33%)
Mutual labels:  asynchronous-programming, distributed-systems
Sensu Go
Simple. Scalable. Multi-cloud monitoring.
Stars: ✭ 625 (-5.45%)
Mutual labels:  distributed-systems
Lightctr
Lightweight and Scalable framework that combines mainstream algorithms of Click-Through-Rate prediction based computational DAG, philosophy of Parameter Server and Ring-AllReduce collective communication.
Stars: ✭ 644 (-2.57%)
Mutual labels:  distributed-systems
Grpclib
Pure-Python gRPC implementation for asyncio
Stars: ✭ 615 (-6.96%)
Mutual labels:  asyncio
Gevent
Coroutine-based concurrency library for Python
Stars: ✭ 5,656 (+755.67%)
Mutual labels:  asyncio
Nengo
A Python library for creating and simulating large-scale brain models
Stars: ✭ 615 (-6.96%)
Mutual labels:  neural-networks
Partisan
High-performance, high-scalability distributed computing with Erlang and Elixir.
Stars: ✭ 652 (-1.36%)
Mutual labels:  distributed-systems
Aio Pika
AMQP 0.9 client designed for asyncio and humans.
Stars: ✭ 611 (-7.56%)
Mutual labels:  asyncio
Peewee Async
Asynchronous interface for peewee ORM powered by asyncio
Stars: ✭ 607 (-8.17%)
Mutual labels:  asyncio
Chainer
A flexible framework of neural networks for deep learning
Stars: ✭ 5,656 (+755.67%)
Mutual labels:  neural-networks
Cryptofeed
Cryptocurrency Exchange Websocket Data Feed Handler
Stars: ✭ 643 (-2.72%)
Mutual labels:  asyncio

Hivemind: decentralized deep learning in PyTorch

Build status Documentation Status Gitter

Hivemind is a PyTorch library to train large neural networks across the Internet. Its intended usage is training a single Transformer model on hundreds of computers from different universities, companies, and volunteers.

img

Key Features

  • Train neural networks of arbitrary size: parts of their layers are distributed across the participants.
  • Distributed training without a master node: Distributed Hash Table allows connecting computers in a decentralized network.
  • Fault-tolerant backpropagation: forward and backward passes succeed even if some nodes are unresponsive or take too long to respond.
  • Decentralized parameter averaging: iteratively aggregate updates from multiple workers without the need to synchronize across the entire network.

To learn more about the ideas behind this library, see https://learning-at-home.github.io or read the NeurIPS 2020 paper.

Installation

Before installing hivemind, make sure that your environment has Python 3.7+ and PyTorch with a version at least as new as 1.6.0.

To start using this library, you can either use the pip package manager or build it from source. Since currently the release cycle is not established yet, we recommend installing hivemind from source to keep up with the latest bugfixes and improvements.

With pip

If your versions of Python and PyTorch match the requirements, you can install hivemind from pip:

pip install hivemind

From source

To install hivemind from source, simply clone the repository and install

git clone https://github.com/learning-at-home/hivemind.git
cd hivemind
pip install .

If you would like to verify that your installation is working properly, you can install with pip install -e .[dev] instead. Then, you can run the tests with pytest tests/.

Documentation

Contributing

Hivemind is currently at the active development stage, and we welcome all contributions. Everything, from bug fixes and documentation improvements to entirely new features, is equally appreciated.

If you want to contribute to hivemind but don't know where to start, take a look at the unresolved issues. Open a new issue or join our chat room in case you want to discuss new functionality or report a possible bug. Bug fixes are always welcome, but new features should be preferably discussed with maintainers beforehand.

If you want to start contributing to the source code of hivemind, please see the contributing guidelines first. To learn more about other ways to contribute, read our guide.

Citation

If you found hivemind useful for your experiments, you can cite the paper that inspired it:

@inproceedings{ryabinin2020crowdsourced,
 author = {Ryabinin, Max and Gusev, Anton},
 booktitle = {Advances in Neural Information Processing Systems},
 editor = {H. Larochelle and M. Ranzato and R. Hadsell and M. F. Balcan and H. Lin},
 pages = {3659--3672},
 publisher = {Curran Associates, Inc.},
 title = {Towards Crowdsourced Training of Large Neural Networks using Decentralized Mixture-of-Experts},
 url = {https://proceedings.neurips.cc/paper/2020/file/25ddc0f8c9d3e22e03d3076f98d83cb2-Paper.pdf},
 volume = {33},
 year = {2020}
}

The initial implementation of hivemind used for the paper is available at mryab/learning-at-home.

In the documentation, we list several related projects and acknowledgements.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].