5月18日,由中国电子学会主办,zd至顶网协办的第八届中国云计算大会在北京国家会议中心隆重举办。在大会上,来自英特尔的大数据首席架构师、资深首席工程师戴金权做了主题为“从芯片到软件无处不在,释放大数据分析和机器学习潜能”的精彩演讲。
英特尔大数据首席架构师、资深首席工程师 戴金权
戴金权在演讲中讲到:“英特尔从硬件到软件做了大量工作,为基于大数据的高级分析和机器学习提供了非常好的支持,特别是基于大数据上面的机器学习和人工智能、高级分析,是英特尔看到的一个非常重要的趋势。而今天英特尔有非常多的工作,而我们着重介绍大数据平台(阿帕奇apache
spark)做的不仅是算法级别的工作,而更多的是系统级别、端到端完整parameterserver support上面的工作。”
戴金权:大家好,我是来自英特尔公司的戴金权。那在今天我在这个报告里面可能就想跟大家着重介绍一下我们英特尔公司在大数据,特别是大数据高级分析和机器芯片上所做的工作和技术。
那如果提到英特尔,大家可能印象最强烈就是英特尔的硬件技术,不管是基于计算、储存还是网络,英特尔在这平台上面都为上层的大数据系统提供了一个非常坚实的基础架构。但是除了这一些硬件技术之外,英特尔事实上在上传的大数据软件战,特别是基于开元软件的船间战上面,包括大数据的平台和应用都做了大量的工作。
就像我刚才提到的,大家可能对英特尔的那些优秀的硬件平台不管是(英文)up的平台都比较了解,与此同时我们在硬件平台上做了很多的工作,我们上传的软件上做了大量的优化,不管是高性能的包括像英特尔的mkl,像英特尔的del等等高性能的软件,或者是基于高性能(英文)等等大数据甚至机器学习的。
今天在报告里面就想跟大家简单介绍一下我们从硬件平台、大数据平台,以及大数据分析和机器学习方面,英特尔在这些方面所做的一些工作。
就像刚才提到,大家可能对英特尔的硬件产品都比较熟悉了,那我在这里都不多说了,这一些大家可能天天在使用的硬件产品。从硬件商来说,我想跟大家探讨一下,就是很多在硬件方面的创新,一些前沿的科技,而这些前沿科技可能对我们大数据的技术、大数据的架构会带来深远的影响。为什么这么说?因为任何一个系统软件,包括大数据系统,它都是在它的设计、在它的实现过程中都会做非常多的权衡,而这些权衡往往是基于对底层技术平台这样一些假设。举一个例子十多年前做一个网站,最典型的软件战或者技术就是一个(英文),大家搭建一个(英文)后面跟上一个数据库,作为它的后端,去优化你的数据库,通常你的网站性能就跟你的数据库性能密切相关。
但是随着大家突然发现,对数据库的优化越来越难,而与此同时我们发现如果我通过网络去访问远端的内存,事实上它的效率比你在本地对磁盘进行读写要高效的多,这时候一些新的软件架构,新的应用软件,比如说像(mmk)马上就成为高性能技术上的主流。再举一个例子,比如说像(英文)大数据里面非常关键的处理框架或者是处理技术。到谷歌第一次发布(mmk)论文的时候,硬件配件几百兆内存,可能是都没有到千兆的英特网上,基于这些硬件上做出来的(mmk)实现,通常说我怎么为网络的io进行优化,到的今天我们可以看到服务器的内存从几百兆、几g已经到了上百g的级别,很多时候我对数据的处理和分析,我整个数据的工作级是完全可以放在我们集群的内存中,基于内存进行分析。在这个前提下面,像(英文)基于内存的架构,颠覆了基于磁盘分析的框架,而今天已经慢慢成为大数据引流的手段。
很多时候颠覆性的软件、颠覆性的架构就会出现,不管是说我们会出现的像(英文)和出现定制化的加速,或者通过(英文)这样的技术,新一代的分析式内存的技术,你不仅能够把你的数据放在内存中,而且这内存是非意式(音)就是你的数据不会丢失。或者像(英文)通过非常高速的互联,不管从带宽方面或者是延迟方面可以很高速的访问远端的数据。这些新一代的技术它的创新,事实上会对我们整个的硬件平台,你之前所做软件的假设会带来翻天覆地的变化,我相信很多下一代的大数据软件它的架构、它的颠覆性的变化,往往就是在于你如何更好地利用这些革命性的硬件技术的发展,来做出一个完全和之前不同的软件设备的权衡,而得到一个新的软件架构。这是硬件方面的考量。
我们就说英特尔在大数据平台上做了很多的工作,事实上大数据对开元和框架所做的贡献非常大。为什么我们会这么做呢?因为坦率地说数据的管理、数据的处理、数据的分析、挖掘实际上是一个非常久远的命题,也有非常长的历史,我们会觉得大数据会有不一样的地方,为什么需要大量的投入,使它能够得到更加广泛的应用,其实也是因为大数据,你回过头来看看今天这些大数据的框架、平台,不管是hadoop(音)也好等等,它们实际上对底层的技术架构,以及应用的需求,某种意义上来说,做了一些颠覆性的改变,从而做了一些新的应用架构。
简单地说它有几方面的特性,第一大规模分布式一个完全(英文)架构。第二通过水平扩展的方式来支撑更大规模的处理和数据。通常包括两方面,第一数据是被分割开来,分布到各个地方。第二你的数据处理事实上是通过(detapr)进行处理的。第三点因为你是大规模分布式,你要水平扩展,所以在软件层级别提供了大量的所谓容错,包括数据的复制等等。另外一方面可以看到很多的处理,就是所谓的无状态。什么意思呢?大家仔细地看像(英文)这样的操作,事实上他们都在用了一种函数式处理的语义,它的特点呢?就是它的所有的操作,都是没有状态,那你就很容易地说出错,我可以不断的重试这结果,就很容易能够进行软件级别的,此外还做的细密度的(英文),比如说大家知道(英文)你都会把你的数据写到文件上去,这样细密度可以帮助你出错的话很容易复原。
大数据另外一个特点它支持非常灵活的数据模型,并不是说我的数据模型一定是要预先确定下来,而且不能变的。很多时候它是所谓的(英文),当你读的时候你的动态解析它的格式。第二它要保证你的所谓(英文)兼容性,也就是说你的新的程序,能够读你老的(cook)你的新的程序你老的数据这样的兼容性,你的老的数据能够读你的新的程序。
在这样一个大规模分布式环境里面,很多时候并不是说我把数据和计算分割开来,从数据储存的地方读出来,送到计算的地方去计算,通常为了性能和高效,原地的进行计算等等。
这么一些刚好验证了为什么今天的大数据平台和框架,能够产生这样一些颠覆性的结果呢?就是因为它们根据我们新的硬件平台,根据我们新的应用需求做了很多不一样的一些设计的原则。大多数是(英文)基金下面的项目,不管是(英文)等等都好。根据一些统计,简单地说英特尔在整个阿帕奇(音)贡献排在第四位,在像阿帕奇(音)新的比较前沿数据框架下,实际上英特尔也做了很多的工作。差不多2012年阿帕奇还是一个研究项目,我们就进行了深入的合作,今天我们看到英特尔在阿帕奇这项目也是排名前三的贡献者,在这些开元项目中,有非常多的核心开发能源,他们所谓的(英文),如果是软件开发名,就是我能直接提交代码的人,在英特尔有超过25位核心开发人员和我们的社区和用户一起对这些大数据项目的核心、关键技术进行开发,引领这项目的方向。
刚才我提到英特尔在大数据云平台上面的工作。下面我着重跟大家介绍说,大数据平台上面,基于大数据我们做了很多的高级分析,以及机器学习方面的工作。为什么这是特别重要的?因为到今天为止,可能大家对3个v也好、4个v也好大家很熟悉了。我想大数据之所以得到各行各业的应用,我觉得就是带来了价值就是value,为了挖掘这价值就要进行深入的分析,我觉得大致可以分为两类,一类我叫它所谓简单的分析,什么意思就是类似于像cook这样的,大家知道cook本质上关系性的语言,所以这些操作是关系性的操作,它试图告诉你过去发生了什么。在我们看来越来越多的趋势是说,大家不仅仅是说停留在cook分析上面,而是希望更进一步的更复杂的,就是非cook的分析,这些分析就是那些高级的分析、机器学习、图分析等等。包括深度学习。他们做的工作就是和像cook为关系性的操作不一样,他们通常在数据上面构建一个数据模型来判断要发生什么事情。
这一点也正是我下面的演讲想要介绍的重点。坦率地说机器学习也好、人工智能也好、深度的神经网络也好等等,它也并不是新的概念,事实上它也有非常长的历史,正是当这些技术和大数据平台,和大量的数据结合到一起,焕发了新的生命力,我们简单地说基于大数据上的高级分析和机器学习,简单地看我认为粗略地分为三类,一类就是互联网(web)不管是做一些推荐或者是搜索排名等等,它主要是有大量的用户行为的数据,试图对用户行为做出预测,这些数据的特性就是非常大量的数据。第二数据的纬度非常高,第三这数据非常稀疏的数据非常。
第二类应用我们看到(pereception认知)不管是图片、视频或者是自然语言,这个领域恰恰是我们最近学习得到突破性的进展。那它数据性的特性通常是非常稠密的数据,你可以想象一张图片每一个点都有数据。
第三点像(iot/sensor机器数据,一个机器数据通常时间的序列,你要能够对时间序列处理非常重要。但是这是我们看到的一些问题,这里面有非常多不同的技术基于大数据,基于高性能计算等等,各种各样的技术和框架,英特尔在里面其实都做了非常多的工作。
今天由于时间所限,我只会介绍我们在大数据平台上特别是阿帕奇(英文)大规模的工作。
这里面可能有几方面,第一在这上面构建非常复杂的或者说先进的机器学习的算法,不管是你是分布式(英文)或者是神经网络等等,怎么样让算法进行大规模分布式的计算来处理大量的数据和非常大的模型。第二在这基础上我怎么样构造底层的机器学习系统、机器学习的架构,来把这些计算用同样的方式分散到各大集群上去,这里面特别是,什么是在这环境里面,什么是最优的机器学习抽象,这事实上即使在研究界也正在进行的一个课题。但是我们可以看到,对稀疏数据的处理,对基于图的分析支持,对于像参数服务器等等这方面的架构,在业界也慢慢得到开始使用。第三点除了我们做分布式,我们怎么样通过先进的硬件平台,以及包括高性能的那些(英文)提高这些计算的效率、提高它的性能这也是我们非常关注的点。
这里我稍微要做一下广告。大家可能知道英特尔的mkl它的(英文)高性能计算界是最出名的,或者说最高效这样一个数学计算,可能没有之一。这能帮助我们大量的数学计算,刚才我提到很多的高级分析机器学习都是要构建数学的模型,学到大量的数学计算。我跟大家分享很多人还不知道。就是去年英特尔我们做了一个决定就是提供一个免费的版本,这里有一个链接,大家可以到网上下载到免费使用,这对大数据进行数据的分析和机器学习是有非常大的帮助。
此外我们还在做大量的工作,不好意思我要用到融合这个词。事实上在大数据、云的静态,和可能我们看到更加传统高性能平台,在某种意义上他们的技术也的确互相借鉴,怎么样利用高性能的技术用到我们云计算、大数据平台里面来。特别是对这一类的机器学习、高级分析的应用来提供帮助,这是我们看到的一个方向。
举几个例子,就刚才我提到其中一块,我们正在做的是说大规模的机器学习里面,有大量的稀疏数据。如果说我们能够针对这数据的特性,对分布式的机器学习做大量的优化,那会给我们的机器学习效率带两非常大的提高,这里我具体就不介绍具体的细节,因为在美国(英文)会议上我们都给了详细的报告,大家有兴趣可以参考。
我举一个例子就是和京东合作一起通过对聚类的算法进行优化,使它非常支持稀疏的数据,能够对数据的分析纬度提高10倍以上。
另外一个例子是分布式的图计算,这里面一个例子是我们做的一个(graph)你有一堆文件、你能够自动的挖掘文件的主题,根据主题对它进行归类,这也是一个非常常见的应用,一个比较流行的算法就是所谓的lda,这是一个非常复杂的过程。但是我们可以把它作为一个图计算的问题来进行抽象,在我们的平台上进行分布式的计算。这例子里面我们和奇虎360一起合作,怎么样把它的规模包括它的数量,包括(英文)数量提高10倍以上的数量级。
parameterserver support是目前比较有效可拓展性的一种解决方案,目前来说也有不少人在做这方面的工作,我们做的一件事情,我们是和我们的用户以及和我们的社区能够为在(spark)应用提供非常好的参数服务器的支持。
最后,刚才我谈了很多比较技术的问题。怎么实现这算法?怎么去实现这些下层的系统支撑这散发,提高可拓展性、怎么把它分布到各大集群上去。可能对很多用户来说我怎么样去挖掘价值?那你对你的模型进行训练,对你的算法进行计算,只是你整个挖掘价值这整个parameterserver
support其中一个组成部分,你如果要做一个,就像我们提到,你要做端到端机器学习的parameterserver
support来,从你的裸数据进来,进行分析、进行特征的提取、转化,通常是一个迭代的过程。你要进行训练,如果大家做过机器学习,它不能完全说是一个(apache
spark)过程,或者说是一个黑客学的工作,你需要有很多的together,包括重组,最后你自己做一些实验,基于你最终结果来确定,所以你训练出来的模型,还要基于你的数据做大量的评估,这整个过程其实是一个非常复杂的过程。那在这里我们和世界上非常顶级的金融机构做端到端风控parameterserver
support,你可以从交易数据进来,最终的话,我们经过一系列的数据、特征等等,进行神经网络训练,而且还不是一个神经网络,我们用了十个甚至更多的神经网络做了一些所谓的(machinelearning)的工作,最终判断你是不是欺诈行为。
大家可以看到右上角的图,当我们把更多的神经网络放到整个parameterserver
support里面去,它的精准率不断的得到提高,这过程就是举于通用(apache spark)大数据平台上有完整的parameterserver
support,而且能够自动或者半自动的进行控制,来最终构造出这样通过高级学习用户提供价值的过程。
那今天就是我在这报告里想给大家介绍的内容,我希望大家,大家在我报告里记住什么,我希望大家记住英特尔从硬件到软件都做了大量的工作,基于大数据上面高级分析和机器学习,提供了非常好的支持,特别是基于大数据上面的机器学习和人工智能也好、高级分析也好,是我们看到一个非常重要的趋势。而我们今天英特尔有非常多的工作,今天着重介绍大数据平台,(阿帕奇apache
spark)做的不仅是算法级别还是系统级别、还是端对端完整parameterserver support上面的工作,谢谢大家。
原文发布时间为: 2016年5月18日
本文作者:李超
本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。