本博客由 IBM Animesh Singh来自优步(Uber)的 Alex Sergeev 共同撰写。


开源深度学习平台 Fabric for Deep Learning,简称 FfDL(发音同“fiddle”),发布了一个主版本更新。除了使用 S3FS 围绕对象存储访问添加了重要功能(利用另一个 IBM 开源项目 Kubernetes 对象存储插件),新版本还添加了使用 Jupyter Notebook 在 FfDL 上启动模型训练的功能。通过使用 Jupyter Notebook,我们可以调用 Adversarial Robustness Toolbox 来发起攻击,并检测存储在 FfDL 对象存储库中的训练模型上存在的漏洞。我们还与关键的社区参与者合作,在FfDL 中集成其功能:用于模型部署和服务的 Seldon 以及用于在 Kubernetes 上通过 FfDL 支持分布式机器学习功能的 H20.ai

为支持开发人员轻松使用这些新推出的更新,我们发布了两个 IBM Code Pattern:

此外,我们已经在 FfDL 中利用 Horovod 启动了分布式训练。

宣布支持在 FfDL 中使用 Horovod 进行 PyTorch 分布式训练

该版本还支持 Uber 的 Horovod 机制,用于进行分布式深度学习训练。Horovod 在面向 TensorFlow、Keras 以及 PyTorch 的分布式训练框架面向 TensorFlow、Keras 以及 PyTorch 的分布式训练框架中,提供统一的分布式训练用户体验。Horovod 支持通过用于高性能并行计算的低层次接口 – 消息传递接口 (MPI) 进行分布式模型训练。有了 MPI,就可以利用分布式 Kubernetes 集群来训练 TensorFlow 和 PyTorch 模型。虽然在 FfDL 中支持使用参数服务器方法进行 TensorFlow 分布式训练,但是 Horovod 添加了另外机制,同时也支持 PyTorch 分布式训练。

为何选择 Horovod?

我们发现 Horovod 能够非常轻松地从单 GPU 训练切换到大规模的分布式训练,从而提高 ML 工程师的速度。它也能帮助用户更轻松地在不同框架之间切换,同时进行大规模训练。它能够通过环简化提高 GPU 内部通信效率,只需要修改少数几行用户代码,就能支持更快速、更轻松的分布式训练。此外,Horovod 中还增加了一系列的新特性,主要针对大规模系统和系统低级互连,同时也为大规模的模型训练和自我诊断提供了一些新功能。

Horovod 使用了 allreduce 的概念,开发人员使用 MPI 实现,比如 Open MPIHorovod 白皮书中提供了有关该框架的更多详细信息。Allreduce 针对分布在各个集群节点上的数据数组执行逐元素简化。在 allreduce 计算结束时,每个节点都将获得一个结果副本。

不仅如此,Horovod 还可以在内部使用 NCCL2 进行 GPU 通信。

立即在 FfDL 中使用 Horovod 尝试Tensorflow 和 PyTorch分布式训练!

您可以在开源 FfDL 自述文件和指南中找到有关如何在 FfDL 中使用 Horovod 的详细信息。利用您认为有用的功能来部署、使用和扩展这些模型。期待您的反馈和代码提交!

本文翻译自:Scalable distributed training using Horovod in FfDL(2018-07-18)

加入讨论