基于昇腾适配数据驱动的全球天气预报模型Fuxi

简介: Fuxi是由复旦大学的研究人员开发的一个基于数据驱动的全球天气预报模型,主要由Cube Embedding、U-Transformer和全连接层构成。Fuxi摒弃了传统复杂的微分方程,转而通过多阶段机器学习架构,可提供15天的全球预报。时间分辨率为6小时,空间分辨率为0.25°。

摘要

Fuxi是由复旦大学的研究人员开发的一个基于数据驱动的全球天气预报模型,主要由Cube Embedding、U-Transformer和全连接层构成。Fuxi摒弃了传统复杂的微分方程,转而通过多阶段机器学习架构,可提供15天的全球预报。时间分辨率为6小时,空间分辨率为0.25°。

Fuxi介绍

Fuxi模型是由复旦大学的研究人员开发的一个基于数据驱动的全球天气预报模型,它摒弃了传统复杂的微分方程,转而通过多阶段机器学习架构,可提供15天的全球预报。时间分辨率为6小时,空间分辨率为0.25°,相当于赤道附近约25公里 x 25公里的范围,使用ECMWF39年的ERA5再分析数据集训练,在15天预报尺度上实现了效率与精度的双重突破。

网络架构

基本的伏羲模型体系结构由三个主要组件组成,如图所示:Cube Embedding、U-Transformer和全连接层。输入数据结合了上层空气和地表变量,并创建了一个维度为69×720×1440的数据立方体,以一个时间步作为一个step。高维输入数据通过联合时空Cube Embedding进行维度缩减,转换为C×180×360。Cube Embedding的主要目的是减少输入数据的时空维度,减少冗余信息。随后,U-Transformer处理嵌入数据,并使用简单的全连接层进行预测,输出首先被重塑为69×720×1440。

图片

Cube Embedding

为了减少输入数据的空间和时间维度,并加快训练过程,应用了Cube Embedding方法。具体地,空时立方体嵌入采用了一个三维(3D)卷积层,卷积核和步幅分别为2×4×4,输出通道数为C。在空时立方体嵌入之后,采用了层归一化(LayerNorm)来提高训练的稳定性。最终得到的数据立方体的维度是C×180×360。

U-Transformer

U-Transformer还包括U-Net模型的下采样和上采样块。下采样块在图中称为Down Block,将数据维度减少为C×90×180,从而最小化自注意力计算的计算和内存需求。Down Block由一个步长为2的3×3 2D卷积层和一个残差块组成,该残差块有两个3×3卷积层,后面跟随一个组归一化(GN)层和一个Sigmoid加权激活函数(SiLU)。SiLU加权激活函数通过将Sigmoid函数与其输入相乘来计算。 上采样块在图中称为Up Block,它与Down Block使用相同的残差块,同时还包括一个2D反卷积,内核为2,步长为2。Up Block将数据大小缩放回C×180×360。此外,在馈送到Up Block之前,还包括一个跳跃连接,将Down Block的输出与Transformer Block的输出连接起来。 中间结构是由18个重复的Swin Transformer块构建而成,通过使用残差后归一化代替前归一化,缩放余弦注意力代替原始点积自注意力,Swin Transformer解决了诸如训练不稳定等训练和应用大规模的Swin Transformer模型会出现几个问题。

核心设计

  • 全局粗预测:首阶段模型基于历史气象数据(气压、温度、风速),生成未来15天的低分辨率趋势框架。
  • 局部细修正:第二阶段针对台风、暴雨等高影响天气,在关键区域进行空间精细化调整,分辨率提升至0.25°网格。
  • 动态反馈:最终阶段引入实时观测数据流,持续校准预测轨迹,抑制长期预报中的误差扩散。
    这种级联架构使得Fuxi在保持AI模型高效推理的同时(单次预测仅需数分钟),关键指标如500 hPa位势高度异常相关系数(ACC)达到0.82,性能显著优于世界上最佳的基因物理的天气预报系统——欧洲中期天气预报中心(ECMWF)的高分辨率预报系统。其训练过程中嵌入了质量守恒、能量平衡等物理规则约束,确保预测结果既符合数据规律,又不违背气象学基本原理。作为首个支持15天全球高分辨率预报的开源AI模型,Fuxi不仅为气象业务提供了快速响应的新工具,其模块化设计也为极端天气预警、航空路径优化等场景提供了可定制化基础。

实验

5.1 下载源码
https://github.com/lizhuoq/WeatherLearn
5.2 安装依赖库
python = 3.11
torch = 2.1.0
torch_npu = 2.1.0
timm = 0.9.10
numpy = 1.23.5
5.3 在WeatherLearn目录下 新建fuxi.py内容为

from weatherlearn.models import Fuxi
import torch
import torch_npu
if __name__ == '__main__':
    device = torch.device('npu' if torch_npu.npu.is_available() else 'cpu')
    B = 1  # batch_size
    in_chans = out_chans = 70  # number of input channels or output channels
    input = torch.randn(B, in_chans, 2, 721, 1440).to(device)  # B C T Lat Lon
    fuxi = Fuxi().to(device)
    output = fuxi(input)  # B C Lat Lon
    print(output.shape)

5.4 source cann
source /usr/local/Ascend/ascend-toolkit/set_env.sh
5.5 运行脚本
python3 fuxi.py
报错Conv3dv2 only support static shape
图片

解决办法在实例化模型前添加

torch.npu.config.allow_internal_format = True
torch.npu.set_compile_mode(jit_compile=True

图片
再次运行,报错out of memory
图片
解决办法1
禁用梯度计算和降低计算精度(混合精度)vi fuxi.py在第21、22行添加

with torch.no_grad():
    with torch.npu.amp.autocast():

图片
解决办法2
减少网络结构的层数vi /WeatherLearn/weatherlearn/models/fuxi/fuxi.py在144行Fuxin类的初始化中添加参数depth=12,将161行的depth=48修改为depth
图片
图片
图片
图片

相关文章
|
5月前
|
机器学习/深度学习 人工智能 数据挖掘
AI4Science之分子材料成像调研洞察
分子成像在材料科学中意义重大,通过位形空间、频率空间和光谱学等成像方法,揭示材料微观结构与动态变化。结合AI技术,可深入理解材料特性,解决能源、环境等问题。然而,该领域数据复杂,尚无统一的数据集和Benchmark,模型也处于初期阶段。本文从成像方法、任务类型、机器学习模型、数据集与Benchmark、Python工具包及通用模型等多个维度进行了调研,探讨了多模态数据利用、大规模数据集构建等关键问题,并列举了相关参考论文。
|
1月前
|
并行计算 PyTorch 开发工具
基于昇腾适配DeepMind团队发布的蛋白质结构预测模型OpenFold
OpenFold是一种基于深度学习的蛋白质结构预测模型,广泛应用于蛋白质从头预测、功能位点解析、突变效应模拟等领域。该模型的核心目标是通过大规模预训练和多阶段优化,从氨基酸序列中高效、准确地推断蛋白质的三维结构。
基于昇腾适配DeepMind团队发布的蛋白质结构预测模型OpenFold
|
1月前
|
机器学习/深度学习 PyTorch API
昇腾AI4S图机器学习:DGL消息传递接口的PyG替换
DGL (Deep Graph Learning) 和 PyG (Pytorch Geometric) 是两个主流的图神经网络库,它们在API设计和底层实现上有一定差异,在不同场景下,研究人员会使用不同的依赖库,昇腾NPU对PyG图机器学习库的支持亲和度更高,因此有些时候需要做DGL接口的PyG替换。
|
1月前
|
敏捷开发 安全 vr&ar
Agile Controller实现AAA示例
本文介绍了通过RADIUS服务器实现设备管理的组网需求与配置方法。在网络中部署RADIUS服务器后,可通过其统一管理和认证用户信息,确保安全性。具体步骤包括:配置交换机的VLAN和IP地址、启用Telnet服务并设置VTY用户界面AAA认证、创建RADIUS认证模板与计费方案,并在默认管理域中引用这些配置。此外,还涉及Agile Controller的安装与图形化配置,如新增设备、认证用户、规则及授权结果等。最后通过Telnet验证配置是否成功。此方案适用于对安全性要求较高的网络环境。
Agile Controller实现AAA示例
|
1月前
|
安全 数据安全/隐私保护 Windows
配置用户通过Telnet登录设备认证示例
本文介绍了通过AAA本地认证配置Telnet登录设备的组网需求、配置思路及操作步骤。企业管理员可借助此方案实现简单、安全的远程设备管理。具体包括:配置LSW1接口IP地址,使能Telnet服务器功能,设置VTY用户界面验证方式为AAA,以及创建本地用户并分配权限。最终验证显示,管理员可通过输入正确用户名和密码成功以Telnet方式登录设备。
配置用户通过Telnet登录设备认证示例
|
1月前
|
安全 测试技术 网络虚拟化
端口安全配置示例
本文介绍了一种通过端口安全功能提高用户接入公司网络安全性的方式。具体实现中,PC1、PC2 和 PC3 通过接入设备连接公司网络,Router 接口启用端口安全功能并限制 MAC 地址学习数量为接入用户数,防止外来设备访问网络。配置思路包括创建 VLAN 实现二层转发和配置端口安全功能。测试结果显示,替换 PC1 后的新设备无法访问网络,而原有设备(如 PC2 和 PC3)仍可正常通信。
端口安全配置示例
|
5月前
|
机器学习/深度学习 PyTorch TensorFlow
DGL(0.8.x) 技术点分析
DGL是由Amazon发布的图神经网络开源库,支持TensorFlow、PyTorch和MXNet。DGL采用消息传递范式进行图计算,包括边上计算、消息函数、点上计算、聚合与更新函数等。其架构分为顶层业务抽象、Backend多后端适配、Platform高效计算适配以及C++性能敏感功能层,确保高效、灵活的图神经网络开发。
|
6月前
|
人工智能 自然语言处理 安全
千行百业,“义”不容辞:通义技术创新与商业实践
千行百业,“义”不容辞:通义技术创新与商业实践。本次分享分为两部分,首先介绍大模型的快速迭代与普及,探讨通义千问在精度和复杂任务执行上的突破;其次聚焦企业级落地,解决安全性、部署路径及模型调优三大问题。通过多模态理解(视觉、语音)和更强的生成控制力,携手伙伴服务各行业,推动技术向生产力转化,并关注公益应用,助力社会进步。
|
8月前
|
API
全球天气预报1天-经纬度版免费API接口教程
该接口用于获取全球任意地区的天气信息,需提供经纬度参数。支持POST和GET请求,返回包括天气、气温、气压、湿度等详细信息。详情及示例参见API文档。
|
8月前
|
存储 人工智能 弹性计算
对话阿里云吴结生:AI时代,云上高性能计算的创新发展
在阿里云智能集团副总裁,弹性计算产品线负责人、存储产品线负责人 吴结生看来,如今已经有很多行业应用了高性能计算,且高性能计算的负载正呈现出多样化发展的趋势,“当下,很多基础模型的预训练、自动驾驶、生命科学,以及工业制造、半导体芯片等行业和领域都应用了高性能计算。”吴结生指出。