蓝盟IT外包,微软和谷歌分别是开源的分布式深度学习框架,各自厉害吗?

发布者:上海IT外包来源:http://www.lanmon.net点击数:1426

蓝盟IT小贴士,来喽!
随着模型越来越准确,这些模型的训练越来越困难。 上一个示例也表明,通过改进GPU基础架构来提供更好的培训是必不可少的。 需要将不同节点之间的培训工作量并行化,扩大培训规模的分布式计算方法。 分散训练的概念听起来是小事,但实际上极其复杂。
谷歌的GPipe
GPipe侧重于扩展深度学习计划的训练工作量。 从基础设施的角度来看,训练过程的复杂性是深度学习模式经常被忽视的一个方面。 训练数据集越来越大,越来越复杂。 例如,在医疗领域,需要使用数百万个高分辨率图像进行训练的模型并不罕见。 因此,培训过程需要很长时间才能完成,内存和CPU消耗非常大。
考虑深度学习模型分散的有效方法是分为数据分散和模型分散。 数据分散方法采用大型机器集群,将输入数据分割在它们之间。 模型分布试图将模型移动到具有特定硬件(如GPU和TPU  )的加速器,以加快模型的训练。
概念上,大部分训练数据集可以用一定的逻辑进行分散训练,但关于模型的说法不同。 例如,一些深度学习模型由可以独立训练的并行分支组成。 在这种情况下,经典的策略是将计算划分为多个分区,并将不同的分区分配给不同的分支。 但是,这样的战略在依次层叠各层的深度学习模型中是不够的。
GPipe利用被称为流水线的技术分散结合数据和模型。 概念上,GPipe是分布式机器学习库,使用同步随机梯度下降和流水线分散进行训练,适用于由多个连续层组成的任意DNN。
GPipe在不同加速器之间分割模型,自动将小训练样本分割成小批量。 这个模型可以同时运行GPipe的加速器,最大限度地提高训练过程的可扩展性。
下图显示了具有连续层的神经网络的GPipe模型在四个加速器之间分配。 Fk是第k个分区的复合正向计算函数。 Bk是对应的逆传播函数。 Bk依赖于上层Bk    1和Fk的中间活性化。 在顶层模型中,可以看到网络的顺序性质是如何导致资源利用不足的。 下图显示了一个GPipe方法,该方法将输入的小批处理划分为可以由加速器同时处理的小宏批处理。微软的PipeDream
几个月前,微软研究院宣布制作Project  Fiddle。 这是一系列简化分布式深度学习的研究项目。 PipeDreams是Fiddle项目首次发布的版本之一,重点是深度学习模式训练的并行化。
PipeDream以与其他方法不同的方法利用被称为流水线分散的技术来扩展深度学习模型的训练。 该方法试图解决数据和模型并行技术的一些难题,例如在GPipe中使用的技术。

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

文/上海蓝盟   IT外包专家

IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部