0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

微软和谷歌分别开源分布式深度学习框架对比

工程师邓生 来源:大数据文摘微信公众号 作者:Miggy 2020-11-01 10:49 次阅读

微软和谷歌一直在积极研究用于训练深度神经网络的新框架,并且在最近将各自的成果开源——微软的 PipeDream 和谷歌的 GPipe。

原则上看,他们都遵循了类似的原则来训练深度学习模型。这两个项目已在各自的研究论文(PipeDream,GPipe)中进行了详细介绍,这篇文章将对此进行总结。

先放上 GitHub 开源地址:

微软:

https://github.com/msr-fiddle/pipedream

谷歌:

https://github.com/tensorflow/lingvo/blob/master/lingvo/core/gpipe.py

众所周知,在实验过程中,虽然训练基本模型比较琐碎,但复杂度却随模型的质量和大小线性增加。例如,2014 年 ImageNet 视觉识别挑战赛的冠军是 GoogleNet,它通过 400 万个参数获得了 74.8% 的 top1 准确性,而仅仅三年之后,2017 年 ImageNet 挑战赛的冠军就使用 1.458 亿个参数(多了 36 倍)的最新神经网络实现了 top1 准确率——82.7%。但是,在同一时期,GPU 内存仅增加了约 3 倍。

随着模型缩放以达到更高的准确性,对这些模型的训练变得越来越具有挑战性。前面的样本也显示了,依靠 GPU 基础结构的改进来实现更好的训练是不可持续的。我们需要分布式计算方法,这些方法可以并行化跨不同节点的训练工作量,以扩展训练规模。分布式训练的概念听起来很琐碎,但实际上却极其复杂。

谷歌的 GPipe GPipe

专注于扩展深度学习计划的训练工作量。从基础架构的角度来看,训练过程的复杂性是深度学习模型经常被忽视的一个方面。训练数据集越来越大,越来越复杂。例如,在医疗保健领域,需要使用数百万个高分辨率图像进行训练的模型并不罕见。结果,训练过程通常要花费很长时间才能完成,并且内存和 CPU 消耗非常大。

思考深度学习模型的分布式的有效方法是将其划分为数据分布式和模型分布式。数据分布式方法采用大型机器集群,将输入数据拆分到它们之间。模型分布式尝试将模型移至具有特定硬件的加速器,例如 GPU 或 TPU,以加速模型训练。

概念上看,几乎所有训练数据集都可以按照一定的逻辑进行分布式训练,但是关于模型的说法却不尽相同。例如,一些深度学习模型由可以独立训练的并行分支组成。在那种情况下,经典策略是将计算划分为多个分区,并将不同的分区分配给不同的分支。但是,这种策略在按顺序堆叠各层的深度学习模型中是不足的。

GPipe 通过利用一种称为流水线的技术将数据和模型分布式结合在一起。从概念上讲,GPipe 是一个分布式机器学习库,它使用同步随机梯度下降和流水线分布式进行训练,适用于由多个连续层组成的任何 DNN。

GPipe 在不同的加速器之间划分模型,并自动将一小批训练样本拆分为较小的微批。该模型允许 GPipe 的加速器并行运行,从而最大限度地提高了训练过程的可扩展性。

下图说明了具有连续层的神经网络的 GPipe 模型在四个加速器之间分配。Fk 是第 k 个分区的复合正向计算函数。Bk 是相应的反向传播函数。Bk 取决于上层的 Bk + 1 和 Fk 的中间激活。在顶级模型中,我们可以看到网络的顺序性质如何导致资源利用不足。下图显示了 GPipe 方法,其中将输入的迷你批处理分为较小的宏批处理,这些宏批处理可由加速器同时处理。

图片来源:

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 本身已经是很优秀的产品,它是深度学习开发人员可用的两种最具创造性的分布式训练方法。
责任编辑:PSY

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微软
    +关注

    关注

    4

    文章

    6591

    浏览量

    104042
  • 谷歌
    +关注

    关注

    27

    文章

    6166

    浏览量

    105337
  • 神经网络
    +关注

    关注

    42

    文章

    4771

    浏览量

    100739
收藏 人收藏

    评论

    相关推荐

    HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据权限与基础数据

    使用分布式数据对象迁移数据,当需要迁移的数据较大(100KB以上)或需要迁移文件时,可以使用分布式数据对象。原理与接口说明详见分布式数据对象跨设备数据同步。 说明:自API 12起,由于直接使用跨
    发表于 12-24 09:40

    分布式光纤测温解决方案

    分布式光纤测温解决方案
    的头像 发表于 11-12 01:02 143次阅读
    <b class='flag-5'>分布式</b>光纤测温解决方案

    分布式光纤测温是什么?应用领域是?

    分布式光纤测温是一种先进的温度测量技术,它利用光纤的拉曼散射原理进行温度监测。以下是对分布式光纤测温的详细介绍: 一、基本原理 分布式光纤测温的原理基于光纤的拉曼散射效应。当光纤某处的温度发生变化
    的头像 发表于 10-24 15:30 346次阅读
    <b class='flag-5'>分布式</b>光纤测温是什么?应用领域是?

    NVIDIA推出全新深度学习框架fVDB

    在 SIGGRAPH 上推出的全新深度学习框架可用于打造自动驾驶汽车、气候科学和智慧城市的 AI 就绪型虚拟表示。
    的头像 发表于 08-01 14:31 595次阅读

    EasyGo使用笔记丨分布式光伏集群并网控制硬件在环仿真应用

    了该模型的仿真验证。最后,基于实时仿真器NetBox和DSP,构建完整的硬件在环仿真平台。分别对各算法进行了测试,并与常规仿真方式下的效果进行对比,验证分布式光伏集群并网控制硬件在环仿真平台的可行性
    发表于 07-12 17:20

    TensorFlow与PyTorch深度学习框架的比较与选择

    深度学习作为人工智能领域的一个重要分支,在过去十年中取得了显著的进展。在构建和训练深度学习模型的过程中,深度
    的头像 发表于 07-02 14:04 963次阅读

    深度学习与传统机器学习对比

    在人工智能的浪潮中,机器学习深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器学习的范畴,但
    的头像 发表于 07-01 11:40 1345次阅读

    微软和日立达成价值数十亿美元的战略合作

    微软和日本知名公司日立近日宣布了一项价值数十亿美元的战略合作计划,旨在未来三年内共同推动生成人工智能服务的广泛应用。根据合作协议,日立将深度整合微软云、Azure开放人工智能服务、D
    的头像 发表于 06-06 09:47 498次阅读

    分布式能源是什么意思?分布式能源有什么优势?

    分布式能源指的是在用户端或靠近用户端的小型能源供应系统,它能够直接满足用户的多种能源需求,如电力、热能和冷能。
    的头像 发表于 04-29 17:26 2256次阅读

    微软和谷歌财报超预期 谷歌史上首次发放季度股息

    微软和谷歌财报超预期 谷歌史上首次发放季度股息 全球企业都希望抓住当前人工智能蓬勃发展的契机,把自身产品与人工智紧密结合,在这AI浪潮下谷歌微软
    的头像 发表于 04-26 17:56 451次阅读

    HarmonyOS实战案例:【分布式账本】

    Demo基于Open Harmony系统使用ETS语言进行编写,本Demo主要通过设备认证、分布式拉起、分布式数据管理等功能来实现。
    的头像 发表于 04-12 16:40 1326次阅读
    HarmonyOS实战案例:【<b class='flag-5'>分布式</b>账本】

    谷歌模型框架是什么软件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌开发的用于机器学习和人工智能的软件框架,其中最著名的是TensorFlow。TensorFlow是一个
    的头像 发表于 03-01 16:25 871次阅读

    鸿蒙OS 分布式任务调度

    鸿蒙OS 分布式任务调度概述 在 HarmonyO S中,分布式任务调度平台对搭载 HarmonyOS 的多设备构筑的“超级虚拟终端”提供统一的组件管理能力,为应用定义统一的能力基线、接口
    的头像 发表于 01-29 16:50 493次阅读

    什么是分布式架构?

    分布式架构是指将一个系统或应用拆分成多个独立的节点,这些节点通过网络连接进行通信和协作,以实现共同完成任务的一种架构模式。这种架构模式旨在提高系统的可扩展性、可靠性和性能表现。 一、分布式架构的特点
    的头像 发表于 01-12 15:04 1234次阅读
    什么是<b class='flag-5'>分布式</b>架构?

    分布式锁的三种实现方式

    ,下面将分别介绍三种常见的实现方式。 一、基于数据库实现的分布式锁 在分布式系统中,数据库是最常用的共享资源之一。因此,可以通过数据库的特性来实现分布式锁。常见的方式是创建一个专门用于
    的头像 发表于 12-28 10:01 901次阅读