[关闭]
@lsmn 2016-10-20T09:19:21.000000Z 字数 3892 阅读 3037

Peter Cnudde谈雅虎如何使用Hadoop、深度学习和大数据平台

Yahoo Hadoop 大数据 深度学习


摘要

雅虎在大数据&机器学习领域的不同场景中使用了Hadoop。他们还在自己的产品(如Flickr)中使用了深度学习技术。为了了解雅虎如何利用大数据平台技术,InfoQ采访了雅虎工程部门副总裁Peter Cnudde。

正文

本文要点

  • 了解雅虎如何利用Hadoop和大数据平台技术;
  • 在类似Flickr和Esports这样的产品中,雅虎如何使用深度学习技术进行场景检测和对象识别;
  • 机器学习在图像识别、定向广告、搜索排名、滥用检测和个性化中的应用;
  • Hadoop集群上用于分类和排名的机器学习算法;
  • 团队在实现大数据和机器学习方案方面遇到的挑战。

雅虎在大数据&机器学习领域的不同场景中使用了Hadoop。他们还在类似Flickr和Esports这样的产品中使用了深度学习技术。

为了了解雅虎如何利用Hadoop和大数据平台技术,InfoQ采访了雅虎工程部门副总裁Peter Cnudde。

InfoQ:目前,雅虎在什么场景或应用程序中使用了Hadoop?

Peter Cnudde:由于Hadoop是雅虎10年前创建的,所以它已经成为雅虎最重要的底层技术之一,支撑着我们的业务,使我们可以实现我们核心的产品体验。起初,我们将Hadoop用于Web搜索,但多年来,它已经成为我们服务于全球10亿多用户的核心所在。不管是增加用户参与度的内容个性化,将合适的广告展示给合适的人的广告定向投放和优化,作为新收入来源的“自然广告”和移动搜索货币化,垃圾邮件过滤,还是一些有趣的特性,如Flickr的魔法视图——全都跟Hadoop有关。如今,在不同的业务领域里,我们已经有将近300个独特的Hadoop平台应用场景。

InfoQ:您的团队还将Apache Spark用于大数据处理和分析需求吗?

Cnudde:是的,我们有多个团队使用Spark,并用它进行试验。事实上,Spark占据了Hadoop集群上12%的月度计算使用率(截止2016年7月)。雅虎其实是Spark的早期资助者,那会加州大学伯克利分校正在开发它。我们一直在使用它,并逐步发展成今天的样子。我们面临的最大挑战仍然是扩展和性能,但改进工作一直在不断地进行。

有一件事需要注意,就是我们没有将Spark用于传统的分析型工作负载或者ETL过程,因为我们发现,对我们而言,Hive和Pig/Tez分别是更好的解决方案。Spark的优势主要体现在更高级的内存密集型应用场景,如图型计算和机器学习。

InfoQ:你们如何将Hadoop用于机器学习?什么应用场景或业务问题是由ML程序解决的?

Cnudde:和Hadoop一样,机器学习对于我们的每一项业务而言都很关键,从图像识别,到广告定向投放,到搜索排名,到滥用检测,再到个性化。我们一直在寻找更好的机器学习方案解决数据密集型问题。我们在Hadoop集群上开发了一个可扩展的机器学习算法,基于自主开发的参数服务器进行分类、排名以及生成词向量。在雅虎,这些集群现在已经成为大规模机器学习的首选平台。一个例子是我们如何实现个性化算法,以便更好地跟踪我们的用户更喜欢阅读什么故事或内容(新闻、财经等)。机器学习让我们可以准确地跟踪一个人阅读一篇文章的时长,或者他们是否阅读了相关的故事,而不只是以“点击”作为基本的参与单元。另一个例子是我们开发了一个分布式词向量生成算法,通过用户的查询匹配出有类似语义向量的广告,而不是采用传统的语法匹配。我们的词向量生成算法可以处理1亿个词语,比业内的其他实现多10倍。通过这些算法,我们可以更好地了解用户的需求和兴趣,改进我们的产品和内容,优化我们的搜索服务,更好地服务于我们的用户和广告客户。

InfoQ:在类似Flickr和Esports这样的产品中,你们如何使用深度学习?您可以谈一下你们正在使用的算法和技术吗?

Cnudde:深度学习是Flickr场景检测、对象识别和“计算美学(computational aesthetics)”的基础,可以自动简化照片的分类和组织,而且效果更好。我们使用了一个深卷积神经网络,将输入图像转换成一个短浮点向量。我们将这个浮点向量传递给1000多个二元分类器,其中每个分类器都经过训练,会针对一个具体的对象/场景类别为我们提供一个是或否的答案。CaffeOnSpark让Flickr可以在Hadoop集群上训练数以百万计的照片,并且显著地提高了分类准确率。Flickr的用户已经从准确率的提高受益,他们可以得到更好的图像搜索结果。

借助Esports,我们可以自动从现场直播视频流中实时地检测比赛的精彩片段。我们的方案以计算机视觉和深度学习为基础。我们训练了一个模型“观看”比赛,根据由领域专家标注的几百个小时的比赛视频,预测视频中任何特定的时刻是否精彩。目前,我们在两个应用程序中使用了这个方案——自动生成推特和比赛概况生成。

一般而言,从任何类型的视频中检测精彩片段都非常具有挑战性,因为这个问题存在主观性——我们如何定义精彩片段?我们没有构建一个具有多个视觉识别器的系统用于检测视觉特征(如英雄联盟中惹人注目的灯光或炮塔),我们的方案是以卷积神经网络为基础。这类模型由多个层构成,每个层都从前一个层提取更为高级的信息。这些网络可以使用标记的样本以端到端的形式训练:该网络接收一个图像或者短视频片段作为输入,以像素值的形式读取它们,然后将这些信息转换成语义理解,即在最高层上,图像展示了什么,结果是,它会生成一个与给定标签类似的输出值。简而言之,我们可以训练一个模型,让它学习哪些重要的视觉特征可以定义比赛精彩片段。

我们的方案为我们带来了多方面的好处。首先,我们的系统在运行时无需人为干预,因为经过适当地训练之后,该模型可以自动从视频中检测出比赛精彩片段;这让我们可以扩展到多场比赛,通宵达旦地进行匹配。其次,我们可以标准化多项赛事的开发流程——各项赛事之间唯一的不同是训练数据集,那是我们在领域专家的帮助下标注的。

InfoQ:您能从可扩展性、性能和安全性等方面谈一下实现机器学习方案的最佳实践吗?

Cnudde:任何平台的扩展和演化都很难在不牺牲速度和稳定性的情况下完成,每个人都应该预见到面临的挑战。直接在Hadoop集群上实现可扩展的机器学习算法已经在许多方面简化了我们的工作,尤其是在数据传输和安全方面。我们直接在Hadoop集群中已有的HDFS数据集上运行算法,并利用Hadoop的原生安全特性。为了运行针对大规模机器学习和深度学习应用程序的参数服务器,我们还使用大内存的GPU服务器对Hadoop集群进行了增强。为了操作这些异构的集群,我们大量地使用了YARN的特性。在GPU服务器之间,除了如今大多数Hadoop集群服务器之间直接通信所采用的传统10G以太网,我们还使用100G的无限带宽连接对GPU服务器之间的网络进行了增强。这些增强的主要目的是避免扩展瓶颈,加快学习速度。

另外,我们希望深度学习进一步推动机器学习的发展。一直以来,深度学习都是学术热点,而深度学习算法目前在许多基准测试中都胜过了传统的机器学习算法。除了类似Spark这样的东西外,深度学习现在还需要更多的技术专家,但情况正在迅速改变。Spark社区有浓厚的兴趣对Spark进行更好的整合,让运行深度学习算法和单独运行Spark一样简单。我们开发的Caffe-on-Spark就是这样一种做法,它允许组织将现有的Hadoop或Spark集群改造成一个强大的深度学习平台,完全分布式,而且支持增量学习。Caffe-on-Spark提供的高级API让用户可以在任何云(如AWS EC2)上启动它。

InfoQ:在实现的过程中,您的团队遇到了哪些挑战?

Cnudde:我们为拥有世界上其中一个最大规模的Hadoop部署而自豪。我们的部署有超过36000台服务器,跨17个YARN集群使用680PB的HDFS存储数据,每月运行4000万个Job。如果将另外23个多租户HBase和Storm集群包含进来,则其规模接近45000台服务器。

此外,我们始终是最先采用新兴Hadoop技术并将其稳定性提升至产品级的公司之一。做第一个,有着显而易见的挑战和回报——先于他人发现问题并修复它们,但这也让我们可以先于他人获得最大收益。我们相信,我们的做法,连同世界上众多公司和个人的贡献,推动了Hadoop技术的发展。

其次,我们以网络规模运行这些技术,发现有许多那种规模所特有的问题需要我们处理。通常,这些问题更难检测和修复,因为它们在规模较小时不会出现。

最后,我们将所有的集群都作为共享的多租户集群进行操作,以降低成本,提高利用率。安全和资源管理/隔离非常重要,我们花费了大量的时间和精力来解决我们遇到的挑战。例如,我们在运行集群时会启用安全和高级防护,让多个团队使用相同的基础设施。通过在一个单独的cgroup容器中运行每项任务,我们实现了很好的隔离,严格控制它们可以消耗的内存和CPU资源。

关于受访者

Peter Cnudde是雅虎工程部门的副总裁,负责公司的大数据和机器学习平台。他对大规模机器学习及其对社会的影响特别感兴趣。以前,Peter在多家无线通信公司工作过,包括Alcatel和RF Micro Devices。他拥有比利时根特大学的电气工程硕士学位。

查看英文原文:Peter Cnudde on How Yahoo uses Hadoop, Deep Learning and Big Data Platform

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注