我可以访问几十个没有 GPU 但可以完全控制软件的 Dask 服务器(可以擦除它们并安装不同的东西)并且想要加速 pytorch-lightning 模型训练。 将它们与尽可能少的附加代码集成在一起的可能解决方案是什么?
我研究了一下这个话题,寻找可能的选择,无法确定选择哪个:
# | 选项 | 信息 | 亲 | 反对 |
---|---|---|---|---|
1. | dask-pytorch-ddp | 用于编写更容易集成到 Dask 中的模型的包 | 可能会工作 | 不能开箱即用现有模型,需要重写模型本身 |
2. | PL 文档,本地集群(中级) | 网络上的多个pytorch lightning副本 | 根据闪电文档的简单方法 | 根据文档巧妙地启动 |
3. | PL 文档,SLURM 集群 | 擦除/重新部署集群,设置 SLURM | 不那么繁琐地启动个人工作 | 需要重新部署集群操作系统/软件 |
4. | Pytorch + dask | 官方支持并记录了 Skorch 的使用 | 有一个处理这个的包 - skorch | 需要使用pytorch,而不是lightning |
是否有更多的选项或教程来了解这个?
我建议为此调查 Horovod。 Horovod 是用于 TensorFlow、Keras、PyTorch 和 Apache MXNet 的分布式深度学习训练框架。您可以使用 Horovod 与 PyTorch Lightning 的集成来分发模型的训练。这种方法需要在您的服务器上安装 Horovod,并对您现有的 PyTorch Lightning 代码进行最少的更改。
作为替代方案,您还可以考虑使用 Ray 与 PyTorch Lightning 进行分布式训练。