边缘AI(Edge AI)的术语来自边缘计算,这意味着计算发生在靠近数据源的位置。本文翻译自medium上的一篇文章,略有删减,原文标题:Battle of Edge AI — Nvidia vs Google vs Intel,点击阅读原文,跳转到原文链接。
题图 来自pixabay
边缘AI(Edge AI)依然是新兴领域,许多人不清楚该为他们的项目选择哪些硬件平台。本文将比较一些当前领先的边缘AI平台。
自2012年的深度学习热潮以来,Nvidia一直用其GPU主导着AI芯片市场。尽管它们耗电、嘈杂且昂贵(归咎于比特币淘金热),但人们没有其他选择,不得不忍受。大约3年前,谷歌宣布他们设计了Tensor Processing Unit(TPU)来加速数据中心的深度学习推理速度,这引发了成熟的科技公司和初创公司为数据中心和边缘推出专用AI芯片的热潮。
我们今天要讲的是边缘AI的平台。那么,边缘AI究竟是什么?边缘AI的术语来自边缘计算,这意味着计算发生在靠近数据源的位置。在当前的AI世界中,它意味着计算不发生在数据中心或大型计算机中。边缘包括物联网、移动电话、无人机、自动驾驶汽车等,你可以看到,它们在物理尺寸方面差异很大,而且有很多供应商。
因此,我们将把重点放在足够小的平台上,以便舒适地放入口袋,个人和小公司可以购买和使用。从下面的基准测试对比中可以看到,Nvidia比他的竞争对手做得好。基准测试中使用了 - 英特尔神经计算机棒、谷歌 Edge TPU和Nvidia的Jetson Nano。
性能
在评估AI模型和硬件平台进行实时部署时,我要看的第一件事是 - 它们的速度有多快。在计算机视觉任务中,基准测试通常以每秒帧数(FPS)来衡量。数字越大表示性能越好,对于实时视频流,您需要至少大约10 fps,视频才能看起来流畅。Nvidia执行了一些基准测试,您可以访问 https://developer.nvidia.com/embedded/jetson-nano-dl-inference-benchmarks 看到结果。基准测试中使用了许多应用,其中最常见的两个是分类和对象检测。就计算而言,分类是最简单的任务,因为它只需要预测一个图像是什么,例如,一个苹果或一个橘子。而检测任务要求更高,因为它需要检测多个对象的位置及其类别,例如多辆汽车和行人。这正是需要硬件加速的应用。
在理解了这两个应用的含义后,我们现在可以查看基准测试结果(稍后我将解释DNR)。Jetson Nano的数据看起来很适合实时推理,让我们用它们作为基线。英特尔神经计算机棒(我们在这里称之为NCS2)使用MobileNet-v2在分类任务中性能可以达到30 FPS,这也不错。然而,它在物体检测任务中很勉强达到11 FPS。顺便说一句,NCS2是一个USB棒,它需要与外部主机一起使用,在本次测试中是Raspberry Pi 3。如果使用更强大的计算机,基准测试数据可能更高。如果我们在没有UCS2的情况下单独查看Raspberry Pi 3的数据,它能够以2.5 FPS进行分类推断,这对于业余爱好者或玩具项目来说并不坏。好吧,回到UCS2,我认为大约10 FPS的帧率对于实时物体跟踪来说可能不够快,特别是对于高速移动场景,很可能会遗漏许多物体,你可能需要非常好的跟踪算法来弥补。当然,我们不完全信任基准测试结果。通常情况下,公司会手动优化软件,然后与竞争对手的开箱即用型号进行比较。
现在让我们将注意力转向Google Edge TPU。公司将优秀竞争对手的结果纳入其报告中是非常不寻常的。Edge TPU可以在分类任务中达到130 FPS,是Nano的两倍!对于物体检测,Edge TPU也更快,但仅仅是48 FPS对39 FPS。几天前我拿到了一个Edge TPU板,我运行了随附的演示,得到的结果 - 75 FPS!我没有深入分析代码来查看对推理速度有很大影响的神经网络图像大小,但是演示看起来非常流畅且FPS令人印象深刻!
尺寸、功率和成本
物理尺寸是重要考虑因素,它必须足够小以适应边缘设备。开发板包含一些可能不会出现在生产模块中的外围设备,例如:以太网、USB插座,但开发板给我们提供了很好的尺寸和功耗指标。下图显示了实际的开发板(我只有NCS1且尚未收到我的Coral USB)。我们从中间看起,Coral Edge TPU开发板就是信用卡大小,可以用它作为参考来衡量尺寸。
开发板价格和生产模块尺寸
-
NCS2 - 99美元,72.5毫米 x 27毫米
-
Edge TPU USB - 74.99美元,65毫米 x 30毫米
-
Edge TPU开发板 - 149.99美元(开发),40毫米 x 48毫米
-
Jetson Nano - 129美元或99美元(开发),45毫米 x 70毫米
Jetson Nano和Edge TPU 开发板都使用5V电源,前者的功率规格为10W。我找不到Edge TPU的数据,但从当前规格:5V和2-3A,我想它的功率和前者差不多。但是,Edge TPU板中的散热器要小得多,并且在对象检测演示期间不会一直运行。与Edge TPU高效的硬件架构相结合,我猜测功耗应该明显低于Jetson Nano。Nvidia将它的开发套件定价为99美元,我认为这是一个巨大的挑战。谷歌尚未公布其生产模块的价格,但我估计它将与Jetson Nano竞争。
另一方面,两个USB3.0棒都有相似的尺寸,但NCS2显然性能较低,但价格更高。这是否意味着英特尔前景灰暗?不一定,可能软件可以扭转战局。
软件
WINDOWS支持
您知道,USB记忆棒需要连接到主机系统,如果您的系统运行Windows,那么NCS2是您唯一的选择。如果是这样,你不必往下看了。
TPU的局限性
尽管Edge TPU在性能和尺寸方面似乎最具竞争力,但它也是在软件方面最有局限性的。它仅支持Ubuntu作为主机系统,但最大的问题在于机器学习框架。它只支持一种机器学习框架,即Tensorflow(你知道Tensorflow是谷歌拥有的吗?)。实际上,不,从技术上讲,它被称为Tensorflow Lite,仅支持有限数量神经网络层的变体。更糟糕的是,它甚至不支持完整的Tensorflow Lite,而只支持量化为8位整数(INT8)的模型!这与除了INT8之外还支持FP16(16位浮点)的NCS2形成对比。
这意味着什么?传统上,深度学习模型在FP32中进行训练,一般来说,它们可以很容易地转换为FP16,而不会有太多精度损失。但是,对于INT8来说情况并非如此,其中训练后转换通常会给您带来灾难性的准确度。您必须将量化纳入训练。这意味着您无法使用预训练的FP32 AI模型,而必须在模型中添加一些图层并从头开始训练。由于添加了层,训练也将比平时花费更长的时间。如果您想了解更多关于量化的信息,可以阅读我的博客:http://www.sooner.ai/2018/11/16/quantization/ 。谷歌提供了一些预先训练好的模型,您可以对模型进行微调,节省大量时间,但不幸的是,您只能选择很有限的几种计算机视觉模型。这就是为什么Nvidia的基准测试中Edge TPU存在如此多DNR的原因。这是英特尔和Nvidia做得更好的地方。英特尔拥有大量可供您选择的预训练模型( https://software.intel.com/en-us/openvino-toolkit/documentation/pretrained-models )。有趣的是,它包括resnet50-binary-0001,它使用二元卷积层,或外行术语,1位层。英特尔的OpenVINO允许从Tensorflow、Caffe、MxNet、Kaldi和ONNX转换模型。
NVIDIA是软件之王
作为人工智能硬件的先驱,Nvidia的软件是最通用的,因为它的TensorRT支持大多数机器学习框架,甚至包括MATLAB。EdgeTPU和NCS2旨在支持计算层的某些子集(主要用于计算机视觉任务),但Jetson Nano本质上是一个GPU,它可以做大多数其兄弟桌面GPU能做的计算,只是慢点。因此,如果您的应用涉及一些非计算机视觉模型,例如循环神经网络或使用许多自定义层开发自己的模型,使用Jetson系列会更安全,以免在将经过训练的模型移植到嵌入式部署环境时出现令人讨厌的意外情况。Nvidia还提供DeepStream SDK,支持多路视频流和Isaac机器人引擎进行路径规划和自主导航。
应用
现在我们已经了解了这些平台的优缺点,我们应该选择哪些平台运行哪些应用?所有这些平台都能够运行计算机视觉AI,但我认为每个平台都有最适合的应用场景。我还会提到一些独特的硬件特性。
INTEL NCS2
优点:支持Windows,部署快,模型选择多
缺点:推理速度相对较慢,价格较高
最佳应用是运行Windows的自助服务终端、ATM和销售网点系统。容易快速升级现有系统到AI。它也适用于业余爱好者和小批量项目。
EDGE TPU
优点:性能最佳,配备Wifi和加密引擎
缺点:有限的培训资源、AI模型和软件库,例如不支持OpenCV。
虽然价格是最高的,但其中包括Wifi和加密引擎等完整系统,使其成为家用智能相机等消费类电子产品和物联网设备的理想选择。由于它是最近才诞生的,因此没有太多的资源(培训材料、人工智能模型、教程)可供使用,这对消费电子产品业务更有意义,因为他们可以负担更多的研发成本。
NVIDIA JETSON NANO
优点:良好的软件生态系统和资源,其他软件库
缺点:略显笨重
这对于无人机、玩具、吸尘器等自动驾驶系统来说非常理想。它是一个通用的AI平台,因此在其他平台不擅长的领域,选择Nano是安全的选择。
未来
EDGE AI已经到来,我对未来硬件进行一下预测。一个明显的趋势是使用较低的位宽,这将继续发生。目前,任何低于8位的产品都不能提供良好的准确性,但这是一个活跃的研究领域,硬件公司应该准备好迎接算法研究的突破。
计算机视觉是第一个通过深度学习而彻底改变的领域,我们看到所有上述平台都非常努力优化用于计算机视觉的前馈卷积神经网络。随着像Alexa这样基于语音的智能系统的兴起,边缘AI芯片在语音方面还存在巨大发展空间。