借助深度学习模型优化解锁Arm MCU的AI功能

嵌入式系统和平台上AI和深度学习的出现给制造更智能的产品带来了新的机会。在计算机视觉和自然语言的领域,深层神经网络(DNNs)已成为执行复杂任务的工具,甚至在识别图像中的物体方面胜过人类。因此,CNNs在近年来变得更加复杂且对计算需求更高,能够执行越来越有趣且更智能的用例,例如语义分割和面部识别。这使得许多最先进的模型架构也无法满足日常设备的需求,导致人们无法将AI应用在现在所使用的数十亿MCU上。

深度学习存在尺寸问题已不是什么秘密。举个例子,MegatronLM—一个用于语言任务的大型转换器模型包含超过80亿个参数(即33GB的内存)需要用500个V100 GPUs 训练9天。尽管这是个比较极端的例子,但在电话,汽车和传感器等边缘设备中普遍存在的低功耗计算硬件大都无法满足现代DNN模型的资源需求。

                                          图1:深度学习模型复杂度的增长

绝大数深度学习团队最初的关注点都是在创建一个可以在他们的用例上取得高精度的模型。训练一个可以得到理想高精度的模型本身就是一种成就。接下来还需要考虑模型大小,延迟以及功耗。这些限制取决于可用的硬件,导致在不影响原始模型精度水平的情况下是很难实现的。这在深度学习模型的生产部署方面这是一个巨大的鸿沟,因为为了能在适用于该设备的目标硬件上实际使用深度学习必须考虑多个设计指标。

幸运的是,我们有一个解决方法。以上障碍都可以通过有效的深度学习模型优化来来克服。模型优化不仅可以使AI工程师迅速的创造高度紧凑,高性能的模型,AI团队还可以随时把这些模型部署在电池供电且资源有限的设备上,例如Arm Cortex-M MCU等高效的处理器上。模型优化让以前依赖于云连接和服务器级硬件的关键任务和实时任务能够在本地标准的MCU中运行,从而显着提高吞吐量和缓解推理延迟。

让我们用以下例子演示模型优化的影响:在智能工厂设置中使用低功率摄像机,Arm MCU和卷积神经网络(CNN)对产品样本的正负图像进行分类以进行质量控制。
•Arm Cortex-M4(256KB片上内存,1MB闪存)
•MobileNetv1 CNN经过专有二进制分类数据集的训练
•目标优化指标是指模型大小(以MB为单位)和准确性


*                                  图2:Arm硬件上部署DNN的优化流程*

今天,优化深度学习模型最常见的方式是经过昂贵的反复试验。工程师需要花费数周至数月的时间进行修剪,超参数调整,量化或更频繁地对上述参数进行组合来为硬件找到实用的商业模型。在Deeplite,我们通过针对DNN模型的自动按钮来优化流程打破常规。

用户只需参考他们的预训练模型,数据集和一些约束条件(如本例中的尺寸或精准度),然后按运行键即可。我们的本地软件引擎使用专有的设计空间探索算法来有效地收敛并找到针对其部署的指定约束来优化新模型架构。

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

                                       图3:用于智能制造过程的自动检查传递途径

多目标模型优化方法使工程师可以专注于精度,并利用Deeplite无缝创建可用于生产的模型进行推断。着眼于上面的步骤2,初始的MobileNetv1模型(在验证数据集上大约为12.8MB,准确度为92%)必须在装有Arm Cortex-M4的低功率摄像机上运行。但是AI工程师需要创建一个可以将参数拟合到256KB片上存储器并且Top-1精度损失均不到2%的模型。

在保证精度的同时减小尺寸,诸如修剪,超参数调整和基本量化之类的方法都无法达到。这通常是因为这些技术不能完全探索为现实任务找到可行解决方案所需的网络设计空间(过滤器的数量,层数,操作,内核大小)。工业应用需要可重复,可再现的架构搜索方法。

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

我们的引擎可以使用确定性方法快速趋于新的网络设计。它会根据用户定义的约束减少设计空间,并创建一个高度紧凑的新网络,在这种情况下,Deeplite引擎会自动找到并返回约为144KB的新架构,并且Top-1准确性也只降低了1.84% 大大减少了MAC操作次数。

此外,我们发现Deeplite对于看不见的数据可以生成更好的优化模型,因为训练并用Deeplite优化引擎优化一个大规模原始模型是对模型是有规范作用的。我们能够超越部署所需的指标,并使用户能够在本地Arm-Cortex M4上运行其分类模型。直接在MCU上执行推理,可以直接减少延迟、带宽和推理成本等关键问题。

另外,Deeplite与 Pytorch、TensorFlow和ONNX等人工智能框架以及Arm NN和CMSIS-NN等底层工具是可互操作的。

这使设计团队可以轻松的把他们的模型移植到一个新的硬件或者保持原有的配置。在和Arm的合作之下,Deeplite’s的深度学习模型优化方法使AI团队可以利用Arm Cortex-M4等高效硬件在边缘执行AI任务。

通过自动化生产就绪模型架构的开发周期,Deeplite还可以通过多目标优化大大加快上市时间,提高模型开发团队的生产力。最后,通过将模型优化与Arm的低功耗硬件(如Cortex-M3、M4或M55)相结合,用户可以从实现的高吞吐量和节能中获益。

                                          表1:专有数据集上MobileNetv1优化结果摘要


                         图4:用于质量检查的二进制分类图像样本

新型AI用例的结果正迅速在下一代智能产品中展现。Deeplite使智能制造,汽车和消费类设备的行业领导者能够突破常规限制部署他们的AI模型,这是以前从未有团队能够做到的。Deeplite和Arm携手,通过直接在MCU设备上推断从而真正释放了边缘物联网的潜力。更多详情或联系请访问:https://www.deeplite.ai/

作者:Mary Bennion
翻译:Khorina
原文链接:https://community.arm.com/developer/ip-products/processors/b/ml-ip-blog/posts/unlocking-ai-on-arm-microcontrollers-with-deep-learning-model-optimization

发表评论

邮箱地址不会被公开。 必填项已用*标注