1. 项目概述当图神经网络遇见全球天气预报如果你关注过近两年的AI气象预测进展GraphCast、Pangu-Weather这些名字一定不陌生。它们用深度学习模型在几天内就完成了传统数值天气预报NWP需要超级计算机运行数小时才能得出的结果并且精度还常常更胜一筹。这背后是一场静悄悄的革命数据驱动模型正在重塑我们对大气物理的建模方式。今天要拆解的FastNet就是这场革命中一个非常典型的工程实践样本。FastNet是由英国气象局Met Office和艾伦·图灵研究所Alan Turing Institute联合开发的一个基于图神经网络GNN的确定性全球中期天气预报模型。它的核心目标很明确用纯数据驱动的方式替代或辅助部分传统物理模型实现从当前大气状态出发对未来10天天气的快速、精准预测。我仔细研究了它的技术报告和架构发现它并非简单复现已有的GNN模型而是在工程实现、训练策略和架构细节上做了大量权衡与优化最终在1.5°分辨率的评估网格上其预测技能超越了英国气象局自家的全球模型GM。简单来说FastNet解决的核心问题是如何用一个统一的、与空间分辨率无关的神经网络架构高效且准确地学习并模拟全球大气从数小时到数天尺度上的复杂演化规律。它面对的挑战包括地球的球面几何、大气变量间的高度非线性相互作用、以及计算资源的约束。它的答案是一个精心设计的“编码-处理-解码”GNN流水线配合一个能同时捕捉局部细节和远程关联的多尺度网格Multiscale Mesh。对于从事机器学习、气象、气候科学或者任何需要处理复杂时空数据的朋友来说FastNet的架构思路和工程细节都极具参考价值。它展示了如何将前沿的GNN理论落地到一个对精度和效率都有严苛要求的科学计算任务中。接下来我将带你深入这个模型的内部从设计思路、核心架构、训练技巧到评估对比一步步拆解它是如何工作的以及我们在复现或借鉴时需要注意哪些“坑”。2. 核心架构设计编码-处理-解码与多尺度网格FastNet的整体架构遵循一个清晰的“编码-处理-解码”Encode-Process-Decode范式。这个范式并非其独创在GraphCast等模型中已有应用但FastNet在具体实现上做了关键性的工程选择。理解这个范式是理解整个模型如何工作的基础。2.1 整体工作流解析想象一下传统NWP模型的工作方式它在固定的经纬度网格我们称之为Grid上通过求解复杂的偏微分方程组如纳维-斯托克斯方程来推演大气状态。这个过程计算量巨大。FastNet的思路则完全不同编码Encode将当前时刻t0高维的、分布在经纬度网格上的大气状态如温度、气压、风速等85个变量通过一个图神经网络映射到一个低分辨率的、结构化的潜在空间。这个潜在空间的载体是一个特殊的图形结构称为Mesh网格。处理Process在Mesh这个低维、规整的空间里用另一个GNN处理器来模拟大气动力学。这个GNN进行多轮消息传递更新Mesh上每个节点的状态相当于将大气状态向前推进了6个小时一个时间步。这是整个模型计算的核心和精髓所在所有复杂的物理演化都在这个简化的空间里被学习到的神经网络参数所表征。解码Decode将处理后的Mesh状态再通过一个图神经网络映射回原始的高分辨率经纬度网格Grid得到t6小时的大气状态预测。自回归滚动Autoregressive Rollout要预测更长时间如10天就把上一步解码得到的预测结果作为新的输入再次喂入编码器循环执行上述步骤。为什么选择这个范式关键在于“降维打击”。直接在原始的高分辨率网格例如0.25°分辨率下全球有超过100万个格点上进行神经网络运算内存和计算成本是灾难性的。通过编码器将信息压缩到Mesh例如约4万个节点在低维空间进行昂贵的GNN消息传递计算再解码回去极大地降低了计算复杂度。同时Mesh的结构后文详述天生适合球面避免了经纬度网格在极地地区格点密集、计算浪费的问题。2.2 多尺度网格Multiscale Mesh的构造与价值Mesh是FastNet架构中的核心创新点之一它直接决定了模型捕捉空间模式的能力。FastNet采用的是一种多尺度二十面体网格。2.2.1 从二十面体开始构建Mesh的起点是一个正二十面体icosahedron它有12个顶点。将这个二十面体的顶点投影到球面上就得到了一个覆盖全球的、由三角形构成的粗糙网格。然后对这个粗糙网格进行递归细分将每个三角形的每条边中点连接起来将一个三角形细分为四个更小的三角形。这个过程每进行一次网格节点的数量大约增加四倍节点间的距离分辨率减半。FastNet根据训练数据的分辨率选择了不同级别的细分。对于在1° O96网格数据上训练的模型Mesh进行了5级细分最终得到约1万个节点分辨率约2.52°。对于在0.25° N320原生数据上训练的模型Mesh进行了6级细分得到约4.1万个节点分辨率约1.26°。这里有一个关键细节Mesh的分辨率通常比输入数据的网格分辨率要粗。这是因为Mesh是一个用于高效计算的“工作空间”而不是用于存储最终高精度预测的“展示空间”。2.2.2 “多尺度”如何实现如果只是用一个单一分辨率的二十面体网格那么节点之间的连接边长度是相对均匀的。这有利于捕捉局部相互作用但对于天气预报中至关重要的、跨越数千公里的大尺度环流系统如急流、风暴轴来说信息需要经过很多次消息传递才能从一点传到另一点效率低下且可能造成信息稀释。FastNet的解决方案很巧妙它不是只使用最细分辨率的Mesh而是将不同细分级别下的Mesh“叠加”起来形成一个“多尺度Mesh”。具体来说最终的处理器GNN所使用的图结构其节点是最细分辨率Mesh的节点但其边集合却包含了从最粗级别原始二十面体到最细级别所有Mesh中的边。这样做的效果是在同一个图结构中既包含了最细网格中连接紧密相邻节点的“短边”用于捕捉锋面、对流等小尺度特征也包含了来自较粗网格的连接距离很远节点的“长边”用于快速传递大尺度波动信息。这相当于在神经网络中内置了一个“感受野”从局部到全局可变的卷积核让模型能够同时高效地处理不同空间尺度的天气过程。2.2.3 与经纬度网格的对比优势均匀性二十面体网格在球面上的节点分布比经纬度网格均匀得多避免了极地地区格点过度密集造成的计算浪费。无奇点经纬度网格在两极存在奇点处理不便。二十面体网格则没有这个问题。灵活的多尺度性通过合并多级边天然实现了高效的长程信息传递这是规则网格难以直接实现的。2.3 编码器与解码器的连接策略编码器和解码器负责在规整的经纬度Grid和不规则的Mesh之间架起桥梁。它们本质上都是二部图Bipartite Graph编码器从Grid节点指Mesh节点解码器从Mesh节点指向Grid节点。2.3.1 编码器如何将Grid信息“注入”Mesh报告提到了两种连接策略的对比半径法Radius-based以每个Mesh节点为圆心设定一个固定的地理距离如500公里将所有落在这个距离内的Grid节点与之相连。GraphCast和AIFS早期版本采用此法。K近邻法K-Nearest-Neighbour, KNN为每个Grid节点寻找其最近的k个Mesh节点FastNet中k2并建立连接。FastNet的最终版在O961°模型上选择了KNN而在N3200.25°模型上半径法在RMSE指标上略有优势约2%的相对提升。为什么会有这种差异我推测这与数据密度有关。在较粗的O96网格上Grid点相对稀疏KNN连接可能更稳定能避免某些Mesh节点因周围没有Grid点而成为“信息孤岛”。在更细的N320网格上Grid点非常密集半径法能确保每个Mesh节点接收到来自一个固定物理区域内的所有信息可能对捕捉局部梯度更有利。一个重要的工程取舍报告指出这两种方法对全局RMSE的影响很小但可能会在局部区域产生不同的预测 artefacts伪影。这意味着在工程实现中连接策略的选择可能不是一个“对与错”的问题而是一个需要根据具体数据、模型规模和甚至下游应用对局部精度敏感度来权衡的“超参数”。2.3.2 解码器如何从Mesh“恢复”Grid细节解码器采用相对固定的KNN策略每个Grid节点连接到其最近的3个Mesh节点。然后将这3个Mesh节点经过一个交互网络Interaction Network处理后的输出向量拼接起来最后通过一个多层感知机MLP映射回85个气象变量的预测值。这里有一个关键设计FastNet采用残差学习Residual Learning。解码器的输出不是直接预测t6时刻的完整大气状态而是预测一个“增量”或“残差”。这个残差会通过一个跳跃连接Skip Connection加到编码器的输入t时刻的状态上从而得到t6时刻的预测。这种做法已被证明在6小时步长下比直接预测全场值效果更好因为它让模型专注于学习“变化量”降低了学习难度。3. 模型训练策略预训练与自回归微调的艺术训练一个像FastNet这样庞大的时空预测模型绝非一蹴而就。其训练过程分为两个核心阶段预训练Pre-training和自回归微调Autoregressive Fine-tuning。这两个阶段的目标不同策略也不同共同决定了模型的最终性能。3.1 数据准备与预处理数据源FastNet完全基于ECMWF的ERA5再分析数据集进行训练和评估。ERA5是通过数据同化技术将历史观测与物理模型结合生成的、全球一致的高质量大气状态数据集是当前数据驱动气象模型的“标准教材”。使用1980-2021年的数据训练预留2022年作为模型效果的“期末考试”。变量选择模型输入输出共计85个变量分为三类强迫变量Forcing不随时间在预测时段内变化或可预先计算的变量如海陆掩膜、地形、太阳辐射、时间、经纬度正弦/余弦编码。这些为模型提供了静态的或周期性的背景信息。层面变量Level Variables在13个标准气压层从1000hPa到50hPa上定义的大气变量包括位势高度、纬向/经向风、比湿、温度。这些是描述三维大气状态的核心。地面变量Surface Variables如地表气压、海平面气压、2米温度、10米风等。预处理对每个气压层包括地面变量的变量分别进行标准化减去时间、空间上的均值除以标准差。地形被缩放到[0,1]区间。其他如海陆掩膜、时间周期信息等已归一化的变量则保持不变。这里的一个细节是标准化是“分层”进行的即500hPa的温度和850hPa的温度有自己的均值和标准差。这是因为大气变量在不同高度上的量级和变率差异巨大。3.2 预训练打好单步预测的基础预训练阶段的目标非常单纯让模型学会尽可能准确地预测下一个6小时的大气状态。此时的损失函数Loss Function是未来6小时预测值与ERA5真值之间所有输出变量的加权均方误差MSE。损失函数设计的门道LMSE (1/|Batch|) Σ [ (1/T_train) Σ Σ (s_j * w_j * (预测值 - 真值)^2 ) ]这个公式包含了几个重要的加权项w_j(压力/表面权重)对于气压层上的变量其权重与该气压层本身的值成正比P_j / ΣP_j。这相当于给高层大气气压小的预测误差更小的权重给低层大气气压大的误差更大的权重。这是因为低层大气质量更大、能量更集中对天气影响更关键。对于地面变量2米温度权重为1.0其他为0.1突出了近地面温度预测的重要性。s_j(时间差分逆方差权重)这是每个变量在时间维度上变化剧烈程度的倒数。变化越剧烈的变量如风其s_j值越小在损失中的权重相对降低防止模型过度关注这些难预测的、波动大的变量而忽略了其他。没有面积加权由于使用的缩减高斯网格Reduced Gaussian Grid本身已经通过减少高纬度格点来近似实现面积均匀因此在计算全球平均MSE时没有再引入纬度余弦权重。训练配置优化器AdamW这是一种带权重衰减的Adam变体能更好地防止过拟合。学习率余弦退火调度。O96模型峰值学习率为1e-3N320模型为2.5e-4。N320模型学习率更低可能是因为数据更复杂、模型需要更稳定的训练。并行策略O96模型数据并行Data Parallel across 8张A100 GPU每张卡本地批次大小batch size为2有效批次大小为16。训练耗时约2.25天。N320模型由于模型更大、数据分辨率更高采用全分片数据并行Fully Sharded Data Parallel, FSDPacross 24张A100 GPU每卡批次大小为1有效批次大小为24。训练耗时约5.75天。FSDP不仅分割数据还分割模型参数到不同GPU是训练超大模型的必备技术但会引入额外的通信开销。3.3 自回归微调应对误差累积的“必修课”预训练好的模型单步6小时预测可能很准但如果让它连续自回归预测10天40步误差会迅速累积放大导致预测结果崩溃。这是因为在训练时模型看到的输入总是完美的ERA5数据而在自回归预测时它只能看到自己上一步的、带有误差的输出。这种“曝光偏差”Exposure Bias是序列预测模型的通病。FastNet的解决方案是课程学习Curriculum Learning式的自回归微调保持预训练好的模型权重。将损失函数中的预测步数T_train从16小时逐步增加到2、3、4……直至123天。这意味着损失函数现在计算的是连续多个6小时步长预测的累积误差。使用一个非常小的学习率O96: 1e-7, N320: 1e-6进行微调每个T_train设置通常只训练一个epoch。微调的本质是什么可以理解为在教模型“犯错后如何调整”。通过让模型在训练阶段就接触并使用自己带有噪声的中间预测结果来计算损失它被迫学习如何在一个不完美的、滚动的状态下保持预测的稳定性从而抑制误差在长时序上的指数增长。微调中的“模糊化”效应与权衡 报告中的图3和图4揭示了一个关键现象随着微调步数T_train增加模型在长预报时效如72小时以上的RMSE确实改善了但短时效如6小时的RMSE却变差了。同时从功率谱误差看预测场的空间特征变得更“模糊”了。为什么会这样这涉及到时空预测中的一个经典难题——“双重惩罚”Double Penalty。假设一个风暴系统真实位置在A点模型如果把它预测在很近的B点在像MSE这样的逐点误差指标中它会被惩罚两次一次因为在A点没预测到风暴漏报一次因为在B点错误地预测了风暴空报。当模型在微调中意识到过于“锐利”地预测特征容易因微小位置偏差而遭受重罚时它就会学会输出更平滑、更“模糊”的场来降低整体的MSE。这种模糊化对长时效预测是有益的因为它提高了稳定性但对短时效预测它牺牲了不必要的精度。FastNet的实验发现对于O96模型微调到7个自回归步长即T_train7对应42小时时在长时效RMSE改善和短时效精度损失之间达到了一个较好的平衡。继续增加微调步数长时效RMSE不再改善甚至恶化说明模糊化过度了。这给了我们一个非常重要的实操经验自回归微调的步数是一个需要精心调整的超参数并非越长越好。需要通过验证集在短、中、长不同预报时效的综合表现上寻找最优解。4. 评估与对比数据驱动模型如何挑战传统NWP模型训练好了最关键的问题是它到底行不行FastNet的评估体系非常严谨直接对标业务化运行的英国气象局全球模型GM这体现了其迈向业务应用的雄心。4.1 评估框架与指标评估数据使用完全未参与训练的2022年ERA5数据作为“地面真值”。对比基准英国气象局全球模型GM在同期2022年的业务预报结果。GM是一个基于物理的、世界领先的传统数值天气预报系统。评估网格为了公平比较将FastNet O96模型的输出原生约1°和GM的输出都保守地重网格化到1.5°的经纬度网格上。“保守重网格化”是一种能保持物理量如质量、能量积分守恒的插值方法在气候和气象评估中常用避免了插值引入的虚假误差。评估指标均方根误差RMSE最直观的误差度量计算预测场与真值场之间在所有格点上的差异。报告中对每个格点进行了面积加权以确保高纬度地区不会因为格点密集而在全球平均中占比过大。异常相关系数ACC这是气象预报中衡量“模式”预测技能的关键指标。它计算的是预测的异常场减去气候平均与观测的异常场之间的空间相关系数。ACC值越高说明模型对大气环流形势如高压脊、低压槽的把握越准即使具体的数值可能有偏差。4.2 性能表现分析从报告展示的结果来看FastNet O96模型在多项关键变量和预报时效上其RMSE和ACC指标均超越了英国气象局的GM。这是一个里程碑式的成果它证明了在一个相对较粗的网格上1.5°评估网格训练的数据驱动模型可以具备与业务物理模型竞争甚至更优的确定性预报技能。具体优势可能体现在计算效率这是数据驱动模型最大的优势。一旦训练完成FastNet进行一次10天预报所需的时间推断时间极短可能是分钟甚至秒级而GM可能需要在高性能计算集群上运行数小时。对某些变量的捕捉数据驱动模型直接从数据中学习可能更擅长捕捉那些在物理参数化方案中处理得不够完善的过程如某些云物理、边界层过程从而在相关变量如湿度、云量上表现更好。一致性基于ERA5再分析数据训练FastNet的预报与ERA5这个“黄金标准”在统计特性上可能具有更好的一致性减少了不同物理模型间的系统偏差。当然FastNet也有其局限性和挑战物理一致性纯数据驱动模型缺乏硬性的物理约束如守恒定律可能出现能量不守恒、质量不守恒等非物理现象尽管在统计上误差很小。这对于某些应用如长期气候模拟可能是致命的。可解释性GNN是一个黑盒模型我们很难理解它做出某个预测的具体物理原因这不利于预报员进行订正和判断。对训练数据的依赖模型性能上限受限于ERA5数据的质量和覆盖时段。对于ERA5中记录较少或质量不高的极端天气事件模型的预测能力可能不足。外推能力在气候变化的背景下未来的天气状态可能超出训练数据所覆盖的历史范围模型的外推能力存疑。4.3 与同类模型的横向对比FastNet在设计中参考并比较了同期其他顶尖的数据驱动气象模型GraphCast架构最为相似同样采用GNN和多尺度Mesh。FastNet在编码器等细节上做了不同选择如直接MLP映射 vs GraphCast的先嵌入。Pangu-Weather采用纯视觉TransformerViT处理3D经度、纬度、气压层数据张量。它的优势是避免了复杂的图结构构建但模型与固定的经纬度网格分辨率绑定灵活性不如与分辨率无关的GNN架构。FourCastNet基于卷积和傅里叶变换擅长捕捉全局光谱耦合。AIFSECMWF自家研发的模型从GNN演进到了直接在网格上使用图Transformer。FastNet的报告指出其预测技能与这些在0.25° ERA5数据上训练的模型是可比拟的而它的训练成本在1°数据上却低得多。这凸显了其在性能与效率之间取得的良好平衡。5. 实操要点、常见问题与未来展望基于对FastNet架构和训练的深入分析结合我在构建类似时空预测模型中的经验我总结出以下实操要点和可能遇到的“坑”。5.1 复现与借鉴的关键步骤数据管道构建这是最基础也是最繁琐的一步。你需要处理ERA5的NetCDF数据提取所需的变量和气压层并重网格化到目标网格如O96缩减高斯网格。务必注意时间对齐、缺失值处理和正确的标准化流程分层、分变量计算均值和标准差。图结构构建实现多尺度二十面体网格的生成算法可使用icosphere等库并构建编码器/解码器的KNN或半径连接图。这里的内存和计算优化是关键。图的邻接矩阵要以稀疏格式存储消息传递的实现要高度向量化。GNN模型实现编码器、处理器、解码器都可以用主流的图深度学习库如PyTorch Geometric, DGL实现。处理器的“多轮消息传递”通常实现为多个相同的GNN层堆叠。注意残差连接的实现。分布式训练对于N320分辨率或更大的模型单卡训练几乎不可能。必须掌握数据并行DP、分布式数据并行DDP和全分片数据并行FSDP的技术。FSDP对于超大模型是必须的但会显著增加代码复杂性和调试难度。课程学习式微调需要编写一个灵活的训练循环能够动态改变损失函数中自回归步数T_train。保存好每个微调阶段的检查点方便回滚和比较。5.2 可能遇到的“坑”与解决方案内存爆炸图神经网络尤其是包含多尺度长边的大图非常消耗内存。解决方案包括使用混合精度训练FP16/BF16优化图的消息传递实现避免中间变量过度缓存采用梯度累积来模拟更大的批次大小。训练不稳定损失出现NaN或剧烈震荡。检查数据标准化是否有除零错误检查学习率是否过高特别是微调阶段的学习率必须非常小检查模型初始化考虑使用梯度裁剪Gradient Clipping。长时序预测发散即使经过微调在自回归推演很远后预测可能变得不物理如温度超出合理范围。可以尝试在损失函数中加入弱物理约束如对变量范围进行惩罚在推理时采用“计划采样”Scheduled Sampling或“教授强制”Professor Forcing的变体以一定概率将历史预测值替换为真实值来稳定训练探索集成方法用多个模型的平均来降低方差。局部伪影Artefacts预测图中可能出现不真实的斑点或条纹。这可能是编码器/解码器图连接方式导致的或者是模型在数据稀疏区域如海洋、高原过拟合的表现。尝试不同的图连接策略KNN vs 半径或在这些区域的数据增强/正则化上做文章。评估指标与业务需求脱节RMSE和ACC是好的研究指标但业务预报更关心降水、台风路径、极端温度等具体要素。在向业务化推进时必须增加针对特定天气过程和要素的专项评估。5.3 未来发展方向与个人思考FastNet作为1.0版本已经展示了巨大的潜力。我认为其后续发展可能围绕以下几个方向从确定性到概率性预报天气本质上是混沌的单一确定性预报无法表征不确定性。未来的方向必然是发展集合预报系统。可以通过在模型输入或中间层注入随机噪声或训练多个略有差异的模型来生成概率预报产品提供“可能下雨”的概率而不是“一定下雨”的断言。更高分辨率与更精细过程目前FastNet在1°-0.25°尺度运行。要预报对流尺度天气如雷暴、龙卷风需要公里级甚至更细的分辨率。这对模型架构、计算资源和训练数据都提出了巨大挑战。可能需要发展多尺度嵌套或自适应网格技术。与物理模型的融合混合建模纯粹的数据驱动和纯粹的物理驱动各有优劣。一个很有前景的方向是物理信息机器学习或混合模型。例如用神经网络来替代或优化物理模型中不确定性最大的参数化方案如云微物理、湍流或者用物理方程的残差作为损失函数的一部分来约束神经网络的学习。输入源的扩展目前主要依赖ERA5再分析数据。未来可以融入更多实时观测数据卫星、雷达、地面站、海温数据、甚至气候模式输出让模型拥有更丰富的“上下文”信息。面向决策的预报最终的预报产品需要为各行各业航空、农业、能源的决策服务。模型开发后期需要紧密与领域专家合作开发直接输出行业所需指标如风力发电功率预测、航班延误概率的衍生产品。从我个人的工程实践角度看FastNet这类模型最大的启示在于它成功地将一个极其复杂的科学计算问题转化为了一个可扩展、可优化的深度学习工程问题。它告诉我们对于拥有高质量历史数据的复杂系统从数据中直接学习其演化规律是一条可行且高效的路径。当然这条路上布满了工程挑战分布式训练、内存优化、数值稳定性、评估体系构建等等。每一个环节都需要深厚的工程功底和对领域问题的深刻理解。FastNet的报告没有回避这些细节比如对KNN与半径连接、微调步数权衡的讨论正是这些实实在在的工程抉择构成了一个成功模型背后的支柱。对于想要进入这个领域的朋友我的建议是先从复现一个简化版的模型开始比如在某个区域、更少变量、更粗分辨率下把整个数据管道、训练流程跑通深刻理解每一个组件的作用和代价然后再逐步向更大的规模和更复杂的问题迈进。