- BrainTools - https://www.braintools.ru -

ИИ‑прогноз погоды на своём железе: запускаем AIFS 2.0 от ECMWF

Открывать исходный код моделей — это здорово. Но если их запуск требует слишком много усилий, доступнее для сообщества они от этого почти не становятся.

В этой статье мы разберём, как устранить этот разрыв: не просто открыть модели, но и упростить их запуск. Именно такую цель поставил перед собой ECMWF, когда открыл исходный код новых ИИ‑моделей AIFS. Эта статья — результат нашей совместной работы.

AIFS — модель ECMWF для прогнозирования погоды на основе искусственного интеллекта [1]. Она строит глобальные среднесрочные прогнозы, затрачивая примерно в 1000 раз меньше энергии, чем традиционные модели, основанные на физических законах. Веса опубликованы на Hugging Face и доступны [2] всем желающим.

Однако для запуска текущей версии модели требуется определённый GPU — архитектуры Ampere или новее, — а такая видеокарта найдётся далеко не у каждого. Поэтому мы подготовили патч совместимости, который позволяет запускать модель на любом устройстве. В этой статье разберём, как самостоятельно запустить AIFS Single 2.0 с помощью Hugging Face Jobs или на собственном оборудовании.

О моделях AIFS

Численный прогноз погоды традиционно строится на решении основных уравнений физики атмосферы на дискретной сетке с расчётом эволюции системы во времени. Один из примеров таких систем — интегрированная система прогнозирования ECMWF (Integrated Forecasting System, IFS), основанная на физических законах. Система прогнозирования на основе искусственного интеллекта обучение [3] к историческим метеорологическим данным и учится строить статистическое представление эволюции атмосферы.

Модель использует энкодер и декодер на основе графовых нейронных сетей (GNN), а также процессор‑трансформер со скользящим окном. Она обучена на реанализе Copernicus ERA5 [4], подготовленном ECMWF, и на данных оперативного анализа ECMWF. Энкодер преобразует входные поля в сжатое скрытое представление, процессор рассчитывает его эволюцию [5] во времени, а декодер проецирует результат обратно на выходную сетку. Модели реализованы с помощью Anemoi [6] — открытого фреймворка, который ECMWF разрабатывает совместно с национальными метеорологическими службами европейских стран — членов организации.

Для этой статьи особенно важны две особенности AIFS.

Во‑первых, AIFS используется в оперативном прогнозировании. ECMWF ввёл систему в эксплуатацию 25 февраля 2025 года параллельно с основанной на физических законах IFS. Это первая открытая модель прогнозирования погоды на основе машинного обучения, которая полноценно работает в оперативном режиме и охватывает столь широкий набор параметров.

Во‑вторых, инференс требует значительно меньше вычислительных ресурсов, чем численное интегрирование. По оценке ECMWF, на построение одного прогноза уходит примерно в 1000 раз меньше энергии, чем при использовании системы, основанной на физических законах.

При этом AIFS зависит от тех же начальных условий, что и IFS. Иными словами, модель учится тому, как меняется атмосфера, но для формирования её начального состояния по‑прежнему использует ассимиляцию данных на основе физических моделей.

Система доступна в двух конфигурациях:

  • AIFS Single — детерминированная модель, которая четыре раза в сутки строит один глобальный прогноз на 15 дней с шагом 6 часов. Её веса опубликованы по лицензии CC BY 4.0 [7].

  • AIFS ENS — ансамблевая модель, введённая в эксплуатацию 1 июля 2025 года. Она состоит из 51 участника ансамбля, отражающих неопределённость прогноза.

Актуальные версии обеих моделей — v2. 12 мая 2026 года AIFS Single и AIFS ENS одновременно обновили [8] до версии 2 вместе с переходом IFS на цикл 50r1. В обновлении появились первые разработанные ECMWF прогнозы волн и снега на основе данных, улучшенное представление стратосферы и ещё два года данных для обучения.

ИИ‑прогноз погоды на своём железе: запускаем AIFS 2.0 от ECMWF - 1
ИИ‑прогноз погоды на своём железе: запускаем AIFS 2.0 от ECMWF - 2

Практические сценарии применения

Публикация весов AIFS Single по открытой лицензии снижает порог входа для построения среднесрочных прогнозов погоды. Это открывает новые возможности для исследовательского сообщества и разработчиков открытого ПО.

Оценка качества и методологические исследования. Открытые веса позволяют всем желающим строить собственные прогнозы, анализировать отдельные выходные переменные и сверять результаты с наблюдениями или прогнозами IFS. Благодаря этому можно изучать прошлые погодные события, использовать AIFS как базовую модель в сравнительных экспериментах, а также исследовать поведение [9] и типичные ошибки [10] моделей, основанных на данных.

Разработка прикладных решений. Среди выходных данных AIFS есть переменные, важные для отдельных отраслей. Например, солнечная радиация у поверхности и скорость ветра на высоте турбины нужны в задачах возобновляемой энергетики, а после обновления до v2 появились и параметры волн, полезные для морских и прибрежных приложений. Открытый доступ к этим полям позволяет самым разным группам пользователей создавать прототипы прикладных инструментов.

Обучение. Если модель работает на сравнительно скромном оборудовании, её можно использовать и в учебных целях. Студенты могут самостоятельно построить прогноз, изменить его заблаговременность и начальные условия, визуализировать результаты и оценить качество прогноза, работая с той же моделью, которая используется в оперативном прогнозировании.

Практическая ценность AIFS в оперативных системах уже подтверждена независимо от этих открытых сценариев использования. С сентября 2025 года модель передаёт данные в системы предупреждения [11] о наводнениях Copernicus EFAS и GloFAS. Кроме того, по данным ECMWF, она улучшает прогнозирование траекторий тропических циклонов вплоть до 20% по сравнению с ведущими моделями, основанными на физических законах. Теперь ту же модель можно свободно запускать самостоятельно. Единственное практическое препятствие — инструменты для инференса, рассчитанные на оборудование, которого у большинства пользователей нет. Именно эту проблему мы и решим в оставшейся части статьи.

Руководство: запуск AIFS Single 2.0

Веса AIFS опубликованы в открытом доступе на Hugging Face, включая актуальный чекпойнт [12] aifs‑single-2.0.

Для построения прогноза на основе опубликованных весов документация ECMWF рекомендует использовать anemoi-inference. Однако AIFS обучалась с зависимостью от flash-attn, которая компилируется только на GPU NVIDIA архитектуры Ampere или новее: A100, H100, RTX 30xx и более новых. Для тех, у кого такого оборудования нет, установка flash‑attn становится главным препятствием для запуска инференса.

Поэтому мы подготовили это руководство и лёгкую обёртку, которая упрощает запуск aifs‑single-2.0 [12] через anemoi-inference в Hugging Face Jobs или локально, на любом GPU или CPU.

Запуск AIFS Single 2.0 с помощью Hugging Face Jobs

Почему Hugging Face Jobs хорошо подходят для этой модели?

Hugging Face Jobs позволяют запускать задачи инференса в инфраструктуре Hugging Face. Для построения прогноза AIFS этот сервис подходит особенно хорошо по нескольким причинам:

  • Вам не нужны собственные GPU и хранилище. Для запуска инференса с чекпойнтом AIFS Single v2 требуется немало оперативной памяти [13] и вычислительных ресурсов. Jobs предоставляет по запросу конфигурации с разными GPU без какой‑либо локальной настройки.

  • Оплата начисляется поминутно, только пока задание находится в состоянии starting или running. За этап сборки платить не нужно. Если во время выполнения возникает ошибка, задание автоматически приостанавливается и списание средств прекращается.

  • Результаты загружаются в указанный вами датасет Hugging Face — открытый или приватный. После этого их легко скачать, загрузить локально или предоставить другим пользователям.

Подробнее о Hugging Face Jobs и стоимости сервиса можно узнать в документации [14].

В этом руководстве мы используем конфигурацию t4-small: один GPU NVIDIA T4 с 16 ГБ памяти. Это один из самых дешёвых доступных вариантов — около 0,40 доллара в час с поминутной тарификацией.

0. Начало работы с Hugging Face Jobs

Сначала установите Hugging Face CLI. Рекомендуемый способ: curl -LsSf https://hf.co/cli/install.sh | bash

  • Или через Homebrew: brew install hf

  • Или через uv: uv tool install hf

1. Создайте датасет для хранения результатов

В своей организации Hugging Face нужно создать датасет, например aifs-results, в котором будут храниться результаты прогноза. Сделать это можно через интерфейс Hugging Face или с помощью библиотеки huggingface_hub:

from huggingface_hub import create_repo
create_repo("your-hf-username/aifs-results", repo_type="dataset", token=HF_TOKEN)

2. Войдите в учётную запись Hugging Face

Создайте токен доступа по инструкции в документации [15]. Предоставьте ему права на чтение и запись в организации, которой принадлежит aifs-results, а также разрешение на управление заданиями.

3. Запустите прогноз

После запуска задания в Hugging Face оно загрузит актуальные метеорологические данные, загрузит модель AIFS, построит прогноз на 48 часов и сохранит результаты в указанном вами датасете.

Ориентировочное время выполнения — около 10 минут: несколько минут уйдёт на сборку контейнера и загрузку данных, а сам прогноз займёт меньше минуты.

Замените your-hf-username на своё имя пользователя или название организации в Hugging Face и выполните в терминале следующую команду:

hf jobs run 
  --flavor t4-small 
  --secrets HF_TOKEN=$HF_TOKEN 
  pytorch/pytorch:2.6.0-cuda12.4-cudnn9-devel 
  bash -c "python -c "import urllib.request; urllib.request.urlretrieve('https://github.com/huggingface/AIFS-single-2.0-on-all-GPUs/archive/refs/heads/main.tar.gz', 'repo.tar.gz')" && 
           tar xzf repo.tar.gz && mv AIFS-tutorial-main /app && cd /app && 
           pip install -r requirements.txt huggingface_hub && 
           python run_forecast.py --lead-time 48 --no-plots --dataset-repo your-hf-username/aifs-results"

Что именно мы запустили?

Команда отправляет задание, состоящее из трёх основных частей.

Оборудование и окружение

  • hf jobs run отправляет задание в инфраструктуру Hugging Face — примерно как Slurm, только в облаке HF.

  • -flavor t4-small выбирает NVIDIA T4 с 16 ГБ памяти. Такая конфигурация стоит около 0,40 доллара в час с поминутной тарификацией и подходит для AIFS Single 2.0. Для более быстрого выполнения можно выбрать gpu‑l или a100.

  • --secrets HF_TOKEN=$HF_TOKEN безопасно передаёт токен доступа, чтобы результаты можно было загрузить в ваш датасет.

  • pytorch/pytorch:2.6.0-cuda12.4-cudnn9-devel — Docker‑образ с уже установленными PyTorch, CUDA и другими компонентами.

Выполнение задачи

Задание:

  • загружает и распаковывает репозиторий с материалами руководства;

  • устанавливает зависимости;

  • запускает прогноз со следующими основными аргументами:

    • --lead-time 48 — прогноз на 48 часов: 8 шагов по 6 часов;

    • --no-plots — не создавать изображения, чтобы сократить время выполнения и расход хранилища;

    • --dataset-repo your-hf-username/aifs-results — репозиторий датасета, куда будут загружены результаты.

Отслеживание задания и получение результатов

После отправки задания следить за его выполнением можно на странице Jobs в своей учётной записи Hugging Face или с помощью команды hf jobs logs.

Когда задание завершится, прогноз появится в датасете aifs‑results, откуда его можно скачать или предоставить другим пользователям.

Локальный запуск AIFS Single 2.0

Модели также можно запускать локально. Если у вас есть GPU архитектуры Ampere, воспользуйтесь примером из руководства [16] в карточке модели.

Для других GPU или систем только с CPU мы подготовили патч совместимости. С ним AIFS Single 2.0 можно запустить на собственной машине с любым GPU — через CUDA или Apple MPS — либо на CPU. Если описать механику несколькими техническими словами, патч находится в файле aifs/compat.py в репозитории [17]. Он создаёт фиктивное дерево модулей flash_attn и регистрирует его в sys.modules до того, как импорт Anemoi успеет запустить поиск настоящего пакета. Все вызовы механизма внимания [18] при этом перенаправляются в SDPA из PyTorch.

0. Настройте локальное окружение

Версия Python: Python ≥3.11, <3.13

git clone https://github.com/huggingface/AIFS-single-2.0-on-all-GPUs
cd aifs-tutorial
pip install -r requirements.txt

1. Проверьте доступное оборудование

from aifs import get_device, device_label
print(device_label())
# → "CUDA — NVIDIA A100-SXM4-40GB"
# → "Apple MPS"
# → "CPU (GPU не обнаружен, инференс будет медленным)"

2. Загрузите начальные условия

Для работы AIFS нужны два последовательных анализа с интервалом 6 часов: t-6h и t. Мы загружаем их из ECMWF Open Data [19] — бесплатно и без учётной записи.

На этом этапе загружается несколько наборов данных. После первой загрузки каждый из них сохраняется в кеше. В первый раз процесс занимает несколько минут, а последующие загрузки данных из кеша — всего несколько секунд.

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

from aifs import load_ics

fields, date = load_ics(cache_dir="../ic_cache")
# Первый запуск: загрузка занимает около 3–5 минут, данные сохраняются в ic_cache/
# Последующие запуски: менее 1 с при загрузке из локального кеша .npz

print(date)  
print(fields["2t"].shape)

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

3. Запустите прогноз

Время построения прогноза зависит от оборудования. Например, на Apple M5 Pro каждый шаг занимает несколько секунд.

from aifs import run_forecast

states = run_forecast(
    fields,
    date,
    lead_time=24,  
    num_chunks=16, 
)

Каждый вызов run_forecast возвращает список словарей состояний — по одному на каждый 6-часовой шаг прогноза:

for state in states:
    print(state["date"], state["fields"]["2t"].mean() - 273.15, "°C")
# 2025-01-15 06:00:00   14.32 °C
# 2025-01-15 12:00:00   14.38 °C
# 2025-01-15 18:00:00   14.41 °C
# 2025-01-16 00:00:00   14.29 °C

4. Визуализируйте поля прогноза

from aifs import plot_field, plot_field_sequence

# Одна карта
fig = plot_field(states[0], "2t")
fig.savefig("t2m_T+6h.png", dpi=150)

# Последовательность из четырёх панелей
fig = plot_field_sequence(states, "msl", max_steps=4)
fig.savefig("msl_sequence.png", dpi=150)
image

image

Использование CLI

# Прогноз на 24 часа, графики сохраняются в ./outputs/
python run_forecast.py

# Прогноз на 48 часов
python run_forecast.py --lead-time 48 --fields 2t msl z_500

# Показать содержимое кеша начальных условий
python run_forecast.py --list-cache

# Принудительно загрузить данные заново
python run_forecast.py --force-download

Ноутбук

Полная версия руководства также доступна в репозитории [17] в виде запускаемого ноутбука notebooks/tutorial.py [20]. В нём пошагово разобраны определение доступного устройства, загрузка начальных условий, запуск прогноза и визуализация полученных полей.

Интерактивная демонстрация в Hugging Face Space: запускаем прогноз AIFS на актуальных данных

Мы подготовили интерактивную демонстрацию AIFS Single 2.0, которую может запустить любой желающий: AIFS‑single-2.0-space [21].

В Space используется тот же код, что и в руководстве выше, а запускается он на ZeroGPU [22].

ИИ‑прогноз погоды на своём железе: запускаем AIFS 2.0 от ECMWF - 4

Вот как это работает:

  1. Выберите параметры прогноза. Укажите, на сколько часов вперёд нужно построить прогноз — его заблаговременность с шагом 6 часов — и настройте использование памяти. Для этого задаётся количество фрагментов, то есть тот же параметр num_chunks, что и в руководстве по локальному запуску: чем больше фрагментов, тем ниже расход памяти, но дольше выполнение.

  2. Приложение загружает актуальные начальные условия. Оно получает из ECMWF Open Data [19] два последних анализа с интервалом 6 часов: t-6h и t. Поэтому каждый прогноз начинается с реального текущего состояния атмосферы.

  3. Прогноз строится шаг за шагом. Приложение загружает чекпойнт AIFS Single 2.0 и последовательно рассчитывает состояния прогноза с шагом 6 часов.

  4. Визуализируйте результаты. После завершения расчёта можно вывести на карту поля прогноза: температуру на высоте 2 м, давление, приведённое к среднему уровню моря, ветер на высоте 10 м или значительную высоту волн.

Иными словами, AIFS Single 2.0 позволяет прямо в браузере построить прогноз погоды на ближайшие дни, отталкиваясь от сегодняшнего состояния атмосферы.

ИИ‑прогноз погоды на своём железе: запускаем AIFS 2.0 от ECMWF - 5

Когда хочется перейти от экспериментов с готовыми ИИ‑моделями к собственным запускам, быстро упираешься в вопросы архитектуры, ресурсов и выбора подходящего инструмента.

Разобравшись, как устроены современные модели прогнозирования и что требуется ML‑системе для работы в продакшене, проще оценивать такие решения целиком — от инференса на локальном железе до реального внедрения. И в какой‑то момент становится понятно: ограничение часто скрывается не в самой модели, а в том, как мы организуем её запуск.

На бесплатных уроках можно продолжить разбираться в этих задачах на других практических примерах:

  • 24 августа, 20:00. «Современные модели прогнозирования — TimesNet, TimeGPT и новое поколение моделей временных рядов». Записаться [23]

  • 3 сентября, 20:00. «Локальные LLM модели для разработки». Записаться [24]

  • 7 сентября, 20:00. «Почему 90% ML‑проектов не доходят до продакшена? Разбираем архитектуру настоящей ML‑системы». Записаться [25]

Полный список бесплатных уроков августа смотрите в дайджесте. [26]

Автор: kmoseenk

Источник [27]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/34448

URLs in this post:

[1] интеллекта: http://www.braintools.ru/article/7605

[2] доступны: https://huggingface.co/ecmwf/collections

[3] обучение: http://www.braintools.ru/article/5125

[4] Copernicus ERA5: https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5

[5] эволюцию: http://www.braintools.ru/article/7702

[6] Anemoi: https://anemoi.readthedocs.io/

[7] CC BY 4.0: https://creativecommons.org/licenses/by/4.0/

[8] обновили: https://www.ecmwf.int/en/about/media-centre/news/2026/ifs-cycle-50r1-aifsv2-live

[9] поведение: http://www.braintools.ru/article/9372

[10] ошибки: http://www.braintools.ru/article/4192

[11] системы предупреждения: https://www.ecmwf.int/en/newsletter/185/news/ai-takes-cems-flood-forecasting-new-era

[12] актуальный чекпойнт: https://huggingface.co/ecmwf/aifs-single-2.0

[13] памяти: http://www.braintools.ru/article/4140

[14] документации: https://huggingface.co/docs/hub/en/jobs-pricing

[15] документации: https://huggingface.co/docs/hub/en/security-tokens

[16] примером из руководства: https://huggingface.co/ecmwf/aifs-single-2.0/blob/main/run_AIFS_v2.0.ipynb

[17] репозитории: https://github.com/huggingface/AIFS-single-2.0-on-all-GPUs

[18] внимания: http://www.braintools.ru/article/7595

[19] ECMWF Open Data: https://www.ecmwf.int/en/forecasts/datasets/open-data

[20] tutorial.py: http://tutorial.py

[21] AIFS‑single-2.0-space: https://emmascharfmann-ecmwf-experiments.hf.space/

[22] ZeroGPU: https://huggingface.co/docs/hub/en/spaces-zerogpu

[23] Записаться: https://otus.pw/7QUq/

[24] Записаться: https://otus.pw/XldqK/

[25] Записаться: https://otus.pw/G8jS/

[26]  в дайджесте.: https://otus.pw/9Pu4/

[27] Источник: https://habr.com/ru/companies/otus/articles/1069812/?utm_campaign=1069812&utm_source=habrahabr&utm_medium=rss

www.BrainTools.ru

Rambler's Top100