共计 1953 个字符,预计需要花费 5 分钟才能阅读完成。
过去十年中,雅虎在 Apache Hadoop 集群构建和扩展方面投入了很大的精力。目前,雅虎有 19 个 Hadoop 集群,其中包含 4 万多台服务器和超过 600PB 的存储。他们在这些集群上开发了大规模机器学习算法,将 Hadoop 集群打造成了雅虎首选的大规模机器学习平台。近日,雅虎 Big ML 团队的 Cyprien Noel、Jun Shi 和 Andy Feng 撰文介绍了雅虎在 Hadoop 集群上构建大规模分布式深度学习的实践。
深度学习(DL)是雅虎的许多产品都需要的功能。比如,Flickr 的场景检测、对象识别、计算审美等功能均依赖于深度学习。为了使更多产品从机器学习中受益,他们最近将 DL 功能引入到了 Hadoop 集群本地。在 Hadoop 上进行深度学习主要有以下好处:
- 深度学习直接在 Hadoop 集群上执行,可以避免数据在 Hadoop 集群和单独的深度学习集群之间移动;
- 同 Hadoop 数据处理和 Spark 机器学习管道一样,深度学习也可以定义为 Apache Oozie 工作流中的一个步骤;
- YARN 可以与深度学习很好地协同,深度学习的多个实验可以在单个集群上同时进行。与传统方法相比,这使得深度学习极其高效。
DL on Hadoop 是一种新型的深度学习方法。为了实现这种方法,雅虎主要做了如下两个方面的工作:
- 增强 Hadoop 集群:他们向 Hadoop 集群添加了 GPU 节点。每个节点有 4 个 Nvidia Tesla K80 卡,每个卡有 2 个 GK 210 GPU。这些节点的处理能力是传统商用 CPU 节点的 10 倍。GPU 节点有两个独立的网络接口 Ethernet 和 Infiniband。前者作为外部通信接口,后者速度要快 10 倍,用于连接集群中的 GPU 节点以及为通过 RDMA 直接访问 GPU 内存提供支持。借助 YARN 最新推出的节点标记功能,可以在作业中指定容器是在 CPU 上运行还是在 GPU 上运行。
- 创建 Caffe-on-Spark:这是他们基于开源软件库 Apache Spark 和 Caffe 创建的一个分布式综合解决方案。借助它,通过几条简单的命令就可以将深度学习作业提交到 GPU 节点集群,并且可以指定需要启动的 Spark executor 进程数量、分配给每个 executor 的 GPU 数量、训练数据在 HDFS 上的存储位置以及模型的存储路径。用户可以使用标准的 Caffe 配置文件指定 Caffe solver 和深层网络拓扑。Spark on YARN 会启动指定数量的 executor,每个 executor 会分得一个 HDFS 训练数据分区,并启动多个基于 Caffe 的训练线程。
上述工作完成后,他们在两个数据集上对该方法进行了基准测试。在 ImageNet 2012 数据集上的测试显示,与使用一个 GPU 相比,使用 4 个 GPU 仅需要 35% 的时间就可以达到 50% 的准确度。而在 GoogLeNet 数据集上的测试表明,8 个 GPU 达到 60% top-5 准确度的速度是 1 个 GPU 的 6.8 倍。
这说明他们的方法是有效的。为了使 Hadoop 集群上的分布式深度学习更加高效,他们计划继续在 Hadoop、Spark 和 Caffe 上的投入。
雅虎已经将部分代码发布在 GitHub 上,感兴趣的读者可以进一步了解。
下面关于 Hadoop 的文章您也可能喜欢,不妨看看:
Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程 http://www.linuxidc.com/Linux/2015-02/113487.htm
CentOS 安装和配置 Hadoop2.2.0 http://www.linuxidc.com/Linux/2014-01/94685.htm
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-10/124596.htm