观潮 · 模式预报与气象 AI 观察
WeatherNext Cyclones 跑过 2025 大西洋飓风季:FNV3 的 16 个气旋诊断量直接输出,不是事后追迹
大多数 AI 天气模式输出的是标准气象场,飓风路径和强度是后处理追出来的。WeatherNext Cyclones 换了个做法:模型直接输出 16 个气旋诊断量,包括是否存在气旋、风速、34/50/64 节风圈的各象限半径、最大风速半径、中心气压。
这个模型在 2025 年大西洋飓风季实际业务运行过,公开代号 FNV3(美国国家飓风中心的后处理版本称为 GDMI)。
模型权重已在 Hugging Face 上开放,可以直接跑。
---
缺的是哪一块
传统的 AI 天气模式给的是一个格点场。要得到台风路径,需要额外的追踪算法把格点场里的扰动识别出来、连成路径、再估强度。这一步是额外的、可以出错的,而且误差会叠加到模式本身的误差上。
WeatherNext Cyclones 的做法是把这些量放进模型的输出层——气旋存在概率场、各象限风圈半径、最大风速半径、中心气压,都由模型一次前向直接给出。
输入侧也因此收紧:模型只吃两帧相隔 6 小时的分析场,13 个气压层,加静态场与日历强迫,时步 6 小时。
---
架构:编码—处理—解码的图网络
项 · 设置
网格 · 0.25°(721×1440)
网格节点数 · 40,962(正二十面体细分 6 次)
参数量 · **1.838 亿**
隐藏层 / 层数 / 注意力头 · 768 / 24 / 6,前馈 3072
注意力范围 · 网格上 **32 跳**邻域
网格↔网格边 · 约 160 万 + 约 310 万
时间步 · 6 小时
处理流程是: 经纬网格先编码 → 用图网络投影到正二十面体网格(ball-query 邻接)→ 24 层 transformer,注意力限制在网格上 32 跳邻域内 → 投影回网格(三角形内邻接)→ 解码。
一个设计选择值得注意:位置信息完全不学习。 位置完全由网格几何和注意力掩码承载,两者都在加载时从配置确定性地重建并缓存到磁盘。这意味着网格一旦建好,位置编码不需要训练,也不占参数。
---
生成机制:一个 32 维噪声向量调制所有归一化层
这是这套模型和主流扩散式 AI 天气模式最不一样的地方。
它叫函数式生成网络(Functional Generative Network,FGN)。机制是:
不是往输入里注入噪声场,也不是跑扩散采样器。而是每个集合成员抽一个 32 维噪声向量,用它去调制每一个归一化层的缩放因子和偏移量。
一次抽样给出一个自洽的预报,集合就是若干次抽样——在这里它只是 batch 维。
这个设计的实际好处是集合成员完全独立,而且按成员序号播种(而不是从同一条随机流里连续抽),意味着前 N 个成员与实际跑了多少个无关,永远可复现。模型卡说这个性质对应原始实现里 jax.random.fold_in 的做法。
两套独立的集合,业务产品把两者结合:
集合类型 · 机制 · 说明
**噪声集合** · 同一个权重,32 维噪声抽多次 · 成员完全独立,参考实现一台设备跑一个成员
**多模型集合** · 四个独立训练的网络 · 仓库里是四次独立训练,不是单个 checkpoint 的四个副本
完整集合 = 模型数 × 噪声抽样数。
---
版本设计:可以评在没有见过的年份
这是模型卡里对使用者最实用的一处设计。
每个 revision 训练到不同的数据截止点,所以可以在模型没见过的年份上做评估。
revision · 训练截止 · 对应
`main` · 2024 · 2025 季业务运行的那四个模型
`<2024` · 2023 · 复现论文 2024 年结果
`<2023` · 2022 · 复现论文 2023 年结果
0.25° 的两个仓库每个 revision 都含四个独立训练成员(model1–model4)。 Mini 版则每个截止点只有一个网络,所以只有噪声集合。
---
硬件:这一条决定了你能不能跑
0.25° 下单个集合成员大约需要 50 GB 内存,所以通常只能循环跑、一次装一个成员。完整集合的峰值内存可以压到大约一个模型的量级,办法是加载一个成员、跑完、删掉、再加载下一个。
模型卡给的实测:一次前向在 CPU 上花了 96 秒,现代 GPU 会快得多。网格与图的构建第一次要几分钟,之后会缓存到 HF_HOME。
1° 的 Mini 版则宽松得多:一次前向在小 GPU 上轻松装下(原始发布说明一张 P100 就够),或者直接 CPU 跑;网格构建第一次几秒。
要跑完整业务集合的话,这个 50 GB 是硬门槛。 四个模型 × 若干次噪声抽样,循环是唯一实际可行的路径。
---
一个必须知道的坑:Transformers 还没有官方支持
模型卡用提示框标注:WeatherNext 2 的支持还没有进入任何已发布的 Transformers 版本。 在上游 PR(huggingface/transformers#47874)合并之前,必须从分支安装:
```
pip install "git+https://github.com/kashif/transformers.git@add-weathernext2" torch scipy
```
另外,WeatherNext Cyclones 那个仓库做飓风路径还需要原始仓库里的追踪器,这个移植版里没有——模型只给格点上的诊断量,路径要自己接。
---
精度:那些数字只是冒烟测试
模型卡给了一个单步对比表(ECMWF HRES 分析起报,2024-10-07 00:00 UTC,带纬度加权):
场 · WeatherNext Cyclones · 持续性预报
2 米气温 · 0.796 K · 2.622 K
海平面气压 · 47.3 Pa · 260 Pa
10 米 u 风 · 0.900 m/s · 2.303 m/s
500 hPa 气温 · 0.324 K · 1.198 K
500 hPa 位势 · 25.4 m²/s² · 224.5 m²/s²
850 hPa 比湿 · 7.4e-4 · 1.43e-3
但模型卡自己说得很直接:这是一个案例,作用是测试移植是否可用,不是基准测试。
它只有 6 小时一步、单个案例,而且对照的是持续性预报。 持续性预报(把现在的场当预报)是极弱的基线,这组数字不能用来判断这个模型的业务能力。
模型卡指向真正的技巧来源:**飓风路径与强度的评分卡在 Nature 那篇论文里,一般预报技巧看 WeatherBench 2。**
---
作者承认的限制
这是研究模型,不是业务预警系统。 三份模型卡都把这句写在最显眼的位置:它不替代各国气象机构发布的官方警报、预警或通告;它不是与任何政府气象机构合作产出的,也没有得到任何政府气象机构的认可。
设计上要求用业务 HRES 分析起报,而不是再分析。 这是一条容易被忽略但很关键的限定:模型不能用 ERA5 之类的再分析初始化,它要接业务分析场。
WeatherNext 2(完整版)的权重转换只做了结构性验证。 模型卡说:这个变体把 100 米风作为输入,而公开的示例数据集里没有这个字段,所以端到端验证是用同架构、同分辨率、但不含 100 米风的 WeatherNext Cyclones 那个 checkpoint 做的;权重转换只做了结构层面的核对(488 个参数数组全部映射、1.838 亿参数、无缺失或意外键)。
评估数据用的是 2024-10-07 这一个起报时刻。 上表所有数字都来自这一个案例。
"跑了 2025 季"这件事本身也有边界。 模型卡说这是"ran live"的模型,但它同时说这不是业务预警系统、不替代官方警报。这两句话需要一起读:模型的预报产品在业务季里跑过并被后处理成 GDMI,但 FNV3 本身不是对外发布的官方预警产品。
许可证有个需要注意的细节:权重是 CC-BY-4.0,原始代码是 Apache-2.0。 两者不同,商业使用前要确认义务。
移植由社区完成,不是 Google 官方发布。 这三份模型卡由 kashif 账号发布,模型卡里明确写了移植范围(例如"这是一个案例,作用是测试移植是否可用")。原始权威版本在 google-deepmind/weathernext 仓库。
---
一句话判断
这套模型真正的业务价值在于它把气旋诊断量做进了模型输出,而不是事后追迹——16 个诊断量直接给出,且这个模型在 2025 大西洋飓风季实际业务运行过(FNV3,NHC 后处理版 GDMI),权重现已开放。 但上手前要认清三件事:50 GB 内存是硬门槛(只能循环跑成员)、Transformers 官方还没支持(必须从分支装)、以及模型卡自己声明它不是业务预警系统、不替代官方警报——那些冒烟测试数字(对比的还是持续性预报)不能当技巧看,真正的评分卡在 Nature 论文和 WeatherBench 2 里。