МАЯК научили честнее прогнозировать погоду на неделю
Автор проекта МАЯК показал обновлённую версию маленькой нейросети для прогноза температуры на 168 часов вперёд. После проверки на реальных метеостанциях часть красивых результатов исчезла, зато модель стала заметно честнее и полезнее в реальной жизни.
Что умеет МАЯК и зачем он вообще нужен
МАЯК — это компактная нейросеть, которая берёт историю одной метеостанции и пытается предсказать температуру на неделю вперёд. Она рассчитана на работу даже на Raspberry Pi, то есть подходит для небольших автономных устройств без постоянного подключения к внешним сервисам.
Входом для модели служат показания температуры, давления и влажности за прошлые 28 суток. На выходе она даёт не одну цифру, а сразу набор прогнозных интервалов: от 5% до 95%. Это удобно там, где важна не только точка, но и запас по риску — например, для дачи, теплицы или простого бытового контроля погоды.
Почему пришлось почти всё переделать
В первой версии результаты выглядели слишком хорошими. После дополнительной проверки автор обнаружил проблемы со стендом: часть данных для обучения и проверки могла пересекаться по времени, а это завышает качество. Плюс модель местами просто запоминала особенности точек, вместо того чтобы учиться нормальному поведению погоды.
Чтобы убрать самообман, проект перевели на более строгую схему. Для обучения использовали 350 точек на суше по решётке Фибоначчи, причём данные брались из ERA5 за 10 лет через архивный API Open-Meteo. Точки разделили на обучение, валидацию и тест, а около 50 тестовых станций модель больше никогда не видит. Перед каждым запуском теперь ещё и автоматически проверяется, нет ли утечек.
Что изменилось в новой проверке
Самое важное нововведение — проверка на реальных наблюдениях GHCNh от NOAA. Это почасовые данные настоящих метеостанций, и модель на них не обучается, а только проверяется. Сейчас автор использует около 70 станций в Европе, чтобы понять, как система ведёт себя не на сглаженном реанализе, а в живой среде с шумом, пропусками и ошибками датчиков.
Для сравнения добавили не только GRU и DLinear, но и LRU и PatchTST. Все модели теперь обучаются по одному протоколу и на примерно одном размере — 100–140 тысяч параметров. Так сравнение стало честнее: если МАЯК выигрывает, это уже не случайность из-за разных настроек.
Что это даёт на практике
Для пользователей важнее всего то, что модель стала лучше понимать свои границы. Если истории мало или она ненадёжна, МАЯК не изображает уверенность, а честно отдаёт климатическую норму с широким интервалом. Это полезнее, чем красивый, но случайный прогноз.
Внутри прогноз строится как сумма трёх частей: климат места, смещение конкретной станции и аномалия погоды. Такой подход помогает учитывать, что у каждого датчика свой характер, а сильная аномалия со временем должна затухать. Плюс на устройстве теперь достаточно numpy и onnxruntime, а состояние станции хранится в маленьком бинарном файле и переживает перезагрузку. Для тех, кто делает собственные датчики, локальные погодные узлы или просто любит автономные системы, это хороший пример того, как ИИ можно встроить в реальное устройство без лишней тяжеловесности.