Розробка та впровадження Edge AI / TinyML на мікроконтролерах

Коли об'єкт працює без стабільного зв'язку, а рішення потрібне за частки секунди, серверна обробка не підходить. Ми розробляємо Edge AI і TinyML під ключ: готуємо модель, підбираємо пристрій, розгортаємо на лінії та навчаємо персонал. Замовник отримує автономну систему, яка скорочує час реакції та не залежить від каналу зв'язку.
Часті запитання

Edge AI розробка: де ламаються проєкти на пристроях

Edge AI розробка майже завжди стартує однаково: модель збігається на навчальній вибірці, а на пристрої не вкладається в доступні ресурси.

Нейромережа на мікроконтролері — не зменшена копія серверної: обмеження пам'яті пристрою, розмір ваг, бюджет живлення та тепла зафіксовані заздалегідь і під час проєкту не розширюються.

Перша відмова видна вже на тестовому стенді: робота моделі на пристрої не проходить за часом відгуку, корпус гріється, контролер скидає частоту, і автономна робота падає з тижнів до годин.

Друга відмова приходить з даними: вібрація, шум датчика, дрейф калібрування і температурна деградація виводять сигнал за межі навчального розподілу, точність просідає, а модель впевнено відповідає там, де має мовчати.

Стиснення заради економії місця добиває залишки: квантування до цілих ламає рідкісні, але критичні класи, проріджування прибирає саме ту ознаку, яка несла корисний сигнал, а усереднення вікон згладжує короткі події.

Впровадження Edge AI — це перезбирання всього ланцюжка цілком: постановка задачі під реальний сценарій, відбір ознак під дешевий датчик, дистиляція в компактну мережу, донавчання на цільовому домені та режим сну з пробудженням за перериванням.

Нижче розбираємо, як це закривається на кожному кроці і в якому місці такі проєкти зазвичай зупиняються.

Що дає виведення моделі прямо на пристрої

Виведення моделі на пристрої змінює саму природу часу відгуку. Під час інференсу в хмарі затримка складається з каналу, черги на сервері та зворотного шляху — на нестабільному зв'язку вона зростає в рази й непередбачувано.

Локальний розрахунок на мікроконтролері прибирає ці складники: час відгуку рішення стає детермінованим і вкладається в цикл керування, а не в очікування мережі.

Автономна робота без мережі — другий ефект, який замовник помічає одразу. Пристрій продовжує рахувати свій сценарій, коли канал недоступний: у підвалі, в полі, на рухомій техніці, на ізольованій ділянці.

Клас відмов «обрив зв'язку — функція стала» зникає з архітектури, а не маскується повтореннями запитів і буферизацією.

Локальна обробка даних тримає сирий сигнал у контурі замовника: назовні йде лише результат — подія, клас, метрика, а не потік сировини.

На ядрах Arm такий інференс працює без хмари, а модель квантується під бюджет пам'яті конкретного мікроконтролера, тому рішення не потребує зовнішнього обчислювача поруч із датчиком.

У сумі це передбачуваний час відгуку, незалежність від зв'язку, мінімум переданих даних і знятий клас відмов каналом. Трафік падає на порядки: замість безперервного потоку вимірювань ідуть рідкісні події, а розрахункове навантаження залишається на пристрої.

Підходи до впровадження: порівняння варіантів

Вибір варіанта впровадження визначається двома речами: наскільки дані замовника відрізняються від публічних наборів і чи вкладається сценарій у ресурси пристрою.

Для типових задач — розпізнавання команд, детекція дефекту — готова модель із тонким налаштуванням на розміченій вибірці дає результат без навчання з нуля.

Порівняння підходів до Edge AI починається з вимірювання: скільки класів потрібно розрізняти, як швидко змінюється обстановка і чи допустимо надсилати дані на сервер. За цими відповідями обирається схема виведення.

Варіант Коли підходить Обмеження
Готова модель із тонким налаштуванням Типовий сценарій: класифікація, детекція, розпізнавання команд. Потрібен швидкий старт Точність обмежена вихідною архітектурою, рідкісні класи розпізнаються гірше
Власна модель під дані замовника Унікальні об'єкти, специфічні дефекти, нестандартні умови зйомки. Є розмічений архів Довший цикл розробки, потрібна розмітка та її перевірка предметним експертом
Гібридна схема виведення Важкі сценарії — великі зображення, складна логіка. Пристрій уже в мережі Залежність від каналу зв'язку, частина даних виходить за межі контуру
Модуль-прискорювач Потрібна автономність і запас продуктивності на кілька сценаріїв одразу Вище енергоспоживання та вимоги до корпусу, вужчий вибір платформ

На практиці варіанти не виключають один одного: починаємо з готової моделі як базової точки, знімаємо метрики на реальних даних і за ними вирішуємо, чи потрібна власна архітектура або винесення частини обчислень на сервер. Рішення ухвалюється за вимірами, а не за припущеннями.

Етапи розробки та впровадження на об'єкті

Розробка Edge AI — це робота всередині обмежень самого пристрою: пам'ять, живлення, затримка відгуку.

Помилку в моделі, що пішла в прошивку, не можна виправити на сервері, тому проєкт іде фіксованою послідовністю кроків — етапи розробки Edge AI ми ведемо так, щоб кожен закінчувався артефактом, який можна подивитися й заперечити.

  1. Аудит пристроїв і даних. Розбираємо парк контролерів, доступну пам'ять та обмеження з живлення, дивимося потік із датчиків і накопичені записи: обсяг, розмітку, перекіс класів. На виході — розуміння, які сценарії реалізовні на поточному залізі, а де потрібен другий контур обробки.
  2. Схема рішення. Фіксуємо, що рахується на пристрої, а що йде назовні, які вхідні ознаки беремо і за якою метрикою оцінюємо якість. Бюджет з пам'яті та часу відгуку задаємо заздалегідь, інакше навчання йде у відриві від реального заліза.
  3. Навчання та стиснення моделі. Спочатку збираємо базову модель, потім зменшуємо її: відсікання малозначущих зв'язків, зниження точності ваг. На кожному кроці звіряємо якість із вихідною — мета вкластися в пам'ять мікроконтролера, втративши мінімум точності.
  4. Налаштування на залізі. Модель вбудовується в прошивку, знімаємо фактичні затримки та споживання, перевіряємо поведінку при просіданнях живлення, шумі датчиків і відмові периферії.
  5. Перевірка на стенді та на живих даних. Проганяємо записані сесії та свіжі записи з об'єкта, дивимося, на яких класах модель плутається. Поріг спрацювання підбираємо за ціною пропуску та хибного спрацювання, а не за середньою точністю.
  6. Передача рішення. Віддаємо прошивку, вихідні коди, скрипти відтворення навчання та документацію, навчаємо команду замовника — наступну версію моделі перенавчають уже без нас.

Комплект постачання: моделі, схеми та регламенти

Проєкт закінчується не демонстрацією, а передачею контуру, який замовник обслуговує своїми силами — без доступу в чуже закрите середовище й без прив'язки до одного виконавця. Ось що фізично залишається у вас на руках після здачі.

  • Навчена та оптимізована модель — ваги у відкритому форматі, сценарії навчання й валідації, розмічений набір даних і карта якості за класами.
  • Схеми та конфігурації — електрична схема вузла, розміщення й живлення датчиків, тепловий режим, файли налаштувань лабораторного стенда та польових пристроїв.
  • Політики доступу до даних — ролі, де зберігаються сирі дані, що знеособлюється прямо на пристрої, строки зберігання та порядок вивантаження.
  • Регламент оновлення моделі — як зібрати кандидата, які перевірки він проходить до викату, як доставити його на пристрої та як відкотитися на попередню збірку.
  • Передача вихідних матеріалів — репозиторій, складальні сценарії та параметри збірки, щоб прошивка відтворювалася командою замовника, а не лише нашими інженерами.
  • Комплект документації — паспорт моделі, умови застосовності та межі, за якими якість падає, інструкція з експлуатації вузла.
  • Схема інтеграції — куди йдуть результати розпізнавання, у якому форматі, що відбувається при втраті зв'язку та як відновити потік після збою.
  • Чек-лист приймання — як перевірити вузол після заміни датчика або перезапуску та на які метрики дивитися, щоб відрізнити деградацію від разової завади.

Кейс: контроль якості на виробничій лінії

До впровадження контроль на лінії тримався на вибірковій перевірці: оператор знімав кілька виробів за зміну, решта йшла в потік.

Відхилення виявлялося за підсумками зміни, коли розкид уже розходився по десятках одиниць, а при просіданні зовнішнього зв'язку ділянка переходила на ручний режим і втрачала темп.

Ми перенесли виведення на саму ділянку: модель навчили та перевірили на розміченому архіві дефектів, потім квантували й зібрали в образ під мікроконтролер у камері біля конвеєра.

Кадри не покидають цех, а на сервер їде лише зведення за відхиленнями та оновлення за регламентом — з відкатом на попередній образ.

Показник До Після
Охоплення контролем вибірка, кілька виробів за зміну весь потік на проході
Момент виявлення відхилення за підсумками зміни, після накопичення партії на самому виробі
Залежність від зовнішнього каналу критична: обрив — ручний режим немає, виведення локальне на об'єкті
Хибні спрацювання часті, пороги загальні поодинокі, відкалібровані під цех
Введення нового артикулу перенавчання з нуля донавчання на накопичених кадрах

Головний ефект — зник клас відмов «виявили, коли партія вже зібрана». Пороги відкалібровані під освітлення та швидкість конкретного цеху, тому хибних спрацювань стало менше, а лінія перестала залежати від зв'язку назовні: при обриві каналу контроль продовжується.

— Раніше про проблему ми дізнавалися від відділу контролю, тепер — від самої лінії, — головний інженер «Світлогорський машинобудівний завод».

Коли виведення на пристрої програє серверу

Коротка відповідь: локальне виведення поступається серверу там, де зростає обсяг контексту, число модальностей або частота оновлення моделі. Пристрій виграє на вузькій задачі з постійними умовами — детекція події, розпізнавання обмеженого набору команд, фільтрація сигналу.

Як тільки з'являється довга послідовність, кілька джерел даних або генерація тексту, бюджет пам'яті та живлення закінчується раніше, ніж точність доходить до потрібної.

До важких сценаріїв відносимо багатомодальну обробку, довгий контекст, ансамблі моделей і все, де модель має донавчатися на потоці нових даних прямо на об'єкті.

Окрема категорія — задачі, де потрібен розбір рішення постфактум: на сервері простіше зберегти вхідні дані, версію моделі та підсумок, тоді як на пристрої журнал швидко впирається в обсяг носія.

Є й експлуатаційна межа. Парк пристроїв оновлюється повільніше за сервіс: нову версію моделі розкочують хвилями, стежать за сумісністю та тримають відкат на випадок, якщо точність просіла на частині об'єктів.

Налагодження на сервері дешевше за часом — видно розподіл вхідних даних і можна відтворити збій, на пристрої доступний лише локальний журнал.

Тому на старті ми рахуємо не «пристрій чи сервер», а частки обробки. Дивимося чотири величини: допустима затримка відповіді, стабільність каналу на об'єкті, яку частку випадків упевнено закриває легка модель і як часто її доведеться перенавчати.

Якщо вона відсіює більшу частину потоку, залишок іде на сервер — навантаження на канал падає на порядок, а якість рішення залишається серверною.

Межі застосовності локального виведення задає не обчислювач, а стабільність постановки задачі. Чим рідше змінюються дані та правила, тим більше сенсу тримати модель на пристрої.

Гібридна схема майже завжди виграє в крайнощів — рахуємо її під конкретний об'єкт і фіксуємо, що саме йде на сервер.

Питання, які задають перед стартом

Перед стартом проєкту з edge AI замовники запитують не про вибір плати, а про те, що буде після здачі: чи зможе рішення навчатися на їхніх даних і хто відповідає за нього далі. Нижче — відповіді на сумніви, які ми знімаємо до підписання договору, а не під час робіт.

Чи зможете донавчити модель на наших даних?

Так. Модель навчається на вашій вибірці, а не на публічній. Цикл донавчання закладаємо одразу: свої приклади, окремий контрольний набір і перевірка на рідкісних класах — інакше перша ж нестандартна партія знизить точність.

Точність на прийманні нижча за очікувану — що далі?

Розбираємо, де саме помиляється модель: рідкісні класи, шум датчика, крайові випадки, яких майже не було в навчальному наборі. Частину розбіжностей закриває донавчання, частину — налаштування оцифрування сигналу до того, як він потрапив у модель.

Як оновлювати моделі на вже встановлених пристроях?

Оновлення приходить по мережі частинами: спочатку невелика група пристроїв, і якщо метрики не просіли — решта. Попередня версія залишається на пристрої точкою відкату. Збірка в переносимому форматі ONNX, тому виїжджати на об'єкт для перепрошивки не потрібно.

Хто розмічає датасет?

Розмічаємо ми, ваші фахівці дивляться лише спірні випадки — зазвичай частки відсотка вибірки. Попередню розмітку робить модель, тому ручної роботи залишається в рази менше, ніж при розмітці з нуля.

Що входить у супровід після передачі?

Передаємо регламент підтримки: моніторинг точності в полі, донавчання на нових даних, оновлення парку та розбір інцидентів. Рішення залишається робочим і після заміни пристрою або зміни умов на лінії.

Обговоримо задачу та повернемося з планом робіт

Точна оцінка проєкту для мікроконтролерів виходить лише з вхідних даних по конкретному об'єкту: універсальні прикидки тут дають розкид у рази. Щоб обговорити задачу предметно й не вгадувати, достатньо надіслати таке.

  • Опис об'єкта та сценарію: що вимірюємо, за яких умов, що вважається спрацюванням, а що — хибним.
  • Парк пристроїв: контролери, датчики, схема живлення та доступний обсяг пам'яті під модель і буфери.
  • Приклади даних: сирі записи з датчиків за кілька діб, включно з шумом, аномаліями та відключеннями живлення.
  • Вимоги до відгуку та автономності: допустимий час реакції, режим сну, строк роботи від одного елемента живлення.
  • Обмеження: робота без мережі, приватність даних на пристрої, вимоги до корпусу, сертифікації та інтеграції з поточною системою.
  • Критерії приймання: частка правильних спрацювань, допустимі пропуски та хибні тривоги на розміченій вибірці.
  • Строк та етапність: до якої дати потрібен працюючий прототип на реальному пристрої.

У відповідь ми проганяємо модель-кандидат на цільовому контролері, перевіряємо, чи вкладається вона в пам'ять і в бюджет часу, оцінюємо обсяг розмітки та трудовитрати на донавчання на місці.

Повертаємося з оцінкою проєкту, чернеткою технічного завдання на Edge AI і планом впровадження за етапами: від збору корпусу даних до серійної прошивки з оновленням по повітрю.

Опишіть задачу у вільній формі — повернемося з оцінкою, планом робіт і питаннями, які потрібно закрити до старту.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1368
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    815
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1139