请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

意法半导体加入MLCommons,通过该基准测试助力团队采用边缘机器学习技术

[复制链接]
STMCU小助手 发布时间:2022-11-24 22:00
微信图片_20221123223445.jpg
今天,意法半导体正式成为MLCommons™的一员,该联盟负责对移动平台、数据中心和嵌入式系统等领域的机器学习性能进行量化基准测试。此项举措旨在使工程师和决策者能够掌握行业的发展方向及其可以实现的目标。同时有助于阐明在系统的约束条件下哪些是可行的。低功耗嵌入式系统通过运行MLPerf™ Tiny基准测试,对推理时间和功耗进行检测。意法半导体的器件从一开始就出现在基准测试的一个类别里。凭借MLCommons会员资格,我们可以通过客观、可重复的测试,进一步帮助合作伙伴充分利用边缘机器学习技术。
通过ST的GitHub,可以下载在STM32微控制器上运行MLPerf Tiny的说明和源代码。


意法半导体为何加入MLCommons?


创建Tiny ML应用程序的挑战

边缘机器学习(或称微型ML)的日益普及正引领着“下一个自动化时代区”的到来。然而,随之而来的是巨大的挑战,可能会让许多工程团队感到困惑。开发人员想知道他们可以在微控制器上运行怎样的推理操作,以及应用程序是否可以在资源和能耗受限的MCU上运行。不幸的是,这些测试既复杂又昂贵。寻找一个干净的数据集都会令人望而生畏。团队必须创建一个可以在硬件上运行的神经网络,并进行全面测试。简而言之,这比在文件中写入值的简单编程循环需要更多的工作。


微信图片_20221123223440.jpg
▲ 神经网络示意图


意法半导体计划让所有人都能使用MLPerf Tiny
意法半导体对MLCommons的贡献是就此项复杂挑战提出了一个简单的解决方案,并在GitHub上提供了指令和源代码,以便开发人员可以在我们的平台上运行MLPerf Tiny。甚至还有一个Wiki,提供了简单的分步指南,可在不执行传统复杂流程的情况下获得性能和功耗指标。从而令生态系统的比较变得简单,并让工程师能够自己进行测试。可使用来自MLCommon的预训练量化模型或其他支持的模型。因此,意法半导体的计划强调了边缘机器学习可以做什么以及生态系统的重要性。


通过MLCommons的基准测试来量化STM32和X-CUBE-AI为边缘机器学习带来的好处
在MLCommons页面发布的意法半导体结果显示STM32L4、STM32U5和STM32H7均运行X-CUBE-AI v7.3,这是当时该软件的最新版本。先前提交的文件显示,将STM32U5与另一款友商的Arm® Cortex®-M33的MCU进行比较时,意法半导体生态系统的推理速度快56%,而所需能量却少74%。深入研究数据时,我们注意到STM32U5的运行频率为160 MHz,而友商的MCU的运行频率则为200 MHz。STM32器件较低的频率和开关模式电源(SMPS)正是较低功耗的原因所在。

微信图片_20221123223436.jpg

▲ 用于评估MLCommons MLPerf Tiny功耗的STM32 Power Shield和STM32H7 Nucleo板

这些数字背后的另一个原因是X-CUBE-AI的效率。扩展包从预训练神经网络生成STM32优化库。意法半导体的软件通过STM32架构和加速推理来提高性能,这得益于代码优化和合并特定神经网络层的能力。其中一些改进在MLPerf Tiny中很明显,例如:推理时间的降低。然而,MLCommons基准测试目前还不能检测机器学习应用程序在RAM中的大小。可是对于希望减少材料清单(BOM)的工程师来说,内存占用仍然是一个重要因素。我们在使用X-CUBE-AI和TensorFlow Lite for Microcontrollers(TFLM)后进行了测试,以比较内存使用情况。


Tensor Flow Lite与X-CUBE-AI 用于MCU的对比
为了全面了解STM32Cube.AI 比 TFLM在性能和内存使用上的优势,我们进行了两项基准测试。第一种方法围绕图像分类的应用性能,第二种方法视觉唤醒词(Visual wake word)应用的性能。所有测试均在NUCLEO-H7A3ZI-Q 开发板上运行,芯片是STM32H7A3,在X-CUBE-AI 7.3中执行的所有基准测试都使用了平衡设置,从而可在RAM大小和推理时间之间找到最佳折衷。有关X-CUBE-AI 7.3新优化设置的更多信息,请查看我们的博客文章。

图像分类:TFLM与X-CUBE-AI–推理时间

微信图片_20221123223433.jpg


在第一次测试中,X-CUBE-AI v7.1生成的应用程序的推理时间比使用TFLM时快43%,而X-CUBE-AI v7.3则快82%。基准测试不仅显示了我们解决方案的好处,还显示了最新版本的改进成果。事实上,除了处理扩展层之外,STM32Cube.AI v7.3还通过各种优化提供了30%以上的性能改进。新版本还支持深度量化的神经网络,该网络在资源受限的微控制器上非常活跃。

图像分类:TFLM与X-CUBE-AI–内存占用率

微信图片_20221123223430.jpg

内存占用基准测试很有意思,因为测试显示,尽管TFLM提供的推理时间比X-CUBE-AI v7.1差得多,但TFLM需要的RAM和Flash分别多22%和24%。与X-CUBE-AI v7.3相比,TFLM与X-CUBE-AI v7.3之间的差距缩小了,因为后者对扩展层的支持必然需要更多的内存。然而,X-CUBE-AI v.7.3仍然拥有较高的性能/内存占用率,因为开发人员可以节省10%的RAM和24%的Flash。

视觉唤醒词:TFLM与X-CUBE-AI–推理时间


微信图片_20221123223427.jpg


视觉唤醒词应用程序很有趣,因为它对内存优化更加敏感。事实上,从推理时间来看,X-CUBE-AI的两个版本都表现出明显改进,与用于微控制器的Tensor Flow Lite相比,早期版本和最新版本分别增加了24%和41%。然而,下一项基准测试显示了内存占用率的大幅改善。


视觉唤醒词:TFLM与X-CUBE-AI–内存占用率


微信图片_20221123223354.jpg


TFLM需要的RAM几乎是X-CUBE-AI v7.1的两倍,且使用的Flash要多25%。未来,这将意味着工程师可以使用更少的内存模块,从而减少材料清单。即使与X-CUBE-AI v7.3相比,TFLM也需要多出74%的RAM和35%的Flash,尽管意法半导体解决方案由于其优化和对扩展层的支持,在平衡模式下速度要快41%。


意法半导体通过更多优化打造机器学习的未来
STM32的SMPS对整体能效的影响凸显了硬件优化的重要性。这也是意法半导体微控制器与数字IC部门总裁Remi El-Ouazzane在意法半导体上一个资本市场日发布STM32N6的原因。即将推出的微控制器将包含一个神经处理单元,以进一步提高生态系统的效率和原始性能。即将推出的器件和今天的公告证明了意法半导体想要突破Tiny ML目前的限制。Remi还透露了围绕该平台的全新合作伙伴关系,从而表明该行业已在采用意法半导体的新生态系统。我们的MLCommons会员资格、我们在X-CUBE-AI中的优化以及我们持续的硬件创新成为合作伙伴使用我们解决方案的根本原因。


MLCommons为何与意法半导体合作?
提升结果准确性
在2020年最后修订的一篇论文中(意法半导体部分员工参与修订),MLPerf Tiny背后的学者解释了该基准试图解决的挑战。例如,该论文解释了硬件的异构性会造成混乱和误解。因此,无论是通用微控制器还是专用神经处理器,MLPerf Tiny都可以为器件的比较提供一个公平的竞争环境。同样,MLCommons测试可以整理出在类似器件上运行的各种软件,并帮助工程师找到适合的最佳生态系统。功耗也是另一个关键因素。检测推理操作所需的能量是件很棘手的事,因为外设或固件可以隐藏真实的情况。
为了更好地模拟实际的边缘机器学习应用,MLCommons采用量化模型。量化是将张量(tensor), 神经网络中的数据容器,从浮点精度转换为定点精度的过程。因此,量化模型要小得多,使用的内存也少得多。此外,量化模型需要的整数运算对计算吞吐量要求也较低。所以,量化模型在低功耗嵌入式系统中非常流行,因其在不影响准确度的情况下大大提高了性能和功率效率。谷歌QKeras显示,量化渐渐成为边缘机器学习的标准。因此,MLCommons对量化的采纳对于确保相关性至关重要。


使用四个用例进行测试
为了解决准确性挑战,MLPerf Tiny运行了一系列四个用例:关键词识别(Keyword spotting)、视觉唤醒词(visual wake words)、图像分类(image classification)和异常检测(anomaly detection )。MLCommons选择这些应用程序是因为它们代表了当今最常见的边缘机器学习系统,并提供了一个多样化的测试平台。例如,视觉唤醒词检测图像中是否有人,如:门铃系统中的经典图像分类。另一方面,图像分类用例测试了为工业应用执行更复杂图像分类的新方法,同时将功耗保持在最低。

关键词识别和异常检测也是常见的应用场景。我们在STM32上探索Alexa语音服务时使用了关键词定位。MLCommons的基准测试着眼于1000种语音模式和总电流消耗。由于某些系统在移动设备上运行,应用程序对电池的影响至关重要。异常检测与我们处理状态监测和预测性维护时所涵盖的内容有相似之处。该用例的数据集反映了工业设备,如:纵梁、风扇、泵或阀门。这也是依赖无监督学习的唯一用例。


划分隔离封闭区和开放区

量化机器学习性能也很棘手,因为不同的应用程序可能会有很大差异。根据数据集、模型和环境的不同,生态系统的表现也千差万别。MLCommons通过运行两个区来解释这一点:一个封闭区和一个开放区。封闭区反映了在僵化环境中的表现。开发人员不能事后更改训练或权重,而且该区有严格的最低精度要求。所有测试也使用相同的模型、数据集和实现方法。另一方面,开放区反映了随着时间的推移而适应的机器学习应用程序。可以更改模型、训练和数据集。精度要求没有那么严格,提交者可以展示其如何随着时间的推移提高性能或功耗。
STM32 MCU和X-CUBE-AI目前仅在封闭区中提供结果。由于意法半导体软件将神经网络转换为针对STM32 MCU优化的代码,但不会改变神经网络的性质,因此在开放区中运行意法半导体生态系统没有意义。


如何实现从MLCommons基准测试到真实世界应用?

运行视觉应用程序
虽然基准测试必不可少,但我们提供演示应用程序来帮助开发人员着手开发实际的产品。例如FP-AI-VISION1软件包就含有食物识别、人员检测和人员计数的源代码。该软件包提供了由X-CUBE-AI生成的运行时神经网络库和图像处理库。因此,凭借STM32H747I-DISCO Discovery板和B-CAMS-OMV相机模块的预编译二进制文件,开发人员可以快速运行机器学习演示。我们还编写了一个补充Wiki,使用FP-AI-VISION1和X-CUBE-AI帮助开发人员创建图像分类应用程序。甚至还有一个关于如何训练深度学习模型来对图像进行分类的教程。

运行工业传感应用程序

对于依赖传感器监控的工业应用,工程师希望下载 FP-AI-MONITOR1。该软件包含有异常检测和活动分类功能的示例应用程序。用户只需将二进制文件加载到STEVAL-STWINKT1B SensorTile无线工业节点上即可运行其应用程序。此扩展包独一无二,因其软件依赖于X-CUBE-AI和NanoEdge AI Studio,从而使开发人员能够对这两种解决方案进行实验。NanoEdge AI Studio使开发人员能够在同一设备上运行训练和推理操作并在四种算法之间进行选择。

意法半导体编写了Wiki来帮助团队快速运行FP-AI-MONITOR1中的演示并学习我们的实现方法。此外,Wiki详细介绍了如何使用命令行界面配置开发板传感器以及如何运行分类操作。





收藏 评论0 发布时间:2022-11-24 22:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版