目前,数字化浪潮席卷全球,人类社会已经进入智能时代。万物互联的数字化浪潮下,端—边—云协同是实现数字化智能化的重要架构之一。本文我们将简要分析边云协同的必要性,并介绍如何使用英特尔开源的OpenVINO™ 工具套件,在“端—边—云”快速实现高性能人工智能推理。
1
边云协同的必要性及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”性能指标模式,从而按照使用需求,获得高吞吐量或者低延时的推理性能。
2
在微软云机器学习平台 Azure ML 上利用OpenVINO™ 快速实现 AI 推理
除了在边缘端可以很方便地利用 OpenVINO™ 工具套件进行快速部署以外,在云端,比如微软云 Azure 的机器学习平台 Azure ML 上,也可以利用 OpenVINO™ 工具套件快速实现深度学习模型的部署,并进行相应的深度学习模型的优化及推理加速。实现步骤如下:
步骤一
在 Azure 上注册个人账号,并在机器学习平台上建立自己的工作室,就类似于建立一个自己运行推理的专用路径。工作室建立好之后,每次运行 AI 推理时,只需要点击“启动工作室”之后,就可以进入可以进行模型部署及推理的页面了。
步骤二
在启动工作室之后,即进入以下页面。由于我们是利用OpenVINO™ notebooks的 notebook代码示例资源,因此,我们在页面上相应选择Notebooks,即进入可以使用Jupyter Notebook 运行代码,进行 AI 推理的页面。
页面地址:https://github.com/openvinotoolkit/openvino_notebooks
步骤三
在进入 Notebooks 页面后,即可根据界面提示由本地上传所有 Notebooks 文件夹中的代码示例。也可以新建终端 Terminals,在终端页面以 git clone 的方式,直接将OpenVINO™ Notebooks 在 GitHub 上的资源导入在 Azure ML 平台上的工作室。
所有 notebooks 代码示例导入过后,即可看到文件夹内包含的所有代码示例。
步骤四
申请 Azure 上的计算资源,运行 notebook 代码。
以运行 Notebook 213 机器问答代码示例,在申请好并打开计算资源的使用后,运行机器问答 notebook 代码示例,运行结果如下,
3
小结:
在上面的内容中,我们跟大家分享了边云协同的必要性,以及在边缘端能够实现快速深度学习模型优化、推理及任意部署的英特尔开源 OpenVINO™ 工具套件。并通过一个实例,向大家展示了如何在 Azure 机器学习平台上利用 OpenVINO™ 快速实现深度学习模型的推理。