微软和谷歌分别开源分布式深度学习框架,各自厉害在哪

IT之家

原标题:微软谷歌分别开源分布式深度学习框架,各自厉害在哪 来源:大数据文摘微信公众号

https://arxiv.org/pdf/1811.06965.pdf

微软的 PipeDream

几个月前,微软研究院宣布创建 Project Fiddle,这是一系列旨在简化分布式深度学习的研究项目。PipeDreams 是 Fiddle 项目首次发布的版本之一,专注于深度学习模型训练的并行化。

PipeDream 采用与其他方法不同的方法来利用称为管道分布式的技术来扩展深度学习模型的训练。这种方法试图解决数据和模型并行技术的一些挑战,例如 GPipe 中使用的技术。

通常,在云基础架构上进行训练时,数据并行方法在规模上会承受较高的通信成本,并且随着时间的推移会提高 GPU 计算速度。类似地,模型分布式技术通常在利用硬件资源上更加效率低下,程序员需要决定如何在给定硬件部署的情况下拆分其特定模型,给他们带来了不必要的负担。

http://www.microsoft.com/zh-cn/research/uploads/prod/2019/08/fiddle_pipedream_sosp19.pdf

PipeDream 尝试通过使用称为管道分布式的技术来克服数据模型分布式方法的一些挑战。

从概念上讲,管道分布计算涉及将 DNN 模型的各层划分为多个阶段,其中每个阶段均由模型中的一组连续层组成。每个阶段都映射到一个单独的 GPU,该 GPU 对该阶段中的所有层执行正向传递(和反向传递)。

给定一个特定的深度神经网络,PipeDream 会基于在单个 GPU 上执行的简短概要分析,自动确定如何对 DNN 的运算符进行分区,在不同阶段之间平衡计算负载,同时最大程度地减少与目标平台的通信。即使存在模型多样性(计算和通信)和平台多样性(互连拓扑和分层带宽),PipeDream 也会有效地实现负载平衡。PipeDream 训练分布式的方法的原理比数据模型分布式方法具有多个优点。

对于初学者而言,PipeDream 需要在工作程序节点之间进行较少的通信,因为管道执行中的每个工作程序仅需要将渐变的子集和输出激活信息传达给单个其他工作程序。

https://www.microsoft.com/zh-cn/research/uploads/prod/2019/08/fiddle_pipedream_sosp19.pdf

训练分布式是构建更大、更准确的深度学习模型的关键挑战之一。分布式训练方法是深度学习社区中一个活跃的研究领域,需要将有效的并发编程技术与深度学习模型的本质相结合。尽管仍处于早期阶段,但 Google 的 GPipe 和 Microsoft 的 PipeDream 本身已经是很优秀的产品,它是深度学习开发人员可用的两种最具创造性的分布式训练方法。