Hivemind项目介绍
概述
Hivemind 是一个基于 PyTorch 的库,旨在实现跨互联网的去中心化深度学习。其主要目标是将来自不同大学、公司和志愿者的数以百计的计算机联合起来,训练一个大型神经网络模型。
关键特性
- 无主节点的分布式训练:利用分布式哈希表连接电脑形成去中心化网络,不需要依赖单一的主节点。
- 容错的反向传播:即使某些节点无响应或响应延迟,正向和反向传播也能正常进行。
- 去中心化的参数平均:通过多轮迭代聚合多个工作节点的更新,而无需同步整个网络。
- 任意大小神经网络的训练:通过去中心化专家混合体,将网络的部分层分配给参与者进行处理。
示例应用
Hivemind已经在多个项目中得到了实际应用,以下是一些利用该工具进行去中心化训练的项目:
- Petals:一个去中心化平台,用于1000亿级语言模型的推理和微调。
- Training Transformers Together:一个合作式文本到图像Transformer模型的演示项目。
- CALM:在阿拉伯语数据集上训练的掩蔽语言模型。
- sahajBERT:为孟加拉语协作预训练的ALBERT-xlarge模型。
- PyTorch Lightning 集成:通过集成到 PyTorch Lightning,可以帮助适应在慢速网络和不可靠的对等点上进行训练。
安装指南
环境要求
在安装之前,请确保环境已安装Python 3.8以上版本和PyTorch 1.9.0或更新版本。你可以使用原生安装或Anaconda安装。
使用 pip 安装
如果你的环境满足Python和PyTorch的版本要求,可以使用以下命令进行安装:
pip install hivemind
如果需要在传输数据时使用 blockwise 8-bit 压缩,可以安装附加软件包:
pip install hivemind[bitsandbytes]
从源码安装
想要从源码安装,首先克隆项目并运行安装命令:
git clone https://github.com/learning-at-home/hivemind.git
cd hivemind
pip install .
若想测试安装效果,可以运行:
pip install .[dev]
pytest tests/
系统需求
- Linux 是默认操作系统,推荐使用 Ubuntu 18.04+。其他64位发行版也应该兼容。
- macOS 部分支持,遇到问题时可以通过Docker运行Hivemind。
- Windows 10+ 可以使用Windows子系统Linux(WSL)运行Hivemind,并根据NVIDIA的指南配置GPU支持。
文档和支持
- 提供了快速入门教程和API参考文档。
- 如果在安装和使用中有疑问,可以加入相关的Discord聊天或在GitHub上提交问题。
参与贡献
Hivemind目前正处于活跃开发阶段,欢迎各种形式的贡献,无论是BUG修复、文档改进还是新功能开发。在开始之前,可以查看未解决的问题或提出新的讨论。
引用
如果在研究中使用了Hivemind或其基础算法,请您引用相关的文献和代码库。我们提供了相关文献的引用格式,详细内容请参阅项目文档。
通过这些功能,Hivemind在去中心化的深度学习训练中提供了无与伦比的灵活性和可扩展性,使得即使是在复杂和不稳定的网络环境中,也能高效训练大型神经网络。