Машинне навчання (Machine Learning) традиційно сприймають, як надскладну технологію, доступну лише технічним гігантам рівня Facebook та Google. Насправді сьогодні можливостями машинного навчання можуть користуватися навіть маленькі компанії без окремих датасайнс-команд. Тимур Болотюх, Machine Learning Engineer компанії PlantIn розповів про найпоширеніші міфи, які існують серед спеціалістів цієї сфери.
PlantIn — проєкт з екосистеми Genesis, який використовує технологію Machine Learning для розпізнавання рослин та автоматичного підбору плану догляду за ними. Застосунок завантажили понад 5 мільйонів разів, і 25 000 рослин щодня отримують догляд завдяки йому.
МІФ №1
Щоби працювати з алгоритмами Machine Learning, потрібен науковий ступінь з математики та наукові роботи.
У США у вакансіях інженера з ML часом можна побачити такі вимоги, як PhD з математики. Річ у тім, що всіх розробників можна поділити на дві групи: ті, які займаються науковою роботою та практичною. Перші — це ті, хто в інститутах та лабораторіях розробляють алгоритми та створюють архітектури. Для них справді обовʼязкові PhD з математики та наукові публікації із високим рівнем цитування. Але ця група — нечисленна.
Друга група розробників — ті, хто працюють із готовими архітектурами. Їхнє завдання: взяти готовий алгоритм та адаптувати його під проєкт для виконання потрібних завдань. Вони не створюють архітектуру з нуля, але мають розуміти, як вона працює, що можна змінити, як тренувати модель. Здебільшого саме так створюються програми та застосунки.
Для практичної групи розробників потрібен баланс з інженерних та математичних скілів. Наприклад, маючи сильний математичний бекграунд, можна підтягнути інженерні навички та стати інженером ML. У моєму випадку — вийшло навпаки. Маючи сильну технічну базу, як розробник бекенду, я зосередився на прокачуванні математичних навичок.
Загалом поріг для входу досить високий — потрібно знати програмування на мові Python, добре знати лінійну алгебру, чисельні методи, теорію ймовірності, статистику. Machine Learning стоїть на перетині всіх цих знань. Тому без математичної й технічної бази курси «Machine Learning з нуля» виглядають як мінімум непереконливо.
Водночас певними можливостями машинного навчання можуть користуватися розробники, не занурюючись у специфіку роботи з даними. На ринку існує багато готових рішень, які можна адаптувати під потреби бізнесу. Також є низка SaaS-платформ (AWS, Azure, Google Cloud), які можна використовувати для вирішення завдань, повʼязаних із Image Processing, Speach Recognition, NLP, Translation, Video Intelligence за допомогою готових API сервісів.
МІФ №2
Для алгоритму Machine Learning підходять будь-які дані.
Здавалося б, найважливіше в цьому процесі — архітектури та алгоритми. Ті самі, що створили в лабораторіях спеціалісти, у яких є PhD з математики. Натомість у цій сфері 90% успіху проєкту — це якісні дані. Інакше дуже важко досягти високої точності роботи моделі.
Щоби натренувати нейромережу, потрібні величезні набори даних — це не можуть бути рандомні картинки або текст з інтернету. Уявімо, що ми натренували свою модель на картинках поганої якості. Коли користувач сфотографує рослину на свій смартфон та завантажить якісне фото у великому розширенні, алгоритм просто не розпізнає зображення, адже для нього це зовсім інші дані. Тому вони мають бути ретельно відібрані та приведені до єдиного формату. Підготовка та систематизація даних для моделі називається розміткою — цим займаються окремі команди.
Якщо всі моделі, архітектури та наукові публікації знаходяться у відкритому доступі, то дані — закриті. Зазвичай їх можна купити готовим сетом. Але якщо у проєкту дуже специфічне завдання, усе значно складніше. Наприклад, у нашій базі є такі рідкісні рослини, у яких навіть немає сторінок у Вікіпедії, а у пошуковій системі можна знайти лише декілька фото. Ще складніше знайти зображення захворювань рослин, щоби модель могла їх розпізнати. Такі сети даних просто неможливо купити — хіба що сфотографувати самому чи шукати вручну через пошукову систему. Для цього в компаніях є окремі команди, які займаються розміткою та формуванням бази даних.
Важлива частина роботи інженера — аналізувати, чому модель погано працює, і шукати рішення, як її можна покращити. Наприклад, ми бачимо, що якусь рослину алгоритм дуже погано розпізнає, аналізуємо і знаходимо, що у нас недостатньо зображень такого класу. Або знаходимо, що в базі фотографії тільки в горщиках, а люди фотографують їх на вулиці. Таким чином база даних постійно доповнюється.
Також із плином часу дані змінюються, застарівають, модель потрібно адаптовувати та перетреновувати. Наприклад, на розпізнавання фотографії може вплинути сезонність: на літніх та зимових світлинах модель тренують окремо. Для аналізу поведінки користувачів у інтернет-магазині важливі часові ряди, які постійно змінюються.
Фактично, тренування моделі — безперервний процес, адже система постійно отримує нові дані від користувачів, на яких навчається.
МІФ №3
Інженери ML не кодять.
Як сказано вище, більшість інженерів використовують готові архітектури та фреймворки. Але все одно доводиться працювати із кодом. Інженер робить багато ітерацій, маніпуляцій із даними, проводить експерименти — для цього потрібно писати код, який це автоматизує. Загалом 30–40% часу роботи інженера займає власне код. Інша частина — робота з даними, ML Ops, дебагінг, експерименти з новими підходами та архітектурами.
МІФ № 4
Тренування моделі — це дорого, складно й дуже довго.
При першому знайомстві з Machine Learning може скластися враження, що задля того, аби натренувати щось дійсно хороше, потрібні сотні гігабайтів даних та десятки годин. Такий висновок виникав після вивчення публікацій про підходи до створення моделей у Facebook та Google. Наприклад, моделі, що розпізнають людську мову, тренувалися сотнями годин на тисячах відеокарт. Але на практиці для більшості задач можна взяти вже готову натреновану архітектуру, довчити її на своїх даних, адаптувати та отримати хороші результати. Наприклад, є популярний датасет ImageNet, на якому вимірюють точність усі популярні архітектури — це один мільйон зображень і одна тисяча класів. І всі нові архітектури, що з'являються, уже натреновані на цьому датасеті. Їх називають «притреновані». Умовно, ці алгоритми вже на старті можуть відрізнити на фотографії велосипед від людини. Завдання розробника — адаптувати її під свій проєкт, наприклад, навчити відрізняти фікус від дифенбахії.
А якщо починати все спочатку, для тренування моделі потрібні тижні, навіть на сучасних дорогих відеокартах.
МІФ №5
Існують універсальні архітектури, які вміють усе.
Чи можна натренувати одну велику модель, яка настільки добре навчиться, що автоматично зможе розпізнавати будь-які зображення? У випадку з Computer Vision для вирішення завдань з класифікації існує підхід Zero-shot learning. З ним можливе створення класифікатора, який може розв'язувати довільну задачу з визначення класу без навчальних прикладів. Це можливо завдяки великому прогресу за останні роки у використанні нейронних мереж типа Transformer для обробки природної мови. Окрім того, зараз збільшується популярність такого підходу для обробки зображень.
Але в нашому випадку це не спрацює. Ми використовуємо підхід Fine-Grained Image Classification (FGIC), адже деякі рослини можуть бути дуже схожі, але все ж таки належати до різних класів.
МІФ №6
Machine Learning — інноваційна сучасна технологія.
Насправді першу модель нейронної мережі запропонували ще в 1957 році, а метод згортки для розпізнавання зображень — у 80-х роках. На початку 2000-х, коли Google реалізував модель із розпізнаванням зображень, відбувся справжній прорив. Але потім темпи розвитку згасли, адже ще не існувало технічної можливості тренувати великі складні моделі.
Зараз сфера Machine Learning знову динамічно розвивається. Щотижня зʼявляються сотні публікацій про нові методи та підходи, за якими вже важко слідкувати.
Приблизно два роки тому почався новий етап. До цього використовували нейромережі двох видів: повнозвʼязні та зі згорткою (для зображень). А зараз популярності набули архітектури-трансформери. Такі моделі, наприклад, можуть генерувати текст на визначену тему, правдоподібне зображення або створити так званий нейроарт — музику, вірші, картини тощо.
Найбільш вражаючий результат сучасних алгоритмів Machine Learning — це те, що розпізнавання зображень або людської мови стало справді точними. І це можуть зробити не тільки глобальні гіганти, як Facebook чи Google, але й невеликий стартап. Тобто ці технології стають усе більш доступними для всіх.