目前,数字化浪潮席卷全球,人类社会已经进入智能时代。万物互联的数字化浪潮下,端-边-云协同是实现数字化智能化的重要架构之一。本文我们将简要分析边云协同的必要性,并介绍如何使用英特尔开源的OpenVINOTM工具套件,在“端-边-云”快速实现高性能人工智能推理。
众所周知,18世纪60年代人类开始了第一次工业革命,从此进入“蒸汽时代”,接着进入了电气时代和信息时代,当前人类社会正在发生第四次工业革命,即智能时代。英特尔首席执行官帕特·基辛格在2021年世界互联网大会乌镇峰会上指出,要拥抱四大超级技术力量。这四大超级技术力量分别是:第一,无所不在的计算。计算能力正渗透到我们生活的方方面面,作为人和技术的交互点,跨越现有和新兴设备。第二,无处不在的连接,即万物互联。第三,从云到边缘的基础设施。它创造一个动态可靠的路径来连接计算和数据,实现规模和容量无限扩展的云与无限延伸的智能边缘相结合。第四是人工智能。这四大超级技术力量并不是技术孤岛,而且相互协同,相互融合,共同推动产业的巨大变革。
四大超级技术力量使得数据一旦产生之后,能够在相应的节点做快速且及时的处理,从而减少数据处理的延时;高价值数据经过边缘提取后,高效率的传递到云端,借助云端的超级计算力量挖掘数据背后隐含的价值,让用户可以开发相应的服务,实现科技向善。没有边云协同,这四大超级技术力量将被割裂,数据将成为孤岛,智能时代要求的智能化、无人化和集群化将无法实现。如下图所示,将云端规模开发的优势与边缘端推理的好处结合起来,能够使得边云协同的优势发挥到最大化,将无限的数据变成可操作的洞察力。
下图是一个智能制造工厂中,利用“端-边-云”协同架构,利用人工智能技术实现实时产品缺陷检测的例子。在这个场景中,每个工位构成了“端”,在工位上架设的摄像头可以每秒采集超过400张产品生产过程中的图片。因此,在端这一侧利用AI推理技术,对实时产生的大量图片进行AI推理,从而避免将海量数据同时传输到云端产生的高成本及延时。生产流水线构成了这个场景中的“边”,一些更为复杂的推理任务可以实时的在边侧完成,并进行跨工位的调度。最终所有的推理结果可以进一步推送到云端,进行数据集中以及更为深层次的分析,同时边缘端产生的部分数据也可以推送至云端,作为训练数据的补充,用于对深度学习模型进行重训练,以获得更高的准确性。
通过上述的例子,我们可以看出,在边云协同的架构中,一个很重要的步骤就是将人工智能(AI)的推理扩展到边缘端,避免边缘端产生的大量数据向云端同时进行传输所引起的高成本,可以获得接近或处于边缘的近实时决策。而能够实现边缘端方便进行AI模型部署及推理加速的重要工具之一,就是由英特尔开源的OpenVINOTM工具套件。
OpenVINOTM工具套件经过近四年的发展和演进,现已正式发布了迄今为止变化最大的版本,即OpenVINOTM 2022.1版本。在这一版本中,不仅支持包括基于Tensorflow,PyTorch 在内的深度学习框,更可以支持深受中国开发者喜爱的PaddlePaddle飞桨深度学习框架。同时,为了方便开发者在边缘端部署深度学习模型,实现“一次撰写,任意部署(Write once,deploy anywhere)”的目的,OpenVINOTM可以支持包括英特尔CPU、集成GPU(iGPU)以及VPU在内的多个硬件平台的部署。只需要改动一行代码,就可以实现多硬件平台部署。
尤为值得一提的是,在OpenVINOTM 2022.1版本中,为了使得开发者更加便捷的使用OpenVINOTM进行深度学习的推理,更推出了AUTO插件(“auto device”)。开发者只需要使用这样的一行代码
就可以在边缘端实施AI推理时,由AUTO插件自动化的检测开发者环境中可以用来进行AI推理的设备,并自动化的选择更为合适的硬件设备进行AI推理。另外,根据不同使用场景的使用需求不同,AUTO插件在使用时,还允许开发者选择不同的“performance hint”性能指标模式,从而按照使用需求,获得高吞吐量或者低延时的推理性能。
除了在边缘端可以很方便地利用OpenVINO进行快速部署以外,在云端,比如微软云Azure的机器学习平台Azure ML上,也可以利用OpenVINO快速实现深度学习模型的部署,并进行相应的深度学习模型的优化及推理加速。实现步骤如下:
步骤一,在Azure上注册个人账号,并在机器学习平台上建立自己的工作室,就类似于建立一个自己运行推理的专用路径。工作室建立好之后,每次运行AI推理时,只需要点击“启动工作室”之后,就可以进入可以进行模型部署及推理的页面了。
步骤二,在启动工作室之后,即进入以下页面。由于我们是利用OpenVINO notebooks () 的notebook代码示例资源,因此,我们在页面上相应选择Notebooks,即进入可以使用Jupyter Notebook 运行代码,进行AI推理的页面。
步骤三,在进入Notebooks页面后,即可根据界面提示由本地上传所有Notebooks文件夹中的代码示例Notebooks。也可以新建终端Terminals,在终端页面以git clone的方式,直接将OpenVINO Notebooks在GitHub上的资源导入在Azure ML平台上的工作室。
所有notebooks代码示例导入过后,即可看到文件夹内包含的所有代码示例。
步骤四,申请Azure上的计算资源,运行notebook代码。
以运行Notebook 213 机器问答代码示例,在申请好并打开计算资源的使用后,运行机器问答notebook代码示例,运行结果如下,
小结:
在上面的内容中,我们跟大家分享了边云协同的必要性,以及在边缘端能够实现快速深度学习模型优化、推理加入及任意部署的英特尔开源工具套件OpenVINOTM。并通过一个实例,向大家展示了如何在Azure机器学习平台上利用OpenVINOTM快速实现深度学习模型的推理。
关于英特尔OpenVINOTM开源工具套件的详细资料,包括其中我们提供的三百多个经验证并优化的预训练模型的详细资料,请您点击https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/overview.html
除此之外,为了方便大家了解并快速掌握OpenVINOTM的使用,我们还提供了一系列开源的Jupyter notebook demo。运行这些notebook,就能快速了解在不同场景下如何利用OpenVINOTM实现一系列、包括OCR在内的、计算机视觉及自然语言处理任务。OpenVINOTM notebooks的资源可以在Github这里下载安装:https://github.com/openvinotoolkit/openvino_notebooks 。