Разработка AI-модели для микроконтроллеров (TinyML)
Разработка ML-модели для MCU — это в первую очередь архитектурная задача: модель должна быть спроектирована с учётом ресурсных ограничений с самого начала, а не сжата из большой после обучения.
Проектирование под ограничения
Model Footprint Budget: RAM (inference time) = activations buffer. Flash = model weights. Типичный бюджет: STM32H7 (1 MB RAM, 2 MB Flash) → model ≤ 300 KB Flash, activations ≤ 100 KB.
Architecture Design:
- MobileNetV3-Small: 2.5 MB, адаптируется квантизацией до 600 KB
- MCUNet: специально разработана для MCU, 1 MB Flash
- EfficientNet-Lite0: хороший баланс для vision
- DS-CNN: depthwise separable CNN, классический выбор для audio
- 1D CNN для временных рядов: 50–200 KB для простых задач
Neural Architecture Search (NAS) для MCU: Once-for-All, ProxylessNAS — поиск оптимальной архитектуры под конкретные ограничения.
Обучение и оптимизация
Quantization-Aware Training (QAT): Обучение с симуляцией INT8/INT4 квантизации. На 2–4% точнее Post-Training Quantization.
Knowledge Distillation: Обучение маленькой student-модели на soft labels от большой teacher. Малый student достигает 90–95% качества teacher при 5–10% размере.
Pruning: Structured pruning (целые фильтры) → deployment-friendly уменьшение размера.
Инструменты
Edge Impulse: полный pipeline от данных до MCU deployment. STM32Cube.AI: оптимизация под STM32 с Neural Engine. TFLite Micro compiler.







