使用OpenVINO™ 在“端—边—云”快速实现高性能人工智能推理

openlab_4276841a 更新于 1年前

作者

英特尔AI软件布道师

武卓博士

曾主持国家级及省部级科研项目十余项,已授权国际国内专利十余项。

目前,数字化浪潮席卷全球,人类社会已经进入智能时代。万物互联的数字化浪潮下,端—边—云协同是实现数字化智能化的重要架构之一。本文我们将简要分析边云协同的必要性,并介绍如何使用英特尔开源的OpenVINO™ 工具套件,在“端—边—云”快速实现高性能人工智能推理。


一、边云协同的必要性及OpenVINO 工具套件简介


众所周知,18世纪60年代人类开始了第一次工业革命,从此进入“蒸汽时代”,接着进入了电气时代和信息时代,当前人类社会正在发生第四次工业革命,即智能时代。英特尔首席执行官帕特·基辛格在2021年世界互联网大会乌镇峰会上指出,要拥抱四大超级技术力量。这四大超级技术力量分别是:第一,无所不在的计算。计算能力正渗透到我们生活的方方面面,作为人和技术的交互点,跨越现有和新兴设备。第二,无处不在的连接,即万物互联。第三,从云到边缘的基础设施。它创造一个动态可靠的路径来连接计算和数据,实现规模和容量无限扩展的云与无限延伸的智能边缘相结合。第四是人工智能。这四大超级技术力量并不是技术孤岛,而且相互协同,相互融合,共同推动产业的巨大变革。



四大超级技术力量使得数据一旦产生之后,能够在相应的节点做快速且及时的处理,从而减少数据处理的延时;高价值数据经过边缘提取后,高效率的传递到云端,借助云端的超级计算力量挖掘数据背后隐含的价值,让用户可以开发相应的服务,实现科技向善。没有边云协同,这四大超级技术力量将被割裂,数据将成为孤岛,智能时代要求的智能化、无人化和集群化将无法实现。如下图所示,将云端规模开发的优势与边缘端推理的好处结合起来,能够使得边云协同的优势发挥到最大化,将无限的数据变成可操作的洞察力。




下图是一个智能制造工厂中,利用“端—边—云”协同架构,利用人工智能技术实现实时产品缺陷检测的例子。在这个场景中,每个工位构成了“端”,在工位上架设的摄像头可以每秒采集超过400张产品生产过程中的图片。因此,在端这一侧利用 AI 推理技术,对实时产生的大量图片进行 AI 推理,从而避免将海量数据同时传输到云端产生的高成本及延时。生产流水线构成了这个场景中的“边”,一些更为复杂的推理任务可以实时的在边侧完成,并进行跨工位的调度。最终所有的推理结果可以进一步推送到云端,进行数据集中以及更为深层次的分析,同时边缘端产生的部分数据也可以推送至云端,作为训练数据的补充,用于对深度学习模型进行重训练,以获得更高的准确性。



通过上述的例子,我们可以看出,在边云协同的架构中,一个很重要的步骤就是将 AI 的推理扩展到边缘端,避免边缘端产生的大量数据向云端同时进行传输所引起的高成本,可以获得接近或处于边缘的近实时决策。而能够实现边缘端方便进行 AI 模型部署及推理加速的重要工具之一,就是由英特尔开源的OpenVINO 工具套件。




OpenVINO 工具套件经过近四年的发展和演进,现已正式发布了迄今为止变化最大的版本,即 OpenVINO 2022.1版本。在这一版本中,不仅支持包括基于 Tensorflow,PyTorch 在内的深度学习框,更可以支持深受中国开发者喜爱的 PaddlePaddle 飞桨深度学习框架。同时,为了方便开发者在边缘端部署深度学习模型,实现“一次撰写,任意部署(Write once,deploy anywhere)”的目的,OpenVINO 可以支持包括英特尔 CPU、集成 GPU(iGPU)以及 VPU 在内的多个硬件平台的部署。只需要改动一行代码,就可以实现多硬件平台部署。


尤为值得一提的是,在 OpenVINO 2022.1版本中,为了使得开发者更加便捷的使用 OpenVINO 进行深度学习的推理,更推出了 AUTO 插件(“auto device”)。开发者只需要使用这样的一行代码



就可以在边缘端实施 AI 推理时,由 AUTO 插件自动化的检测开发者环境中可以用来进行 AI 推理的设备,并自动化的选择更为合适的硬件设备进行 AI 推理。另外,根据不同使用场景的使用需求不同,AUTO 插件在使用时,还允许开发者选择不同的“performance hint”性能指标模式,从而按照使用需求,获得高吞吐量或者低延时的推理性能。



二、在微软云机器学习平台 Azure ML 上利用OpenVINO 快速实现 AI 推理


除了在边缘端可以很方便地利用 OpenVINO 工具套件进行快速部署以外,在云端,比如微软云 Azure 的机器学习平台 Azure ML 上,也可以利用 OpenVINO™ 工具套件快速实现深度学习模型的部署,并进行相应的深度学习模型的优化及推理加速。实现步骤如下:


步骤一

在 Azure 上注册个人账号,并在机器学习平台上建立自己的工作室,就类似于建立一个自己运行推理的专用路径。工作室建立好之后,每次运行 AI 推理时,只需要点击“启动工作室”之后,就可以进入可以进行模型部署及推理的页面了。


步骤二

在启动工作室之后,即进入以下页面。由于我们是利用OpenVINO notebooks的 notebook代码示例资源,因此,我们在页面上相应选择Notebooks,即进入可以使用Jupyter Notebook 运行代码,进行 AI 推理的页面。

页面地址:https://github.com/openvinotoolkit/openvino_notebook***r/>


图片


步骤三

在进入 Notebooks 页面后,即可根据界面提示由本地上传所有 Notebooks 文件夹中的代码示例。也可以新建终端 Terminals,在终端页面以 git clone 的方式,直接将OpenVINO Notebooks 在 GitHub 上的资源导入在 Azure ML 平台上的工作室。




所有 notebooks 代码示例导入过后,即可看到文件夹内包含的所有代码示例。



步骤四

申请 Azure 上的计算资源,运行 notebook 代码。



以运行 Notebook 213 机器问答代码示例,在申请好并打开计算资源的使用后,运行机器问答 notebook 代码示例,运行结果如下,



三、小结:


在上面的内容中,我们跟大家分享了边云协同的必要性,以及在边缘端能够实现快速深度学习模型优化、推理及任意部署的英特尔开源 OpenVINO 工具套件。并通过一个实例,向大家展示了如何在 Azure 机器学习平台上利用 OpenVINO 快速实现深度学习模型的推理。


关于英特尔 OpenVINO 开源工具套件的详细资料,包括其中我们提供的三百多个经验证并优化的预训练模型的详细资料,请您点击:

https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/overview.html


除此之外,为了方便大家了解并快速掌握 OpenVINO 工具套件的使用,我们还提供了一系列开源的 Jupyter notebook demo。运行这些 notebook,就能快速了解在不同场景下如何利用 OpenVINO™ 工具套件实现一系列、包括 OCR 在内的、计算机视觉及自然语言处理任务。OpenVINO notebooks的资源可以在 Github 以下地址下载安装:

https://github.com/openvinotoolkit/openvino_notebooks

0个评论