|
3 tahun lalu | |
---|---|---|
.github | 3 tahun lalu | |
benchmarks | 3 tahun lalu | |
docs | 3 tahun lalu | |
examples | 3 tahun lalu | |
hivemind | 3 tahun lalu | |
tests | 3 tahun lalu | |
.gitignore | 4 tahun lalu | |
.readthedocs.yml | 4 tahun lalu | |
CONTRIBUTING.md | 4 tahun lalu | |
Dockerfile | 4 tahun lalu | |
LICENSE | 5 tahun lalu | |
README.md | 3 tahun lalu | |
codecov.yml | 4 tahun lalu | |
pyproject.toml | 3 tahun lalu | |
requirements-dev.txt | 3 tahun lalu | |
requirements-docs.txt | 3 tahun lalu | |
requirements.txt | 3 tahun lalu | |
setup.py | 3 tahun lalu |
Hivemind is a PyTorch library for decentralized deep learning across the Internet. Its intended usage is training one large model on hundreds of computers from different universities, companies, and volunteers.
Check out our NeurIPS 2021 demonstration "Training Transformers Together" to see hivemind in action, join an ongoing collaborative experiment, and learn more about the technologies behind it!
To learn more about the ideas behind this library, see the full list of our papers below.
Before installing, make sure that your environment has Python 3.7+ and PyTorch 1.6.0 or newer. They can be installed either natively or with Anaconda.
You can get the latest release with pip or build hivemind from source.
If your versions of Python and PyTorch match the requirements, you can install hivemind from pip:
pip install hivemind
To install hivemind from source, simply run the following:
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 .[dev]
instead. Then, you can run the tests with pytest tests/
.
By default, hivemind uses the precompiled binary of
the go-libp2p-daemon library. If you face compatibility issues
or want to build the binary yourself, you can recompile it by running pip install . --global-option="--buildgo"
.
Before running the compilation, please ensure that your machine has a recent version
of Go toolchain (1.15 or 1.16 are supported).
If you have any questions about installing and using hivemind, feel free to ask them in our Discord chat or file an issue.
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 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.
If you found hivemind or its underlying algorithms useful for your research, please cite the following source:
@misc{hivemind,
author = {Learning{@}home team},
title = {{H}ivemind: a {L}ibrary for {D}ecentralized {D}eep {L}earning},
year = 2020,
howpublished = {\url{https://github.com/learning-at-home/hivemind}},
}
Also, you can cite the paper that inspired the creation of this library (prototype implementation of hivemind available at mryab/learning-at-home):
@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}
}
We also maintain a list of related projects and acknowledgements.