Как выбрать платформу TinyML и Edge AI
Edge AI означает, что часть обработки выполняется рядом с источником данных, а TinyML обычно подразумевает компактную модель на микроконтроллере или другом ограниченном устройстве. Локальный вывод уменьшает задержку и сетевой трафик, может работать без связи и не передавать сырой звук или изображение наружу. Однако преимущества появляются только после совместного расчёта сенсора, признаков, модели, памяти, вычислителя и энергопрофиля. Нельзя выбирать платформу по одному числу TOPS. Для малой модели важнее поддерживаемые операции, объём быстрой памяти и накладные расходы на перенос данных. Иногда Cortex-M с CMSIS-NN выполняет задачу быстрее и экономичнее модного ускорителя, для которого половина слоёв уходит на CPU.
Сформулируйте решение, а не «добавить ИИ»
Определите вход, выход и цену ошибки. Для вибродиагностики входом может быть окно из 2048 отсчётов, выходом — класс состояния и доверие; ложная тревога стоит выезда инженера, пропуск дефекта — аварии. Для детектора человека важны дистанция, освещение, приватность и допустимая задержка.
Задайте частоту решения, максимальную latency, долю ложноположительных и ложноотрицательных результатов, объём доступных размеченных данных и сценарий неизвестного класса. Модель должна уметь отказать или передать сомнительный случай на более мощный уровень, а не всегда выбирать один из известных классов.
Начните с данных и сенсора
Качество сенсора ограничивает модель. Проверьте динамический диапазон, шум, частоту дискретизации, оптику, расположение и разброс экземпляров. Обучение на лабораторном датчике и эксплуатация на другом диапазоне или креплении создают domain shift. В набор данных включают разные экземпляры, температуры, питание, фон и старение.
Сохраняйте метаданные: серийный номер сенсора, режим усиления, прошивку, условия и разметчика. Разделяйте train/validation/test по устройствам или объектам, а не случайными соседними окнами одного длинного измерения. Иначе метрика будет завышена из-за утечки похожих данных.
Рассчитайте полный конвейер
До нейросети обычно есть фильтрация, нормализация, FFT, ресайз, цветовое преобразование или извлечение признаков. Эти операции расходуют CPU, RAM и энергию. Нарисуйте путь: сенсор → DMA → буфер → preprocessing → inference → postprocessing → действие. Для каждого этапа запишите размер буфера и время.
Кадр 320×240×3 занимает около 230 Кбайт без учёта выравнивания. Два буфера уже превышают RAM многих MCU. Потоковый конвейер, grayscale или line buffer могут сделать проект возможным без внешней памяти. Для аудио кольцевой буфер и overlap окон также учитываются отдельно.
Память важнее размера файла модели
Flash хранит веса и код, RAM — activation tensors, scratch buffers, стек и входные данные. Модель на 300 Кбайт может потребовать больше мегабайта RAM из-за промежуточных feature maps. Инструмент конвертации должен дать план памяти для конкретной формы входа и batch=1.
Проверьте, откуда ускоритель читает веса: внутренний Flash, внешняя QSPI/OSPI или RAM. Медленная память может сделать теоретическую производительность недостижимой. Учитывайте кэш, шину DMA и конкуренцию с камерой или дисплеем.
Квантование проверяют на целевой модели
INT8 обычно снижает память и ускоряет inference, но точность зависит от распределения данных и поддерживаемых операторов. Post-training quantization требует репрезентативного набора; quantization-aware training может вернуть часть точности. Нельзя судить по средней accuracy: сравните confusion matrix и метрики критичных классов до и после конвертации.
Проверьте, что все операции поддерживаются целевым runtime/accelerator. Один неподдерживаемый слой может вызвать fallback на CPU, дополнительные копирования и резкий рост задержки. Иногда проще изменить архитектуру модели, чем выбирать более мощный чип.
MCU, MCU с NPU или MPU
Обычный MCU подходит для anomaly detection, wake-word, простых классификаторов вибрации и малых моделей. Он обеспечивает быстрый старт, низкое потребление и детерминированное управление. MCU с NPU/CNN accelerator расширяет размер и скорость модели, сохраняя embedded-профиль.
MPU/SBC нужен для тяжёлого computer vision, больших фреймворков, нескольких моделей, локальной базы и богатого UI. Но Linux добавляет время старта, файловую систему, обновления и больший idle power. Часто выгодна гибридная система: MCU всегда включён, отбирает события и будит MPU только при необходимости.
Считайте энергию на одно решение
Средняя мощность зависит от duty cycle:
Eцикла = Eсна + Eсбора + Eпредобработки + Eинференса + Eсвязи.
Быстрый ускоритель может потреблять больше мгновенно, но закончить раньше и дать меньшую энергию на inference. Измерьте ток от начала захвата до возврата в глубокий сон. Учтите время запуска сенсора, PLL, внешней памяти и радиоканала; они иногда дороже самой нейросети.
Производительность измеряют end-to-end
Latency из маркетингового бенчмарка может включать только ядро inference. Для пользователя важен полный путь от физического события до выхода. Измеряйте p50, p95 и худшее время при параллельной связи, логировании и обновлении дисплея. Проверяйте тепловой throttling для MPU и деградацию при низком напряжении батареи.
Нагрузочный тест должен идти часами с реальным потоком, а не одним демонстрационным tensor. Отдельно контролируйте переполнение входных очередей: модель, которая иногда медленнее периода сенсора, постепенно накопит задержку.
Обновление модели и воспроизводимость
Модель — часть прошивки с версией, контрольной суммой и совместимостью. Храните версию датасета, preprocessing, training code, converter и runtime. При обновлении проверяйте подпись, свободное место, rollback и согласованность модели с калибровочными коэффициентами сенсора.
Новая модель может улучшить среднюю метрику и ухудшить один критичный режим. Поэтому regression-набор должен содержать реальные записи с производства и обязательные пороги по каждому классу. Для расследования сохраняют короткий безопасный фрагмент входа или диагностические признаки, если это допустимо политикой приватности.
Подготовьте аппаратно-модельный паспорт
Для каждого кандидата заведите таблицу: точная версия модели, число параметров и MAC, список операторов, quantization scheme, Flash/weights, peak arena, preprocessing RAM, clock, end-to-end latency и энергия одного решения. Отдельно отметьте, какая часть выполнена ускорителем, какая CPU, сколько было копирований между памятью и какова максимальная температура. Измерения делают одной и той же сборкой и одним набором входов.
В паспорт включают показатели качества не только в лабораторном test set, но и на device-collected holdout: precision/recall по критичным классам, долю отказа, latency p95/p99 и поведение при повреждённом/пустом входе. Acceptance test должен воспроизводиться после замены runtime, compiler flags или сенсора. Это предотвращает ситуацию, когда новая аппаратная платформа быстрее на демо, но теряет точность из-за иной нормализации или неподдержанного слоя.
Практический пример
Батарейный датчик должен раз в секунду классифицировать состояние подшипника по вибрации, а радиосообщение отправлять только при изменении класса. Сначала выбирают акселерометр и полосу, затем окно и preprocessing. Если окно 3 оси × 1024 отсчёта × 16 бит, сырой буфер занимает 6 Кбайт; добавляются FFT, activations и стек.
На dev board сравнивают MCU без ускорителя и MCU с NPU: accuracy после INT8, время всего конвейера, пиковую RAM и энергию. Если inference занимает 8 мс, а сенсор и радио — 40 мс, удвоение TOPS почти не изменит автономность; больше даст оптимизация передачи и сна.
Примеры из каталога ChipBaza
MAX78000FTHR# — отладочная плата с микроконтроллером и CNN-ускорителем для проверки малых моделей. STM32N657Z0H3Q и MCXN947VDFT — примеры MCU/процессоров с аппаратными средствами для edge workloads, но с разной архитектурой, памятью, корпусом и toolchain. Плату, отдельную микросхему и семейство нельзя смешивать как взаимозаменяемые позиции.
Перед серийным выбором подтверждают поддержку конкретных операторов, лицензию runtime, температурный вариант и доступность внешней памяти. Каталожное наличие само по себе не доказывает пригодность модели.
Типовые ошибки
- начинать с выбора ускорителя, не определив цену ошибки;
- случайно смешивать окна одного объекта между train и test;
- учитывать размер весов, но забывать activations и два кадра;
- сравнивать только TOPS или время ядра inference;
- не проверять fallback неподдерживаемых операторов;
- обучать на одном экземпляре сенсора и одной температуре;
- обновлять модель без версии preprocessing;
- передавать сырые данные в облако, хотя локальность выбрана ради приватности.
Чек-лист перед выбором платформы
- определены метрики, классы, неизвестный класс и цена ошибок;
- датасет разделён по устройствам/объектам без утечки;
- рассчитаны все буферы, activations, stack и external memory;
- квантованная модель проверена на критичных классах;
- подтверждена поддержка каждого оператора;
- измерены end-to-end latency и энергия полного цикла;
- предусмотрены подписанное обновление и rollback модели;
- аппаратный прототип испытан на реальных данных и среде.
Источники для технической проверки
Параметры и ограничения сверяйте с актуальной документацией производителя для полного артикула и нужного исполнения.
Следующий шаг
Проверьте артикулы и количество до отправки заявки
Загрузите спецификацию в BOM-сервис или пришлите полный код производителя менеджеру. Если точное совпадение не доказано, позиция останется на ручной проверке.