NASA Space Apps Challenge — це найбільший міжнародний космічний хакатон, організований за підтримки NASA. Протягом 48 годин учасники з усього світу об’єднуються в команди, аби створити нові технічні рішення.
Цього року хакатон об'єднав1 8 715 команд зі 152 країн/територій світу. Вони змагалися у 10 категоріях, одна з яких — за найкраще використання даних.
Саме у цій категорії перемогла команда українців, які за 48 годин розробили проєкт із прогнозування геомагнітних штормів2 за допомогою нейронних мереж та необроблених даних. Їхній алгоритм зміг прогнозувати геомагнітні бурі з точністю 95–98% на 14 годин і 90–95% — на місяць.
Як формувалася команда Storm Prophet, які труднощі вона подолала та які має плани надалі — про все це ми запитали у переможців хакатону.
Хто такі Storm Prophet
Команда Storm Prophet складається з шести фахівців: Євгена Татаринова — кандидата фізико-математичних наук та програміста, Анастасії Лукʼяненко — розробниці ПЗ для квантових комп'ютерів, Максима Копистко — проєктного менеджера, Вадима Лозовського — фізика-інженера, Костянтина Кузьмичова — програміста баз даних та Андрія Солов’єнка — фулстек-розробника.
Євген, Костянтин та Анастасія вже брали участь у минулорічних хакатонах від NASA, а Максим навіть був членом команди-переможця3 на NASA Space Apps Challenge 2020. Тоді команда українських розробників FireWay здобули номінацію «Найкраще використання технологій» за те, що створила універсальний космічний з’єднувач.
Є контакт: як українська команда перемогла у хакатоні від NASA
Анастасія згадує, що перша її спроба здобути перемогу на хакатоні від NASA була ще три роки тому: «Тоді нам здавалося, що потрібно якнайбільше технічних спеціалістів для хакатону. Але з досвідом ми зрозуміли, що нам не вистачає візуалізації рішення, дизайну, презентації». Тож у 2022 році вирішили, що команда повинна складатися не лише з технічних спеціалістів, але й презентатора, візуалізатора чи дизайнера. Так у команді з’явився проєктний менеджер Максим Копистко, який згодом знайде Костянтина для роботи з базами даних.
Для Костянтина це був уже другий хакатон. Вперше він спробував свої сили у 2022-му. Тоді планував усе робити самостійно, але зрозумів, що не зможе сам створити весь проєкт. Тому коли Максим запропонував долучитися до команди, він з радістю погодився.
До того як шукати людей у команду Анастасія, Євген та Максим проаналізували челенджі на цьогорічному хакатоні. Детально описані завдання може проглянути кожен на сайті Space Apps Challenge4. Серед них учасники обирають ті, які найбільше їм підходять за темою та рівнем складності. Storm Prophet обрали виклик5 найскладнішого рівня advanced (просунутий) — прогнозування геомагнітних штормів на Землі.
Анастасія поділилася, що насправді їхня команда не мала великого вибору: «У цьому році, на мою думку, було тільки два цікаві челенджі: про геомагнітні шторми та еволюцію хробака в космосі. Але для другого челенджу в нас не було біолога. Крім того, ми подивилися, що він був уже частково написаний, а мені хотілося, щоб ми щось зробили з нуля».
Згодом до команди долучилися фізик Вадим, програміст баз даних Костянтин, про якого ми згадували вище, та візуалізатор Андрій.
Що таке геомагнітні шторми й навіщо їх прогнозувати
Геомагнітна буря (чи шторм)6 — це збурення верхніх шарів атмосфери Землі. Його спричиняє велике виверження із зовнішньої атмосфери Сонця. Матеріал, пов'язаний з цими виверженнями, називається плазмою. Приблизно за 21 годину тиск вхідної плазми передається до магнітосфери Землі, що спричиняє збільшення геомагнітного поля.
«Найбільше від сильних магнітних штормів можуть постраждати енергетичні системи, тому що вони можуть виходити з ладу або не працювати деякий час. Це також радіозв'язок, супутники, телекомунікації. Виходити з ладу можуть навіть навігаційні прилади. Тому що магнітосфера – це теж частина навігаційної системи, якою керується корабель чи літак, і коли магнітне поле нестабільне, прилад навігації може або вийти з ладу, або повести корабель чи літак не туди, куди потрібно — страждає логістика. Тому передбачення таких штормів є важливою задачею», — пояснює Євген.
Як приклад він наводить 1859 рік, коли відбулася7 найбільша зафіксована геомагнітна буря: «Тоді у Північній Америці та у Європі вийшли з ладу телеграфи, електричні системи, а Північне сяйво бачили навіть на Карибах. Тобто це мало суттєві наслідки навіть для того часу. Зараз ми ще більше залежні від благ цивілізації, а відтак вразливіші. На щастя, фахівці стверджують, що такі масштабні катастрофи відбуваються раз на декілька сотень років».
«Слід додати, що Сонце має і менші цикли з меншою активністю. Наприклад, є 11-річний цикл Сонця, і ми зараз перебуваємо поблизу піку цього циклу. Тобто активність Сонця найвища», — додає Андрій.
Більше про нещодавню активність Сонця
На думку Євгена, найбільшим користувачем їхнього продукту можуть бути великі енергетичні, телекомунікаційні чи логістичні компанії, а вже на другому місці — люди, які просто цікавляться змінами геомагнітного поля Землі.
Чи впливають магнітні бурі на людей
Одне з двох
За технічну частину проєкту відповідали Анастасія та Вадим. Вони обрали для розв’язання завдання нейромережі, бо іншими методами було б дуже складно реалізувати це за дві доби. Крім того, у них був досвід роботи з цим інструментом. Команда випробувала дві різні нейромережі, аби порівняти результат. Однією займалися разом Анастасія та Вадим, а навчання іншої на себе взяв Констянтин.
Вадим запропонував використовувати у роботі LSTM. LSTM (Long Short-Term Memory — довга короткочасна пам'ять) — різновид рекурентних нейронних мереж (RNN). RNN8 використовує послідовні дані або дані часового ряду. Ці алгоритми глибокого навчання є, наприклад, в таких популярних програмах, як Siri, голосовий пошук і Google Translate. На відміну від традиційних RNN, LSTM9 можуть ефективно «запам'ятовувати» й використовувати інформацію з далекого минулого.
Крім того, Вадим досліджував аномалії. Він аналізував кореляцію між штормами й збоями в роботі датчиків. Для цього він навчав модель у зворотному порядку. Тобто dst index (індекс магнітної активності) був на вході, а показники датчиків на виході.
Тренувала модель Анастасія: «Це займає багато ресурсів на компʼютері, а також може мати різні результати залежно від початкових параметрів. Щоб визначити найкращу конфігурацію і досягти найвищої точності, я паралельно запускала код на різних пристроях. Ми використовували п'ять ноутбуків з різними параметрами. Так через декілька годин я могла проаналізувати роботу пʼяти моделей, а не тільки однієї. Всю ніч я прокидалася і перевіряла, які параметри кращі, і тоді запускала вже інші параметри, враховуючи результати».
Нейромережа, яку випробовував Костянтин, мала дещо інші принципи роботи: «Нейромереж багато, кожна використовується для різних задач. У моїй нейронній мережі я використовував (Dense) з випадковим відключенням (). Також використовував різноманітні налаштування оптимізатора . Більшість часу витрачалось на пошук оптимальної послідовності нейромережі у кількості нейронів та шарів. Наприкінці дивився на результат передбачень. На жаль, нейронна мережа дуже погано передбачала шторми — розбіжність між реальними даними та передбаченими становила 25-35%»,— розповів Костянтин.
Тож на наступний день Костянтин почав тестувати нейромережу Анстасії на Вадима. «Коли ти пишеш код, то можеш не побачити якісь помилки самостійно. Нам потрібен був свіжий погляд людини, яка не працювала над моделлю і може зробити свої висновки», — зазначила Анастасія.
Коли Андрій зробив прототип сторінки, то вирішив допомогти колегам із підготовкою даних для навчання нейромережі. Він відібрав з усіх даних значущі й запропонував, як можна скоротити їхній обсяг на два порядки шляхом заміни сирих даних щохвилини на стислі статистичні показники щогодини, не втративши змісту.
«Щоб модель вчилася чомусь хорошому, треба було, як виявилося, відібрати буквально половину даних для навчання, а іншу не використовувати», — розповідає Андрій. Він стверджує, що проблема була в супутнику, який надавав дані: «Виявилося, що велику частину часу супутник просто не працював. Ось вони нам дали дані за 6,5 років в таблиці, але десь були суцільні нулі».
Завдяки відбору та оптимізації даних нейромережа почала навчатися набагато швидше. «Якщо порівнювати час навчання моделі, то спочатку було сім годин, а після того, як Андрій дав свою версію даних, стало пів години. Крім того, до цього вона була обмежена чотирнадцятьма годинами, тобто щохвилинно ми можемо давати прогноз, але це тільки на чотирнадцять годин вперед. А після того, як Андрій дав свої дані, ми спробували запустити цю ж нейромережу й тепер можемо прогнозувати на місяць з точністю до 90–95%», — пояснила Анастасія.
Євген презентував усю роботу команди в короткому тридцятисекундному ролику для NASA. Презентація проєкту і відео — це теж велика частина роботи, адже потрібно донести ідею і всі аспекти проєкту. Для цього Максим створив коротке відео з розбором технології й описом проєкту.
Труднощі в роботі
Кожен відповів на це питання по-різному. Для Максима як проєктного менеджера основою складністю була комунікація всередині команди. «Комунікація — це завжди проблема, особливо коли частина команди перебуває в іншій країні», — зазначив він.
Євген згадав про складність вибору моделі: «Пам'ятаю, скільки було палких технічних дискусій про те, як робити, що робити, на що витрачати час».
«А для мене було важко не спати всю ніч. Важкими теж були останні 2-3 години, коли ми вже закінчували опис проєкту. Я тоді віддала останні дані Андрію і ми зрозуміли, що для візуалізації ми не все обговорили й що воно не так працює, як ми очікували», — розповіла Анастасія. Андрій і Вадим натомість нарікали на брак часу.
«А я вважаю, що найбільш важким був пошук даних, інформації. Треба було знайти десь щось, не зрозуміло що», — прокоментував роботу Костянтин.
Новий хакатон
Команда не була впевнена в перемозі. Але їх надихнула висока оцінка локального журі в Києві. А поки розробники чекали на результати NASA Space Apps Challenge, навіть встигли взяти участь в ще одному хакатоні – CASSINI, де займалася проєктом з прогнозування та аналізу сонячного випромінювання12 для ефективного використання енергії та розвитку нової інфраструктури. У ньому могли брати участь тільки країни-члени ЄС. Тож команди з України могли долучитися до фіналу лише як віртуальні учасники та не претендували на головний приз, але пройшли всі етапи, як і інші команди, і отримали схвальні оцінки журі.
Євген також зазначив, що обидва хакатони показують потенціал команди: «Можливо, в майбутньому, цей або інший проєкт стане не пробою пера, а комерційним проєктом. А можливо, ми знайдемо іншу нішу, в якій ми зможемо виступати як команда. Тому що я бачу, що у нас дуже різноманітні фахівці, які можуть здобувати перемоги та великі досягнення».
Розвиток проєкту з прогнозу геомагнітних штормів, як і будь-якого іншого, залежить від того, наскільки він зацікавить громадськість та потенційних інвесторів. Тож нині команда подає заявки, активно шукає зацікавлених партнерів.
Поради охочим взяти участь у NASA Space Apps Challenge 2024 року
Анастасія порадила обирати тему, яка вам не лише цікава, а й підходить за фахом: «Наприклад, нам було б справді цікаво дослідити еволюцію хробака в космосі, але ми подумали: хто в нас зможе взагалі придумати щось про цього хробака?». Також варто залучати спеціалістів, які будуть займатися описом, координацією, візуалізацією тощо.
Євген порадив не опускати передчасно руки та доводити проєкт до логічного завершення: «Останнє місце — це більше, ніж зовсім нічого».
Брати участь у хакатоні можна, навіть якщо не маєте команди, але є бажання. Деякі завдання можна виконувати й самому, крім того, знайти людей можна вже на хакатоні: «Це й можливість познайомитись. В чаті я бачив людей, які просто розповідали, що вони вміють, які мають ідеї й так знаходили одне одного», — поділився Андрій.
Як зазначив Євген, якщо вперше не вдалося, треба повторити спробу на наступний рік з урахуванням попередніх помилок і досягнень: «Я брав участь у хакатоні чотири рази. І той, коли ми зайняли перше місце, — четвертий. Тож треба пробувати. Можливо, саме цей раз буде для вас щасливим».