惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
aimingoo的专栏
aimingoo的专栏
IT之家
IT之家
G
Google Developers Blog
爱范儿
爱范儿
博客园 - 司徒正美
Recent Announcements
Recent Announcements
The Register - Security
The Register - Security
J
Java Code Geeks
The Cloudflare Blog
M
MIT News - Artificial intelligence
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Security Blog
Microsoft Security Blog
博客园 - Franky
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
宝玉的分享
宝玉的分享
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
B
Blog
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
T
Troy Hunt's Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
H
Hacker News: Front Page
H
Help Net Security
S
Security @ Cisco Blogs
V
V2EX
Security Archives - TechRepublic
Security Archives - TechRepublic
Stack Overflow Blog
Stack Overflow Blog
O
OpenAI News
L
LINUX DO - 最新话题
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Secure Thoughts
Help Net Security
Help Net Security
F
Full Disclosure
博客园 - 叶小钗
The Hacker News
The Hacker News
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Jina AI
Jina AI
K
Kaspersky official blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Vulnerabilities – Threatpost
P
Privacy International News Feed
Scott Helme
Scott Helme

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Flow Matching, 276M параметров и моделирование хаоса: как мы научили генеративную модель Marchuk предсказывать погоду
Arsen_K (AIR · 2026-04-30 · via Все публикации подряд на Хабре

Уровень сложностиСложный

Время на прочтение19 мин

Охват и читатели2.2K

Кейс

Введение: взгляд на атмосферу через объектив видеокамеры

Привет, Хабр! Мы команда «Генеративный ИИ для видео» лаборатории FusionBrain AIRI — группа исследователей в области Generative AI. Наш основной профиль — модели генерации изображений и видео: пиксели, временная когерентность, латентные пространства, трансформеры и diffusion/flow‑подходы.

Мы — не метеорологи. До этого проекта мы не держали в голове уравнения Навье — Стокса и путались в направлениях циклонов и антициклонов. Но однажды мы посмотрели на задачу глобального прогноза погоды под другим углом, и всё изменилось.

Если предельно упростить, погода — это 4D‑тензор (широта × долгота × количество погодных параметров × время), эволюция которого определяется физическими законами аэро‑ и гидродинамики. Для специалиста по компьютерному зрению (CV) это звучит очень знакомо: структурно перед нами классическая задача предсказания следующего кадра видео (video prediction). Только вместо привычных RGB‑каналов мы имеем дело с размерностью физических погодных параметров, среди которых температура, геопотенциал, влажность и скорость ветра.

Отсюда родился резонный вопрос: можно ли взять SOTA‑идеи из алгоритмов генерации видео и применить их к задаче предсказания глобальной погодной карты, не превращая ML‑модель в усложненный пайплайн на базе специфических метеорологических знаний?

Так появилась Marchuk — модель прогноза погоды на основе алгоритма Flow Matching. В её основе лежит Diffusion Transformer (DiT), который оперирует не сырыми погодными параметрами, а признаками из латентного пространства предобученного автоэнкодера DC‑AE из архитектуры LaDCast. Оригинальная модель LaDCast умеет делать краткосрочные предсказания глобальных погодных карт с качеством, сравнимым с тяжелыми «пиксельными» моделями, требуя при этом на порядки меньше вычислений.

Гурий Иванович Марчук — советский/российский математик и академик, пионер в области численного прогноза погоды. Он сформулировал методы решения задачи прогноза на основе полного набора недиабатических уравнений динамики атмосферы, предложив метод расщепления по физическим процессам. В 1970-е годы Марчук разработал подход, основанный на сопряжённых уравнениях (метод возмущений), позволяющий строить функцию чувствительности для нелинейных задач прогноза. Эти алгоритмы (квазигеострофическое разбиение с Н.И. Булеевым и последующие разработки) легли в основу советских оперативных моделей погоды и климатического моделирования, за что Марчук был удостоен высших научных наград.

В нашей постановке задачи мы хотели сдвинуться дальше по временной шкале: научиться предсказывать глобальные погодные карты на горизонте до 30 дней. При этом критически важным было сделать модель компактной и достаточно быстрой.

Ключевые особенности Marchuk:

  • Малый размер (всего ~276M параметров);

  • Высокая скорость работы (7.5 минут против 45 минут у ближайшего аналога);

  • Возможность «пакетного» прогноза: модель принимает на вход 1 день контекста (4 погодные карты на каждые 6 часов) и за один прогон предсказывает карты на следующие от 1 до 8 дней (от 4 до 48 карт).

Примечание: в дальнейшем повествовании весь анализ для подсчета метрик учитывает тестирование в стандартном режиме — по 1 дню (4 точки) предсказываем 4 дня будущего (16 точек).

В этой статье разберём:

  1. Почему подход Flow Matching здесь так уместен;

  2. Почему Full‑Attention в предсказании погоды часто позволить себе проще, чем в генерации видео;

  3. Как мы заменили 3D‑варианты позиционного кодирования (GeoRoPE) на связку обучаемых 2D PE + 1D RoPE;

  4. Как выглядит практический кейс работы модели с реальной погодной аномалией.

Часть 1. Барьер предсказуемости: экспоненциальный рост ошибки и показатели Ляпунова

Главный вызов для нейросетей в прогнозе погоды — не столько нехватка данных (у нас в распоряжении имеется исторический архив с 1959 года), сколько фундаментальная хаотичность атмосферы.

Невозможность абсолютно точно измерить и задать начальные условия приводит к тому, что большинство методов не способны давать точный прогноз за горизонтом в две недели. Из‑за высокой чувствительности к малейшим неточностям ошибка прогноза растет во времени примерно экспоненциально, что в физике удобно описывать через показатели Ляпунова.

В фундаментальной работе "HealDA: Highlighting the importance of initial errors in end-to-end AI weather forecasts" эту проблему формулируют предельно прямо:

"Because the weather is chaotic, the error in a forecast … is fundamentally limited by error in the initial condition" (Поскольку погода хаотична, ошибка в прогнозе фундаментально ограничена ошибкой в начальном условии).

Часто эту математическую зависимость записывают в виде оценки роста ошибки:

\lVert \delta x_t \rVert \approx \lVert \delta x_0 \rVert \cdot e^{(\lambda+\delta\lambda)t},

где:

  • \delta x_0— изначальная ошибка наблюдений (неточность наших знаний о состоянии атмосферы на момент старта);

  • \lambda > 0— эффективный темп роста ошибки (доминирующая ляпуновская характеристика системы для выбранной постановки);

  • \delta\lambda— дополнительная «надбавка», возникающая из‑за несовершенства самой прогнозной ML‑модели.

Отдельная важная ремарка: В той же статье HealDA приводится практическая оценка, что на типичных масштабах атмосферы ошибка может «примерно удваиваться за сутки». Однако это не универсальная константа — показатель зависит от постановки задачи, метрики и режима атмосферной циркуляции.

Отсюда следует прикладной вывод: на длинных горизонтах прогнозирования (более 15 суток) сравнение модели с климатологической нормой становится строгим базовым тестом (бейзлайном).

Что такое климатологическая норма в ML‑оценках?

В метеорологии под климатологической нормой понимают усредненное состояние погоды. Концептуально Всемирная Метеорологическая Организация (ВМО) закрепляет климатические нормы как стандарты за 30‑летние периоды (например, 1991–2020 гг.). Однако на практике при подсчете метрик мы используем климатологический бейзлайн напрямую из бенчмарка WeatherBench 2 — это усредненный по дням в году и часам профиль на основе референсного исторического периода обучающей выборки (например, 1990–2017 гг.). Это позволяет проводить математически корректное сравнение строго в рамках одного распределения данных.

Цель Marchuk — за счет предложенной архитектуры и пайплайна обучения минимизировать вклад ошибки самой модели (\delta\lambda). Более того, что особенно важно для генеративной постановки, мы стремимся не сводить далекое будущее к простой регрессии (безопасно предсказывая усредненную норму), а генерировать физически правдоподобные сценарии динамики погоды через разнообразие нашего ансамбля.

Часть 2. Архитектура Marchuk: DiT в латентном пространстве погоды

Мы сознательно не стали изобретать собственный нейросетевой компрессор погодных параметров, а взяли готовый автоэнкодер DC‑AE из статьи LaDCast. Погодные поля сначала кодируются в компактные латенты, и уже в этом сжатом пространстве работает наша генеративная модель.

Рис. 1 Как устроена латентная диффузионная модель

Рис. 1 Как устроена латентная диффузионная модель

Преимущество DC‑AE заключается в высокой степени сжатия и заложенных авторами доменных знаниях на входе. Работая в латентном пространстве, нам больше не нужно думать о том, как вносить в сеть экспертные данные (границы суши, особенности рельефа и другие статические параметры, необходимые для корректного прогноза) — автоэнкодер учитывает это сам.

Дальше за дело берется «мозг» Marchuk — архитектура Diffusion Transformer, а динамика генерации организована через алгоритм Flow Matching.

2.1 Flow Matching vs Диффузия

Рис. 2 Общая схема обучения модели Marchuk: что подаем на вход и хотим предсказать

Рис. 2 Общая схема обучения модели Marchuk: что подаем на вход и хотим предсказать

Большая часть диффузионных моделей обучается на восстановлении данных из шума, двигаясь по стохастической траектории. Flow Matching предлагает другой, математически непрерывный взгляд: он обучает векторное поле для Continuous Normalizing Flow (CNF), регрессируя поля скоростей вдоль заданных путей между чистым шумом и реальными данными.

На практике это удобно тем, что:

  1. Генерацию можно сформулировать как решение обыкновенного дифференциального уравнения (ODE), сделав её детерминированной;

  2. Инженерно это позволяет стремиться к малому числу шагов при сэмплировании (инференсе), сохраняя при этом высокое качество и ускоряя вычисления.

Ключевой приём во Marchuk — пакетный прогноз. За один прогон через сеть мы получаем предсказание сразу на 4 дня вперёд (16 временных точек с интервалом в 6 часов). Дальше мы развиваем прогноз с помощью авторегрессии, используя последний сгенерированный день в качестве новых начальных условий.

Для контекста: многие современные ИИ‑модели погоды (например, GenCast от Google DeepMind) предсказывают состояние всего на 1–12 часов вперед, а затем шаг за шагом тянут прогноз до 10–15 дней (что часто требует дообучения в авторегрессионном режиме для снижения накопления сдвига данных). Pangu‑Weather использует иерархическую временную агрегацию (создает серию моделей на разные временные шаги \Delta t). В нашем же случае, благодаря пакетному подходу, ошибка авторегрессии часто отходит на второй план на фоне фундаментальной хаотичности самой атмосферы.

2.2 DiT, и почему Full‑Attention здесь оправдан

Сердце Marchuk — Diffusion Transformer.

Рис. 3 Схема архитектуры диффузионного трансформера Marchuk

Рис. 3 Схема архитектуры диффузионного трансформера Marchuk

В задачах генерации видео использование механизма полного внимания (Full‑Attention) почти всегда упирается в преграду: квадратичную вычислительную сложность O(N^2) по числу токенов (пространство × время). Из‑за огромного разрешения видео инженеры вынуждены прибегать к хитростям: дробить внимание на пространственное (spatial) и временное (temporal) или применять усеченные локальные окна.

Но в прогнозе погоды всё принципиально иначе. Благодаря мощному пространственному сжатию погодных полей в автоэнкодере DC‑AE (размерность уменьшается в 64 раза!), количество токенов на входе в наш DiT кардинально сокращается.

Именно в силу столь компактного размера латентного представления полный контекст становится реальным кандидатом на честный Full‑Attention. Разница в потреблении памяти между полным вниманием и урезанными (sparse) вариантами стирается.

Поскольку полное внимание традиционно даёт наилучшее качество, для глобального прогноза это — идеальный механизм. Он позволяет модели мгновенно улавливать глобальные телесвязи (teleconnections) — статистически значимые корреляции между погодными процессами в удаленных друг от друга регионах (когда, например, формирование циклона над одним океаном влияет на атмосферный фронт совершенно другого континента).

В Marchuk работают два блока внимания:

  1. Full‑Attention: связывает погодные токены (латентные карты / «кадры») между собой в пространстве и времени.

  2. Cross‑Attention: используется для обуславливания прогноза на текущее время года.

Вместе с погодными картами мы подаем на вход модели месяц, день и час в виде обучаемого эмбеддинга. Мы объединяем эти эмбеддинги с токенами погоды, давая сети свободу выбирать, на что обращать внимание: на визуальную динамику фронтов или на календарные метки.

2.3 Упрощение позиционных эмбеддингов: 2D learnable + 1D RoPE

В оригинальном LaDCast применялось геометрическое кодирование GeoRoPE для строгого учета сферичности Земли. Частоты в нем подбирались вручную на базе метеорологических доменных знаний отдельно для широты и долготы.

Мы же хотели уйти от явного внесения индуктивного смещения (inductive bias) в латентное пространство и пошли по более простому пути: позволили модели самой выучить пространственные позиционные эмбеддинги. Отметим, что мы обучались на фиксированном пространственном разрешении погодных данных (сетка 1.5 градуса, вытянутое в картинку со сферы изображение Земли разрешением 240 x 121 по долготе и по широте). Именно на таких картах учился и автоэнкодер DC‑AE. Поскольку пространственное разрешение у нас фиксированно и на обучении, и на инференсе, главное преимущество классического RoPE (работа с произвольным пространственным разрешением) нам было не нужно. Меняться может только временное разрешение.

В итоге в Marchuk мы используем гибридную связку:

  • Обучаемые (Learnable) 2D positional embeddings для широты и долготы (пространство).

  • 1D RoPE исключительно для временной оси.

2.4 Балансировка параметров DiT

В классической архитектуре DiT огромная часть параметров (вплоть до 40%) уходит на полносвязные (MLP) слои, модулирующие параметры временного шага диффузии внутри каждого блока трансформера. Это крайне неэффективно.

Опираясь на эксперименты из работы Photorealistic Video Generation with Diffusion Models, посвящённой модели W.A.L.T , мы применили дообучение небольших LoRA‑добавок для каждого блока DiT поверх основного MLP‑блока. Это позволило нам сократить количество модуляционных параметров финальной модели с 40% до уровня менее 10%.

2.5 Inputs & Outputs: что именно приходит на вход

Формально модель работает с последовательностью из 20 латентных карт:

z_t = [z_1, z_2, z_3, z_4, \;\; z_5 + \text{noise}_1, \dots, z_{20} + \text{noise}_{16}]

  • Контекст (condition): z_1 \dots z_4 — реальные погодные карты за предыдущие сутки (с шагом 6 часов = 4 точки).

  • Цель (target): z_5 \dots z_{20} — следующие 4 дня (16 точек), которые нужно сгенерировать.

При обучении исторические карты будущего зашумляются, и модель учится их «расшумлять», опираясь на чистый контекст вчерашнего дня. На инференсе будущие карты инициализируются чистым шумом и затем шаг за шагом приводятся к правдоподобному прогнозу через выученную динамику.

Обусловливание на временной шаг диффузии (timestep): шаг расшумления проходит через общий MLP‑слой (и LoRA‑добавки к нему для каждого блока DiT).

Обусловливание на время (Yeartime): для каждого из 20 элементов у нас есть точная временная метка месяц:день:час. Время воспринимается как текст в text‑to‑video и других трансформерах и напрямую (после формирования эмбеддингов из словаря) подается в блок Cross‑Attention. Словарь таких обучаемых эмбеддингов содержит ровно 8784 элемента (что соответствует 366 дням високосного года × 24 измерения в сутки). Таким образом, модель отлично чувствует сезонность.

Часть 3. Обучение: Variable Horizon Training на ERA5

Мы обучали Marchuk на ERA5 — глобальном датасете климатического реанализа от ECMWF. ERA5 предоставляет исторический архив с шагом в 1 час. Удобный формат для работы с ним можно найти в WeatherBench 2.

Так как мы работаем поверх латентного пространства DC‑AE, набор физических параметров унаследован из статьи LaDCast:

  • 13 атмосферных уровней по высоте для 6 параметров (геопотенциал, температура, u‑ и v‑компоненты ветра, специфическая влажность, вертикальная скорость).

  • 6 поверхностных параметров (температура на высоте 2 м, осадки, давление на уровне моря, температура водной поверхности, u‑ и v‑компоненты ветра у земли).

Суммарная размерность оси каналов равна 84.

Параметры обучения:

  • Train: 1979–2017 гг. (мы используем качественные данные спутниковой эры).

  • Test: 2018–2021 гг. и январь 2026 года.

  • Сетка: шаг в 1.5° (~ 150 км между точками сетки). Когда мы берем эту сетку и разворачиваем её с глобуса в 2D, мы получаем видео‑тензор с пространственным разрешением в 240 x 221.

  • Временной шаг: 1 час на трейне (24 точки в сутки) и 6 часов на тесте (4 точки).

Чтобы выжать максимум из данных при обучении, мы выбирали случайную стартовую точку с точностью до 1 часа, а затем отсчитывали от неё последовательные 20 точек с шагом в 6 часов (что равно 5 суткам: 1 день контекста + 4 дня прогноза).

Например: [1985-07-01 19:00, 1985-07-02 01:00, 1985-07-02 07:00, …, 1985-07-06 19:00]. Первые 4 точки подаются модели как контекст, а следующие 16 выступают в качестве цели.

Главная фишка нашего обучения, которое мы назвали обучением с переменным горизонтом или Variable Horizon Training: мы не фиксировали горизонт прогноза жестко. Зафиксирован был только исторический контекст (1 день). А вот длину предсказываемого будущего мы варьировали случайно в каждом батче: 1 день (4 точки), 1.5 дня (6 точек), и так вплоть до 8 дней.

Это сработало как curriculum learning (аугментация по сложности): модель учится удерживать согласованную физическую динамику на совершенно разных масштабах времени. Наши эксперименты показали, что это работает эффективнее последующего дообучения на длинные горизонты. Однако на этапе инференса мы нащупали оптимальный баланс качества и стабильности — строго 4 дня (16 точек) за один шаг. Если генерировать за один проход существенно больше — начинается деградация качества на средних горизонтах из‑за дрейфа. Если генерировать меньше — теряется скорость пакетного подхода без существенного прироста качества.

Часть 4. Результаты: компактная модель против конкурентов

Мы сравнивали Marchuk с двумя бейзлайнами:

  1. LaDCast (в конфигурациях Small на 375M и Large на 1.6B параметров) — сильный латентный диффузионный конкурент. Отметим, что большинство современных «пиксельных» моделей (работающих без компрессии) ориентируются на сроки до 10–15 дней, так как на длинных дистанциях их предсказания стремительно деградируют.

  2. Климатологическая норма — бенчмарк «как в среднем бывает», рассчитанный по стандартам WeatherBench 2.

4.1 Метрики: почему одного RMSE недостаточно

Краткий тизер результатов: по всем рассмотренным метрикам наша компактная модель Marchuk (276M) уверенно обходит соразмерную LaDCast (375M) и демонстрирует качество, сопоставимое с тяжелой версией LaDCast (1.6B).

Оценка проводилась на наборе из 100 стартовых точек, равномерно распределенных по 2018 и 2021 годам. Размер ансамбля — 50 предсказаний, горизонт прогноза — до 30 дней. Все метрики считались стандартным пайплайном WeatherBench 2.

Для начала мы смотрим на детерминистские (точечные) метрики, получаемые вычислением ошибки уже усредненного по 50 членам ансамбля прогноза:

 Рис. 4 Сравнение Marchuk и LaDCast по метрике RMSE для набора погодных параметров. Атмосферные параметры: зональная компонента ветра, температура, геопотенциал и влажность на разных уровнях 500, 750 и 850 гПа. Поверхностные параметры: давление на уровне моря, зональная и меридиональная компоненты ветра на высоте 10 метров, температура на высоте 2 метра. Размерность физических величин соответствует стандартным, например, для температуры это К (кельвины), для скорости ветра это м/с (метры в секунду). Синим цветом представлена наша модель, оранжевым и зеленым LadCast на 375М и 1.6B параметров соответственно. Красным пунктиром отмечена ошибка реконструкции – ошибка сжатия данных автокодировщиком. Синим пунктиром отмечена климатологическая норма.

Рис. 4 Сравнение Marchuk и LaDCast по метрике RMSE для набора погодных параметров. Атмосферные параметры: зональная компонента ветра, температура, геопотенциал и влажность на разных уровнях 500, 750 и 850 гПа. Поверхностные параметры: давление на уровне моря, зональная и меридиональная компоненты ветра на высоте 10 метров, температура на высоте 2 метра. Размерность физических величин соответствует стандартным, например, для температуры это К (кельвины), для скорости ветра это м/с (метры в секунду). Синим цветом представлена наша модель, оранжевым и зеленым LadCast на 375М и 1.6B параметров соответственно. Красным пунктиром отмечена ошибка реконструкции — ошибка сжатия данных автокодировщиком. Синим пунктиром отмечена климатологическая норма.

Рис. 4 Сравнение Marchuk и LaDCast по метрике RMSE для набора погодных параметров. Атмосферные параметры: зональная компонента ветра, температура, геопотенциал и влажность на разных уровнях 500, 750 и 850 гПа. Поверхностные параметры: давление на уровне моря, зональная и меридиональная компоненты ветра на высоте 10 метров, температура на высоте 2 метра. Размерность физических величин соответствует стандартным, например, для температуры это К (кельвины), для скорости ветра это м/с (метры в секунду). Синим цветом представлена наша модель, оранжевым и зеленым LadCast на 375М и 1.6B параметров соответственно. Красным пунктиром отмечена ошибка реконструкции — ошибка сжатия данных автокодировщиком. Синим пунктиром отмечена климатологическая норма.

Рис. 5 Сравнение Marchuk и LaDCast по метрике ACC. Набор параметров аналогичный сравнению по метрике RMSE.

  • Ensemble mean RMSE↓. Взвешенное по широтам среднеквадратичное отклонение усредненного ансамбля (важно помнить, что мы работаем с глобусом, а не плоским тензором). Как видно из графиков, Marchuk (276M) уверенно обходит LaDCast (375M) и показывает результаты, сопоставимые с большой моделью на 1.6B параметров. Синим пунктиром показана климатологическая норма: предсказывать хуже неё по RMSE математически не имеет смысла. Красным пунктиром отмечена ошибка реконструкции самого автоэнкодера.

  • ACC↑ (Anomaly Correlation Coefficient). Строго оценивает корреляцию нашего прогноза с реальными климатическими аномалиями (то есть отклонениями от климатологической нормы). Принято считать отсечкой полезности значение 0.5 — прогноз ниже этого порога может не представлять ценности. Как видно из графиков, по метрике ACC Marchuk (276M) уверенно обходит LaDCast (375M) и показывает результаты, сопоставимые с большой моделью на 1.6B параметров.

Но в чем проблема точечного RMSE на длинных горизонтах? Для вероятностного прогноза он может сильно вводить в заблуждение. Легко получить красивый низкий RMSE, если модель просто выдаст безопасную «сглаженную» картинку. Но такая гладкая регрессия к среднему абсолютно бесполезна для предсказания реального распределения экстремумов и штормов.

Поэтому главная проверка для вероятностной генеративной ИИ‑модели — это ансамблевые метрики, которые оценивают не только среднее, но и дисперсию (разброс) предсказаний:

Рис. 6 Сравнение Marchuk и LaDCast по метрике CRPS. На графиках представлены атмосферные параметры на уровне 500 гПа: зональная  компонента ветра, температура, геопотенциал, влажность — и поверхностные параметры: давление на уровне моря, зональная компонента ветра на уровне 10 метров, температура поверхности и кумулятивные осадки за 6 часов. Размерность погодных параметров стандартная – для скорости ветра это м/с, для осадков это метры. Синяя линия – Marchuk, оранжевая и зеленая модель LaDCast на 375M и 1.6B параметров, соответственно. Пунктиром отмечена ошибка реконструкции.

Рис. 6 Сравнение Marchuk и LaDCast по метрике CRPS. На графиках представлены атмосферные параметры на уровне 500 гПа: зональная компонента ветра, температура, геопотенциал, влажность — и поверхностные параметры: давление на уровне моря, зональная компонента ветра на уровне 10 метров, температура поверхности и кумулятивные осадки за 6 часов. Размерность погодных параметров стандартная — для скорости ветра это м/с, для осадков это метры. Синяя линия — Marchuk, оранжевая и зеленая модель LaDCast на 375M и 1.6B параметров, соответственно. Пунктиром отмечена ошибка реконструкции.

Рис. 6 Сравнение Marchuk и LaDCast по метрике CRPS. На графиках представлены атмосферные параметры на уровне 500 гПа: зональная компонента ветра, температура, геопотенциал, влажность — и поверхностные параметры: давление на уровне моря, зональная компонента ветра на уровне 10 метров, температура поверхности и кумулятивные осадки за 6 часов. Размерность погодных параметров стандартная — для скорости ветра это м/с, для осадков это метры. Синяя линия — Marchuk, оранжевая и зеленая модель LaDCast на 375M и 1.6B параметров, соответственно. Пунктиром отмечена ошибка реконструкции.

Рис. 7 Сравнение Marchuk и LaDCast по метрике CRPS‑Skill. Набор параметров аналогичный графику для CRPS.

Рис. 8 Сравнение Marchuk и LaDCast по метрике CRPS‑Spread. Набор параметров аналогичный графику для CRPS.

Рис. 8 Сравнение Marchuk и LaDCast по метрике CRPS‑Spread. Набор параметров аналогичный графику для CRPS.

CRPS↓ (Continuous Ranked Probability Score). Оценивает, насколько сгенерированное распределение ансамбля соответствует реальности. Формула строится на балансе:

\text{CRPS} = \mathbb{E}|X - Y| - 0.5 \cdot \mathbb{E}|X - X^*|,

где Y — реальность (ground truth), а X и X^* — два независимых прогноза из ансамбля. На графиках метрики CRPS видно, что Marchuk (276M) уверенно обходит LaDCast (375M) и сохраняет сопоставимые позиции с большой моделью на 1.6B параметров.

В этой парадигме выделяются два компонента:

  • CRPS‑Skill↓. Первое слагаемое (\mathbb{E}|X-Y|). Ожидаемая абсолютная ошибка (MAE) отдельного члена ансамбля относительно истины. Важно не путать её с упомянутой выше метрикой Ensemble mean RMSE — это разные математические сущности! По этому компоненту Marchuk (276M) уверенно обходит обе модели LaDCast.

  • CRPS‑Spread↑. Второе слагаемое (0.5 \cdot \mathbb{E}|X - X^*|). Ожидаемое абсолютное различие между двумя независимыми членами ансамбля. Отвечает за разнообразие сценариев (спред). Если спред нулевой — модель выродилась в регрессию.

4.2 Горизонт 15–30 дней и вычислительная эффективность

На горизонтах в 15–30 дней Marchuk показывает конкурентный результат: с хорошим отрывом обгоняет LaDCast-375M и климатологический бенчмарк, оставаясь сравнимой с LaDCast-1.6B. На таких больших сроках важно не «угадать точное положение каждого облака», а сохранять полезный сигнал на уровне макро‑режимов циркуляции.

А что по ресурсам? Диффузионные сети принято критиковать за скорость. Давайте посмотрим на таблицу времени генерации 30-дневного прогноза (на одной видеокарте H100, ансамбль 50 сценариев):

Модель

Размер, млн параметров

Скорость инференса (только диффузия)

LaDCast Large

~ 1600

45 мин (10 шагов расшумления)

LaDCast Small

~ 375

11 мин (10 шагов расшумления)

Marchuk (Наша)

~ 276

7.5 мин (20 шагов расшумления)

Marchuk работает заметно быстрее соразмерного конкурента, даже делая в два раза больше шагов расшумления (20 против 10).

Часть 5. Практика: сценарий аномальных морозов для Москвы (январь 2026)

Цифры в таблицах — это хорошо, но карты «вживую» объясняют генеративный подход нагляднее: ансамбль позволяет увидеть не только серое среднее, но и хвосты распределения (tail events) — те самые экстремальные погодные явления.

⚠️ ОБЯЗАТЕЛЬНЫЙ ДИСКЛЕЙМЕР: В этом разделе мы оцениваем модель как вероятностный генератор сценариев, а не как замену синоптика. Приведенный ниже анализ является исследовательской иллюстрацией работы экспериментальной ML‑модели, а не официальным прогнозом погоды. Для реального планирования опирайтесь на сводки официальных метеослужб.

В одном из экспериментов мы заставили Marchuk сгенерировать вероятностные сценарии на конец января 2026 года. Нашей целью было выяснить, способна ли модель заранее предвидеть надвигающиеся суровые московские морозы (когда температура ночью падала до аномальных -21...-26 °C).

Задача усложнялась тем, что модель и её автокодировщик обучались исключительно на исторических данных до 2017 года. Применяя её к 2026 году, мы сталкиваемся с естественным сдвигом данных (Data Drift) длиною почти в 10 лет. Тем интереснее проверить, в какой момент модель «почувствует» аномалию!

Сетап эксперимента:

  • За начальные данные (контекст) мы брали исторические погодные карты, постепенно сдвигая дату старта с 1 декабря 2025 года вплоть до 26 января 2026 года.

  • Нас интересовал конкретный квадрат над Москвой (ограничим как 55–58° с.ш., 35–39° в.д.).

  • Параметр t2m (температура на высоте 2 метров).

  • Размер ансамбля — 250 вариантов.

  • В качестве «вероятности аномалии» мы считали долю членов ансамбля, предсказавших температуру в жестком диапазоне от -19 до -25 °C.

В результате мы получили следующий график:

Рис. 9 Зависимость “вероятности” предсказания аномальной температуры в Москве на конец января 2026 года. По горизонтальной оси количество дней до аномального события. По вертикальной оси – “вероятность”: доля членов ансамбля указывающая на аномальное событие.

Рис. 9 Зависимость «вероятности» предсказания аномальной температуры в Москве на конец января 2026 года. По горизонтальной оси количество дней до аномального события. По вертикальной оси — «вероятность»: доля членов ансамбля указывающая на аномальное событие.

Что мы видим на графике?

Если мы делаем прогноз с заблаговременностью более 15 дней (левая часть графика), модель выдает условную горизонтальную «полку» — вероятность мороза колеблется на низком уровне 5–10%. В этот период модель не видит физических предпосылок и действует как климатологическая норма: выдает историческую норму («в январе бывает холодно, но не факт»).

Но посмотрите, что происходит, когда мы пересекаем рубеж в 15 дней (красная пунктирная линия)!

Модель отчетливо улавливает во входных начальных условиях макро‑перестройку циркуляции атмосферы. Вероятность наступления экстремального холода взлетает вверх, плавно «перетекая» в новую аномальную моду, достигая 80–90% по мере приближения к событию.

Вывод: Предсказывать аномальные явления куда сложнее любых сглаженных точечных прогнозов. Генеративный ансамбль справляется с этой задачей: мы смотрим на перераспределение вероятностей и перетекание сценариев в новую экстремальную моду.

Заключение

Marchuk — это наша успешная попытка перенести рабочие инструменты из видеогенерации в одну из самых сложных задач прикладной физики. Работа над ней многому нас научила, и вот какие основные уроки мы для себя извлекли:

  1. Погода структурно похожа на видео: это 4D‑тензор и его физическая эволюция во времени.

  2. Flow Matching + DiT в латентном пространстве — эффективная связка для стабильного вероятностного долгосрочного прогноза погоды.

  3. Full‑Attention в погодных латентах абсолютно практичен. Как мы выяснили выше, именно благодаря колоссальному сжатию в автоэнкодере DC‑AE (в 64 раза) длина пространственной последовательности токенов радикально сокращается. Это снимает проблему переполнения памяти O(N^2) и позволяет без костылей использовать механизм полного внимания, который критически важен для улавливания глобальных атмосферных взаимосвязей по всему земному шару.

  4. Упрощение архитектуры идет на пользу: замена сферических эмбеддингов GeoRoPE на гибрид обучаемых 2D learnable + 1D RoPE, а также балансировка MLP‑весов через LoRA‑добавки сделали модель значительно компактнее и выразительнее.

  5. Наша главная ставка сыграла: пакетный прогноз «1 день контекста → сразу 4 дня на выходе» на компактной модели (276M параметров) позволил обойти конкурентов и сократить время инференса до считанных минут.

Спасибо за внимание! Мы продолжаем наши исследования и будем рады ответить на ваши вопросы и обсудить детали в комментариях.

Авторы: Арсен Кужамуратов, Михаил Жирнов, Андрей Кузнецов, Иван Оселедец, Константин Соболев

Статья и GitHub

Список литературы и бенчмарки

  1. HealDA: Highlighting the importance of initial errors in end‑to‑end AI weather forecasts (arXiv:2601.17636).

  2. Flow Matching for Generative Modeling (Lipman et al., 2022/2023) (arXiv:2210.02747).

  3. LaDCast: A Latent Diffusion Model for Medium‑Range Ensemble Weather Forecasting (2025) (arXiv:2506.09193).

  4. DiT: Scalable Diffusion Models with Transformers (Peebles & Xie) (arXiv:2212.09748).

  5. ERA5 (ECMWF/Copernicus): глобальный датасет климатического реанализа (Copernicus).

  6. WeatherBench 2: бенчмарк и evaluation‑framework для ИИ‑моделей погоды (Документация).

  7. WeatherBench Probability: расширение на вероятностные метрики (CRPS, spread/skill ratio и др.) (arXiv).

  8. WMO Climatological Normals: 30‑летние стандарты климатических норм (World Meteorological Organization).

  9. Blocking patterns / Omega block: паттерны циркуляции атмосферы (Met Office).

  10. GenCast / GraphCast: современные модели прогнозирования от Google DeepMind.

  11. Pangu‑Weather: иерархическая временная агрегация (Nature).

  12. Wan: Open and Advanced Large‑Scale Video Generative Models.

  13. W.A.L.T: Photorealistic Video Generation with Diffusion Models — добавление LoRA к весам модуляции шага диффузии (Проект).