英特尔陈玉荣:全面解析英特尔人工智能计算平台
雷锋网按 :2018 全球人工智能与机器人峰会(CCF-GAIR)在深圳召开,峰会由中国计算机学会(CCF)主办,雷锋网 (公众号:雷锋网) 、香港中文大学(深圳)承办,得到了深圳市宝安区政府的大力指导,是国内人工智能和机器人学术界、工业界及投资界三大领域的顶级交流盛会,旨在打造国内人工智能领域最具实力的跨界交流合作平台。
7月1日,在“AI芯片专场”,英特尔首席研究员、英特尔中国研究院认知计算实验室主任陈玉荣带来 “ 英特尔计算平台助力人工智能发展 ”的主题演讲。
陈玉荣介绍到深度学习的发展使得在特定任务领域,机器在视觉识别和语音识别方面已经超过人类。此外,深度学习还广泛应用到其他领域解决现实世界的问题,包括健康医疗的肿瘤检测、金融投资的文档分类、能源行业的油气田勘探、智能设备中的语音助手、工业应用中的缺陷检测和基因工程中的基因测序等。
但是,深度学习的部署是多方面的,深度学习的训练其实只是其中很小一部分,更重要的是理解整个解决方案是怎么运作的,以及怎么样无缝的集成到更大的数据分析的流程里面去。
陈玉荣介绍了英特尔最广泛的端对端人工智能计算平台,包括通用芯片,深度学习定制加速器如Nervana神经网络处理器,FPGA,Movidius VPU,Mobileye EyeQ,GNA IP,集成显卡等硬件,和各种软件工具如OpenVINO、Movidius SDK、MKL-DNN、clDNN等,以及英特尔的前沿及前瞻性的研究,如何整合起来助力人工智能发展。
以下为陈玉荣演讲全文,雷锋网进行了不改变原意的编辑整理。
大家下午好!今天非常高兴能参加这个论坛来介绍英特尔人工智能计算平台和我们的相关研究工作。我今天更多的是讲目前已有的计算平台和我们正在做的研究。
什么是人工智能?人工智能的定义不断演化,但其核心主要是讲机器模拟和超越与人类心智相关的认知功能的能力。人工智能包含有很多种不同的实现方法,以数据为中心的机器学习是一种最主要的方法,因为它在解决人工智能的三个主要子任务,包括感知、计划/推理和控制方面取得了很好的效果。深度学习则是机器学习的一个子集,近年来成为人工智能发展的主要推动力。但并不是说别的方法不重要,像简单神经网络、经典机器学习算法、基于推理的系统,以及其它新兴的算法,都非常重要。 我相信人工智能最终一定是通过多种方法的融合来实现的。
在人工智能算法这块,机器学习包含很多种统计和规划算法,包括经典的回归、分类、聚类、决策树、外推等算法,它们的优点是适用于小数据,计算要求低,得到结论的透明度比较好,缺点是需要大量的人工设计,对于图象识别这样的复杂问题识别准确率很低。近年来 深度学习 成为主流的算法,用来解决图像语音识别、自然语言处理、模式识别等很多问题。它的准确率很高,但它本身也有一些问题,比如,需要大量的数据训练,需要大量的计算资源;同时它缺乏理论基础,也就是我们常说的黑箱问题,你不知道该怎么样去设计一个好的神经网络。最后是容易被大家忽略的 推理相关 的算法,它们可以从不同的海量数据中发现相似性和检测异常情况,可以用在反洗钱和检测金融欺诈等应用里面。
得益于深度学习的发展,在特定任务领域,机器在视觉识别和语音识别方面已经超过人类。此外,深度学习还被广泛应用到其他领域解决现实世界的问题,包括健康医疗中的肿瘤检测、金融投资里面用到的文档分类、能源行业的油气田勘探、智能设备中的语音助手、工业应用中的缺陷检测和基因工程里面的基因测序等。我们以 工业应用中的缺陷检测为例 来看看深度学习解决方案是如何开发的。
整体解决方案通常包括发现机会、设定假设、准备数据、训练模型、部署模型、对解决方案进行迭代和评估。我们采用一个真实客户的案例,把深度学习解决方案的开发周期进行了百分比细分。不同的深度学习解决方案在时间百分比细分上不太一样,但是它们的步骤基本是一致的。你需要做数据的标注、加载、增强,你要对DNN模型结构做试验,然后调试模型参数,最后还需要做推断的支持和结果分享。
虚线部分是计算密集型的模型训练部分,它非常重要,但是它只占了深度学习开发周期的很小一部分,大约30%左右。另外,大家可以看到深度学习的开发也只是整个解决方案开发的一小部分,很重要的是说你怎么样使用IT的预算更快的部署人工智能解决方案,而不是花额外的钱来加速整体解决方案的一小部分。
还是用缺陷检测这个例子,我们来看看一个真正的端对端深度学习解决方案是如何部署的。 左边是案例的功能布局图,它用10个摄像头来对生产设备进行监控,以检测缺陷。最早要做的事情是人类的专家对有缺陷的图片进行标注,产生很大的数据集,这样就可以用来训练一个神经网络模型。训练好的模型被存储和部署在系统上,来对后继的视频进行推断。发现缺陷时,会把推断结果发送到服务层和解决方案层。推断结果可以作为决策的依据,我们就可以采取一些行动,比如呼叫技术人员或者关闭生产线。从右边的数据中心设计图中,你可以看到里面有很多种硬件。这里想说的是, 深度学习的部署是多方面的,深度学习的训练也只是其中很小一部分,更重要的是理解整个解决方案是怎么运作的,以及怎么样无缝的集成到更大的数据分析的流程里面去。
我很赞同很多学者的说法,我们正处于人工智能计算时代的早期,或者说是黎明时期。英特尔不仅致力于为人工智能发展铺平道路,而且在引领这一新兴领域方面也处于最有利的位置。我们通过提供业界最全面的计算平台,帮助用户获得更智能的结果,而所有这一切都是由用户的需求和细分市场的需求来驱动的。 使用人工智能第一步是要准备好数据 ,我们和我们的很多合作伙伴提供很多种解决方案来存储、处理和管理数据。作为全球领先的计算硬件厂商, 我们的硬件支持从混合型到专用型,从云端到终端的最广泛的AI应用负载。除了硬件,软件也是非常重要的。 刚才魏老师(魏少军)也说了,人工智能在某种意义上是软件比硬件更重要。我们 确保所有的英特尔硬件引擎具有通用的AI体验,具有最大的一致性、互操作性和安全性。我们提供多种软件工具组合来帮助加速AI解决方案的开发周期 。除了硬件和软件工具外,我们还 采取基于社区和解决方案驱动的方法,以拓展AI和丰富每个人的生活 。我们和我们的合作伙伴一起提供多种行业现成的解决方案,包括金融、健康、零售、工业、政府、能源等等。面向未来, 我们通过领先的研发和投资,包括资助顶尖的学术研究,内部研发和对领先创新者的投资,以及进一步推动政策和道德领导力来继续推动人工智能的发展。
在工具方面, 英特尔投资于增值的AI软件工具,来帮助大家用好英特尔的每一种硬件,简化开发过程,最终缩短整体解决方案的开发时间。 对于应用开发者,我们提供了很多工具来提升性能和帮助加速解决方案的部署。针对深度学习,开源的OpenVINO和英特尔Movidius SDK 可以通过模型的转换和优化,提供针对英特尔各个目标硬件优化的深度学习推断部署。我们也正在开发英特尔深度学习Studio,能够帮助缩短端对端深度学习解决方案的开发周期(包括训练)。除了深度学习,英特尔Saffron AI还能够提供认知推理的解决方案,可以用于反洗钱和预测性维护的应用。
对于数据科学家,我们致力于 优化一系列广泛用于机器和深度学习的开源库。 目前已经有一些机器学习库可以充分利用英特尔硬件,包括Python 、R、分布式的一些库。我们还 对常用的深度学习框架直接做优化,确保所有主要的深度学习框架和拓扑能够在英特尔硬件上运行良好 。目前已完成CPU优化的框架包括Tensor flow 、MXNet、Caffe等,未来希望能够通过英特尔nGraph编译器实现更多的框架。对于库开发者,我们提供了很多基础构建模块,能够充分利用英特尔的硬件。其中包括 针对机器学习优化的英特尔Python分发版以及包含机器学习的英特尔数据分析和加速库DAAL,还有针对英特尔CPU和集成显卡优化的DNN基础函数库MKL-DNN和clDNN ,这两个库对于深度学习的模型开发是最相关的。刚才我提到英特尔nGraph编译器,这个编译器可以帮助我们从不同框架里面获取计算图并转换为一个中间表示,这个中间表示可以调用英特尔针对特定硬件的计算加速软件来执行。这样,开发者就可以不需要使用底层软件和数学加速库对每个目标硬件进行深度学习框架和模型的直接优化。
英特尔硬件方面,除了深度学习以外的其它人工智能应用,比如刚刚说的数据分析、机器学习还有推理等,就可以使用至强或者其它的CPU做,因为这些计算负载并不像深度学习那样具有高计算强度和高并行度的特点。针对深度学习,英特尔提供了一个广泛的产品组合来满足不同客户的独特需求。对于训练,目前可以使用至强或基于至强的集群做训练。如果需要加速也可以考虑用加速器,明年英特尔会有专门针对深度学习训练的英特尔Nervana神经网络处理器。对于推断,目前在数据中心和工作站,实际上至强处理器还是当今市场的标配(更多还是用至强处理器)。如果需要做高强度的推断,也可以考虑用加速器,英特尔有很多加速器供大家选择。
下面介绍一下英特尔的深度学习推断加速器 。大家知道数据中心、边缘计算和终端设备,对于深度学习推断的性能、功耗和成本要求,实际上是有很大区别的。 英特尔FPGA可以在数据中心和边缘计算设备上对深度学习的推断进行定制和快速原型设计。 英特尔 Movidius VPU 是低功耗计算机视觉和深度推断的解决方案。在边缘计算方面,可以通过使用多个Movidius VPU,实现高强度、高效的媒体和视觉推断。在终端,Movidius VPU在超低能耗下可以提供优异的推断吞吐量,可以用于物联网传感器、个人计算机和其他终端产品中进行视觉处理和推断。 英特尔Mobileye EyeQ技术 是自动驾驶的推断平台,同时也可以作为一个完整的自动驾驶解决方案提供给客户。英特尔GNA,混合高斯模型和神经网络加速器IP是一个超低功耗的语音和音频推断解决方案,它可以被设计集成到很多智能音响、移动设备、智能汽车方向盘或者PC芯片里面。最后是英特尔集成显卡,大家很容易忽略,实际上它内置深度学习推断加速的能力。
下面讲讲英特尔Movidius VPU和集成显卡。去年发布的Myriad X是英特尔Movidius最新一代的VPU,它是一款低功耗的SoC,可以用在高能效图象处理、计算机视觉和深度学习的设备里面,包括服务机器人、监控摄像头、可穿戴设备、无人机、AR-VR头盔和智能家居设备等。相比上一代产品Myriad 2,Myriad X多了一个神经计算引擎(Neural Compute Engine),这是一个集成在芯片上的DNN加速器。有了这个加速器,深度学习推断吞吐量可以达到1TOPS,也就是每秒超过1万亿次运算,理论峰值可以达到4TOPS。英特尔Movidius VPU的微小尺寸和优越的每瓦特计算性能极大的满足了广大用户对计算机视觉和深度学习在终端设备上的需求。
配合Movidius VPU,我们发布了Movidius的软件开发包,它是一个面向视频处理单元的综合软件开发套件。它使用内置的有向图框架降低原型系统开发时间和复杂性,可以使用它进行快速原型开发。它也包含很多库,比如计算机视觉和图像信号处理以及一些线性代数库。这样可以使用C/C++编程来达到最佳的性能,同时它也支持使用丰富的工具套件来进行图形化开发。英特尔Movidius技术已经被广泛应用在很多智能设备里面,包括海康威视智能摄像头、大疆无人机、宇视IP摄像头、摩托罗拉360度相机、大华工业相机、谷歌AIY视觉套件和Clips智能相机等。
英特尔集成显卡提供内置的深度学习推断加速能力,只是大家用得比较少。实际上英特尔集成显卡存在于很多英特尔SoCs中,包括英特尔凌动处理器、英特尔酷睿处理器和英特尔至强E3处理器等。英特尔集成显卡具有领先的媒体性能,包含快速视频同步技术,使用固定功能媒体处理模块来降低功耗、提升性能,可以快速、方便处理媒体以及创建和转换视频。另外就是英特尔Media SDK,它提供访问硬件加速的编解码器的API,这是大家用得比较多的。此外,英特尔集成显卡还支持丰富的数据类型和SIMD乘累加指令。同时CPU和GPU之间采用片上共享内存架构,可以降低延迟和功耗。
现在大家使用英特尔clDNN,就可以很方便的实现英特尔集成显卡上的深度神经网络计算。clDNN是英特尔集成显卡上的深度学习加速中间件,上个月我们刚刚在GitHub上开源,大家通过网页可以了解更多信息。另外,clDNN是英特尔深度学习部署工具包和英特尔OpenVINO工具包的组成部分。OpenVINO也是一个新的开源软件工具包,上个月刚刚发布,用于帮助在英特尔平台上提高计算机视觉解决方案的性能,同时降低解决方案开发时间。
OpenVINO包含英特尔深度学习部署工具包,包括模型优化器和推断引擎,模型优化器可以将Tensorflow、Caffe等框架的推断模型转换为中间表示,这个中间表示通过推断引擎自带的用于英特尔CPU、GPU、VPU和FPGA的插件,就可以支持跨平台的深度学习推断部署和加速 。OpenVINO还包含很多针对英特尔平台优化的传统的计算机视觉工具和函数库,包括针对英特尔CPU和GPU优化的OpenCV、OpenVX和英特尔自己的摄影视觉函数库,以及针对英特尔集成显卡优化的Media SDK和OpenCL驱动程序和运行时,还有针对英特尔FPGA优化的运行时环境和比特流,所有这些都是为了方便大家更快更好的开发计算机视觉应用,而不需要关心更多底层优化的部分。
下面主要介绍我们自己相关的深度学习加速的研究工作 。大家知道,网络模型压缩是深度学习推断加速的一个主要方式,这方面我们做了很好的研究工作,我们提出了一个领先的低精度深度压缩解决方案,这个解决方案可以将DNN模型的权值和激活值都转换为低精度的二进制表示,并实现百倍级无损压缩。这为深度学习的高效推断引擎在硬件和软件实现上铺平道路。这个技术本身包含三个模块:优化DNN结构的动态网络手术技术DNS,用来降低DNN权值精度的渐进网络量化技术INQ,还有降低DNN激活值精度的多尺度编码量化技术MLQ,这三项工作都在顶级的机器学习和人工智能会议上发表。它们可以保证模型的预测准确率不降低的情况下实现DNN模型的压缩。
以AlexNet为例,采用低精度深度压缩解决方案,我们首次实现了接近无损的、压缩比达到100倍以上的二进制DNN模型。由于压缩模型的权值和激活值都是二进制表示,从而使所有的乘法操作都可以变成简单的移位操作。使用定制硬件就可以实现数十倍甚至上百倍的加速。 我们的压缩技术和英特尔低功耗硬件相结合,就可以为雾计算、边缘计算提供深度学习推断的硬件加速能力。 采用FPGA友好的DNN设计,并结合低精度深度压缩解决方案可以充分利用FPGA的逻辑计算单元,在边缘计算或者雾计算的场景里面来提高DNN计算的速度,降低功耗和延迟,提高吞吐量。另外,刚才已经提到,英特尔Movidius VPU本身已经具备一个DNN计算加速器,结合我们的低精度压缩技术,将来就可以提供对低精度DNN计算的支持,从而在边缘设备上进一步提升DNN计算的速度和吞吐量。
当然,我们也不只限于设计专用神经网络处理器,英特尔研究院正在进行一系列智能万物的变革性研究,包括先进算法、神经拟态计算、自主系统和量子计算等。今年CES展上我们发布了神经拟态研究芯片Loihi以及具有49量子位的超导量子测试芯片Tangle-Lake。这两项研究可能帮助各个行业、科研机构以及全社会解决目前困扰着传统计算机的问题。我们的前瞻性研究正在稳步推进,希望能够为人工智能的未来发展以及支持未来新型计算做好准备。
最后,我希望用“知未来 创未来”结束我的演讲。英特尔不改初心,始终坚持合作和创新,我们希望能够和学术界、产业界一起通过合作和创新,来共同创造人工智能的美好未来。谢谢大家!
相关文章:
英特尔AI事业部三位负责人讲解:AI技术如何落地应用
英特尔戴金权:详解全新大数据分析+AI平台Analytics Zoo | CCF-GAIR 2018
发布新一代NNP芯片外,英特尔AI软件和应用更透露其AI野心
。