2. TinyML基础
TinyML(Tiny Machine Learning)是把机器学习模型部署到毫瓦级、KB级内存的微控制器(MCU)上运行的一类技术总称。它的核心目标不是追求最高精度,而是在极低功耗、极小存储、极弱算力的约束下,让设备具备“本地感知—本地判断—本地决策”的能力。理解 TinyML,需要先厘清它的基本概念、常见术语,再区分它与边缘AI、MCU AI之间的关系。
一、核心原理:把推理压缩进MCU
TinyML 的本质是“模型小型化 + 推理本地化”。传统云端推理依赖网络上传数据、服务器计算、结果回传;TinyML 则把训练好的模型经过量化、剪枝、知识蒸馏等压缩手段,转换为可在 MCU 上执行的轻量格式,再由推理引擎在设备端完成前向计算。
其典型流程如下:
- 数据采集:通过传感器(加速度计、麦克风、摄像头、温度传感器等)获取原始信号。
- 特征提取:在 MCU 上完成滤波、分帧、FFT、MFCC 等预处理,降低模型输入维度。
- 模型训练:通常在 PC 或云端用 TensorFlow Lite、PyTorch 等框架训练。
- 模型转换与量化:转为 TensorFlow Lite Micro 等格式,权重从 float32 量化为 int8,模型体积可缩小约 4 倍。
- 部署推理:将模型数组嵌入固件,由推理引擎在 MCU 上执行,输出分类或回归结果。
关键约束:MCU 通常只有几十 KB 到几百 KB 的 SRAM、几百 KB 到几 MB 的 Flash,主频几十 MHz 到几百 MHz,功耗以毫瓦计。TinyML 模型必须同时满足“装得下、算得快、耗得起”。
二、常见术语速查
学习 TinyML 时,以下术语会反复出现,建议先建立统一认知:
| 术语 | 含义 | 典型数值/说明 |
|---|---|---|
| MCU | 微控制器,集成 CPU、Flash、SRAM、外设 | 如 STM32、ESP32、nRF52 |
| TensorFlow Lite Micro | 面向 MCU 的轻量推理引擎 | 无动态内存分配,纯 C++ |
| 量化 | 将浮点权重转为低比特整数 | float32 → int8,体积约降 4 倍 |
| 算子 | 模型中的基本计算单元 | Conv2D、DepthwiseConv、FC、Softmax |
| 推理延迟 | 单次前向计算耗时 | 通常要求 < 100 ms,实时场景 < 20 ms |
| 峰值内存 | 推理时最大 RAM 占用 | 由张量 Arena 决定,需小于可用 SRAM |
| 唤醒词 | 语音唤醒的关键词检测 | 如 “Hey Siri”、自定义关键词 |
| 异常检测 | 判断设备状态是否偏离正常 | 常用于预测性维护、故障预警 |
三、典型应用场景
TinyML 适合“低带宽、低延迟、低功耗、隐私敏感”的场景,常见方向包括:
- 语音唤醒与关键词识别:智能音箱、TWS 耳机、家电语音控制,MCU 常驻监听,仅唤醒后上传云端。
- 振动异常检测:电机、泵、风机上部署加速度计,本地判断轴承磨损或失衡,提前预警。
- 手势与动作识别:可穿戴设备通过 IMU 识别挥手、跌倒、步态。
- 视觉唤醒:低功耗摄像头仅在检测到人形或车辆时才唤醒主控,降低系统功耗。
- 健康监测:心率、血氧、呼吸事件的本地实时判断,减少隐私数据外传。
- 农业与环境:土壤湿度、病虫害声音识别,在田间节点本地完成决策。
判断一个场景是否适合 TinyML,可以问三个问题:数据是否敏感?网络是否不稳定?电池是否必须撑数月?若答案偏向“是”,TinyML 往往比云端方案更合适。
四、TinyML、边缘AI 与 MCU AI 的区别
三者常被混用,但侧重点不同。边缘AI 是更大的范畴,指在靠近数据源的边缘设备上运行 AI;MCU AI 强调硬件平台是 MCU;TinyML 则强调“极小资源约束下的机器学习”,既包含 MCU,也包含极低功耗 SoC 和 NPU 加速的小芯片。
从集合关系看:边缘AI 包含 MCU AI 与 TinyML;MCU AI 强调硬件平台是 MCU;TinyML 强调资源约束极低,既可能跑在 MCU 上,也可能跑在带 NPU 的超低功耗芯片上。三者交集很大,但观察角度不同。
五、案例与误区复盘
案例:某工厂在电机上部署振动监测节点。若把原始振动数据全部上传云端,带宽和功耗都难以承受。采用 TinyML 后,节点本地提取特征并运行一个小型神经网络,仅当检测到异常时才上传告警和少量特征数据,电池寿命从数天延长到数月。
常见误区:
- 误区一:模型越小越好。 过度压缩会导致精度骤降,应在精度、延迟、内存之间做权衡。
- 误区二:TinyML 等于 MCU AI。 TinyML 还包含低功耗 SoC、NPU 等平台,范围更广。
- 误区三:忽略预处理开销。 特征提取(如 FFT、MFCC)可能比推理本身更耗资源,必须一起评估。
- 误区四:只看模型大小,不看峰值内存。 推理时的张量 Arena 往往才是 RAM 瓶颈。
部署前务必实测:模型 Flash 占用、峰值 RAM、单次推理延迟、平均功耗。任何一项超限,都可能导致系统无法稳定运行。