2. TinyML基础回顾
TinyML(微型机器学习)是指在极低功耗、极小体积的嵌入式设备上运行机器学习模型的技术体系。它并非简单地将模型“压缩”后塞入单片机,而是涉及模型设计、量化压缩、运行时优化、硬件适配与系统级功耗管理的综合工程。在编写评估报告之前,必须对TinyML的边界条件有清晰认知:评估的对象不是“一个模型”,而是“模型+运行时+硬件+电源+应用场景”的完整系统。本章将围绕TinyML的定义、典型应用场景以及边缘设备的三大约束(内存、算力、功耗)展开,重点分析这些约束如何直接决定评估指标的选取、测量方法和阈值设定。
上图展示了TinyML评估的核心逻辑:边缘设备的内存、算力、功耗三大约束,决定了评估报告必须覆盖模型指标、资源指标和部署风险三个维度。下面逐一展开。
2.1 TinyML定义与评估边界
核心原理:TinyML不是单一技术,而是嵌入式机器学习(Embedded ML)的工程化落地。其典型特征包括:模型参数量通常在几十KB到几MB之间;推理过程在MCU(微控制器)或极低功耗MPU上完成;系统总功耗预算往往在毫瓦级甚至微瓦级;设备通常依赖电池或能量采集供电,无法依赖云端算力。因此,TinyML评估报告必须明确“评估边界”——是评估模型本身(如准确率)、评估模型在特定硬件上的运行表现(如延迟、内存占用),还是评估整个系统的长期可靠性(如电池寿命、热稳定性)。边界不同,指标体系和测量方法完全不同。
2.2 典型应用场景及其评估侧重
TinyML的典型应用场景包括:关键词唤醒(KWS)、异常声音检测、振动故障诊断、人体活动识别(HAR)、视觉唤醒(如人脸检测)、工业预测性维护、可穿戴健康监测、智能家居传感器融合等。不同场景对评估指标的侧重差异极大。
| 应用场景 | 典型硬件 | 核心评估指标 | 关键约束 |
|---|---|---|---|
| 关键词唤醒 | Cortex-M4F @ 64MHz | 唤醒率、误唤醒率、响应延迟 | RAM < 16KB,持续监听功耗 < 1mW |
| 振动故障诊断 | Cortex-M7 @ 400MHz | 分类准确率、频谱计算延迟 | 需FFT缓冲,Flash < 512KB |
| 人体活动识别 | Cortex-M33 @ 100MHz | F1分数、推理频率(Hz) | 6轴IMU数据,RAM < 32KB |
| 视觉唤醒 | 带有NPU的SoC | mAP、帧率(FPS)、检测精度 | 需图像帧缓冲,功耗 < 100mW |
| 工业预测性维护 | 多核MCU + 无线模块 | 剩余寿命预测误差、通信开销 | 需长期运行,平均功耗 < 5mW |
判断方法:在编写评估报告时,应先明确应用场景的“实时性等级”和“误判代价”。例如,关键词唤醒的误唤醒率直接影响用户体验,而工业故障诊断的漏报率可能造成设备损坏。评估报告中应针对场景设定不同的指标权重和合格阈值,而非使用统一的“准确率>90%”这类笼统标准。
2.3 内存约束对评估的影响
核心原理:边缘设备的内存分为Flash(存储模型权重和代码)和RAM(运行时数据、中间特征图、激活值)。评估时必须区分“模型静态大小”和“运行时峰值RAM”。许多模型在PC上运行良好,但部署到MCU后因RAM不足而无法启动,或因Flash不足而无法烧录。
操作流程:评估内存指标时,应使用以下步骤:① 使用工具(如TensorFlow Lite Micro的arena大小计算)获取模型推理所需的峰值RAM;② 测量模型权重经量化后的实际Flash占用(注意:Flash还包含运行时库、调度代码和应用程序);③ 检查是否存在内存碎片问题——频繁的Tensor分配可能导致堆碎片化,尤其在FreeRTOS等实时系统中;④ 验证内存对齐要求(如CMSIS-NN需要4字节对齐)。
2.4 算力约束对评估的影响
核心原理:算力约束体现在MCU的MACs(乘加运算)吞吐量、指令集支持(如是否支持SIMD、FPU、DSP扩展)以及时钟频率。评估延迟时,不能仅看模型的总MACs,还要考虑算子是否被硬件加速。例如,Cortex-M4F的FPU可以加速浮点运算,但若模型已量化为int8,则FPU反而闲置,此时CMSIS-NN的SIMD指令才是关键。
案例拆解:某振动故障诊断项目,目标硬件为STM32F767(Cortex-M7 @ 216MHz,支持双精度FPU)。初始模型为1D-CNN,总MACs为2.3M,在PC上推理延迟为3ms。部署后实测延迟为45ms,远超预期的10ms。分析发现:模型使用float32计算,但CMSIS-NN的优化库主要针对int8;且卷积核大小为5,无法充分利用M7的SIMD宽度。后将模型量化为int8,并改用ARM的优化算子,延迟降至12ms。此案例说明:评估算力时,必须结合具体硬件指令集和算子优化情况,而非仅看MACs理论值。
2.5 功耗约束对评估的影响
核心原理:功耗是TinyML最独特的约束。评估功耗不能只看“推理时的峰值电流”,还要考虑“待机功耗”“唤醒功耗”和“平均功耗”。对于电池供电设备,平均功耗决定了电池寿命;对于能量采集设备,峰值功耗不能超过采集电路的输出能力。
操作流程:功耗评估应包含以下测量:① 待机模式电流(通常为µA级);② 推理模式平均电流(使用电流探头或功耗分析仪,采样率至少1kHz);③ 峰值电流(用于评估电源稳压器容量);④ 唤醒-推理-睡眠周期的总能量(单位µJ)。评估报告中应给出“单次推理能耗”和“每日总能耗”两个关键值。
2.6 三大约束的耦合效应与评估报告策略
内存、算力、功耗并非独立约束,而是相互耦合。例如:增加RAM缓冲可以缓存中间特征图,减少重复计算,从而降低算力需求,但会增加RAM占用和待机功耗;提高时钟频率可以缩短推理时间,从而降低“活跃时间”的能耗,但会增加峰值功耗和发热。评估报告必须识别这种耦合关系,避免“单指标优化”导致系统失衡。
| 耦合关系 | 典型表现 | 评估报告应对策略 |
|---|---|---|
| 内存 ↔ 算力 | 增大特征图缓存可减少重复卷积计算 | 报告应给出“RAM-延迟”权衡曲线 |
| 算力 ↔ 功耗 | 降低频率可减少功耗但增加延迟 | 报告应给出“延迟-功耗”帕累托前沿 |
| 内存 ↔ 功耗 | 更大的RAM需要更频繁的刷新,增加待机功耗 | 报告应区分“运行功耗”和“待机功耗” |
总结复盘:编写TinyML评估报告时,应遵循“约束驱动指标”的原则。首先明确目标硬件的Flash/RAM上限、算力上限和功耗预算;然后根据应用场景确定关键模型指标;最后在报告中同时呈现模型指标、资源指标和部署风险,并说明三者的权衡关系。避免只报告“准确率”而忽略“该准确率下需要多少RAM和功耗”的常见错误。