Моделі та платформи ШІ
Жульєн Ребец, Лід Машинного Навчання в Picterra – Серія Інтерв’ю

Жульєн Ребец – Лід Програмного Забезпечення та Машинного Навчання в Picterra. Picterra пропонує геопросторову хмарну платформу, спеціально розроблену для навчання детекторів на основі глибокого навчання, швидко та безпечно.
Без жодної лінії коду та з лише декількома людьми, створеними анотаціями, користувачі Picterra створюють та розгортають унікальні діючі та готові до використання моделі глибокого навчання.
Він автоматизує аналіз супутникових та аерофотознімків, дозволяючи користувачам ідентифікувати об’єкти та закономірності.
Що саме привернуло вас до машинного навчання та штучного інтелекту?
Я почав програмувати, тому що хотів створити відеоігри та цікавився комп’ютерною графікою спочатку. Це привело мене до комп’ютерного бачення, яке є певним зворотнім процесом, коли замість того, щоб комп’ютер створював фальшиве середовище, у нього є сприйняття реального середовища. Під час моїх студій, я пройшов деякі курси з машинного навчання та цікавився кутом комп’ютерного бачення. Я думаю, що цікаво в ML це те, що воно знаходиться на перетині між програмним забезпеченням, алгоритмами та математикою, і все одно здається певним чином магічним, коли воно працює.
Ви працювали над використанням машинного навчання для аналізу супутникових зображень протягом багатьох років. Що було вашим першим проєктом?
Мій перший досвід роботи з супутниковими зображеннями був проєктом Terra-i (для виявлення вирубки лісів), над яким я працював під час моїх студій. Я був здивований кількістю безкоштовних супутникових даних, які виробляються різними космічними агентствами (NASA, ESA тощо). Ви можете отримати регулярні зображення планети безкоштовно кожен день або близько того, і це великий ресурс для багатьох наукових застосунків.
Чи можете ви поділитися більш детальною інформацією щодо проєкту “Terra-i”?
Проєкт Terra-i (http://terra-i.org/terra-i.html) був розпочатий професором Анджеєм Перес-Урібе з HEIG-VD (Швейцарія) і зараз очолюється Луїсом Реймондіним з CIAT (Колумбія). Ідея проєкту полягає у виявленні вирубки лісів за допомогою безкоштовних супутникових зображень. На той час ми працювали з зображеннями MODIS (розмір пікселя 250 м), оскільки вони забезпечували уніфіковане та передбачуване покриття (і просторове, і тимчасове). Ми отримували вимірювання для кожного пікселя кожні кілька днів, і з цього часового ряду вимірювань можна було спробувати виявити аномалії або нововведення, як ми їх іноді називаємо в ML.
Цей проєкт був дуже цікавим, оскільки кількість даних була певним викликом на той час, і також було певне програмне забезпечення, яке потрібно було розробити, щоб зробити його працюючим на декількох комп’ютерах тощо. З боку ML, ми використовували Баєсову нейронну мережу (не дуже глибоку на той час :)) для прогнозування того, яким повинен бути часовий ряд пікселя. Якщо вимірювання не збігалося з прогнозом, то у нас була аномалія.
Як частина цього проєкту, я також працював над видаленням хмари. Ми використовували традиційний підхід сигнальної обробки, де у вас є часовий ряд вимірювань, і деякі з них будуть повністю неправильними через хмару. Ми використовували фур’є-підхід (HANTS), щоб очистити часовий ряд до виявлення нововведень у ньому. Однією з труднощів було те, що якщо ми очистимо його занадто сильно, ми також видалимо нововведення, тому були певні експерименти, які потрібно було провести, щоб знайти правильні параметри.
Ви також розробили та реалізували систему глибокого навчання для автоматичної класифікації типу культури з аерофотознімків фермерських полів. Які були основними викликами на той час?
Це був мій перший справжній досвід роботи з глибоким навчанням. На той час, я думаю, що основними викликами були більше пов’язані з тим, щоб запустити фреймворк і правильно використовувати GPU, ніж з самим ML. Ми використовували Theano, який був одним з предків Tensorflow.
Метою проєкту було класифікувати тип культури на полі на основі аерофотознімків. Ми спробували підхід, при якому модель глибокого навчання використовувала гістограми кольорів як вхідні дані, а не просто сире зображення. Щоб зробити це працюючим досить швидко, я пам’ятаю, що мені довелося реалізувати власний рівень Theano, аж до деякого коду CUDA. Це був великий досвід на той час і хороша можливість трохи заглибитися у технічні деталі глибокого навчання.
Ви офіційно Лід Програмного Забезпечення та Машинного Навчання в Picterra. Як би ви описали свою повсякденну діяльність?
Це дійсно варіюється, але більша частина часу витрачається на те, щоб стежити за загальною архітектурою системи та продуктом загалом, і спілкуватися з різними зацікавленими сторонами. Хоча ML знаходиться в центрі нашого бізнесу, ви швидко розумієте, що більшість часу не витрачається на сам ML, а на все, що навколо нього: управління даними, інфраструктуру, UI/UX, прототипування, розуміння користувачів тощо… Це досить велика зміна порівняно з академією або попереднім досвідом у великих компаніях, де ви значно більше зосереджені на певній проблемі.
Що цікаво в Picterra, так це те, що ми не тільки запускаємо моделі глибокого навчання для користувачів, а й дозволяємо їм тренувати свої власні. Це відрізняється від типових робочих процесів ML, де у вас є команда ML, яка тренує модель, а потім публікує її у виробництво. Це означає, що ми не можемо вручну змінювати параметри тренування, як ви часто робите. Ми повинні знайти певний метод тренування, який працюватиме для всіх наших користувачів. Це привело нас до створення того, що ми називаємо нашим “фреймворком експериментів”, який є великим репозиторієм наборів даних, що імітують дані тренування, які наші користувачі створюють на платформі. Ми можемо потім легко тестувати зміни нашої методології тренування проти цих наборів даних і оцінювати, чи вони допомагають чи ні. Отже, замість оцінки однієї моделі, ми більше оцінюємо архітектуру + методологію тренування.
Іншим викликом є те, що наші користувачі не є практиками ML, тому вони не обов’язково знають, що таке тренувальний набір, що таке мітка тощо. Будування інтерфейсу, який дозволяє не-практикам ML створювати набори даних і тренувати моделі ML, є постійним викликом, і існує багато взаємодії між командами UX і ML, щоб забезпечити, що користувачі направляються у правильному напрямку.
Чи є деякі інші проєкти, над якими ви працювали та які ви вважаєте цікавими?
Я думаю, що одним з найцікавіших проєктів у Picterra був прототип Custom Detector. 1,5 роки тому у нас були “вбудовані” детектори на платформі: ті, які ми тренували самостійно та зробили доступними для користувачів. Наприклад, у нас був детектор будівель, детектор автомобілів тощо…
Це є типовим робочим процесом ML: у вас є інженер ML, який розробляє модель для певного випадку, а потім надає її клієнтам.
Але ми хотіли зробити щось інше та трохи розширити межі. Отже, ми сказали: “А що, якщо ми дозволимо користувачам тренувати свої власні моделі безпосередньо на платформі”? Були певні виклики, щоб зробити це працюючим: по-перше, ми не хотіли, щоб це займало кілька годин. Якщо ви хочете зберегти це відчуття інтерактивності, тренування повинно тривати кілька хвилин максимум. По-друге, ми не хотіли вимагати тисяч анотацій, яких зазвичай потребують великі моделі глибокого навчання.
Отже, ми почали з дуже простої моделі, зробили деякі тести в Jupyter, а потім спробували інтегрувати її у нашу платформу та протестувати весь робочий процес, з базовим інтерфейсом тощо. Спочатку це не працювало дуже добре у більшості випадків, але були деякі випадки, коли це працювало. Це дало нам надію, і ми почали ітерувати нашу методологію тренування та модель. Після деяких місяців ми були能够 досягти точки, коли це працювало добре, і зараз у нас є користувачі, які використовують це весь час.
Що було цікавим у цьому, так це подвійний виклик збереження тренування швидким (зараз кілька хвилин) та відповідно моделі не занадто складною, але в той самий час зробити її достатньо складною, щоб вона працювала та вирішувала проблеми користувачів. Крім того, це працює з небагатьма (<100) мітками для багатьох випадків.
Ми також застосували багато правил машинного навчання від Google (GOOGL ), зокрема ті, які стосуються реалізації всього конвеєра та метрик до початку оптимізації моделі. Це ставить вас у режим “системного мислення”, коли ви розумієте, що не всі ваші проблеми повинні бути вирішені ядром ML, а деякі з них можуть бути передані у інтерфейс, деякі з них попередньо/після оброблені тощо…
Чи є деякі інші технології машинного навчання, які використовуються в Picterra?
У виробництві ми зараз використовуємо Pytorch для тренування та запуску наших моделей. Ми також використовуємо Tensorflow час від часу для деяких конкретних моделей, розроблених для клієнтів. Окрім цього, це досить стандартний науковий стек Python (numpy, scipy) з деякими геопросторовими бібліотеками (gdal) доданими.
Чи можете ви розповісти, як працює Picterra на бекенді, коли хтось завантажує зображення та хоче тренувати нейронну мережу для правильної анотації об’єктів?
Так, спочатку, коли ви завантажуєте зображення, ми обробляємо його та зберігаємо у форматі “Cloud-Optimized-Geotiff” (COG) на нашому блобстореджі (Google Cloud Storage), що дозволяє нам швидко отримувати доступ до блоків зображення без необхідності завантажувати все зображення пізніше. Це ключовий момент, оскільки геопросторові зображення можуть бути величезними: у нас є користувачі, які регулярно працюють із зображеннями розміром 50000×50000.
Отже, щоб тренувати вашу модель, вам потрібно створити свій тренувальний набір даних через наш веб-інтерфейс. Ви зробите це, визначивши 3 типи областей:
- Області тренування, у яких ви будете створювати тренувальні мітки
- Області тестування, де модель буде передбачати, щоб ви могли візуалізувати деякі результати
- Область точності, де ви будете створювати мітки також, але вони не будуть використані для тренування, тільки для оцінювання
Як тільки ви створили цей набір даних, ви можете просто натиснути “Тренувати” і ми тренуватимемо детектор для вас. Що відбувається далі, так це те, що ми ставимо завдання тренування у чергу, запускаємо один з наших працівників GPU, тренуємо вашу модель, зберігаємо її ваги у блобстореджі та, нарешті, передбачаємо у області тестування, щоб відобразити у інтерфейсі. Відтоді ви можете ітерувати над вашою моделлю. Зазвичай, ви помітите деякі помилки в областях тестування та додасте області тренування, щоб допомогти моделі покращитися.
Як тільки ви будете задоволені оцінкою вашої моделі, ви можете запустити її у великому масштабі. З погляду користувача, це досить просто: просто натисніть “Виявити” поруч із зображенням, яке ви хочете запустити. Але це трохи складніше під капотом, якщо зображення велике. Щоб прискорити речі, обробити відмови та уникнути того, щоб виявлення займало кілька годин, ми розбиваємо великі виявлення на клітинки сітки та запускаємо незалежне завдання виявлення для кожної клітинки. Це дозволяє нам запускати дуже великомасштабні виявлення. Наприклад, у нас був клієнт, який запустив виявлення над усією Данією на зображеннях з роздільною здатністю 25 см, що становить близько терабайт даних – для одного проєкту. Ми описали подібний проєкт у цьому пості на Medium.
Чи є щось інше, що ви хотіли б поділитися про Picterra?
Я думаю, що те, що велике в Picterra, це те, що це унікальний продукт, який знаходиться на перетині між ML та геопросторовими даними. Що відрізняє нас від інших компаній, які обробляють геопросторові дані, це те, що ми обладнали наших користувачів самозабезпечуваною платформою. Вони можуть легко знайти місця, проаналізувати закономірності та виявити та порахувати об’єкти на зображеннях дистанційного зондування Землі. Це було б неможливо без машинного навчання, але наші користувачі навіть не потребують базових навичок програмування – платформа робить роботу на основі декількох людьми створених анотацій. Для тих, хто хоче поглибитися у основні концепції машинного навчання у геопросторовому домені, ми запустили комплексний онлайн-курс.
Що також варто згадати, так це те, що можливі застосування Picterra є безкінечними – детектори, побудовані на платформі, були використані у місті управління, точному сільському господарстві, лісовому господарстві, гуманітарному та ризик-менеджменті, фермерстві тощо, тільки щоб назвати найбільш поширені застосування. Ми фактично здивовані щодня тим, що наші користувачі намагаються зробити з нашою платформою. Ви можете спробувати її та повідомити нам, як це працювало у соціальних мережах.
Дякуємо за велике інтерв’ю та за те, що поділилися з нами, наскільки потужною є Picterra, читачам, які хочуть дізнатися більше, повинні відвідати веб-сайт Picterra.












