首页 > 资讯 > IT资讯 >

腾讯宣布推出第三代高性能机器学习计算平台Angel 2017年全面开源

2016-12-19

腾讯今日在腾讯大数据技术峰会暨 KDD China 技术峰会上宣布这一消息,腾讯副总裁姚星先生,及腾讯数据平台部总经理、首席数据专家蒋杰先生出席了峰会并发表演讲。

腾讯宣布推出第三代高性能机器学习计算平台Angel,2017年全面开源。腾讯今日在腾讯大数据技术峰会暨 KDD China 技术峰会上宣布这一消息,腾讯副总裁姚星先生,及腾讯数据平台部总经理、首席数据专家蒋杰先生出席了峰会并发表演讲。

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

姚星表示:“人工智能的发展在过去 60 年中几经沉浮,今年终于发出了璀璨光芒,很大的原因就是跟云计算和大数据有关,这是一种演进发展的必然结果。如何处理好大数据,如何在有限的计算资源上对这些大数据进行深入挖掘和分析,这是未来整个产业发展和升级的一个大课题。我相信大数据将成为这次产业升级的基础,核心算法将成为这次产业升级的灵魂。”

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

“面对腾讯快速增长的数据挖掘需求,我们希望开发一个面向机器学习的、能应对超大规模数据集的、高性能的计算框架,并且它要对用户足够友好,具有很低的使用门槛,就这样,Angel 平台应运而生。”蒋杰表示:“机器学习作为人工智能的一个重要类别,正处于发展初期,开源 Angel,就是开放腾讯 18 年来的海量大数据处理经验和先进技术。我们连接一切连接的资源,激发更多创意,让这个好平台逐步转化成有价值的生态系统,让企业运营更有效、产品更智能、用户体验更好。”

Angel 是腾讯第三代的计算平台,使用 Java 和 Scala 语言开发,面向机器学习的高性能分布式计算框架,由腾讯与香港科技大学、北京大学联合研发。它采用参数服务器架构,解决了上一代框架的扩展性问题,支持数据并行及模型并行的计算模式,能支持十亿级别维度的模型训练。

不仅如此,Angel 还采用了多种业界最新技术和腾讯自主研发技术,如 SSP(Stale synchronous Parallel)、异步分布式 SGD、多线程参数共享模式 HogWild、网络带宽流量调度算法、计算和网络请求流水化、参数更新索引和训练数据预处理方案等。这些技术使 Angel 性能大幅提高,达到常见开源系统 Spark 的数倍到数十倍,能在千万到十亿级的特征维度条件下运行。

在系统易用性上,Angel 提供丰富的机器学习算法库及高度抽象的编程接口、数据计算和模型划分的自动方案及参数自适应配置,同时,用户能像使用 MR、Spark 一样在 Angel 上编程,我们还建设了拖拽式的一体化的开发运营门户,屏蔽底层系统细节,降低用户使用门槛。另外,Angel 还支持深度学习,它支持 Caffe、TensorFlow 和 Torch 等业界主流的深度学习框架,为其提供计算加速。

自今年初在腾讯内部上线以来,Angel 已应用于腾讯视频、腾讯社交广告及用户画像挖掘等精准推荐业务。

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

今年 11 月,腾讯云大数据联合团队在有“计算奥运会”之称的 Sort Benchmark 排序竞赛中,用时不到 99 秒完成 100TB 的数据排序,在测试大规模分布式系统软硬件架构能力和平台计算效率的 GraySort 和 MinuteSort 两项排序竞赛中夺得 4 个冠军,将去年冠军的纪录分别提高二到五倍。冠军的背后是腾讯大数据多年的积累,而 Angel 更是腾讯大数据下一代的核心计算平台。

在此次会上,姚星谈到了腾讯对于大数据和人工智能的看法。蒋杰详细分享了此次夺冠背后腾讯大数据的发展之路,及 Angel 系统构建的生态圈层。以下为演讲全文:

演讲主题:腾讯 AI 使命:做每个人的大白,打造广义通用 AI

演讲人:姚星腾讯公司副总裁

大家早上好,非常高兴今天参加 kdd china 技术峰会。

过去的 20 年是信息时代快速发展的 20 年,信息产业的发展远超其他产业。信息产业的发展提升了人类的生活品质,也深深影响着我们这一代人。信息产业的高速发展离不开计算能力的提升,无论是我们使用的处理器计算能力还是网络传输能力,在过往 20 年发展中都保持了“摩尔定律”的趋势,使得我们互联网产品深入千家万户,得到了广泛应用。随着互联网产品渗透率的逐步趋稳,互联网产业今后的发展趋势在哪里?什么样的技术、业务形态会引领后续的产业发展?时至今日,我想答案毫无疑问是人工智能。人工智能在过往的 60 年发展中几经沉浮,起起落落,在今年散发出璀璨的光芒,人工智能的兴起是大数据、云计算科学进步的产物。充分利用计算资源,对海量大数据通过算法进行进一步的挖掘分析,这是互联网产品和产业的未来发展趋势。大数据是基础、核心算法是灵魂。

腾讯公司通过 18 年的发展今天已经成为了世界级的互联网公司。过去我们在产品体验上更加关注的是简单、好用。通过简单的方式提升人们的沟通效率,通过简单的方式让人们轻松享受数字内容时代。在技术上,我们过去更加关注的是工程技术,也就是海量性能处理能力、海量数据存储能力、工程架构分布容灾能力。未来腾讯必将发展成为一家引领科技的互联网公司,我们将在大数据、核心算法等技术领域上进行积极的投入和布局,和合作伙伴共同推动互联网产业的发展。

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

腾讯公司是一家消息平台+数字内容的公司,本质上来讲我们也是一家大数据公司,今天我们每天产生数千亿的收发消息,超过 10 亿的分享图片,高峰期间百亿的收发红包。每天产生的看新闻、听音乐、看视频的流量峰值高达数十T。这么大的数据如何处理好,使用好的确是极具挑战的。在大数据上腾讯也秉承开放生态理念与合作伙伴一起共建大数据生态,在云、支付、LBS、安全方面,与生态合作伙伴共建基础设施,与合作伙伴一起助推产业升级。

今年腾讯成立了 AI 实验室,我们确立的是四个基础的研究方向,包括计算机视觉、语音识别,自然语言处理,以及机器学习。我们也确立了四个业务发展方向:首先我们会聚焦于内容 AI,主要聚焦于搜索和个性化推荐,除了文本以外的深度内容再加上富媒体内容的深度理解。第二个是游戏 AI,这是基于腾讯业务本质特性相关的。我们会打造竞技类游戏相关的 AI 能力。第三个方向我们会构建社交 AI,这是基于我们腾讯最主要的社交平台的 AI。相信在未来的产品形态上会出现智能音响也好,智能助手也好。第四个是云 AI,我们会把我们的图象识别能力、语音识别能力、自然语言处理能力以及大数据机器学习的平台开放给更多的用户使用。腾讯的 AI 使命是最终打造广义通用 AI,实现每个人心中的“大白”。使得我们的小朋友更加的“被理解”,使得我们的成年人更加的“被保护”,使得我们的老年人更加的“被照顾”。

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

目前 AI 整个行业还处于早期阶段,虽然在某些垂直领域已经或者达到了某些人类的平均智能水平,但是这与人的综合智能还相差甚远。无论我们有如何先进的算法模型,我们都需要重新训练数据。无论我们有如何深层的网络模型,本质上都是通过算力解决问题。这和人与生俱来的智能,以及“创造力”、“举一反三”、“归纳总结”能力都相差甚远。但是我们也看到了积极的方向,比如 deepmind 的 reinfocement 的强化学习的发展进步,openai 的 gan 生成对抗网络的发展。这些积极的发展使得 AI 的领域发展日新月异。

我相信在与会的各位专家和各位从业精英的积极投入和参与下,AI 的发展必将朝气蓬勃、势不可挡!最后预祝大会圆满成功!谢谢!

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

演讲主题:Sort Benchmark 夺冠背后

演讲人:蒋杰腾讯数据平台部总经理

大家好,很多人已经知道腾讯获得了今年的 Sort benchmark 的排序的 4 项冠军,很多朋友来问我,腾讯是怎么做到的,背后支撑的究竟是什么样的技术?今天,我借这个机会,跟大伙来讲讲背后的一些故事。

相信很多人看过我们在很多城市机场投放的这个广告,这个广告里面画的是一个赛跑的选手,排序比赛,就跟奥运会的百米赛跑一样,都要很快。但我想说的是,其实我们更像一个长跑选手,我们在跑马拉松,这场马拉松,我们跑了 7 年。

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

回顾过去几年的比赛的成绩,几年前冠军都是被美国企业垄断的,最近三年则是 BAT 拿了冠军。应该说,这几年,国内互联网的发展速度不比美国慢,与此同时,以 BAT 为代表的国内互联网企业的计算能力也不落后于美国。

过去几年,获得冠军的团队,用的基本上都是 Hadoop 和 Spark,其实腾讯的大数据平台,也是始于 Hadoop 的。

我们之所以能获得四项的冠军,是我们经历了几年的打磨,追求极致,我们希望最大限度地压榨机器的性能。

首先,从成本的角度,只有把硬件压榨到极致,成本才会低。我们采用的是 OpenPower 架构的机器,按节点数计算,我们规模只有去年冠军的六份一,按照今年的硬件价格,我们总的 TCO 成本远低于去年冠军。

在调度层面,我们对调度算法做了深度优化,使得每台机器的 CPU、内存、网络、磁盘 IO 等每个环节都能发挥到极致。本次比赛的其中两项为 MinuteSort,比拼的就是一分钟内的排序数据量,这个时间调度的效率就变得非常重要,而这两项比赛我们比去年提升了 5 倍,是提升幅度最高的;这也从另一个方面说明了我们在调度效率上的领先性。总结为一句话,就是最大限度地压榨了硬件的性能,才让我们取得这个成绩。

目前我们用于比赛的这个集群,已经在我们的现网中用起来了,在高性能计算、图计算、深度学习等领域支撑腾讯的现网应用。

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

回顾我们走过的 7 年,我们是 2009 年 1 月开始基于 Hadoop 来开发我们的大数据平台,七年的征程,我们历经了 3 代平台的发展。

2009-2011 年是我们的第一代平台,我们的第一代平台,只支持批量计算的场景,主要就是报表,这个过程,我们重点发展了平台的可扩展性,我们不断增大集群的规模,从 09 年的几十台,发展到现在总规模接近 3 万台。总结成几个字,第一代就是规模化。

第二代,用三个字总结就是实时化。这是 2012 年到 2014 年。主要支持在线分析和实时计算的场景,比如实时报表,实时查询、实时监控等。

第三代是去年到现在,主要建设机器学习平台,支持腾讯各业务数据挖掘的需求。这是从数据分析到数据挖掘的转变,三个字总结就是“智能化“。

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

第一代是离线计算的架构,是基于 Hadoop 开发的, 我们起名叫 TDW,腾讯分布式数据仓库的意思。

社区的 Hadoop 迭代慢,单一集群规模小,稳定性和易用性都很差,不能达到腾讯的要求,因此我们按腾讯的业务运营标准,做了深度定制开发,我们着重发展集群的规模,解决 Master 单点瓶颈不能扩展的问题,我们优化了调度策略来提高 Job 的并发性,也加强 HA 容灾建设,还有很关键的一点的是,我们丰富了 Hadoop 的周边生态,建设了配套的工具和产品来降低用户的使用门槛,语法上,我们兼容 Oracle 的语法,方便腾讯各产品部门做程序的迁移,Hadoop 大数据的性能很强,但是小数据分析的效率很差,我们就集成了 PostgreSQL 来提升小数据的分析性能,打通 Hadoop 和 PG 的访问界限。

就这样,我们从最开始的几十台、到几百台、到几千台,几年以后,在 2013 年单一集群达到 4400 台,2014 年单一集群突破 8800 台,处于业界领先的水平。目前我们的总规模接近 3 万台。

TDW 的建成,解决了我们内部三大业务痛点:

第一,它使我们具备了T/P级的数据处理能力,几十亿、百亿级的数据量,基本上 30 分钟就能算出来。

第二,它的成本很低,我们可以使用很普通的 PC Server,就能达到以前小型机一样的效果;

第三,容灾方面,原来只要有机器宕机,业务的数据肯定就有影响,各种报表、数据查询,都出不来。现在 TDW 的机器宕机,业务完全无感知,系统会自动做切换、数据备份等等的事情。

正是解决了业务的这些痛点,业务部门都愿意把计算迁移到 TDW。到 2012 年底,我们把所有原来在 Oracle 和 mysql 上跑的报表都切换到 TDW。

TDW 的建成,让我们具备了融合所有产品平台的数据的能力。

以前的各产品的数据都是分散在各自的 DB 里面的,是一个个数据孤岛,现在,我们以用户为中心,建成了十亿用户量级、每个用户万维特征的用户画像体系。

以前的用户画像,只有十几个维度主要就是用户的一些基础属性,比如年龄、性别、地域等,以前构建一次要耗费很多天,数据都是按月更新,有了 TDW,我们每天更新一次。

这个用户画像,应用在腾讯所有跟精准推荐相关的产品里面。

再举个推荐的例子。推荐相信大家现在都耳熟能详,但是放在 6 年前,这还是一个刚刚新兴起的应用;TDW 为我们提供了一个快速切入快速支撑的能力。通过 MapReduce 的编程范式,基于 TDW 的平台,我们可以专注于各种推荐算法逻辑本身的实现,比如大家常见的 CF,MF,LR 这些算法,以及各种 hash 聚类算法;这个时候的推荐技术,面对海量的用户群体访问,更多还是基于一种实时查询的服务方式。

第一代平台解决了量大的痛点,但是在速度方面还有问题,数据是离线的,任务计算是离线的,实时性差。所以,我们建设了第二代的大数据平台。

在第一代基础上,集成了 Hadoop 的第二代——Spark,同时,还融合了 Storm 流式计算的框架。这一代平台的集成,让我们的计算的粒度从原来的小时,发展到分钟,直至秒级。

数据采集方面,我们构建了 TDBank,让原来通过接口机传文件的方式,T+1 的粒度,变成了毫秒级的实时采集。在这个采集平台里面,我们自研的消息中间件,每天采集的消息条数超过 6.5 万亿,可以说是世界上消息量最大的消息中间件。同时,我们还有高可靠版本的消息中间件,能支持像金融、计费等高一致性的需求,保证消息不丢。

在资源调度层面,我们基于 Yarn,发展了我们的 Gaia 调度平台,Yarn 只支持 CPU 和内存的维度,而我们的 Gaia 还支持网络以及磁盘 IO 的维度,Yarn 只支撑离线计算,Gaia 能支持在线的场景,另外,我们还 Docker,我们平台现在每天有 1.5 个 container。

再拿刚才提到的推荐例子,基于第一代平台的推荐应用会碰到 2 个问题,一个是随着用户量,访问量的增多,产生的数据会越来越多,多到在有限的时间根本不可能批处理的计算完,还有一点是用户的行为模式变化很快,需要更快的去更新各种维度的用户画像;数据的实时采集让用户行为,实时画像的计算成为可能,这构成了流式计算的数据流,分布式的流式计算实时更新各个维度的统计量,进一步形成了推荐算法的实时训练数据,从而把上一代的 offline 的推荐系统变成了 online 的实时推荐系统。在广告的推荐应用上,我们可以看到每一次的实时加快,都带来了更大的点击率提升。

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

第二代的平台,实时性和体量方面,都能满足绝大多数业务需求。但随着我们的数据量越来越大,我们的瓶颈很快也出现了。

我们在 Spark 上做数据训练的时候,每一轮的迭代,在更新数据的时候,都会遇到网络方面的瓶颈,因为更新数据的地方是一个单点,如果数据的维度很大,这套框架就无法支撑。在我们的实际应用中,千万级的维度,都可以 run 得不错,但是上了亿级,性能就非常低了,甚至跑不出来。

所以,我们必须要建设一个能支持超大规模数据集的一套系统,能满足 billion 级别的维度的数据训练,而且,这个系统必须能满足我们现网应用需求的一个工业级的系统。它能解决 big data,以及 big model 的需求,它既能做数据并行,也能做模型并行。

有两种思路。

一个是基于第二代平台的基础上做演进,解决大规模参数交换的问题。另外一个,就是新建设一个高性能的计算框架。

我们看了当时业内比较流行的几个产品,GraphLab,主要做图模型,容错差;Google 的 Distbelief,还没开源;还有 CMU Eric Xing 的 Petuum,当时很火,不过它更多是一个实验室的产品,易用性和稳定性达不到我们的要求。

看了一圈,我们决定自研,走自研的路。我们前两代都是基于开源的,第三代则开始了自研的历程。其实在第二代,我们已经尝试自研,我们消息中间件,不论是高性能的,还是高可靠的版本,都是我们自研的。他们经历了腾讯亿万流量的考验,这也给了我们在自研方面很大的信心。

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

因此,第三代整体的计算框架方面,我们也走了自研的道路。第三代的平台,核心是一个叫 Angel 的高性能计算平台。

我们聚焦在高性能的计算框架方面,同时,也是我们往机器学习、深度学习演进的一个路线。

相比第二代,第三代的计算框架,可以支持 10 亿级维度的算法训练,由以前的数据并行,到可以支持模型并行。

同时,我们第三代的平台,还支持 GPU 深度学习,支持文本、语音、图像等非结构化的数据。

Angel 是基于参数服务器的一个架构,它跑在我们的 Gaia 平台上面的。

它支持 BSP、SSP、ASP 三种计算模式;支持数据并行以及工业界更看重的模型并行,因为我们主要碰到的还是模型大的问题;

另外,在网络上我们有个原创的尝试,我们用了港科大杨老师的团队做的诸葛弩来做网络调度,ParameterServer 优先服务较慢的 Worker,当模型较大时,能明显降低等待时间,任务总体耗时下降5%~15%。

Angel 提供很丰富的算法,支持 LR、SVM、LDA、GDBT 等等,并且集成了非常丰富的数学函数库,另外,还提供非常友好的编程界面,能跟 Spark、MR 对接,你能像用 MR、Spark 一样编程。

Angel 跟其他平台相比,比如 Petuum,和 spark 等,就我们的测试结果,在同等量级下,Angel 的性能要优于其他平台。比如我们用 Netflix 的数据跑的 SGD 算法,大家看一下这个图的对比。

同时,Angel 更适合超大规模的数据训练。目前 Angel 支持了很多腾讯内部的现网业务。

这里举两个例子,比如,在构建用户画像方面,以前都是基于 Hadoop 和 Spark 来做,跑一次模型要 1 天甚至几天,话题只有 1k;而在 Angel 上,200 多亿文档、几百万个词,3000 亿的 token,1 个小时就跑完了。以前 Spark 能跑的,现在 Angel 快几十倍;以前 Spark 跑不了的,Angel 也能轻松跑出来。

再看一个 case,视频的点击预测,同等数据量下,Angel 的性能是 Spark 的 44 倍以上。用了 Angel 以后,我们维度从千万扩展到亿,训练时间从天缩短到半小时,而准确度也有不小的提升。

腾讯宣布推出第三代高性能机器学习计算平台 Angel 并于 2017 年全面开源

最后,我要借这个机会跟大家公布一个消息,那就是:我们的大数据平台将全面开源。

我们会在明年上半年把 Angel 以及 Angel 周边的系统进行开源。

我们平台源自开源,我们的发展离不开开源,所以我们会以最大的力度拥抱开源。

其实在开源的道路上,我们一直都在参与:我们第一代平台的核心,TDW-Hive,已经在 2014 年就开源了;我们还在很多社区项目贡献了很多核心代码,培养了好几个 committer。

而未来,我们的开源力度只会越来越大。

谢谢大家。

相关文章
最新文章
热点推荐