分布式训练

如果可能,砖建议你训练的神经网络在单个机器上;分布式代码培训和推理是更复杂的比单机代码和慢由于通信开销。然而,您应该考虑分布式训练和推理如果你的模型或数据太大在单个机器上装入内存。对于这些工作负载,砖运行时毫升包括Horovod和spark-tensorflow-distributor包。

Horovod

Horovod是一个分布式TensorFlow培训框架,Keras, PyTorch。砖使用HorovodRunner和支持分布式深度学习培训horovod.spark包中。火花毫升管道应用程序使用Keras或PyTorch,您可以使用horovod.spark估计量的API

需求

砖运行时毫升。

使用Horovod

以下文章提供一般信息分布深度学习笔记本Horovod和例子说明如何使用HorovodRunner和horovod.spark包中。

安装一个不同版本的Horovod

从预装版本升级或降级Horovod毫升集群,您必须重新编译Horovod通过以下步骤:

  1. Horovod卸载当前版本。

%皮普卸载- - - - - -yhorovod
  1. 如果使用GPU-accelerated集群,安装编译Horovod所需CUDA开发库。以确保兼容性,离开包版本不变。

%上海wgethttps:/ /开发人员下载英伟达com/计算/cuda/回购/ubuntu1804/x86_64/cuda- - - - - -ubuntu1804mvcuda- - - - - -ubuntu1804//恰当的/首选项d/cuda- - - - - -存储库- - - - - -- - - - - -600年恰当的- - - - - -关键阿德- - -获取- - - - - -https:/ /开发人员下载英伟达com/计算/cuda/回购/ubuntu1804/x86_64/7fa2af80酒吧添加- - - - - -恰当的- - - - - -存储库“黛比https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/”wgethttps:/ /开发人员下载英伟达com/计算/- - - - - -学习/回购/ubuntu1804/x86_64/英伟达- - - - - -- - - - - -学习- - - - - -回购- - - - - -ubuntu1804_1.0.0- - - - - -1_amd64黛比dpkg- - - - - -。/英伟达- - - - - -- - - - - -学习- - - - - -回购- - - - - -ubuntu1804_1.0.0- - - - - -1_amd64黛比恰当的- - - - - -得到更新恰当的- - - - - -得到安装- - -允许- - - - - -降级- - -没有- - - - - -安装- - - - - -建议- - - - - -y\cuda- - - - - -nvml- - - - - -dev- - - - - -11- - - - - -0=11.0.167- - - - - -1\cuda- - - - - -学校网站- - - - - -11- - - - - -0=11.0.221- - - - - -1\cuda- - - - - -cudart- - - - - -dev- - - - - -11- - - - - -0=11.0.221- - - - - -1\cuda- - - - - -- - - - - -dev- - - - - -11- - - - - -0=11.0.3- - - - - -1\libnccl- - - - - -dev=2.11.4- - - - - -1+cuda115\libcusparse- - - - - -dev- - - - - -11- - - - - -0=11.1.1.245- - - - - -1
  1. Horovod下载所需的版本的源代码和编译与适当的旗帜。如果你不需要任何的扩展(如HOROVOD_WITH_PYTORCH),您可以删除这些旗帜。

% sh HOROVOD_VERSION = v0.21.3 #在必要时改变git克隆——递归https://github.com/horovod/horovod.git分支$ {HOROVOD_VERSION} cd horovod rm射频构建/ dist / HOROVOD_WITH_MPI = 1 HOROVOD_WITH_TENSORFLOW = 1 HOROVOD_WITH_PYTORCH = 1 \ #砖运行时的8.4毫升和下面,替换为/砖/ conda / env / databricks-ml / bin / python sudo /砖/ python3 / bin / python设置。py bdist_wheel指向- f dist / horovod - * .whl
% sh HOROVOD_VERSION = v0.21.3 #在必要时改变git克隆——递归https://github.com/horovod/horovod.git分支$ {HOROVOD_VERSION} cd horovod rm射频构建/ dist / HOROVOD_GPU_ALLREDUCE = NCCL HOROVOD_CUDA_HOME = / usr /地方/ cuda HOROVOD_WITH_MPI = 1 HOROVOD_WITH_TENSORFLOW = 1 HOROVOD_WITH_PYTORCH = 1 \ #砖运行时的8.4毫升和下面,替换为/砖/ conda / env / databricks-ml-gpu / bin / python sudo /砖/ python3 / bin / python设置。py bdist_wheel指向- f dist / horovod - * .whl
  1. 使用%皮普重新安装Horovod通过指定轮路径从前面的命令的输出。0.21.3这个示例中所示。

%皮普安装- - -没有- - - - - -缓存- - - - - -dir//司机/horovod/经销/horovod- - - - - -0.21.3- - - - - -cp38- - - - - -cp38- - - - - -linux_x86_64whl

排除Horovod安装

问题:进口horovod。{火炬| tensorflow}提出了ImportError:扩展horovod。{火炬| tensorflow}

解决方案:预装Horovod砖运行时毫升,所以常常会发生这种错误如果更新出现问题的环境。错误表明Horovod安装之前需要图书馆(PyTorch或TensorFlow)。由于Horovod编译安装期间,horovod。{火炬| tensorflow}不会得到编译期间如果这些包不存在Horovod的安装。要修复这些问题,遵循这些步骤:

  1. 确认你砖集群运行时毫升。

  2. 确保PyTorch或者TensorFlow包已经安装。

  3. 卸载Horovod (%皮普卸载可能是horovod)。

  4. 安装cmake(%皮普安装cmake)。

  5. 重新安装horovod

spark-tensorflow-distributor

spark-tensorflow-distributor是一个开源本地包TensorFlow分布式训练与TensorFlow火花集群。BOB低频彩了解更多关于分布式训练TensorFlow 2

TorchDistributor

TorchDistributor是一个开源的模块在PySpark帮助用户做分布式训练PyTorch火花集群,这允许您启动PyTorch培训工作引发的工作。底层,它初始化环境和员工之间的沟通渠道,充分利用了CLI命令torch.distributed.run工作者节点运行分布式训练。BOB低频彩了解更多关于分布式训练TorchDistributor