7月27日,英特尔在北京召开了主题为“智能端到端,英特尔变革物联网”的视觉解决方案及策略发布会。在此次发布会上,英特尔面向中国市场推出了基于英特尔硬件平台的专注于加速深度学习的OpenVINO工具包,可帮助企业在边缘侧快速实现高性能计算机视觉与深度学习的开发。
物联网加速人工智能在边缘计算中的应用
此前人工智能的很多运算处理都是发生在服务器、数据中心这样的云端,因为只有在这样的一个环境里面才能提供强大计算力和便利的支撑。但是,随着物联网时代的到来,将会有越来越多的设备和传感器接入网络,情况正在发生改变。
根据IDC预测,到2020年全球会有超过500亿的智能设备,超过2120亿个传感器。这也意味着每天都将会产生海量的数据。
根据研究机构预测,随着物联网的快速发展,到2020年每个互联网用户每天将生成约1.5GB的数据,一个智能医院每天将产生超过3000GB的数据;每台自动驾驶汽车每天将生成超过4000 GB的数据;联网飞机每天将产生超过40000GB数据;一个智慧工厂联网,假如说有一千多台设备,每台设备上有很多个传感器,时时刻刻都会产生数据,那么整个智慧工厂每天产生的数据量将是1PB。到2020年全世界每天产生的数据总量将是44ZB。(注:1ZB就是1000EB,1EB是1000PB、1个PB是1000TB,1TB是1000个GB。)
面对如此海量的数据,如果仍然只是依靠云端来做数据处理的化,这将对云端的计算力和网络带宽都带来了极大的挑战。虽然计算力和通信技术也在不断发展,但是这个速度还是难以赶上数据增长的速度。所以,边缘计算,即数据在终端侧进行人工智能分析和处理早已是大势所趋势。
IDC预测,到2018年将有45%的物联网数据需要在边缘进行存储处理和分析(足见物联网对于在终端侧部署人工智能需求的增长之快),有50%的物联网的网络会面临带宽的问题。正是由于物联网所带来的海量数据的增长以及对于带宽的极大挑战,在终端侧部署人工智能已经变得非常必要。
而且,在终端侧部署人工智能,还有着数据处理的实时性更高、低延时,更低的带宽需求的优势。比如在自动驾驶领域,对应这方面的要求就非常的高。
另外,在终端侧部署人工智能也有利于数据隐私的保护。因为很多用户是不希望把数据上传到云端的,希望这些数据在本地进行处理,本地处理完以后,上传的是一些是经过处理完以后的特殊的数据,对隐私保护相对比较高的场景,也需要一些数据放在边缘进行处理。
可以说,随着物联网的发展,正在加速人工智能在边缘计算中的应用,但是这并不意味着云端人工智能就不需要了、就会走向消亡。云端人工智能它能够把数据源进行汇总,它能够做一些更综合的应用。如果要给用户提供一个完整的人工智能服务和解决方案,一定是一种边缘与云端协同的端到端的人工智能解决方案。
目前,包括英特尔在内的一些厂商都能够提供端到端的架构了,所以现在“分布式计算”的概念已经是一个比较成熟的概念。也就是说,做云端解决方案的人需要把它的架构切到边缘来,帮助解决边缘的问题。
在英特尔看来,“视频(摄像头)是物联网的终极传感器”。确实,在边缘侧,视频所带来的信息流是最为庞大的。值得注意的是,2016年-2012年网络视频监控流量增长了700%。也就是说,在物联网时代,视频将是人工智能应用爆发的一个关键点。因此,视频监控领域也成为了英特尔端到端人工智能方案的切入重点。
英特尔的全栈式AI硬件解决方案
对于英特尔来说,在云端的服务器及数据中心市场,英特尔是绝对的老大,市场占有率超过9成。针对这块市场,英特尔拥有Xeon处理器与Xeon Phi处理器,以及能支持各种对特定运行负载进行最佳化的加速器,包括现场可编程化逻辑闸阵列(FPGA),以及Nervana。
相对来说,CPU并不适合用来做人工智能运算,不过英特尔依然能够通过集成的GPU,再结合FPGA来实现云端的人工智能运算加速。更何况,英特尔2016年还以4亿美元的高价收购了机器学习初创公司Nervana,将推出一款专为深度学习而打造的神经网络处理器。
在终端侧,英特尔除了可以利用其现有的针对终端的CPU、集显、FPGA产品之外,2016年9月,英特尔收购了计算机视觉芯片公司Movidius,开始加码终端侧的人工智能布局。Movidius的Myriad 系列 VPU目前有被大疆Spark无人机、谷歌Clips相机等知名厂商的产品采用。去年,英特尔还推出了针对终端设备进行人工智能加速的Movidius神经计算棒。
▲英特尔副总裁兼物联网事业部中国区总经理陈伟博士
“我们英特尔有自己的CPU,有自己集显GPU,在加上我们的Movidius、Nervana这些加速技术,还有FPGA,至少从硬件的角度来讲,我们是可以根据应用去勾勒出一个功耗、成本最优化的端到端的全栈式解决方案,这是我们的一个起点。”英特尔副总裁兼物联网事业部中国区总经理陈伟博士表示:“要获得好的人工智能体验,就需要有多元的、高质量的硬件平台,但是,将这些硬件直接应用到人工智能应用上,还有很多的壁垒。主要的壁垒是怎么样能够深度的挖掘和充分的运用硬件的能力。”
我们都知道,同样一种人工智能算法,应用到不同的硬件平台上,所得到的效果差异会非常的大。因为一种算法通过是根据某个硬件平台来优化的。
由于不同的网元所能提供的计算量是不一样的,它能够支撑的操作系统也各不相同的,因此有各自适用的不同的芯片架构。而不同的芯片往往有各自不同的开发方法,这样对开发者而言就带来一定的困扰,也就是说如果我们为某一种芯片所开发的软件换了一个架构以后,它可能是不适用的,这样无形中就增加了开发的门槛。
那么如何让终端厂商能够轻松的采用同样一套AI算法,轻松实现从云端到终端侧的跨平台部署,并发挥出各个硬件平台的能力呢?对此英特尔推出了全新的视觉推理和神经网络优化工具套件OpenVINO。
强大的OpenVINO工具包
OpenVINO是英特尔基于自身现有的硬件平台开发的一种可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,支持各种英特尔平台的硬件加速器上进行深度学习,并且允许直接异构执行。
具体来看,OpenVINO包括英特尔深度学习部署工具包,具有模型优化器和推理引擎,以及面向OpenCV和OpenVx的优化的传统计算机视觉库。OpenVINO工具包可通过基于英特尔架构的处理器(CPU)及核显(Integrated GPU)和深度学习加速器(FPGA、Movidius VPU)的深度学习加速芯片,增强视觉系统功能和性能。
▲英特尔中国区物联网事业部首席技术官兼首席工程师张宇博士
“在计算机视觉领域,业界有两类方法被广泛的使用。一类是深度学习的方法(主要做物体检测、目标识别),另外一类是传统的计算机视觉的方法(比如做光流的计算或者图像的增强),这两类方法实际上都有在被使用。在OpenVINO里面,我们对这两类方法都有很好的支持(针对后一种,英特尔在OpenVINO中集成了媒体软件开发套件Media SDK,可帮助开发者调用英特尔CPU里面集成GPU资源来实现视频的编码、解码以及转码的操作)。OpenVINO包含一个深度学习的部署工具套件,这个工具套件可以帮助开发者,把已经训练好的网络模型部署到目标平台之上进行推理操作,所以OpenVINO是帮助大家做推理的,而不是帮助大家做训练的。我们是帮助大家把这些训练的结果更好的、更快的能够部署到英特尔的目标平台上做推理操作。”英特尔中国区物联网事业部首席技术官兼首席工程师张宇博士解释到。
目前比较流行的深度学习的框架主要有Caffe、Tensor Flow、MxNet,英特尔在设计OpenVINO的时候考虑到了目前开发者的习惯,所以模型优化器通过配置以后可以把这三个主要的开发框架上所开发的网络能够导入到英特尔的平台上,而且导入的过程中,英特尔会根据目标平台的特性做一定的优化,把这些优化的结果转换成中间表述文件——IR文件。这个文件里会包含优化以后的网络拓扑结构,以及优化之后的模型参数和模型变量。这个IR文件后面会被推理引擎进行读取,推理引擎会根据开发者所选用的目标平台去选用相应的硬件插件。目前,OpenVINO可支持英特尔的CPU的插件、GPU插件、FPGA的插件以及Myriad VPU的插件。
大家应该都知道,如果在一个针对数据中心的通用处理器上做的训练,它所产生的训练模型,如果把它部署在前端的一个嵌入式的推理平台之上,它将会可能无法工作或者效果大打折扣,因为不同的推理平台数据的精度不同,所支持的操作系统也不同,能够提供的内存的容量和计算性能也是不同的。因此,在应用到前端之前需要对之前的模型进行一定的优化。
据介绍,例如自动剔除Dropout层(主要用于训练),对一些激活函数的优化等都可以OpenVINO的模型优化器来实现。目前英特尔已经验证了超过150个在Caffe、MxNet和Tensor Flow上所设计的模型。
在推理引擎方面,OpenVINO的推理引擎实际上是一套C++函数库以及C++的类,这样一个推理引擎,实现的是对输入数据的处理,并得到最终的结果,推理引擎是经过简单、统一的API接口,来支持所有的英特尔架构,实现深度学习推理所需要的操作。这些操作包括对数据的读取、对输入输出数据格式的定义以及调用相应的硬件的插件,把这些中间的数据文件下载到你最终的执行平台之上,这是推理引擎要做的工作。
另外,OpenVINO这个工具套件访问实际上是分层的,不同的开发者可以根据自己的使用的要求以及开发的能力去选择不同的API接口进行调用OpenVINO。比如,对于一个新手,只是有一个好的想法,但没有相应的算法或者也不了解深度学习到底如何在硬件上进行实现的话,也可以通过OpenVINO里包含的很多应用的示例来进行学习实现。如果开发者是能力极强的“超级用户”,OpenVINO也可以提供直接调用硬件底层的接口实现对硬件直接的访问能力。
总结一下英特尔的OpenVINO™工具套件能带来的一些优势:首先是性能方面的提升,因为通过OpenVINO,大家可以方便的使用英特尔的各种硬件的加速资源,包括CPU、GPU、VPU、FPGA,这些资源能够帮助大家提升深度学习的算法在做推理的时候的性能,而且这些执行的过程中是支持异构处理和异步执行的,这样的话能够减少由于系统资源等待所占用的时间。另外,OpenVINO™使用了经过优化以后的OpenCV和OpenVX,同时提供了很多应用示例,可以缩短开发时间。这些库都支持异构的执行,所以大家如果编程的话,编写一次,以后就可以通过异构的接口支撑跑在其他的硬件平台之上。
另外在深度学习方面,OpenVINO带有模型优化器、推理引擎以及超过20个预先训练的模型,大家可以利用给大家提供的这些工具,快速的实现自己基于深度学习的应用,而且OpenVINO™使用了OpenCV、OpeenVX的基础库,大家可以利用这些基础库去开发自己特定的算法,实现自己的定制和创新。
根据英特尔公布的数据显示,通过OpenVINO的提升,如果在英特尔的酷睿i77800X这个处理器平台上去跑Google Nex这样的一些开放网络,它的相应的性价比是目前市面上解决方案(NVIDIA Tesla P4)的两倍以上。如果选用英特尔的FPGA的产品Altera 10 1150KLE PCIe卡,它的推理性能/功耗/成本比值的综合考量的因素性能大概能达到NVIDIA Tesla P4的1.4倍以上。如果是基于Movidius平台的Myriad 2 VPU,其经过优化的性能/功耗/成本的比值相比NVIDIA Tegra TX2 Jetson模块将提升5倍以上,所以我们从中可以看到,使用OpenVINO在英特尔硬件平台上所带来的提升还是非常明显的。
客户怎么看?
现在图象处理的算法实际上是非常多样化的,图象处理除了人脸识别以外,还有车辆分析、结构化分析、行为分析等等,比如智能安防领域里基本上已经很难有一个场景说只需要一种算法,绝大部分都是要多种算法融合。所以,异构计算应该是一个趋势。
作为英特尔的合作伙伴代表,宇视研发副总裁兼AI产品线总监汤立波表示:“OpenVINO有几个非常重要的价值,第一个就是可以通过一次训练来满足不同的硬件平台。在我们这个行业,所有的产品在不同位置、不同场景的产品,对芯片的要求是不一样的。比如它的功耗承受能力不一样,性能要求也不一样。所以我们在不同的产品上要用不同的芯片。以前是怎么办呢?是在不同的硬件平台就芯片上面落地的时候,研究开发人员是要多次的开发,产生了大量的人力的浪费,而且大家知道现在人工智能这么火,人力的成本是非常高昂的,通过OpenVINO这样一个方式,我们可以大量的节省成本,这也是一个好处。”
在本次发布会上,国内知名的人工智能厂商云从科技还率先在国内发布了首款基于OpenVINO工具包开发的产品,并已开始进行大规模量产。
“2017年,我们自己开始准备推出我们自己基于英特尔平台的产品,随后就做了一款产品,外观上一般,但是产品很不错,因为有英特尔X86里面的并行计算的模块,更主要的是有OpenVINO的核心模块在里面。基于这个,我们在人工智能以及各行业的广泛应用上,得到了很好的开发。现在这款产品,我们已经在几十家行业客户,以及几百个行业网点做推广,也是有赖于英特尔成熟的生态体系。一款产品同时支持几十家不同客户需求的时候,无论是算法还是应用不同的需求都能够得心应手,当然这里面有很多英特尔同事的支持,因为我们选择了一个合适的平台。”云从科技项目总监李军这样总结到。
作者:芯智讯-浪客剑