ECMWF AIFS模型开源:如何轻松运行AI天气预报系统

15 阅读

从开源到易用:AIFS模型的运行之道

开源模型的真正价值在于能被社区广泛使用,但如果运行门槛过高,开源就失去了意义。ECMWF(欧洲中期天气预报中心)在开源其AI天气预报模型AIFS时,显然意识到了这一点。他们不仅开放了模型权重,还与我们合作,致力于让任何人都能轻松运行这个模型。本文将详细介绍如何运行AIFS Single 2.0,无论你拥有何种硬件,都能快速上手。

AIFS tcc Global field

AIFS模型简介

文章配图

传统数值天气预报依赖于求解大气物理方程,而AIFS则采用数据驱动的方法,通过机器学习从历史天气数据中学习大气的演变规律。它使用图神经网络(GNN)编码器和解码器,以及滑动窗口变压器处理器,在ERA5再分析数据上训练而成。AIFS的推理过程相比传统物理模型,能耗降低了约1000倍,但依然需要依赖物理数据同化来获取初始状态。

目前,AIFS提供两种配置:AIFS Single(确定性模型)和AIFS ENS(集合模型)。AIFS Single已投入业务运行,其权重以CC BY 4.0许可发布。最新版本v2于2026年5月升级,引入了数据驱动的波浪和积雪预报,并改进了平流层表征。

AIFS 2t & MSL Global field

实际应用场景

开放AIFS权重为研究和应用带来了新的可能:

  • 评估与方法研究:研究人员可以自行生成预报,检查输出变量,与观测或IFS对比,研究模型行为。
  • 应用开发:AIFS输出包括太阳辐射、风速、波浪等变量,适用于可再生能源、海洋等领域。
  • 教学:模型可在普通硬件上运行,适合课堂教学,学生可以亲手生成预报并分析。

教程:运行AIFS Single 2.0

使用Hugging Face Jobs运行

Hugging Face Jobs提供了按需GPU资源,无需本地配置,按分钟计费,非常适合运行AIFS推理。以下是具体步骤:

  1. 安装HF CLI:使用curl -LsSf https://hf.co/cli/install.sh | bashbrew install hf
  2. 创建数据集:在HF上创建一个数据集(如aifs-results)用于存储结果。
  3. 登录并获取令牌:创建具有读写权限的访问令牌。
  4. 提交作业:运行以下命令:
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"

该命令会下载教程仓库、安装依赖、运行48小时预报,并将结果推送到指定数据集。整个过程约10分钟,费用不到1美元。

本地运行

如果你有Ampere级GPU,可以直接按照模型卡片的教程运行。否则,我们提供了兼容性补丁,使模型能在任何GPU(CUDA或Apple MPS)甚至CPU上运行。补丁通过模拟flash_attn模块,将注意力调用路由到PyTorch的SDPA。

安装步骤

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

检查设备

from aifs import get_device, device_label
print(device_label())

下载初始条件

from aifs import load_ics
fields, date = load_ics(cache_dir="../ic_cache")

运行预报

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

绘制结果

from aifs import plot_field, plot_field_sequence
fig = plot_field(states[0], "2t")
fig.savefig("t2m_T+6h.png", dpi=150)

在线演示

我们还构建了一个在线演示空间,你可以在浏览器中直接运行AIFS预报。该空间使用ZeroGPU,自动获取最新初始条件,并允许你调整预报时长和内存设置,实时生成并可视化预报结果。访问AIFS-single-2.0-space即可体验。

image

结语

通过上述方法,任何人都能轻松运行AIFS模型,无论是研究、开发还是教学。我们相信,降低运行门槛是开源模型发挥价值的关键。希望这篇教程能帮助你快速上手,探索AI天气预报的无限可能。