QCon全球软件开发大会8折优惠倒计时,购票立减¥1760!了解详情 >>> 了解详情
写点什么

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

2016 年 11 月 28 日

本文要点

  • 了解雅虎如何利用 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

2016 年 11 月 28 日 16:382151
用户头像

发布了 1008 篇内容, 共 321.1 次阅读, 收获喜欢 292 次。

关注

评论

发布
暂无评论
发现更多内容

Go协程并发之百万级并发「让我们一起Golang」

Regan Yue

go 高并发 协程 8月日更 8 月日更

解决「停车难」,EMQ 映云科技数据接入方案在智慧停车平台中的应用

EMQ映云科技

大数据 物联网 移动互联网 智慧交通 emq

2021年8月国产数据库排行榜:TiDB稳榜首,达梦返前三,Kingbase进十强,各厂商加速布局云生态

墨天轮

数据库 opengauss TiDB oceanbase 国产数据库

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之EXCEL数据导出(十三)

crudapi

Vue crud crudapi qusar 数据导出

Go 学习笔记之 反射

架构精进之路

go 8月日更

BHEX Chain BBS跨链桥上线 打造DeFi世界的交通系统

区块链小八歌

FastApi-10-Example

Python测试和开发

FastApi 8月日更

主打年轻群体,2022款欧拉黑/白猫6.98万元起正式预售!

科技热闻

校庆小程序开发案例与部署实践

CC同学

Compose 中的 ConstraintLayout

Changing Lin

8 月日更

Debian 10 安装 phpMyAdmin

淘皮学院

MySQL 服务器 PHP-FPM MariaDB Debian

MySQL 系列教程之(一)初识 MySQL

若尘

MySQL 八月日更

Vue进阶(二十八):浅析 Vue 中 computed 与 method 区别

No Silver Bullet

Vue 八月日更 computed

netty系列之:文本聊天室

程序那些事

Java Netty nio 程序那些事

跟我读论文丨ACL2021 NER 模块化交互网络用于命名实体识别

华为云开发者社区

自然语言处理 机器学习 ACL2021 NER 模块化交互网络 实体识别

API纠错+翻译,就等您大展身手!

Geek_6cdeb6

Java Array 和 String 的转换

HoneyMoose

【LeetCode】二叉树的镜像Java题解

HQ数字卡

算法 LeetCode 8月日更

3 条掏心掏肺的建议,新手学习编程必备,快上车!

沉默王二

编程

学习笔记:HTTP消息的响应码

姬翔

从0开始的TypeScriptの六:webpack5热更新打包TS

空城机

JavaScript typescript 前端 8月日更

【Vue2.x 源码学习】第三十四篇 - 组件部分-Vue组件与初始化流程简介

Brave

源码 vue2 8 月日更

手撸二叉树之二叉树的最近公共祖先

HelloWorld杰少

数据结构与算法 8 月日更

4种基于像素分割的文本检测算法

华为云开发者社区

目标检测算法 文本检测 像素分割 文本检测算法 文本

大厂offer?拿来吧你!网易有道笔试编程题特辑

有道技术团队

招聘 笔试 #技术干货# 网易有道

“互联网+”大赛之智慧校园赛题攻略:你的智慧校园,WeLink帮你来建

华为云开发者社区

小程序 华为云 welink 智慧校园 “互联网+”大赛

云小课 | 网络知识一箩筐——NAT网关,让IP地址华丽变身,轻松实现内外网互通

华为云开发者社区

私网NAT网关 NAT网关 公网NAT网关

Apache Pulsar 里程碑简史:打造统一消息流平台与生态

Apache Pulsar

Apache Pulsar StreamNative

源码级深挖AQS队列同步器

码农参上

AQS 锁机制

B轮融资逾2亿高瓴创投领投,最懂金融的RPA厂商金智维有何不凡之处?

王吉伟频道

RPA 金融科技 机器人流程自动化 做市机器人 金智维

Spring @Transactional 注解事务

Rubble

springboot 8 月日更

移动应用开发的下一站

移动应用开发的下一站

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