本文编译自techtarget
TinyML 是裁剪 AI 模型和应用程序,以在较小设备上运行的通用方法,包括微控制器、廉价 CPU 和低成本 AI 芯片组等。
虽然大多数 AI 开发工具专注于构建规模更大、功能更强大的模型,但部署 TinyML 模型需要开发人员考虑如何更加高效。TinyML 应用程序通常设计为在具有毫瓦功率、几百 KB RAM 、较慢时钟周期以及电池受限的设备上运行。团队需要做更多的前期规划来满足这些严格的要求。 TinyML 应用程序开发人员需要考虑硬件、软件和数据管理以及如何将原型设计和扩展过程组合在一起。
ABI Research 预测,TinyML 设备的出货量将从 2020 年的 1520 万台增长到 2030 年的 25 亿台。这为已经学会如何部署 TinyML 应用程序的开发人员提供了许多机会。
嵌入式 AI 平台 Qeexo 的 CEO Sang Won Lee 表示:“大部分工作类似于构建典型的 ML 模型,但 TinyML 有两个额外的步骤:将模型转换为 C 代码并针对目标硬件进行编译。”这是因为 TinyML 部署面向小型微控制器,这些微控制器不是为运行繁重的Python 代码而设计的。
规划 TinyML 应用程序如何在不同环境中提供不同结果也很重要。 Lee 说,TinyML 应用程序通常使用严重依赖周围环境的传感器数据。当环境发生变化时,传感器数据也会发生变化。因此,团队需要计划在不同环境中重新优化模型。
开始使用 TinyML 涉及什么?
AI 开发人员可能需要重新开始 C/C++ 和嵌入式系统编程,以了解在受限硬件上部署 TinyML 软件的基础知识。
“需要熟悉机器学习、嵌入式系统编程、微控制器和硬件开发板的原理。”Terradepth 的首席软件架构师 Qasim Iqbal 说。
有助于 TinyML 部署的优秀产品包括Arduino Nano 33 BLE Sense、SparkFun Edge 和 STMicroelectronics STM32 探索套件。其次,需要带有 USB 端口的笔记本电脑或台式电脑提供开发接口。第三,通过为硬件配备麦克风、加速度计或摄像头来进行实验很有趣。最后,在将模型移至微控制器进行执行和推理之前,可能需要 Keras 软件包和 Jupyter Notebooks 在单独的计算机上训练模型。
Iqbal 还建议学习预处理工具,将原始输入数据转换为 TensorFlow Lite 解释器。然后,后处理模块可以更改模型的推断、解释它们并做出决策。一旦完成,就可以实现输出处理,以使用硬件和软件功能响应预测。
一些演示项目可以帮助开发人员了解各种 TinyML 约束的含义。除了 RAM 和时钟速度的限制之外,开发人员可能还想探索在其目标平台上运行精简Linux的限制——它们通常对基于 Linux 的大型系统所期望的操作系统和系统库的支持有限。
“关于正确的设备硬件、软件支持、机器学习模型架构和一般软件考虑因素的明智决定很重要。”Iqbal表示。
调查微控制器是否支持预期的应用程序或更大的设备(例如 Nvidia 的 Jetson 系列设备)是否可能工作得更好,这很有帮助。
结合硬件和软件
了解 TinyML 软件的开发人员,可能会调查每个 TinyML 工具背后的社区。
“很多时候,你将无法在官方文档中找到问题的答案,”AI Clearing人工智能负责人Jakub Lukaszewicz 说。 Lukaszewicz 经常求助于互联网、Stack Overflow 或专业论坛来寻找答案。如果平台周围的生态系统足够强大和活跃,就更容易找到遇到类似问题的人并了解他们如何解决。
在深入研究之前调查可用的硬件也很有帮助。
Lukaszewicz 说:“令人遗憾的消息是,在新冠疫情后,交货时间可能会很长,而且您可能只能选择有限的现有商品。”
构建可扩展的 TinyML 应用程序首先要起草应用程序及其要求的详细描述。
下一步则是选择要使用的 ML 框架。 Lukaszewicz 表示 TensorFlow Lite 是目前最流行的框架
ok,但PyTorch Mobile如今也越来越受欢迎。最后,您需要使用您选择的 ML 框架和开发板来查找教程或Demo,以了解这些部分如何组合在一起。
注意可能产生问题的框架和硬件的变化。 Lukaszewicz 经常与过时的文档和无法正常工作的事情作斗争。
“通常情况下,该平台针对给定版本的框架(例如 TensorFlow Lite)进行了测试,但在最新版本上遇到了困难。”他说。
在这种情况下,他建议升级到最新支持的框架版本并重新运行您的模型。
另一个问题是处理不受支持的操作或内存不足时的情形。理想情况下,开发人员应该采用现成的模型并在微控制器上运行它,而不会有太多麻烦。“不幸的是,TinyML 通常不是这种情况。”Lukaszewicz 说。
他建议首先尝试已被证明适用于您选择的电路板的模型。他经常发现最先进的模型使用了某些设备尚不支持的一些数学运算。在这种情况下,您必须更改网络架构,用支持的操作替换并重新训练模型,并且祈祷所有这些步骤都不会牺牲质量。阅读论坛和教程是了解在给定平台上哪些有效哪些无效的好方法。
选择合适的硬件
Lukaszewicz 说,在选择合适的硬件和配置时,有多种选择。流行的选择包括 Raspberry Pi、ESP32、STM32 和 Arduino 等生态系统。他发现以下问题有助于定义需求:
您想要什么外形规格?您需要的最小尺寸开发板是多大,还是可以使用更大的板?
耗电量如何?您的解决方案是仅依靠电池,还是有外部电源?
您想要安静且低维护的被动冷却还是主动冷却?
你需要多少内存?
板上应该有哪些内置传感器?
需要哪些端口和接口?
可接受的价格范围是多少?
将 AI 部署到边缘
在将 TinyML 部署为健壮且可扩展的应用程序而非概念验证时,开发人员需要考虑所有可行的方法。构建可扩展的 TinyML 应用程序首先要起草应用程序及其要求的详细描述。这将有助于指导传感器硬件和软件的选择。
“通常情况下,企业会从一个推动他们使用 TinyML 的demo开始,然后开始确定满足他们需求的解决方案。”Zededa 生态系统副总裁兼 Linux Foundation Edge 董事会成员 Jason Shepherd 说。
鉴于所涉及设备的受限性质,软件和底层硬件的功能之间存在极其紧密的耦合。这需要深入了解嵌入式软件开发以进行计算优化和电源管理。 Shepherd 说,公司经常直接构建 TinyML 应用程序,而不是购买基础硬件,尤其是在早期概念阶段。
这是了解所有部分如何组合在一起的好方法,但许多团队发现这比他们想象的要复杂,特别是当他们整理出将 AI 大规模部署到边缘的细节、支持其整个生命周期并将其与未来的其他用例。值得研究来自 Latent AI 和 Edge Impulse 等供应商的新工具,以简化针对部署芯片优化的AI模型开发。
决定在内部构建这些应用程序的公司需要嵌入式硬件和软件开发人员相结合,他们了解在使用高度受限的硬件时的固有权衡。Shepherd 说,关键专业应包括以下内容:
了解模型训练和优化;
开发高效的软件架构和代码;
优化电源管理;
处理受限无线电;
网络技术;
无需使用功能更强大的硬件资源即可实现安全性。
从长远来看,企业必须考虑在现场部署 TinyML 应用程序的隐私和安全影响。尽管 TinyML 应用程序显示出前景,但它们也可能带来新问题——如果公司不小心,就会出现问题。
Shepherd 说:“边缘 AI 和 TinyML 的整体成功将需要我们协同合作和协调,以推动行业向前发展,同时保护我们免受AI滥用的风险。”
上一篇:高通CEO年度公开信
下一篇:几种常见的PCB测试方法汇总
推荐阅读最新更新时间:2024-11-08 10:20