
Hivemind est une bibliothèque Pytorch pour un apprentissage en profondeur décentralisé sur Internet. Son utilisation prévue consiste à former un grand modèle sur des centaines d'ordinateurs de différentes universités, entreprises et bénévoles.
Pour en savoir plus sur les idées derrière cette bibliothèque, consultez la liste complète de nos articles ci-dessous.
Cette section répertorie les projets qui exploitent Hivemind pour une formation décentralisée. Si vous avez réussi à former un modèle ou à créer un référentiel en aval avec l'aide de notre bibliothèque, n'hésitez pas à soumettre une demande de traction qui ajoute votre projet à cette liste.
Avant l'installation, assurez-vous que votre environnement a Python 3.8+ et Pytorch 1.9.0 ou plus récent. Ils peuvent être installés nativement ou avec Anaconda.
Vous pouvez obtenir la dernière version avec PIP ou construire Hivemind à partir de Source.
Si vos versions de Python et Pytorch correspondent aux exigences, vous pouvez installer Hivemind à partir de PIP:
pip install hivemind
De plus, si vous souhaitez utiliser une compression 8 bits en blocs à partir de BitsandBytes pendant le transfert de données, vous pouvez l'installer avec pip install hivemind[bitsandbytes] . Après cela, vous pouvez utiliser la classe BlockwiseQuantization dans HiveMind.Combression
Pour installer HiveMind à partir de la source, exécutez simplement ce qui suit:
git clone https://github.com/learning-at-home/hivemind.git
cd hivemind
pip install .
Si vous souhaitez vérifier que votre installation fonctionne correctement, vous pouvez installer avec pip install .[dev] à la place. Ensuite, vous pouvez exécuter les tests avec pytest tests/ .
Par défaut, HiveMind utilise le binaire précompilé de la bibliothèque Go-Libp2p-Daemon. Si vous faites face à des problèmes de compatibilité ou si vous souhaitez construire le binaire vous-même, vous pouvez le recompiler en exécutant pip install . --global-option="--buildgo" . Avant d'exécuter la compilation, veuillez vous assurer que votre machine a une version récente de GO Toolchain (1.15 ou 1.16 sont prises en charge).
Si vous avez des questions sur l'installation et l'utilisation de Hivemind, n'hésitez pas à leur poser dans notre chat Discord ou à poser un problème.
Hivemind est actuellement au stade du développement actif, et nous accueillons toutes les contributions. Tout, des corrections de bogues et des améliorations de la documentation aux fonctionnalités entièrement nouvelles, est appréciée.
Si vous voulez contribuer à Hivemind mais que vous ne savez pas par où commencer, jetez un œil aux problèmes non résolus. Ouvrez un nouveau problème ou rejoignez notre salle de chat au cas où vous souhaitez discuter de nouvelles fonctionnalités ou signaler un éventuel bug. Les corrections de bogues sont toujours les bienvenues, mais les nouvelles fonctionnalités doivent être de préférence discutées avec les mainteneurs au préalable.
Si vous souhaitez commencer à contribuer au code source de Hivemind, veuillez d'abord consulter les directives contributives. Pour en savoir plus sur d'autres façons de contribuer, lisez notre guide.
Si vous avez trouvé Hivemind ou ses algorithmes sous-jacents utiles pour vos recherches, veuillez citer la source suivante:
@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 }
}En outre, vous pouvez citer l'article qui a inspiré la création de cette bibliothèque (implémentation prototype de Hivemind disponible chez Mryab / Learning-at 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: formation décentralisée économe en communication sur des dispositifs hétérogènes non fiables"
@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 }
}"Distribué Deep Learning en collaborations ouvertes"
@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 }
}"Sécréter la formation distribuée à grande échelle"
@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 }
}"Formation des transformateurs ensemble"
@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étales: inférence collaborative et réglage fin des grands modèles"
@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 } ,
}"Le parallélisme de l'essaim: la formation de grands modèles peut être étonnamment économe en communication"
@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 }
}"Inférence distribuée et réglage fin des modèles de grande langue sur 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 }
}Nous maintenons également une liste de projets connexes et de remerciements.