
Hivemind é uma biblioteca Pytorch para um aprendizado profundo descentralizado em toda a Internet. Seu uso pretendido está treinando um modelo grande em centenas de computadores de diferentes universidades, empresas e voluntários.
Para saber mais sobre as idéias por trás desta biblioteca, consulte a lista completa de nossos trabalhos abaixo.
Esta seção lista projetos que aproveitam o Hivemind para treinamento descentralizado. Se você treinou com sucesso um modelo ou criou um repositório a jusante com a ajuda de nossa biblioteca, sinta -se à vontade para enviar uma solicitação de tração que adiciona seu projeto a esta lista.
Antes de instalar, verifique se o seu ambiente possui Python 3.8+ e Pytorch 1.9.0 ou mais recente. Eles podem ser instalados nativamente ou com anaconda.
Você pode obter o lançamento mais recente com o PIP ou construir hivemind a partir da fonte.
Se suas versões de Python e Pytorch corresponderem aos requisitos, você poderá instalar o HIVEMIND da PIP:
pip install hivemind
Além disso, se você deseja usar a compactação Blockwise de 8 bits do BitsandBytes durante a transferência de dados, poderá instalá-lo com pip install hivemind[bitsandbytes] . Depois disso, você pode usar a classe BlockwiseQuantization em hivemind.compressão
Para instalar o Hivemind a partir da fonte, basta executar o seguinte:
git clone https://github.com/learning-at-home/hivemind.git
cd hivemind
pip install .
Se você deseja verificar se sua instalação está funcionando corretamente, você pode instalar com pip install .[dev] . Em seguida, você pode executar os testes com pytest tests/ .
Por padrão, o Hivemind usa o binário pré-compilado da biblioteca GO-LIBP2P-Daemon. Se você enfrentar problemas de compatibilidade ou desejar criar o binário, poderá recompensá -lo executando pip install . --global-option="--buildgo" . Antes de executar a compilação, verifique se sua máquina possui uma versão recente do Go Toolchain (1.15 ou 1.16 são suportados).
Se você tiver alguma dúvida sobre a instalação e o uso do HIVEMIND, sinta -se à vontade para perguntar em nosso bate -papo com discórdia ou apresentar um problema.
O Hivemind está atualmente no estágio de desenvolvimento ativo e recebemos todas as contribuições. Tudo, desde correções de bugs e melhorias de documentação até recursos totalmente novos, é apreciado.
Se você deseja contribuir para o Hivemind, mas não sabe por onde começar, dê uma olhada nos problemas não resolvidos. Abra um novo problema ou participe de nossa sala de bate -papo, caso queira discutir novas funcionalidades ou relatar um possível bug. As correções de bugs são sempre bem -vindas, mas novos recursos devem ser discutidos preferencialmente com os mantenedores com antecedência.
Se você deseja começar a contribuir para o código -fonte do HIVEMIND, consulte as diretrizes contribuintes primeiro. Para saber mais sobre outras maneiras de contribuir, leia nosso guia.
Se você encontrou o Hivemind ou seus algoritmos subjacentes úteis para sua pesquisa, cite a seguinte fonte:
@misc { hivemind ,
title = { {H}ivemind: {D}ecentralized {D}eep {L}earning in {P}y{T}orch } ,
author = { Max Ryabinin and Alexander Borzunov and Michael Diskin and Anton Gusev and Denis Mazur and Vsevolod Plokhotnyuk and Alexey Bukhtiyarov and Pavel Samygin and Anton Sinitsin and Artem Chumachenko } ,
month = apr,
year = 2020 ,
address = { Online } ,
url = { https://github.com/learning-at-home/hivemind }
}Além disso, você pode citar o artigo que inspirou a criação desta biblioteca (implementação de protótipo de hivemind disponível no Mryab/Learning-in-home):
@inproceedings { ryabinin2020crowdsourced ,
title = { Towards Crowdsourced Training of Large Neural Networks using Decentralized Mixture-of-Experts } ,
author = { Ryabinin, Max and Gusev, Anton } ,
year = 2020 ,
booktitle = { Advances in Neural Information Processing Systems } ,
volume = 33 ,
url = { https://proceedings.neurips.cc/paper/2020/file/25ddc0f8c9d3e22e03d3076f98d83cb2-Paper.pdf }
}"Moshpit SGD: treinamento descentralizado com eficiência de comunicação em dispositivos heterogêneos não confiáveis"
@inproceedings { ryabinin2021moshpit ,
title = { Moshpit SGD: Communication-Efficient Decentralized Training on Heterogeneous Unreliable Devices } ,
author = { Ryabinin, Max and Gorbunov, Eduard and Plokhotnyuk, Vsevolod and Pekhimenko, Gennady } ,
year = 2021 ,
booktitle = { Advances in Neural Information Processing Systems } ,
volume = 34 ,
url = { https://proceedings.neurips.cc/paper/2021/file/97275a23ca44226c9964043c8462be96-Paper.pdf }
}"Aprendizagem profunda distribuída em colaborações abertas"
@inproceedings { diskin2021distributed ,
title = { Distributed Deep Learning In Open Collaborations } ,
author = { Michael Diskin and Alexey Bukhtiyarov and Max Ryabinin and Lucile Saulnier and Quentin Lhoest and Anton Sinitsin and Dmitry Popov and Dmitriy Pyrkin and Maxim Kashirin and Alexander Borzunov and Albert Villanova del Moral and Denis Mazur and Ilia Kobelev and Yacine Jernite and Thomas Wolf and Gennady Pekhimenko } ,
year = 2021 ,
booktitle = { Advances in Neural Information Processing Systems } ,
url = { https://openreview.net/forum?id=FYHktcK-7v }
}"Treinamento distribuído seguro em escala"
@inproceedings { gorbunov2022secure ,
title = { Secure Distributed Training at Scale } ,
author = { Gorbunov, Eduard and Borzunov, Alexander and Diskin, Michael and Ryabinin, Max } ,
year = 2022 ,
month = { 17--23 Jul } ,
booktitle = { Proceedings of the 39th International Conference on Machine Learning } ,
series = { Proceedings of Machine Learning Research } ,
volume = 162 ,
url = { https://proceedings.mlr.press/v162/gorbunov22a.html }
}"Treinando transformadores juntos"
@misc { borzunov2022training ,
title = { Training Transformers Together } ,
author = { Alexander Borzunov and Max Ryabinin and Tim Dettmers and Quentin Lhoest and Lucile Saulnier and Michael Diskin and Yacine Jernite and Thomas Wolf } ,
year = 2022 ,
eprint = { 2207.03481 } ,
archiveprefix = { arXiv } ,
primaryclass = { cs.LG }
}"Pétalas: inferência colaborativa e ajuste fino de grandes modelos"
@inproceedings { borzunov-etal-2023-petals ,
title = { Petals: Collaborative Inference and Fine-tuning of Large Models } ,
author = { Borzunov, Alexander and Baranchuk, Dmitry and Dettmers, Tim and Ryabinin, Max and Belkada, Younes and Chumachenko, Artem and Samygin, Pavel and Raffel, Colin } ,
year = 2023 ,
month = jul,
booktitle = { Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 3: System Demonstrations) } ,
publisher = { Association for Computational Linguistics } ,
address = { Toronto, Canada } ,
pages = { 558--568 } ,
doi = { 10.18653/v1/2023.acl-demo.54 } ,
url = { https://aclanthology.org/2023.acl-demo.54 } ,
editor = { Bollegala, Danushka and Huang, Ruihong and Ritter, Alan } ,
}"Paralelismo de enxame: o treinamento de grandes modelos pode ser surpreendentemente eficiente em termos de comunicação"
@inproceedings { ryabinin2023swarm ,
title = { {SWARM} Parallelism: Training Large Models Can Be Surprisingly Communication-Efficient } ,
author = { Ryabinin, Max and Dettmers, Tim and Diskin, Michael and Borzunov, Alexander } ,
year = 2023 ,
month = { 23--29 Jul } ,
booktitle = { Proceedings of the 40th International Conference on Machine Learning } ,
publisher = { PMLR } ,
series = { Proceedings of Machine Learning Research } ,
volume = 202 ,
pages = { 29416--29440 } ,
url = { https://proceedings.mlr.press/v202/ryabinin23a.html } ,
editor = { Krause, Andreas and Brunskill, Emma and Cho, Kyunghyun and Engelhardt, Barbara and Sabato, Sivan and Scarlett, Jonathan } ,
pdf = { https://proceedings.mlr.press/v202/ryabinin23a/ryabinin23a.pdf }
}"Inferência distribuída e ajuste fino de grandes modelos de linguagem pela Internet"
@inproceedings { borzunov2023distributed ,
title = { Distributed Inference and Fine-tuning of Large Language Models Over The Internet } ,
author = { Alexander Borzunov and Max Ryabinin and Artem Chumachenko and Dmitry Baranchuk and Tim Dettmers and Younes Belkada and Pavel Samygin and Colin Raffel } ,
year = 2023 ,
booktitle = { Thirty-seventh Conference on Neural Information Processing Systems } ,
url = { https://openreview.net/forum?id=XmN7ZNbUAe }
}Também mantemos uma lista de projetos e reconhecimentos relacionados.