
Hivemind es una biblioteca de Pytorch para el aprendizaje profundo descentralizado en Internet. Su uso previsto es capacitar un modelo grande en cientos de computadoras de diferentes universidades, empresas y voluntarios.
Para obtener más información sobre las ideas detrás de esta biblioteca, consulte la lista completa de nuestros documentos a continuación.
Esta sección enumera proyectos que aprovechan a Hivemind para la capacitación descentralizada. Si ha capacitado con éxito un modelo o ha creado un repositorio posterior con la ayuda de nuestra biblioteca, no dude en enviar una solicitud de extracción que agrega su proyecto a esta lista.
Antes de instalar, asegúrese de que su entorno tenga Python 3.8+ y Pytorch 1.9.0 o más nuevo. Se pueden instalar de forma nativa o con Anaconda.
Puede obtener el último lanzamiento con PIP o Build Hivemind desde la fuente.
Si sus versiones de Python y Pytorch coinciden con los requisitos, puede instalar HIVEMind desde PIP:
pip install hivemind
Además, si desea utilizar la compresión de 8 bits de Blockwise de Bitsandbytes durante la transferencia de datos, puede instalarlo con pip install hivemind[bitsandbytes] . Después de eso, puede usar la clase BlockwiseQuantization en Hivemind.compression
Para instalar HIVEMind desde la fuente, simplemente ejecute lo siguiente:
git clone https://github.com/learning-at-home/hivemind.git
cd hivemind
pip install .
Si desea verificar que su instalación funcione correctamente, puede instalar con pip install .[dev] en su lugar. Luego, puede ejecutar las pruebas con pytest tests/ .
Por defecto, Hivemind usa el binario precompilado de la biblioteca GO-LIBP2P-Demon. Si enfrenta problemas de compatibilidad o desea construir el binario usted mismo, puede recompilarlo ejecutando pip install . --global-option="--buildgo" . Antes de ejecutar la compilación, asegúrese de que su máquina tenga una versión reciente de GO Toolchain (se admiten 1.15 o 1.16).
Si tiene alguna pregunta sobre la instalación y el uso de Hivemind, no dude en preguntarles en nuestro chat de discordia o presentar un problema.
Hivemind se encuentra actualmente en la etapa de desarrollo activo, y damos la bienvenida a todas las contribuciones. Se agradece todo, desde correcciones de errores y mejoras de documentación hasta características completamente nuevas.
Si desea contribuir a Hivemind pero no sabe por dónde empezar, eche un vistazo a los problemas no resueltos. Abra un nuevo número o únase a nuestra sala de chat en caso de que desee discutir una nueva funcionalidad o informar un posible error. Las correcciones de errores siempre son bienvenidas, pero las nuevas características deben discutirse preferiblemente con los mantenedores de antemano.
Si desea comenzar a contribuir al código fuente de Hivemind, consulte primero las pautas contribuyentes. Para obtener más información sobre otras formas de contribuir, lea nuestra guía.
Si encontró a Hivemind o sus algoritmos subyacentes útiles para su investigación, cite la siguiente fuente:
@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 }
}Además, puede citar el documento que inspiró la creación de esta biblioteca (Implementación prototipo de Hivemind disponible en Mryab/Learning-to 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: capacitación descentralizada eficiente en comunicación sobre dispositivos no confiables heterogéneos"
@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 }
}"Aprendizaje profundo distribuido en colaboraciones abiertas"
@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 }
}"Capacitación distribuida segura a 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 }
}"Transformadores de entrenamiento 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étalos: inferencia colaborativa y ajuste 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 del enjambre: el entrenamiento de modelos grandes puede ser sorprendentemente eficiente en comunicación"
@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 }
}"Inferencia distribuida y ajuste de grandes modelos de idiomas a través de 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 }
}También mantenemos una lista de proyectos y reconocimientos relacionados.