尊亿国际_尊亿国际娱乐手机客户端_尊亿国际娱乐官网

您现在的位置:新闻首页>房产楼市

基于Hadoop集群的大规模分布式深度学习

2019-05-30 15:50编辑:admin人气:


  在过去的十年里,Yahoo 一直持续投资建设和扩展 ApacheHadoop 集群,到目前为止共有超过 4 万台服务器和 600PB 数据分布在 19 个集群上。正如在 2015Hadoop峰会上介绍的,我们在自己的服务器上开发了可扩展的机器学习算法,用于分类、排序和计算词向量。目前,Hadoop 集群已成为 Yahoo 大规模机器学习的首选平台。

  深度学习(DeepLearning,DL)是雅虎很多产品的核心技术需求。在 2015RE.WORK 深度学习峰会上,YahooFlickr 团队(SimonOsindero 和 PierreGarrigues)阐述了深度学习如何被应用于场景检测、物体识别和计算美学。机器学习帮助 Flickr 自动完成给用户图片打标签,使得 Flickr 终端用户能够方便的管理和查找图片。

  为使深度学习技术惠及更多的 Yahoo 产品,最近我们把此项技术迁移到自己的 Hadoop 集群上。基于 Hadoop 的深度学习主要有这些优点:

  深度学习过程可以直接在我们存储数据的 Hadoop 集群上完成。避免了数据在 Hadoop 集群和深度学习集群之间的不必要传输。

  深度学习可以被定义为一流的 ApacheOozie 工作流,使用 Hadoop 进行数据处理和 Spark 管道进行机器学习。

  YARN 支持深度学习。一个集群上可以同时进行多项深度学习实验。与传统方法相比,新方法事半功倍。在过去,我们有些项目组靠“记事本”手工调度 GPU 资源,这是很痛苦的,而且只对少数用户有效。

  基于 Hadoop 的深度学习是深度学习的一个创新方法。业界现有的方法要求使用专用的集群,而基于 Hadoop 的深度学习不仅能达到专用集群的效果,还额外多出上述几项优点。

  通过利用 YARN 最近推出的节点标签功能(YARN-796),我们可以在 jobs 中声明容器是在 CPU 还是 GPU 节点加载。GPU 节点的容器能使用 Infiniband 以极高的速度交换数据。

  为了在这些强化的 Hadoop 集群上支持深度学习,我们基于开源软件库开发了一套完整的分布式计算工具,它们是 ApacheSpark 和 Caffe。我们可以利用下面的命令行向集群 GPU 节点提交深度学习计算任务。

  如上图所示,在 YARN 的 Spark 加载了一些 executor。每个 executor 分配到一个基于 HDFS 的训练数据分区,然后开启多个基于 Caffe 的训练线程。每个训练线程由一个特定的 GPU 处理。使用反向传播算法处理完一批训练样本后,这些训练线程之间交换模型参数的梯度值。这些梯度值在多台服务器的 GPU 之间以 MPIAllreduce形式进行交换。我们升级了 Caffe,以支持在一台服务器上使用多个 GPU,并以 RDMA 协议来同步 DL 模型。

  Caffe-on-Spark 让我们集 Caffe 与 Spark 二者之长处,将其应用于大规模深度学习,使深度学习任务如其它 Spark 应用一样易于操作。集群中的多个 GPU 被用于训练基于 HDFS 大规模数据集的模型。

  Caffe-on-Spark 支持(a)多个 GPU,(b)多台机器进行深度学习。为了体现我们方法的优势,我们在 ImageNet2012数据集上进行性能对比测试。

  首先,我们在单个 Sparkexecutor 中分别使用 1 个、2 个、4 个、8 个 GPU 对 AlexNet 数据集进行深度学习。如下图所示,训练时间随着 GPU 数量增加而缩短。当 GPU 数量为 4 个时,我们仅花费单个 GPU 所需时间的 15/43=35% 就能取得 50% 的准确率。所有上述执行过程的批大小均为 256。使用 8 个 GPU 相比 4 个 GPU 性能并没有显著提升。因为每个 GPU 处理的数据量太少而无法充分地利用硬件性能。

  随后,我们又在 GoogLeNet 数据集上进行了分布式性能对比测试,该测试比 AlexNet 的测试更深,且使用了更多的卷积运算,因此需要更强的计算能力。在每一轮运算中,我们给每个 GPU 分配的批大小为 32,当有n个 GPU 参与运算时,32n 是最有效的大小。我们的分布式算法旨在生成模型并且达到和单个 GPU 相当的准确率。使用 4 台服务器(4x8 个 GPU)训练,能在 10 小时内使 top-5 准确率超过 80%(20% 的误差)。注意 1 个 GPU 训练 40 小时后也只能达到 60% 的 top-5 准确率(40% 的误差)。

  GoogLeNet 规模随着 GPU 数量的增加而扩大。对于 60% 的 top-5 准确率(40% 的误差),8 个 GPU 能比 1 个 GPU 提速 680%。下表显示了达到 70% 和 80%top-5 准确率的速度提升幅度。如果我们仔细调整批数据大小(并不是将批大小都设为 32n),速度还能提升更多。

  在接下来几周的后续文章中,我们将分享 Caffe-on-Spark 的具体设计和实现细节。如果社区有足够的兴趣,我们也许会开源实现的代码。请将您的想法告知我们

  这篇文章初步描述了将 ApacheHadoop 生态系统和深度学习集成在同一个异构(GPU+CPU)集群的做法。早期的性能对比结果使我们倍受鼓舞,并计划在 Hadoop、Spark 和 Caffe 投入更多精力来使得深度学习在我们的集群上更加有效。我们期待和开源社区的朋友们在相关领域的并肩作战。

(来源:未知)

  • 凡本网注明"来源:的所有作品,版权均属于中,转载请必须注明中,http://www.jt-zy.com。违反者本网将追究相关法律责任。
  • 本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。





图说新闻

更多>>
2岁男童掉进开水锅 身上血淋淋的皮在掉(图)

2岁男童掉进开水锅 身上血淋淋的皮在掉(图)


返回首页