
Hivemind เป็นห้องสมุด Pytorch สำหรับการเรียนรู้อย่างลึกซึ้งข้ามอินเทอร์เน็ต การใช้งานที่ตั้งใจไว้คือการฝึกอบรมแบบจำลองขนาดใหญ่หนึ่งรุ่นในคอมพิวเตอร์หลายร้อยเครื่องจากมหาวิทยาลัย บริษัท และอาสาสมัครที่แตกต่างกัน
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับแนวคิดที่อยู่เบื้องหลังห้องสมุดนี้ดูรายการเอกสารทั้งหมดของเราด้านล่าง
ส่วนนี้แสดงรายการโครงการที่ใช้ประโยชน์จาก HiveMind สำหรับการฝึกอบรมการกระจายอำนาจ หากคุณได้รับการฝึกอบรมแบบจำลองสำเร็จหรือสร้างที่เก็บปลายน้ำด้วยความช่วยเหลือของห้องสมุดของเราอย่าลังเลที่จะส่งคำขอดึงที่เพิ่มโครงการของคุณในรายการนี้
ก่อนที่จะติดตั้งตรวจสอบให้แน่ใจว่าสภาพแวดล้อมของคุณมี Python 3.8+ และ Pytorch 1.9.0 หรือใหม่กว่า พวกเขาสามารถติดตั้งได้อย่างเป็นธรรมชาติหรือกับ anaconda
คุณสามารถรับรีลีสล่าสุดด้วย PIP หรือสร้าง HiveMind จากแหล่งที่มา
หาก Python และ Pytorch เวอร์ชันของคุณตรงกับข้อกำหนดคุณสามารถติดตั้ง HiveMind จาก PIP:
pip install hivemind
นอกจากนี้หากคุณต้องการใช้การบีบอัด 8 บิต blockwise จาก 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/การเรียนรู้ที่บ้าน):
@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 }
}"Training Transformers Together"
@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 } ,
}"Swarm Parallelism: การฝึกอบรมแบบจำลองขนาดใหญ่สามารถมีประสิทธิภาพในการสื่อสารอย่างน่าประหลาดใจ"
@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 }
}นอกจากนี้เรายังเก็บรักษารายการโครงการที่เกี่ยวข้องและการตอบรับ