Fine-tuning Computer Vision: де ламаються базові моделі
Готова модель, навчена на публічних наборах, впевнено тримає демонстрацію й розсипається на живому об'єкті. Це зміна домену даних: інша оптика, інше світло, щільність потоку та ракурси, яких не було в навчальній вибірці.
На складі модель приймає відблиск від лампи за дефект, у цеху — тінь від оснащення за сторонній предмет, і хибні спрацювання моделі йдуть потоком.
Друге джерело — якість розмітки. Класи перетинаються за змістом, частину об'єктів пропущено, межі областей у різних розмітників коливаються на десятки пікселів. Модель чесно навчається на цих суперечностях: точність на навчальному наборі зростає, а на реальному потоці падає. Перевірити це без відкладеної вибірки, зібраної незалежно від навчальної, неможливо.
Донавчання «на око» добиває результат. Перенавчають усі шари замість останніх, крутять темп навчання та число проходів по одних і тих самих кадрах, дивляться на усереднену метрику за всіма класами.
Рідкісний, але критичний клас у ній просто розчиняється — підсумкова цифра виглядає пристойно, а потрібний дефект усе ще пропускається.
Тому донавчання моделі на власних даних починається не з навчання, а з інвентаризації домену: які умови зйомки взагалі трапляються, де проходить межа між схожими класами, який клас замовнику дорожче пропустити, ніж зловити зайвий.
Далі — перерозмітка спірних кадрів, поділ вибірок за об'єктами та сценами, а не випадковим чином, і контроль за кожним класом окремо.
Розбираємо, як це закривається у fine-tuning computer vision: що змінювати в даних, що в самій моделі та як переконатися, що стало краще, а не просто інакше.
Що дає донавчання моделі на ваших даних
Базова модель, навчена на загальному наборі, на ваших кадрах поводиться передбачувано погано: плутає близькі класи, спрацьовує на відблисках і відбиттях, губиться при зміні оптики.
Донавчання під задачу зсуває вирішальну межу у вашу предметну область — не в середньому, а на конкретному складі, лінії чи трасі.
Точність і повнота на вашому домені
Метрики якості моделі вважаємо за зрізами, а не за усередненим набором: день і ніч, стаціонарна камера та ручна зйомка, різні ракурси.
Частка правильних відповідей і повнота за рідкісними класами на кожному зрізі показують, де рішення вже придатне, а де потрібен розбір помилок і дорозмітка.
Стійкість до умов зйомки закладаємо під час підготовки даних — розширюємо вибірку зміненим освітленням, поворотами, шумом і розмиттям. Окремо перевіряємо, що модель не розвалюється на новій камері: зміщення домену має тримати запас у вагах, а не підгонка порогів.
Усунений клас хибних спрацювань
Головне джерело хибних спрацювань — не мережа, а евристики поверх неї: правила та пороги, накручені під перші демонстрації. Переносимо логіку в навчання: збираємо «жорсткі негативи» — відблиски, відбиття, схожі об'єкти — і додаємо в донавчальну вибірку. Ефект вимірюємо часткою хибних на тисячу кадрів — до і після.
Одна донавчена модель замінює каскад правил, тому час обробки одного зображення перестає залежати від сценарію. Регресійний набір фіксує результат: правки в даних не відкочують уже закритий клас помилок. Працюємо у відкритому стеку, PyTorch, щоб модель запускалася на вашій стороні.
Способи адаптації моделі: порівняння підходів
Що порівнюємо і за якими критеріями
Вибір між донавчанням готової моделі під задачу (fine-tuning computer vision) і навчанням з нуля визначається не смаком, а даними: обсягом розмітки, різноманіттям умов зйомки та ціною помилки на рідкісному класі.
Порівнюємо чотири підходи за трьома критеріями — скільки потрібно розмічених прикладів, як модель переноситься на нову оптику або освітлення і що доведеться перенавчати при появі нового класу.
| Варіант | Коли підходить | Обмеження |
|---|---|---|
| Донавчання останніх шарів | Класів небагато, даних від кількох сотень прикладів, домен близький до вихідного | Слабо ловить тонкі відмінності всередині класу — пізніше знадобиться повне донавчання |
| Повне донавчання | Свій домен: інша оптика, ракурси, дефекти, яких не було у вихідних даних | Потрібні тисячі розмічених кадрів і контроль перенавчання на малій вибірці |
| Навчання з нуля | Даних багато, архітектура під вузьку задачу, готові ваги тільки заважають | Довгий цикл, високі вимоги до розмітки та до відкладеної вибірки |
| Донавчання на синтетиці | Реальні приклади рідкісні або їх не можна вивозити та публікувати | Синтетика розходиться з живими кадрами — обов'язкова перевірка на реальній вибірці |
Коли підхід завідомо не підходить
Повне донавчання втрачає сенс, коли розмічених кадрів менше, ніж параметрів рішення: модель запам'ятовує вибірку й розвалюється на першому зсуві умов зйомки.
Синтетика не виручає там, де важлива поведінка на реальному обладнанні — генератор не відтворює артефакти сенсора та відблиски.
Етапи fine-tuning: від аудиту даних до здачі
Fine-tuning — це не запуск навчання, а спочатку відповідь на питання, що вважається хорошим результатом. Перші кроки — аудит набору даних і фіксація метрики, за якою модель прийматимуть. Порядок робіт нижче однаковий для класифікації, детекції та сегментації.
Аудит даних і постановка метрики
- Аудит набору даних: обсяг, баланс класів, дублі, суперечливі кадри. Окремо рахуємо частку рідкісних сценаріїв — саме вони дають основний внесок у помилки.
- Критерії приймання: до старту фіксуємо цільові показники за кожним класом і допустимий тип помилок, щоб приймання не перетворювалося на спір про смаки.
- Схема валідації: ділимо дані на навчальну, валідаційну та відкладену частини; відкладену збираємо з незалежного джерела або іншого періоду зйомки.
- Підготовка розмітки: уточнюємо інструкцію, перевіряємо узгодженість на перехресній вибірці, закриваємо спірні приклади.
- Навчання: адаптуємо базову модель під задачу, режим підбираємо на валідаційній частині, не заглядаючи у відкладену.
Перевірка на відкладеній вибірці
- Прогін на відкладеній вибірці та розбір помилок моделі: групуємо промахи за типами й умовами зйомки, найгірші групи повертаємо в донавчання або у вимоги до камери та світла.
- Передача: ваги, конфігурація попередньої обробки, скрипт відтворення метрик і звіт з критеріями приймання.
Артефакти проєкту: конфігурації, схеми, регламенти
Комплект постачання в проєкті донавчання моделей комп'ютерного зору — це не тільки ваги. Замовник отримує модель з порядком її відтворення та регламенти, за якими рішення живе в експлуатації: оновлюється, перевіряється й відкочується без участі нашої команди. Нижче — що саме передається на руки і навіщо кожен артефакт потрібен.
Модель і відтворюваний конвеєр
- Ваги навченої моделі та картка моделі: задача, перелік класів, межі застосовності, відомі обмеження за умовами зйомки.
- Конфігурації навчання та розмітки: параметри, схеми аугментацій, версії датасетів — повторний запуск дає той самий результат, а не «приблизно схожий».
- Схема конвеєра обробки: від приймання кадру до видачі відповіді, з точками контролю якості та логуванням кожного етапу.
- Політика доступу до даних: ролі, терміни зберігання, знеособлення, порядок передачі датасетів третім особам.
- Документація за метриками: як рахуються точність і повнота за кожним класом, на яких вибірках, де лежить еталонна розмітка.
Регламент експлуатації та моніторингу
- Регламент моніторингу: які показники знімаються з потоку, з якою періодичністю, хто розбирає відхилення і в якому вигляді отримує звіт.
- Пороги деградації та правила перенавчання: при якому падінні якості запускається нова ітерація на накопичених даних і за яким набором прикладів.
- Інструкція з відкату на попередню версію моделі та чек-лист приймання оновлення перед викочуванням у продакшн.
Відтворюваність результату перевіряється під час передачі: ми розгортаємо конвеєр на вашій інфраструктурі, навчаємо модель за переданими конфігураціями та звіряємо метрики з еталонними. Розбіжність вище обумовленої — привід не закривати етап, а розбирати причину.
Кейс: контроль дефектів на виробничій лінії
На лінії складання електронних модулів дефекти паяних з'єднань шукали візуально: зміна з чотирьох операторів переглядала потік вручну.
Око втомлюється до середини зміни, тому мікродефекти — непропай, зміщення виводу, надлишок припою — проходили далі й спливали вже на складанні готового виробу. Кожна така знахідка означала розбирання вузла та незаплановану зупинку лінії.
Ми зняли з лінії розмічений архів: кілька десятків тисяч кадрів з камер на позиціях контролю, включно з окремою вибіркою спірних випадків, які оператори розмічали по-різному.
На цих прикладах донавчили модель класифікації дефектів під конкретні типи корпусів і освітлення цеху — навчання та перевірку на відкладеній вибірці вели в PyTorch.
Метрики до і після
| Показник | До | Після |
|---|---|---|
| Частка ручного контролю кадрів | 100% | 18% (лише спірні) |
| Хибні зупинки лінії за місяць | 34 | 4 |
| Час перевірки однієї плати | 6–8 с | 0,4 с |
| Пропущений брак на готовій збірці | 2,1% | 0,3% |
Змінився не лише алгоритм, а й процес: спірні кадри йдуть оператору на дорозмітку, і ці приклади раз на тиждень підмішуються в навчання. Поріг спрацювання налаштовується окремо під тип плати, тому чутливість не доводиться стискати до одного загального значення.
Чим донавчання відрізняється від навчання з нуля
Навчання з нуля стартує з випадкової ініціалізації ваг: мережа сама вивчає базові ознаки — межі, текстури, форми — і лише потім цільову задачу. Тому розмічати потрібно десятки тисяч кадрів на клас з балансом за освітленням, ракурсами та сценами зйомки.
Донавчання (fine-tuning) бере модель, яка вже бачила мільйони зображень, і підлаштовує ознаки під вашу предметну область — на старті вистачає кількох сотень коректних прикладів рідкісного класу.
Терміни виходу в роботу відрізняються так само: з нуля це тижні ітерацій і паралельна робота розмітників, при донавчанні перші придатні ваги з'являються за дні, а на готовому наборі — за години.
Ми заморожуємо ранні шари, навчаємо останні блоки й голову класифікації малим кроком навчання — модель не втрачає узагальнювальну здатність на сусідніх класах.
Головний ризик — перенавчання на маленькій вибірці. Ознака видна за розходженням кривих: на навчальному наборі точність зростає, на відкладеному падає або стоїть.
Лікується аугментацією, ранньою зупинкою, стратифікованим поділом і обов'язковою перевіркою на окремому наборі з реального потоку камери, а не на перемішаних прикладах.
Якщо вже розгорнуто сторонню модель, її не обов'язково викидати.
Ваги вивантажуються в переносний формат — сумісність між середовищами закриває відкрита екосистема PyTorch, — обидві версії запускаються паралельно на одному потоці, порівняння йде за метриками на клас, а не за середньою точністю. Переведення трафіку поступове, зі збереженим відкатом на попередню версію.
Вибір диктує близькість задачі до того, що модель уже бачила: близька область — донавчання, унікальна модальність і жорсткі вимоги до домену — гібрид, де частина шарів навчається з нуля.
Питання перед стартом: дані, ризики, обмеження
Вимоги до даних залежать від класу задачі, а не від «магічного» числа кадрів.
Для класифікації сцени вистачає кількох сотень прикладів на клас, для детекції та сегментації потрібні тисячі розмічених об'єктів — і вирішує тут не обсяг, а різноманіття: ракурси, освітлення, фон, типи об'єктів.
Нижче зібрали сумніви, які найчастіше спливають до старту: про розмітку, контур навчання, контроль перенавчання та стійкість до зміни умов зйомки.
Скільки даних потрібно, щоб донавчання дало результат?
Поріг залежить від класу задачі: класифікація чутлива до балансу класів, детекція — до числа об'єктів на кадр. На розвідувальному прогоні ми навчаємо модель на доступній вибірці та вимірюємо якість на відкладеній — видно, яких сцен не хватає. Далі або додаємо розмітку точково, або підсилюємо набір аугментацією.
Що робити з помилковою розміткою?
Це головне джерело шуму: модель навчається на суперечностях і втрачає точність на прикордонних випадках. Проганяємо вибірку через перехресну перевірку, рахуємо розбіжності між розмітниками й відправляємо спірні кадри на арбітраж. Окремо чистимо класи з розмитими межами — їх зазвичай і плутає мережа.
Чи можна навчати на наших серверах?
Так. Навчання та вивід розгортаємо у вашому контурі: дані не покидають периметр, доступи видаються за ролями. Якщо своїх прискорювачів немає, рахуємо вимоги до обладнання та пропонуємо варіант зі знеособленим вивантаженням на нашій стороні.
Як перевіряється перенавчання?
Тримаємо відкладену та контрольну вибірки, зняті в інших умовах, ніж навчальна. Розрив у якості між ними — сигнал, що модель запам'ятала кадри, а не ознаки. Тоді підключаємо регуляризацію, ранню зупинку та розширення набору аугментацією.
Що буде при зміні умов зйомки?
Якщо нова камера, світло або ракурс не були в даних, якість падає. Закладаємо контроль дрейфу: періодично семплюємо кадри з експлуатації та порівнюємо їхній розподіл із навчальним. При зсуві робимо донавчання на нових кадрах, не перезбираючи рішення повністю.
Що потрібно від вас для старту та оцінки задачі
Оцінка задачі з донавчання моделі комп'ютерного зору залежить не від обсягу листування, а від повноти вхідних даних. Чим раніше ми побачимо реальні кадри й зрозуміємо, де модель буде працювати, тим точніше назвемо терміни й менше етапів доведеться переробляти. Нижче — мінімум, якого достатньо, щоб повернутися з оцінкою та планом робіт.
- Приклади даних. Реальні зображення або записи з камер — включно зі складними кадрами: слабке світло, перекриття, розмиття, рідкісні класи об'єктів.
- Розмітка. Чи є вона, в якому вигляді (рамки, маски, ключові точки) і хто підтверджує спірні випадки.
- Поточна модель. Що використовується зараз, на яких даних навчалася і які помилки заважають найбільше — так зрозуміло, чи вистачить донавчання або потрібне перезбирання.
- Критерії приймання. Яка метрика вважається успіхом: частка правильних спрацювань, пропуски, хибні тривоги, — і на якому наборі кадрів це перевіряється.
- Обмеження інфраструктури. Де модель буде працювати — сервер, хмара, камера на об'єкті; допустима затримка відгуку та вимоги до автономності.
- Доступи. Репозиторій з кодом, сховище даних, тестовий стенд або запис потоку, порядок погодження доступу.
- Терміни та пріоритети. Коли потрібен перший робочий результат і які класи об'єктів критичні в першу чергу.
Цього набору достатньо, щоб обговорити задачу предметно й не гадати. Опишіть задачу — повернемося з оцінкою та планом робіт: запропонуємо схему донавчання, обсяг перевірок і етапи.







