写点什么

后 Hadoop 时代,爱奇艺如何有效整合大数据和 AI 平台?

  • 2021 年 9 月 11 日
  • 本文字数:3238 字

    阅读完需:约 11 分钟

后Hadoop时代,爱奇艺如何有效整合大数据和AI平台?

采访嘉宾 | 刘骋昺

编辑 | Tina

 

大数据是人工智能的基础。从大数据到数据分析再到 AI 应用的转变,这也是一个很自然的发展过程。但是只有在数据、算法、企业的场景应用三者紧密配合的前提下,才可以有效地提升整个 AI 业务的流程。因此,爱奇艺在原来的数据积累基础上,进一步的完善了技术平台,形成了大数据+AI 的统一架构,同时兼顾了数据、算法训练、人力物力算力等多方面的因素。那么爱奇艺在探索和实践过程中,有哪些沉淀出的经验可以分享给大家?InfoQ 采访了爱奇艺大数据计算团队负责人刘骋昺,得到了一个初步的了解。

 

刘骋昺将在 2021 年 11 月 5-6 日全球人工智能与机器学习技术大会(北京站)2021 上进行主题为《爱奇艺 Bigdata+AI 统一架构探索与实践》的演讲,更多内容可以通过观看演讲进行了解。

 

嘉宾简介:刘骋昺,毕业于上海交通大学计算机系,2014 年加入爱奇艺,先后负责 Hadoop 运维和研发,计算引擎和平台的设计和开发工作,对大数据服务的底层优化和平台建设有丰富经验。目前是大数据计算团队负责人,负责 Spark/Flink 计算引擎、离线工作流、实时计算、实时分析、机器学习平台等相关工作。

 

InfoQ:您们选择 On-Prem 还是 Cloud 来实现大数据+AI 平台?为什么?您们是如何做决策的?

 

刘骋昺:目前我们采用 On-Prem 和 Cloud 的混合云部署模式,以私有云部署为主体,在部分业务探索引入公有云服务。

 

经过初步探索,我们发现公有云和私有云各有优劣,且能相互补充。公有云的优势在于按量付费,对于探索性的业务(如不确定使用什么硬件最合适),公有云的试错成本较低;对于峰谷效应明显的业务,公有云的自动扩缩容能力也能够帮助我们降低成本。私有云在运维支持端、稳定且高负载场景的成本端的表现更好。

 

在我们看来,我们采用的混合云部署模式主要有两方面的好处。一方面,通过搭建统一的服务管理平台,对用户屏蔽底层使用的私有云或公有云资源,降低业务接入与切换的难度;另一方面,利用私有云部署,获得对云厂商的议价能力,同时保持对公有云动态的及时跟进,不断审视和改进私有云的服务能力。

 

InfoQ:在之前的未曾改造的爱奇艺大数据平台上运行机器学习任务,存在哪些挑战?

 

刘骋昺:机器学习与大数据平台的结合,我们主要讨论特征数据处理与模型训练两方面。传统的大数据平台一般以 Hadoop(HDFS+YARN)为基础,运行 MapReduce、Hive、Spark、Flink 等计算框架。

 

在特征数据处理方面,我们最常用的是 Hive 和 Spark,要把计算任务跑起来难度不大,主要的挑战在于工程效率与大数据量下的性能表现。

 

相比而言,在模型训练方面的挑战更大,主要体现在:

1)框架支持:需要在 Hadoop 上支持分布式地运行机器学习框架(如 TensorFlow、PyTorch 等);

2)资源调度:机器学习任务单进程的 CPU、内存资源占用经常较大,且不同进程的资源需求不同,需要考虑这些在 Hadoop 集群上如何分布才能最大化资源利用率;另外,有的模型训练需要用到 GPU,YARN 从 3.0 版本开始加入了对 GPU 的支持,在后续版本逐步完善;

3)Docker 支持:机器学习任务对环境依赖较多且各不同,因此加入对 Docker 的支持就显得十分必要,而老版本的 Hadoop 集群对 Docker 的支持比较初级,所以也需要对 Hadoop 集群做版本升级。

 

InfoQ:大数据+AI 平台的“整合”,关键要解决的核心问题是什么?

 

刘骋昺:核心问题是数据和计算的整合。传统的机器学习把数据放在一台独立的机器上,仅利用单机的计算资源进行模型训练,如此一来,大数据和 AI 成了两个完全独立的系统。而只有充分利用大数据平台丰富的存储和计算资源,才能充分发挥 AI 的威力。因此,整合的核心问题是把 AI 相关的数据接入大数据平台,并利用大数据平台的计算资源运行分布式的模型训练,将特征生产、样本生产、模型训练、模型管理打通

 

有了数据和计算的整合,下一步是元数据的统一管理,可以帮助我们解决烟囱式开发的问题,节省开发人力和计算资源,提高数据和模型质量。

 

InfoQ:架构上是如何实现存储计算分离的?您们是如何兼顾存储和计算的效率?

 

刘骋昺:我们通过自研 QBFS(爱奇艺大数据文件系统)实现存储计算分离。QBFS 是一个虚拟的文件系统,底层支持多种存储类型(HDFS、公有云对象存储、私有云对象存储等),通过虚拟路径与底层存储的映射关系,实现计算任务在任何集群都能访问 QBFS 中的数据,即事实上的存储计算分离。

 

存储计算分离在取得分层存储降低存储成本、跨集群统一访问、透明迁移等优势的同时,势必会带来一些问题,如跨集群访问效率下降、网络流量上升等。我们的应对措施有如下几点:

1)使用先进的压缩算法、EC 等技术,降低文件大小;

2)通过优化文件格式,采用列式存储,降低读取的数据量;

3)使用分布式缓存技术(如 Alluxio),避免对同一份数据的多次读取(目前处于测试阶段);

4)数据读取与计算同时进行:以 TensorFlow 为例,使用 Dataset API 实现数据读取 Pipeline,在计算的同时读取下一步计算所需的数据,使得计算可以连续进行,数据读取不成为限制计算时长的因素。

 

InfoQ:是否存在多租户的问题?您们通过什么技术手段解决这些供需关系?

 

刘骋昺:我们的大数据+AI 平台是支持多租户的,租户的粒度是一个具体的业务或者项目。需要解决的问题有:

 

1)平台接入:用户在平台上提交任务,平台以超级用户代理为业务用户,提交任务到集群,这里用到了 Hadoop 的 proxy user 的机制;

2)计算资源隔离:利用 YARN 的 scheduler,业务根据需求申请计算队列,管理员通过设置队列的 min、max、weight、max applications 等属性控制各种条件下一个队列能够申请的资源量,实现计算资源的分配与隔离。

 

InfoQ:构建统一的大数据+AI 平台系统最容易出现的瓶颈是什么?您们是如何解决的?

 

刘骋昺:在特征数据处理方面,大量的计算任务会占据大量的计算资源,拖慢整体的产出时间。平台通过建立统一的特征库,实现基于配置的特征计算,统一优化计算效率,并加强特征复用,减少重复计算,使得产出时间得到保障。

 

在模型训练方面,大规模分布式训练会占用较多的 CPU、内存、网络带宽等资源。平台通过监控资源利用率,合理分布不同类型的进程(如搭配内存需求大的任务和 CPU 需求大的任务),采用合适的机型等措施,提高资源利用率。

 

InfoQ:针对爱奇艺的场景,研发这套平台时,您们做了哪些定制化的工作?

 

刘骋昺:定制化的工作主要体现在特征算子上。我们整理了特征计算中常用的 10 多种计算逻辑,在启用平台之前,这些逻辑一般通过 SQL 表达,多种逻辑的组合使得 SQL 较长,可读性较差。我们将这些逻辑抽象成算子,算子之间通过协同工作形成一张 DAG 图,以此来代替 SQL,增强逻辑的可读性,并统一优化计算效率。

 

InfoQ:运行这套平台之后,它对业务最大的改善目前体现在哪里?

 

刘骋昺:首先,大规模分布式的模型训练更加便利,而且性能也得到了大幅提升,业务可以采用更多的数据,更早产出模型,提升业务效果。

 

其次,特征管理、生产、监控与复用为业务提供了更规范化的方式,避免了烟囱式开发,提升了开发、计算效率和数据质量。

 

InfoQ:展望未来,您们看到可能的大数据+AI 平台的发展方向/技术趋势是什么?

 

刘骋昺:在未来,随着更多的业务场景采用机器学习,模型的复杂度越来越高,大数据平台中 AI 计算所占的比例会进一步提高。

 

在 AI 技术方面,由于短视频和信息流技术的发展,实时化的 online learning 会被更多业务场景采用。

 

最后,随着多方合作需求增加,以及国家对隐私保护和数据安全的法规逐步落地,以联邦学习和多方安全计算为代表的隐私计算技术会得到更广泛的应用。

 

活动推荐

 

11 月 5-6 日,AICon 全球人工智能与机器学习技术大会将落地北京国际会议中心。包括主题演讲在内,本次大会共设置了 NLP 技术与应用、人工智能前沿技术、通用机器学习技术、计算机视觉实践、推荐广告技术与实践、AI 工程师团队建设与管理、认知智能的前沿探索、AI 与产业互联网结合、大数据计算和分析、智能语音前沿技术应用、大规模预训练模型进展、自动驾驶技术等 14 个专题。目前大会门票限时 8 折特惠中,购票欢迎联系票务小姐姐文柳:13269078023(电话同微信)

2021 年 9 月 11 日 08:004902

评论

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

RocketMQ中的事务消息

废材姑娘

RocketMQ

快的不止一点点!阿里强推的“Redis速成手册”也太香了吧

互联网架构师小马

Java 数据库 nosql redis 缓存

Spring 源码学习 14:initApplicationEventMulticaster、onRefresh 和 registerListeners

程序员小航

spring 源码 源码阅读

大流量场景下如何云淡风轻地进行线上发布?

阿里巴巴中间件

【Mysql-InnoDB 系列】锁定读

程序员架构进阶

MySQL innodb 锁机制 28天写作

玩一玩Linux常见命令第二篇

程序员的时光

程序员 28天写作

创业失败启示录|校园微生活(故事篇3)

青城

28天写作 创业失败启示录 青城

三分钟快速掌握 maven插件

田维常

maven

pub哥的2020文章清单

JavaPub

Java javapub

油车和电车比到底哪个整体能源利用效率高?(28天写作 Day6/28)

mtfelix

自动驾驶 28天写作 电动汽车

读书笔记:《中产阶级如何保护自己的财富》

lidaobing

28天写作 中产阶级如何保护财富

28天瞎写的第二百一七天:你们 CentOS 服务器还有图形界面啊?

树上

28天写作

Kubernetes介绍篇:是什么?为什么要用?

xcbeyond

Docker Kubernetes 容器 28天写作 Kubernetes从入门到精通

醒醒!Python已经支持中文变量名啦!

Python猫

Python

【TF2系列笔记】Day01:在VSCode中创建开发环境

IT蜗壳-Tango

七日更 TF2

【计算机内功修炼】五:从小白到高手,你需要理解同步与异步

码农的荒岛求生

异步 同步 回调函数

[4/28]保障产品高质量交付业务价值

俊毅

数据结构与算法-时间和空间复杂度

Byte_Panda

算法

测试一年多,上线就崩溃!微服务到底应该怎么测试?

阿里巴巴中间件

中间件

Docker真的被Kubernetes放弃了吗?

蔡超

Docker Kubernetes 云原生

精选算法面试-数组(二分查找)

李孟

面试 算法 数组 28天写作

LeetCode题解:105. 从前序与中序遍历序列构造二叉树,递归+数组切割,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

28 天带你玩转 Kubernetes-- 第六天(玩转 Docker命令)

Java全栈封神

Docker k8s 28天写作 docker命令

不要用+""代替强转

BerryMew

简单三招,每个管理者都可以成为有温度的共情高手

一笑

沟通与管理 28天写作

为什么我们需要自动化回归?

阿里巴巴中间件

中间件

DevSecOps:好处和挑战

啸天

敏捷开发 运维自动化 DevSecOps 应用安全

HBase 底层原理详解(深度好文,建议收藏)

五分钟学大数据

大数据 HBase

城市生态的机器人革命

脑极体

《适用于初学者的Python》

计算机与AI

Swift 算法-栈

Byte_Panda

算法

数据cool谈(第2期)寻找下一代企业级数据库

数据cool谈(第2期)寻找下一代企业级数据库

后Hadoop时代,爱奇艺如何有效整合大数据和AI平台?-InfoQ