独家探秘雅虎深度学习项目

作为分布式计算(Hadoop)的鼻祖,雅虎是开源软件的大用户。事实上,它拥有的三万两千个节点集群仍然是世界上最大的,通过4万个Hadoop节点传输超过600字节的数据,显然,在分布式计算领域,雅虎值得信赖。毕竟,Doug Cutting 和Mike Cafarella 10年前首次创造分布式计算时,就已经在为雅虎工作了。但是最新的消息显示,雅虎公司正在逐渐打破传统分布式计算的限制,并不断渗入到高性能计算(HPC)的传统领域。 一篇博客显示,雅虎的工程部门共享其研究成果信息来直接在分布式计算的基础上创建大规模深度学习环境。通过将Hadoop节点与GPU(Graphic Processing Unit,图形处理器)相连(比如,四个NVIDIA Tesla K80芯片,每个都带有两个GK210 GPU),节点与100G的无线宽带互联,雅虎已经在深度学习算法方面做了充足准备。 「相比于传统Hadoop硬件,这是一个更像传统超级计算机和HPC成果的高计算性能硬件设施。」雅虎工程副总裁Peter Cnudde告诉Datanami,「因为GPU具有高计算能力和高宽带内存,所以它是实现深度学习算法的最好方法。业内诸多人士都在使用GPU算法,因为我们也在使用。」
Spark和Caffe技术
雅虎的深度学习是基于Hadoop技术堆栈运行的。该硬件确实令人印象深刻,雅虎博客显示:每个GPU节点的处理能力都是传统CPU节点的10倍。但同样令人印象深刻的还有雅虎在软件方面采用Spark技术与GPU相结合来增强深度学习能力来正常运行Hadoop设备。 2015-10-19-1 雅虎让开源Caffe数据包(为GPU提供编程框架)能与Spark技术一同工作。「我们的基本思想是通过一种松散的耦合方式将Spark和Caffe技术结合起来。」Cnudde说。对于已经精通Spark技术和熟悉弹性分布式数据集(resilient distributed datasets,RRDs)概念的用户来讲,将Caffe技术与GPU相结合小菜一碟。 2015-10-19 「如果你已经在Spark上运行传统处理程序,并且你的数据已经在Spark上并且形成一个RDD,下面,你只需调用Caffe图书馆程序,它就会自动在GPU上运行,结果是一个Spark上的具体RDD,你可以对其进行下一步操作,」Cnudde说,「这就是我们所提供的功能。因此对于那些只是熟悉但是并不真正精通Spark技术的人来说,只需一系列应用程序编程接口(Application Programming Interface,API)调用就能轻松运行。」 雅虎将这一能力贡献给开源社区,希望它能帮助其他Hadoop和Spark用户采用深度学习技术,比如GPUs和Caffe。
分布式计算走入深度学习
Hadoop是雅虎业务的关键,它将所有的数据存储在分布式文件储存系统中(Hadoop Distributed File System,HDFS)并依靠YARN(Apache Hadoop YARN,新型 Hadoop 资源管理器)的力量使数据中包含不同计算引擎的计算结果。因此,Cnudde团队很自然地基于Hadoop建立了深度学习环境,随着它的建立,雅虎的各个团队欢心鼓舞,都致力于其应用的开发。 雅虎在其Hadoop集群的深度学习部分采用了以太网和无线宽带两种技术。「Hadoop的关键在于其完善的生态系统,」Cnudde说,「我们所有的数据都在HDFS中,并且所有不同的计算环境都十分严格。因此我们能用传统MapReduce基于现有路径准备数据,然后在同一硬件上可对这些数据运用传统Spark程序或对其进行分析。」 为深度学习添加GPU节点只需要在Hadoop中加入另一个纬度即可。「在我们最大的Hadoop集群中有GPU节点,因此,在同一环境中,我们运行GPU,然后将结果转存到HDFS上,随后预先设定好的程序便能对其进行后期处理。」 Spark和Caffe技术的结合是雅虎深度学习的关键。雅虎的深度学习系统包含了三个不同阶段,即数据预处理,运行深度学习算法和后期处理。Spark技术应用于第一和第三阶段,同时雅虎使用其自己的算法。「我们的数据集通常十分庞大,我们发现Spark技术非常适用于初期阶段的数据准备和传统类似ETL(Extraction-Transformation-Loading,数据提取、转换和加载)功能的数据处理。」Cnudde说,「对于核心的机器学习,我们有比Spark更好、更专业的内部引擎来进行处理,比如运用Caffe技术的GPU。然后后期处理方面,对于数据科学家来说,Spark很擅长提供交互分析功能。」
深度学习的成长
雅虎的深度学习环境目前主要用于Flickr(雅虎的子公司)上用户图片的分类和检测,但是在其他领域的应用也指日可待。「机器学习是我们每一部分业务的关键所在,从图像识别,人体追踪,广告定位,搜索排名到个性化定制和异常检测都有涉及,」Cnudde说,「而且我认为深度学习的应用范围不仅局限于此,仍有大量其他内部应用我们没有公之于众。它贯穿于我们所有的业务当中,请大家自行想象。」 如Cnudde所见,深度学习基本能擎起机器学习未来发展方向的大旗。「学术界对深度学习拥有巨大兴趣,因此,深度学习算法在几乎每一领域都能击败传统机器学习算法,例如图像识别等。」他说。 虽然如今的深度学习仍需要进一步提高技术水平,但随着技术的迅速成熟,深度学习技术的普及进程将加快。「虽然此时这些深度学习的工具仍旧很难用,」Cnudde说,「需要比Spark技术更高层次的接近学术水平的技术来改善这一状况。但是我相信,深度学习终将进化,而且依靠Spark团体的浓厚兴趣,深度学习算法将变得更加简单易用。」 机器之心编译出品,编译:孟婷
入门