英特尔如何破解AI时代的大数据难题?
本文转载自中关村在线
“我们之所以推出Analytics Zoo这样的大数据分析和人工智能平台,就是希望让用户在实际的生产环境中可以更方便地构建深度学习应用,将不同的模块、不同的框架统一到端到端流水线上,从而大幅提升客户开发部署大数据分析和深度学习的能力。”英特尔高级首席工程师、大数据技术全球CTO戴金权说。
已供职英特尔近17年的戴金权如今负责领导英特尔全球(硅谷和上海)工程团队高级大数据分析的研发工作,以及与全球研究机构(如UC Berkeley AMPLab、RISELab等)的技术合作,是BigDL和Analytics Zoo项目的创始人。
英特尔高级首席工程师
大数据技术全球CTO戴金权
为了帮助客户在数据的海洋中抓住商业价值,并且让这一过程通过更加智能化的手段变得简单易用,英特尔在底层架构和软件堆栈领域一直在持续投入。在2019全球人工智能技术大会上,戴金权分享了英特尔构建大数据分析+AI平台背后的思考和实践,而两大开源项目BigDL、Analytics Zoo可谓是其中的代表。
BigDL是一个建立在大数据平台之上原生的分布式深度学习库,某种程度上类似Tensorflow、Caffe等DL框架,提供了在Apache Spark上丰富的深度学习功能,以帮助Hadoop/Spark成为统一的数据分析平台,为整个数据分析和机器学习过程提供比现有框架更加集成化的支持。Analytics Zoo则是在Apache Spark、BigDL以及TensorFLow、Keras的基础上构建的大数据分析+AI平台,大幅降低用户开发基于大数据、端到端深度学习应用的门槛。
生产环境面临数据难题
《连线》杂志创始主编Kevin Kelly曾说:“大数据时代,没有人能够成为旁观者,数据将‘横扫一切’。”随着万物互联时代的到来,数据对于客户需求的指导性意义愈发凸显,如何采集、传输、存储、分析、处理数据成为各行各业攫取数字经济红利的必备技能,可以说“数据在哪里,生意就在哪里”。
而英特尔所做的事情,就是让这一切变得简单高效。“如今深度学习、人工智能的应用场景更加广泛,要处理的数据也更加复杂,所以要构建端到端的大数据处理分析加上机器学习、深度学习的统一流水线。”戴金权说。
不过要做到这些并不容易,当前的生产系统中基于Apache Spark这样的大数据集群仍是生产数据和大量硬件资源的聚集地,这样生产资料和生产工具要通过AI应用串联起来。同时,工业级的分析平台需要对数据收集/导入/处理、特征提取、模型训练、部署、推理等一系列的复杂工作流做出响应,难度可想而知。
从架构角度来看,很多独立的深度学习框架与大数据平台的架构存在差异,例如前者对高性能有着格外的要求,后者更注重于横向扩展,这样一来就需要在一个通用的大数据平台上将不同的分布式深度学习系统统一兼容起来。此外,无论是利用Spark还是像Flink这样的流处理框架,都要将数据处理的流水线和深度学习相互连接,在数十甚至是数千个节点的集群上提升计算效率和可扩展性。
从生产角度来看,像工业大数据在构建数据仓库时往往会面对高达数百个KPI的流程处理,而且不同企业所面临的数据类型和需求也是千差万别,例如有些偏向对图像或视频数据的建模、训练、推理,需要很多的卷积神经网络优化(CNN),而有些则是时序数据,要收集设备每秒钟的振动频率,并对这些数据进行循环神经网络(RNN)的分析。
由此引发出来的两个挑战,一是要手动把不同框架整合起来,二是用户在处理数据时不再是单机环境,而是要在大规模分布式环境、甚至是生产环境中操作。
戴金权谈到,无论是阿里云、腾讯云等CSP厂商,还是硬件OEM厂商、软件提供商,其主要诉求都是希望将深度学习等AI框架和模型应用于数据在生产系统上跑起来,这也是客户使用Analytics Zoo的一个重要原因,“我们可以帮助用户将大数据分析+AI应用在端到端的流水线上轻松构建出来,它可以从PC终端运行到集群、生产环境当中,这是我们在底层Analytics Zoo所做的工作。”
端到端的一致性体验
在Analytics Zoo之下,英特尔集成了丰富的深度学习框架和库,可以随时调用OpenVINO工具包、MKL-DNN等各种深度学习加速指令。同时,英特尔在上层也提供了高级的流水线API用于构建端到端的应用,以及深度学习模型,对图片、文本、时间序列数据等不同类型的对象提供支持,用户可以直接将内嵌的模型嵌入到解决方案中。
举例来说,英特尔可以将TensorFlow和Apache Spark整合到端到端的流水线中,让TensorFlow无缝接受Apache Spark处理的数据,并且对用户透明,以分布式的方式运行在大数据集群上。此外,还提供了像基于标准JAVA 、Python、Web Server、深度学习尤其是视觉方面的神经网络加速,帮助用户更方便地部署到网络服务器上,帮助用户更好地构建模型和开展服务。
这一过程中,英特尔不仅在性能层面围绕BigDL、Analytics Zoo做了大量优化,还有效解决了可编程性的问题,使得用户可以在Spark代码中嵌入TensorFlow代码,省去了不同框架之间反复调试等复杂的流程。在可扩展性和部署方面,开发人员可以直接在大规模数据平台进行作业,这里就发挥了Analytics Zoo在大规模分布式、流式、批处理时的特性。
“我们可以支持各种不同的深度学习框架,比如要是原来有Caffe的模型,可以直接通过BigDL、Analytics Zoo加载到Spark运行,然后对HBase读取数据,这个天然就是Spark可以做的事情。后面深度学习的模型通过BigDL、Analytics Zoo的功能,可以透明、无缝的与大数据处理相结合,整个开发过程是非常简单的。”戴金权表示,“所有分布式的任务、数据的分割、负载均衡,出错后如何处理,这些事情不再需要开发人员来担心,完全可以交给大数据平台来做,效率能够大幅提升。”
Analytics Zoo支持多种AI框架和库
即将发布的0.5.0版Analytics Zoo,英特尔会结合傲腾数据中心级持久内存等新的硬件平台对软件算法进行支持和优化,如Spark RDD的缓存机制在内存中计算训练数据可以实现降本增效、VNNI指令集可以大幅提升AI性能。框架语言多元化方面,英特尔除了会支持PyTorch,还将加入对像RISELab的Ray等最新框架的支持。
智能化改造效果显著
一直以来,英特尔都在与开源社区用户,以及多个合作伙伴和客户开展广泛合作,包括京东、UCSF、Mastercard、宝信软件、世界银行、Cray等,以构建基于Apache Spark的深度学习 和人工智能应用,而BigDL和Analytics Zoo将端到端的开发和部署体验更进一步。例如在京东,双方基于Spark和BigDL的深度学习技术在搭建大规模图片特征提取框架上进行了合作。
京东电商平台的图像信息数以亿计,分布在大规模的HBase集群中,过去要使用Caffe将训练出来的模型放在GPU集群上,如果想把流水线串联起来就要通过人工的方法把数据从HBase读出来后对图片预处理,再返回给GPU集群进行推理,如此反复数次后将得到的数据再次手动整合起来,开发运行效率和部署方式都存在问题。
对此,英特尔认为应该将读取、处理、神经网络推理、数据处理和存储等全流程统一到一个流水线上进行,并且可以直接运行再大数据集群上,进而大幅提升端到端的效率。“京东做过测试,当他们把原来的方案整体迁移到Spark BigDL这样一个完整的流水线上 (基于CPU)之后,端到端的运行效率提高了3、4倍。”戴金权说。
基于BigDL的图像特征提取
K40和Xeon在图片特征提取流水线的吞吐量比较
与宝信软件的合作,双方则是在深度学习的基础上探索出了设备智能维护的新方向。在工业制造行业,通常对由设备失效导致的生产中断问题,所给出的解决方法是定期检修维护或者提前更换设备零部件,成本居高不下。
在英特尔的帮助下,两家公司开发了设备故障自动预测的验证模型,该模型基于公开的设备全生命周期数据,利用RNN和LSTM,实现了时间序列的异常检测,可以借助无监督深度学习和建模对设备下一时刻的运行健康状况进行预判,降低了额外的设备维护成本。
在和这些行业客户联合研发的过程中,英特尔也切实看到了场景应用的痛点所在,那就是尽管企业在深度学习、机器学习的技术研发上投入颇多,但怎样将这些创新融入实践环境,尤其是大规模的大数据生产系统,在软硬件架构的支持和优化上存在不小的缺陷,而这一“断层”就是英特尔致力于去弥合的,方法即是利用开源和软硬结合的路径。
Analytics Zoo与底层硬件的优化,并且可与CSP的产品无缝协作
软件与开源的新高度
就像英特尔首席架构师,英特尔公司高级副总裁兼架构、图形与软件部门总经理Raja Koduri所说的:“对于全新硬件架构的每一个数量级的性能提升潜力,软件能带来超过两个数量级的性能提升。”这样的例子比比皆是,戴金权以Cascade Lake上的VNNI深度学习加速指令为例,通过在底层的软硬件协同优化,可根据不同DL框架将推理性能加速2-3倍甚至更多。
在英特尔的软件生态中,活跃着超过1200万名开发者,为了让开发者利用通用工具集实现应用性能的指数级扩展,英特尔推出了“One API”项目,以简化跨CPU、GPU、FPGA、人工智能和其它加速器的各种计算引擎的编程,该项目包括一个全面、统一的开发工具组合,可以将软件匹配到能最大程度加速软件代码的硬件上,从而让英特尔的计算架构释放出更高的性能和效率。
戴金权表示:“无论是基于至强(可扩展处理器)的服务器,还是像Movidius、FPGA,神经网络处理器,包括将来的独立显卡,都可以通过One API下面的底层生态系统来给上层的平台和应用所使用。”
为了让用户在x86平台上获得更优质的体验,英特尔一直都在致力于软件的创新,开源更是英特尔软件生态策略的重要体现,不仅对TensorflowPyTorch、MXNet、PaddlePaddle等AI框架进行了大量优化,自己也开源了BigDL、Analytics Zoo、OpenVINO、MKL-DNN、nGraph等项目,戴金权本人更是Apache Spark项目的创始委员和项目管理委员会委员、Apache MXNet项目导师。
此外,在前不久的英特尔开源技术峰会(Intel Open Source Technical Summit,OSTS)上,笔者看到了高性能集成开源软件栈Deep Learning Reference Stack与企业分析、分类、识别和数据处理工具Data Analytics Reference Stack的发布,这些都是英特尔为了融合从框架、库、OS、VM等软件到硬件平台优化体验所做出的努力。
或许是因为英特尔在半导体领域的地位过于强势,外界常常忽视其在软件和开源领域的成绩。事实上,英特尔拥有超过15000名软件工程师,软件布局横跨数据中心基础设施、操作系统、产品开发、ISV、工具/SDK、云计算、物联网、AI、HPC、边缘计算等领域。
过去的6个月时间里,英特尔在软件领域取得了数百项成果,包括从JDK8到JDK9,将现有硬件的性能提升6倍;结合内存层级架构,加上软件栈技术,通过傲腾+软件的方式将工作负载的性能提升8倍;利用DL Boost等架构扩展,使得从Skylake升级到Cascade Lake之后,相比上一代硬件提速28倍……这一系列的表现若是从硬件的角度看都是数代的硬件性能提升。
这一切的背后都在印证,软硬结合、开源协作已经变得越来越重要。正如戴金权在采访中对笔者所说的:“如果想实现指数级的增长,必须要硬件和软件共同创新。软件社区和硬件社区相互交流,并真正去思考彼此的问题,这比以往任何时候都更加关键。”
本文仅代表媒体观点
文中图片等素材的版权归其所有者拥有
相关资讯
在看?就点在看