Разработка ML-модели для микроконтроллера — не задача «сжать готовую сеть», а архитектурное проектирование с нуля под жёсткие лимиты. Типичный заказчик: «Мы взяли ResNet-50, квантизовали — всё равно 5 MB и 500 ms на кадр». После перепроектирования под MCU та же точность укладывается в 300 KB и 50 ms. Показываю, как мы это делаем. Наш опыт — более 50 проектов по TinyML для промышленности, носимой электроники и IoT. Выбрав правильную архитектуру нейронной сети и методы оптимизации модели, вы снижаете затраты на оборудование на 20–40%, а окупаемость инвестиций составляет 6–12 месяцев. Важно понимать: даже простой датчик вибрации с бортовой нейросетью может заменить коробочный анализатор за $2000 — разница в цене комплектующих составляет 5–10×.
Бюджет по памяти
Model Footprint Budget: RAM (inference time) = activations buffer, Flash = model weights. Типичные бюджеты для популярных платформ:
| Платформа | Flash, KB | RAM, KB | Примеры моделей |
|---|---|---|---|
| STM32H7 | 2048 | 1024 | MCUNet, DS-CNN 50KB |
| ESP32-S3 | 384 | 512 | MobileNetV3-Small (INT8) |
| nRF5340 | 1024 | 512 | EfficientNet-Lite0 (INT4) |
| Cortex-M0+ | 128 | 32 | 1D CNN для акселерометра |
Архитектура модели
- MobileNetV3-Small — 2.5 MB FP32, квантизация до 600 KB — универсальный выбор для Vision.
- MCUNet (специально для MCU) — 1 MB Flash при 70% точности ImageNet (>90% на простых датасетах).
- EfficientNet-Lite0 — для задач, где важна скорость на CPU без DSP.
- DS-CNN — depthwise separable CNN, классика для audio с 50–200 KB.
- 1D CNN — для временных рядов (вибрация, ЭКГ) — 50–200 KB.
Neural Architecture Search (NAS) для MCU: Once-for-All, ProxylessNAS — автоматический поиск топологии под заданные лимиты Flash/RAM. Даёт выигрыш 15–30% по точности при том же размере. MCUNet на 30% точнее ResNet при том же объёме модели — это практический результат.
Как выбрать архитектуру для MCU?
Критерий — latency и footprint под конкретный сценарий. Для real-time audio (10 ms окно) — DS-CNN + INT8 даёт <5 ms на STM32L4. Для периодической классификации жестов — снапшот + MLP укладывается в 20 KB Flash. Мы на старте строим прототип с Edge Impulse, подбираем операторы (DepthwiseConv2D vs SeparableConv) и решаем, нужна ли квантизация INT4 для экономии батареи.
Обучение и оптимизация
QAT: Обучение с симуляцией INT8/INT4 квантизации — на 2–4% точнее Post-Training Quantization. В production используем QAT для всех моделей с TensorFlow или PyTorch (библиотека torch.quantization). QAT позволяет сохранить точность в пределах 1% от FP32.
Knowledge Distillation: Учим маленькую student-модель на soft labels от большой teacher-сети (например, DistilBERT для NLP). Student достигает 90–95% качества teacher при 5–10% размере.
Pruning: Structured pruning (целые фильтры) — deployment-friendly. Удаляем каналы по magnitude и fine-tune — сжимаем модель ещё на 30–50% без падения точности.
Сравнение методов оптимизации:
| Метод | Сжатие | Потеря точности | Сложность внедрения |
|---|---|---|---|
| PTQ (INT8) | 4× | 1–3% | Низкая |
| QAT (INT8) | 4× | 0.5–1% | Средняя |
| QAT (INT4) | 8× | 2–5% | Высокая |
| Квантизация + pruning | 10–20× | 3–8% | Высокая |
Почему квантизация критична?
Без неё модель FP32 не помещается в Flash. TinyML — это про жёсткие лимиты, и INT8 увеличивает скорость на 70% на ARM Cortex-M55. Для батарейных устройств INT4 сокращает энергопотребление в 2 раза — разница между неделей и месяцем работы. Свяжитесь с нами — мы поможем подобрать оптимальный метод квантизации под вашу задачу.
Процесс работы
- Аналитика — аудит задачи, выбор сенсоров, замеры бюджета.
- Прототип в Edge Impulse — сбор данных, подбор архитектуры, оценка точности.
- Оптимизация — QAT, pruning, квантизация до целевого размера.
- Развёртывание — генерация кода под TFLite Micro, STM32Cube.AI или кастомный рантайм.
- Интеграция — встраивание в прошивку, тестирование на железе.
Получите консультацию инженера на этапе аналитики — мы бесплатно оценим реализуемость вашего сценария.
Что входит в работу
- Модель: обученная, квантизованная, с
model_card(метрики, ограничения). - Код инференса: на C/C++ с поддержкой нужного MCU.
- Документация: описание архитектуры, пайплайна данных, точности на тестах.
- Поддержка: 2 недели после деплоя, помощь в интеграции.
Сроки и стоимость
Типовой проект занимает от 8 до 16 недель в зависимости от сложности задачи. Стоимость рассчитывается индивидуально — пишите, оценим проект бесплатно. Наш опыт говорит, что правильно спроектированная TinyML-модель окупается снижением затрат на оборудование на 20–40% за счёт меньшего Flash и энергопотребления.
Типичные ошибки при внедрении TinyML
- Использование готовой архитектуры без учёта бюджета памяти. Результат — модель не помещается на целевой MCU.
- Пропуск этапа QAT: PTQ даёт потерю точности, которую можно было избежать.
- Игнорирование ограничений RAM: активации могут превысить доступную память. Проверяйте размер буфера до деплоя.
- Отсутствие тестов на реальном железе: эмулятор не покажет реальную задержку и энергопотребление.







