北京快三开奖

  • <tr id="U9YkSO"><strong id="U9YkSO"></strong><small id="U9YkSO"></small><button id="U9YkSO"></button><li id="U9YkSO"><noscript id="U9YkSO"><big id="U9YkSO"></big><dt id="U9YkSO"></dt></noscript></li></tr><ol id="U9YkSO"><option id="U9YkSO"><table id="U9YkSO"><blockquote id="U9YkSO"><tbody id="U9YkSO"></tbody></blockquote></table></option></ol><u id="U9YkSO"></u><kbd id="U9YkSO"><kbd id="U9YkSO"></kbd></kbd>

    <code id="U9YkSO"><strong id="U9YkSO"></strong></code>

    <fieldset id="U9YkSO"></fieldset>
          <span id="U9YkSO"></span>

              <ins id="U9YkSO"></ins>
              <acronym id="U9YkSO"><em id="U9YkSO"></em><td id="U9YkSO"><div id="U9YkSO"></div></td></acronym><address id="U9YkSO"><big id="U9YkSO"><big id="U9YkSO"></big><legend id="U9YkSO"></legend></big></address>

              <i id="U9YkSO"><div id="U9YkSO"><ins id="U9YkSO"></ins></div></i>
              <i id="U9YkSO"></i>
            1. <dl id="U9YkSO"></dl>
              1. <blockquote id="U9YkSO"><q id="U9YkSO"><noscript id="U9YkSO"></noscript><dt id="U9YkSO"></dt></q></blockquote><noframes id="U9YkSO"><i id="U9YkSO"></i>
                企业空间 推销商城 存储论坛
                北京快三开奖全闪存阵列 IBM云盘算 Acronis 安克诺斯 安腾普 腾保数据
                首页 > 认知盘算 > 注释

                基于Hadoop集群的大范围散布式深度学习

                2016-03-02 15:42泉源:CSDN
                导读:Hadoop集群已成为Yahoo大范围呆板学习的首选平台,为了在这些强化的Hadoop集群上支持深度学习,我们基于开源软件库开辟了一套完好的散布式盘算东西,它们是Apache Spark和Caffe。

                媒介

                在过来的十年里,Yahoo不断继续投资建立和扩展Apache Hadoop集群,到现在为止共有超越4万台效劳器和600PB数据散布在19个集群上。在本人的效劳器上开辟了可扩展的呆板学习算法,用于分类、排序和盘算词向量。现在,Hadoop集群已成为Yahoo大范围呆板学习的首选平台。

                基于Hadoop集群的大范围散布式深度学习

                深度学习(Deep Learning, DL)是雅虎许多产物的中心技能需求。在2015 RE.WORK深度学习峰会上,Yahoo Flickr团队(Simon Osindero和Pierre Garrigues)论述了深度学习怎样被使用于场景检测、物体辨认和盘算美学。呆板学习协助Flickr主动完成给用户图片打标签,使得Flickr终端用户可以方便的办理和查找图片。

                为使深度学习技能惠及更多的Yahoo产物,近来我们把此项技能迁徙到本人的Hadoop集群上。基于Hadoop的深度学习次要有这些长处:

                • 深度学习进程可以间接在我们存储数据的Hadoop集群上完成。防止了数据在Hadoop集群和深度学习集群之间的不用要传输。
                • 深度学习可以被界说为一流的Apache Oozie任务流,运用Hadoop停止数据处置和Spark管道停止呆板学习。
                • YARN支持深度学习。一个集群上可以同时停止多项深度学习实行。与传统办法相比,新办法事半功倍。在过来,我们有些项目组靠“记事本”手工调理GPU资源,这是很苦楚的,并且只对多数用户无效。

                基于Hadoop的深度学习是深度学习的一个创新办法。业界现有的办法要求运用公用的集群,而基于Hadoop的深度学习不只能到达公用集群的结果,还额定多出上述几项长处。

                加强Hadoop集群

                为了支持深度学习,我们在Hadoop集群上添加GPU节点。每个节点有4块Nvidia Tesla K80运算卡,每块卡设置装备摆设2个GK210 GPU。这些节点的处置才能是我们Hadoop集群所运用的传统CPU的10倍。

                基于Hadoop集群的大范围散布式深度学习

                在Hadoop集群上,GPU节点有两个独立网络接口,Ethernet和Infiniband。Ethernet作为对外通讯的次要接口,Infiniband在GPU之间提供10倍以上速率的数据传输,而且支持经过RDMA间接拜访GPU内存。

                经过应用YARN近来推出的节点标签功用(YARN-796),我们可以在jobs中声明容器是在CPU照旧GPU节点加载。GPU节点的容器能运用Infiniband以极高的速率交流数据。

                散布式深度学习:Caffe-on-Spark

                为了在这些强化的Hadoop集群上支持深度学习,我们基于开源软件库开辟了一套完好的散布式盘算东西,它们是Apache Spark和Caffe。我们可以应用上面的下令行向集群GPU节点提交深度学习盘算义务。

                spark-submit –master yarn –deploy-mode cluster
                –files solver.prototxt, net.prototxt
                –num-executors <# of EXECUTORS>
                –archives caffe_on_grid.tgz
                –conf spark.executorEnv.LD_LIBRARY_PATH=“./caffe_on_grid.tgz/lib64”
                –class com.yahoo.ml.CaffeOnSpark caffe-on-spark-1.0-jar-with-dependencies.jar
                -devices <# of GPUs PER EXECUTOR>
                -conf solver.prototxt
                -input hdfs://<TRAINING FILE>
                -model hdfs://<MODEL FILE>

                在上述下令行中,用户可以指定运用的Spark executor个数(–num-executors),每个executor分派的GPU个数(-devices),HDFS上寄存训练数据的途径,以及模子在HDFS上的存储途径。用户运用规范Caffe设置装备摆设文件来确定Caffe算法和深度网络的拓扑构造(ex.solver.prototxt, net.prototxt)。

                基于Hadoop集群的大范围散布式深度学习

                如上图所示,在YARN的Spark加载了一些executor。每个executor分派到一个基于HDFS的训练数据分区,然后开启多个基于Caffe的训练线程。每个训练线程由一个特定的GPU处置。运用反向传达算法处置完一批训练样本后,这些训练线程之间交流模子参数的梯度值。这些梯度值在多台效劳器的GPU之间以MPI Allreduce 方式停止交流。我们晋级了Caffe,以支持在一台效劳器上运用多个GPU,并以RDMA协议来同步DL模子。

                Caffe-on-Spark让我们集Caffe与Spark二者之优点,将其使用于大范围深度学习,使深度学习义务如别的Spark使用一样易于操纵。集群中的多个GPU被用于训练基于HDFS大范围数据集的模子。

                功能测试

                Caffe-on-Spark支持(a)多个GPU,(b)多台呆板停止深度学习。为了表现我们办法的劣势,我们在ImageNet 2012数据集上停止功能比照测试。

                起首,我们在单个Spark executor中辨别运用1个、2个、4个、8个GPU对AlexNet数据集停止深度学习。如下图所示,训练工夫随着GPU数目添加而延长。当GPU数目为4个时,我们仅破费单个GPU所需工夫的15/43=35%就能获得50%的精确率。一切上述实行进程的批巨细均为256。运用8个GPU相比4个GPU功能并没有明显提拔。由于每个GPU处置的数据量太少而无法充沛天时用硬件功能。

                基于Hadoop集群的大范围散布式深度学习

                随后,我们又在GoogLeNet数据集上停止了散布式功能比照测试,该测试比AlexNet的测试更深,且运用了更多的卷积运算,因而需求更强的盘算才能。在每一轮运算中,我们给每个GPU分派的批巨细为32,当有n个GPU到场运算时,32n是最无效的巨细。我们的散布式算法旨在天生模子而且到达和单个GPU相称的精确率。运用4台效劳器(4x8个GPU)训练,能在10小时内使top-5精确率超越80%(20%的偏差)。留意1个GPU训练40小时后也只能到达60%的top-5精确率(40%的偏差)。

                基于Hadoop集群的大范围散布式深度学习

                GoogLeNet范围随着GPU数目的添加而扩展。关于60%的top-5精确率(40%的偏差),8个GPU能比1个GPU提速680%。下表表现了到达70%和80% top-5精确率的速率提拔幅度。假如我们细心调解批数据巨细(并不是将批巨细都设为32n),速率还能提拔更多。

                开源资源

                承袭Yahoo的开源答应,我们向github.com/BVLC/caffe上传了一局部代码:

                #2114…容许Caffe在单台盘算机上运用多个GPU

                #1148…支持盘算机之间以RDMA协议传输数据

                #2386…提拔了Caffe的数据管道和预取技能

                #2395…添加计时信息

                #2402…变动Caffe的IO依赖为可选

                #2397…重构Caffe的解法代码

                在接上去几周的后续文章中,我们将分享Caffe-on-Spark的详细设计和完成细节。假如社区有充足的兴味,我们大概会开源完成的代码。请将您的想法见告我们bigdata@yahoo-inc.com

                总结

                这篇文章开端描绘了将Apache Hadoop生态零碎和深度学习集成在统一个异构(GPU+CPU)集群的做法。晚期的功能比照后果使我们倍受鼓动,并方案在Hadoop、Spark和Caffe投入更多精神来使得深度学习在我们的集群上愈加无效。我们等待和开源社区的冤家们在相干范畴的并肩作战。

                原文链接:Large Scale Distributed Deep Learning on Hadoop Clusters(译者/赵屹华 审校/刘帝伟、朱正贵、李子健 责编/周建丁)

                译者简介:赵屹华,搜狗算法工程师,存眷大数据和呆板学习。

                持续阅读
                中国存储网声明:此文观念不代表本站态度,若有版权疑问请联络我们。
                相干阅读
                产物引荐

                头条阅读
                栏目热门

                Copyright @ 2006-2019 ChinaStor.COM 版权一切 京ICP备14047533号

                中国存储网

                存储第一站,存储流派,存储在线交换平台