
Hivemind - это библиотека Pytorch для децентрализованного глубокого обучения по всему Интернету. Его предполагаемым использованием является обучение одной большой модели на сотнях компьютеров из разных университетов, компаний и волонтеров.
Чтобы узнать больше об идеях, стоящих за этой библиотекой, см. В полном списке наших документов ниже.
В этом разделе перечислены проекты, которые используют свойство для децентрализованного обучения. Если вы успешно обучили модель или создали репозиторий вниз по течению с помощью нашей библиотеки, не стесняйтесь отправлять запрос на привлечение, который добавляет ваш проект в этот список.
Перед установкой убедитесь, что в вашей среде есть Python 3.8+ и Pytorch 1.9.0 или новее. Они могут быть установлены либо изначально, либо с Анакондой.
Вы можете получить последний релиз с PIP или построить Hivemind из Source.
Если ваши версии Python и Pytorch соответствуют требованиям, вы можете установить Hivemind из PIP:
pip install hivemind
Кроме того, если вы хотите использовать блочное 8-битное сжатие из BitsAndbytes во время передачи данных, вы можете установить его с помощью pip install hivemind[bitsandbytes] . После этого вы можете использовать класс BlockwiseQuantization в Hivemind.compression
Чтобы установить Hivemind из источника, просто запустите следующее:
git clone https://github.com/learning-at-home/hivemind.git
cd hivemind
pip install .
Если вы хотите проверить, что ваша установка работает должным образом, вы можете установить с помощью pip install .[dev] . Затем вы можете запустить тесты с помощью pytest tests/ .
По умолчанию Hivemind использует предварительно скомпилированный двоичный файл библиотеки GO-Libp2p-Daemon. Если вы сталкиваетесь с проблемами совместимости или хотите самостоятельно построить бинар, вы можете перекомпилировать его, выполняя pip install . --global-option="--buildgo" . Перед запуском компиляции, пожалуйста, убедитесь, что у вашей машины есть недавняя версия Go Toolchain (1,15 или 1.16 поддерживается).
Если у вас есть какие -либо вопросы по поводу установки и использования Hivemind, не стесняйтесь спрашивать их в нашем чате Discord или подать проблему.
Hivemind в настоящее время находится на стадии активной разработки, и мы приветствуем все вклад. Все, от исправлений ошибок и улучшения документации до совершенно новых функций, ценится.
Если вы хотите внести свой вклад в Hivemind, но не знаете, с чего начать, взгляните на нерешенные проблемы. Откройте новую проблему или присоединяйтесь к нашей чате, если вы хотите обсудить новую функциональность или сообщить о возможной ошибке. Установки ошибок всегда приветствуются, но новые функции должны быть предпочтительно обсуждаться с сопровождающими.
Если вы хотите начать вносить свой вклад в исходный код Hivemind, сначала посмотрите руководящие принципы. Чтобы узнать больше о других способах внесения вклад, прочитайте наше руководство.
Если вы нашли Hivemind или его базовые алгоритмы, полезные для вашего исследования, пожалуйста, укажите следующий источник:
@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 }
}Кроме того, вы можете процитировать статью, которая вдохновила на создание этой библиотеки (прототип реализации Hivemind, доступной в 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: Децентрализованное обучение по вопросам общения по неоднородным ненадежным устройствам"
@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 }
}«Распределенное глубокое обучение в открытом сотрудничестве»
@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 }
}"Безопасное распределенное обучение в масштабе"
@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 }
}"Тренировка трансформеров вместе"
@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 }
}«Лепестки: совместный вывод и тонкая настройка больших моделей»
@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 } ,
}«Параллелизм роя: обучение больших моделей может быть удивительно эффективным общением»
@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 }
}«Распределенный вывод и тонкая настройка больших языковых моделей через Интернет»
@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 }
}Мы также ведем список связанных проектов и подтверждений.