14

啥都吃的豆芽 · 2020年04月27日

借助深度学习模型优化 解锁Arm微控制器上的人工智能

image.png
此博客中的所有内容均由Deeplite.ai的联合创始人兼CPO戴维斯·索耶(Davis Sawyer)提供

人工智能和深度学习在嵌入式设备和平台上出现,为产品智能化创造了令人兴奋的新方式和新机会。在计算机视觉和自然语言等领域,深度神经网络(DNNs)已经成为执行复杂任务的主要工具,甚至在图像识别中能力超过了人类。因此,近年来,DNN变得更加复杂,对计算的要求也越来越高,执行越来越有趣和智能的应用,例如语义分割和面部识别。这使得许多最先进的模型体系结构不适用于所有的硬件设备。对于目前正在使用的数十亿微控制器(MCU)来说,这也关上了人们在微控制器上进入人工智能应用的大门。

深度学习有网络大小的门槛,这已经不是什么秘密了。例如,用于语言任务的大型转换器模型MegatronLM拥有超过80亿个参数(即33 GB内存),并且需要用500个V100 GPU在训练9天。这虽然是一个极端的例子,但大多数现代DNN模型的资源需求根本不能在我们周围的边缘设备(如电话、汽车和传感器)中普遍使用的低功耗计算硬件上运行。

image.png

对于大多数深度学习团队来说,最初的重点是创建一个模型,并且使其用例具有很高的准确性。训练模型并且产出高精度的结果本身就是一项成就。接下来是模型大小、延迟和功耗方面的事儿。这些约束依赖于可用的硬件,很难在不影响原始模型的情况下得到高精度的结果。这在深度学习模型的生产部署方面造成了鸿沟,因为必须考虑多种设计指标才能在适用于设备的目标硬件上实际使用深度学习。

幸运的是,有一个解决方案。这些障碍可以通过有效的深度学习模型优化来克服。模型优化不仅使AI工程师能够快速创建高度紧凑、高性能的模型,还允许AI团队在电池供电和资源有限的设备(如Arm Cortex-M MCU)随时可用的高效处理器上部署这些模型。模型优化使以前依赖云连接和服务器级硬件的任务关键型和实时任务能够在标准MCU内本地运行,从而显著提高吞吐量和推理延迟。

为了演示模型优化的影响,让我们考虑以下在智能工厂环境中的部署,在该环境中,我们使用低功耗摄像头、Arm MCU和卷积神经网络(CNN)对产品样本的正负图像进行分类以进行质量控制:

  • Arm Cortex-M4(256KB片内存储器,1MB闪存)。
  • 专有二进制分类数据集训练的MobileNetv1 CNN。
  • 目标优化指标是模型大小(MB)和准确性。

image.png

今天,优化深度学习模型的最常见方法是通过代价高昂的试错过程。工程师可以花几周到几个月的时间来应用修剪、超参数调整、量化,或者更频繁地应用之前的某种组合,为他们的硬件找到一个商业实用的模型。在DeepLite,我们正在用针对DNN模型的自动化、按钮优化过程打破模式。

用户只需参考其预先训练的模型、数据集和一些约束(如本例中的大小或精度),然后点击“Run”。我们的内部软件引擎使用专有的设计空间探索算法,高效地聚合并找到针对其部署的特定约束进行优化的新模型架构

过去需要几周到几个月的人工工作现在可以通过一个简单易用的软件引擎在几个小时或几天内实现自动化。对于需要单独和多步骤方法来检查和确保产品质量的制造过程来说,这是非常有价值的。通常,缺陷要到工艺结束时才能发现,但是DNN型号的自动光学检测和快速吞吐量可实现早期检测(如以下智能制造流程图的步骤2中突出显示的那样)。

image.png

模型优化的多目标方法使工程师能够专注于准确性,并利用DeepLite无缝创建用于推理的生产就绪模型。关注上面的步骤2,初始MobileNetv1模型(在验证数据集上大约12.8MB和92%的准确性)必须在配备Arm Cortex-M4的低功耗相机上运行。但人工智能工程师需要创建一个模型,该模型可以将参数安装到256KB的片上存储器上,所有这些都在Top-1精度损失不到2%的情况下。

为了达到这样的精度保持和尺寸缩小,修剪、超参数调整和基本量化等方法是不能削减它的。这通常是因为这些技术没有充分探索为现实任务找到可行解决方案所需的网络设计空间(过滤器、层数、操作数、内核大小)。行业应用需要一种可重复、可重现的架构搜索方法。

DeepLite引擎实施独特的注意机制来解析预先训练的模型体系结构,并识别有意义的敏感性和网络转换,从而极大地减少了找到可接受解决方案所需的设计空间。此外,应用知识提炼极大地保持了高保真和关键任务用例的准确性。

我们的引擎可以在新的网络设计中使用确定性方法快速收敛。它根据用户定义的约束减少了设计空间,并创建了一个高度紧凑的新网络。在这种情况下,DeepLite引擎自动发现并返回了大约144KB的新体系结构,Top-1准确率仅下降了1.84%,MAC操作数量也大幅减少。

此外,通过对初始大模型的训练和DeepLite优化引擎的使用,发现优化模型对未知数据的泛化效果更好,对模型有一定的正则化效果。我们能够超过部署所需的指标,并使用户能够在Arm-Cortex M4上本地运行他们的分类模型。通过直接在MCU上执行推理,在延迟、带宽和推理成本等关键领域实现了显著节省。

此外,DeepLite可以与Pytorch、TensorFlow和ONNX等AI框架以及Arm NN和CMSIS-NN等低级工具互操作。

这使设计团队可以轻松地将其模型移植到新硬件或保持现有配置。与Arm合作,DeepLite的深度学习模型优化方法使AI团队能够利用Arm Cortex-M4等高效硬件在边缘执行AI任务。

通过自动化可投入生产的模型架构的开发周期,DeepLite还可以通过多目标优化大幅加快产品上市时间,并提高模型开发团队的生产力。最后,通过将模型优化与Arm的低功耗硬件(如Cortex-M3、M4或M55)相结合,用户可以在吞吐量和节能方面得到前所未有的提升。

image.png

image.png

高度优化的模型和新的AI用例的结果正在迅速向下一代智能产品中展现。Deeplite使智能制造,汽车和消费类设备的行业领导者能够突破常规限制,并部署其AI模型,这是以前从未有过的AI团队能够做到的。Deeplite和Arm携手合作,通过在MCU上启用设备推断功能来真正释放边缘物联网的潜力。

推荐阅读
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息