配置笔记:华为盘古大模型实机推理未来天气数据
前言
作为 AI 大模型的探索者,鄙人一直在关注前沿 AI 发展,在 2023 年夏,领教了厄尔尼诺的实力,酷热席卷全球,打破了多个记录,我也开始关注天气。在 “凤羽酱SDK” 的帮助下,我将目光投向了华为盘古天气大模型——突破!华为云盘古登顶《Nature》正刊!。
不同于传统LLM大语言模型,盘古天气大模型是针对特定领域的模型,也算是开辟了大模型应用的新方向。
暑假要初升高忙得不可开交,寒假来了折腾折腾。
环境: 22.04.1-Ubuntu 配置: 4核心16G运存
本次仅使用CPU推理 推理时间1分钟左右
介绍
什么是盘古天气大模型
根据来自 华为官网 的介绍:
华为云盘古气象大模型是首个精度超过传统数值预报方法的AI模型,能够提供秒级全球气象预报,原来预测一个台风未来10天的路径,需要在3000台服务器的高性能计算机集群上花费5小时进行仿真。而现在基于预训练的盘古大模型,通过AI推理的方式,只需1台服务器、1卡配置、10秒时间,就可以获得更精确的预测结果。盘古气象大模型的预测结果包括位势、湿度、风速、温度、海平面气压等,可以应用于台风路径预测、降水预测、寒潮和高温预测等多个气象研究细分场景。
2023年7月6日,国际顶级学术期刊《Nature》正刊发表了华为云盘古大模型研发团队独立研究成果,这是中国科技公司首篇作为唯一署名单位发表的《Nature》正刊论文。
《三维神经网络用于精准中期全球天气预报》(《Accurate medium-range global weather forecasting with 3D neural networks》)
盘古天气大模型的实力
“华为云盘古气象大模型在精度上有不可否认的能力,纯数据驱动的AI天气预报模型,展现出了可与欧洲中期天气预报中心业务数值模式媲美的预报实力。”
盘古天气大模型的应用
2023年7月,华为云盘古气象大模型正式上线欧洲中期天气预报中心官网,全球天气预报员、气象爱好者和普通公众都可以免费查看盘古对未来10天全球天气的预测。
同时,华为云盘古气象大模型已在香港天文台“地球天气”产品中上线,用户可查看包括未来15天的风向、风速、气温及海平面气压预报。盘古气象大模型成功预测热带气旋“小犬”在2023年10月1日不会影响香港,晚上的国庆烟花汇演得以如期举办。
引入盘古气象大模型后,天气预报的时效由之前10天延长至15天,让用户能及早了解未来天气可能出现的变化。
—— 香港天文台
模型运行环境准备
安装 conda
Conda是一个开源的包管理和环境管理系统,支持多种编程语言,方便用户创建、管理虚拟环境和安装软件包。本次主要使用 conda 安装 Python 虚拟环境。
本文使用 安装脚本 这一方法,安装方式不唯一,其它可以自行搜索。我不喜欢用就安装miniconda演示了。
1 | 1.下载最新版本的Miniconda安装脚本 |
配置 CDS API
- 注册Copernicus Climate Data Store (哥白尼气候数据储存)
- 登录完成后,打开How to use the CDS API 界面上将自动显示配置。

- Linux/Unix 保存这两行文本在
$HOME/.cdsapirc文件内。Windows 则保存在C:\users\[用户名]\.cdsapirc文件内。
配置项目
- 克隆
https://github.com/HaxyMoly/Pangu-Weather-ReadyToGo项目。1
2
3apt install git -y
git clone https://github.com/HaxyMoly/Pangu-Weather-ReadyToGo
cd Pangu-Weather-ReadyToGo该项目为演示项目:盘古天气大模型全流程演示( 输入数据准备、预测及结果可视化
- 使用 conda 创建 Python 环境
1
2conda create -n pangu -y python=3.10
conda activate pangu-n pgwdome: 这里的 -n 是 –name 的简写,后面的 pgwdome 是您要创建的环境的名称。您可以根据需要自定义这个名称。
-y: 这个选项表示“yes”,它会自动确认所有提示,避免在创建环境时需要手动输入确认。这在脚本或自动化任务中非常有用。
此时 命令提示符 的括号应变为 (pgw) 。例如
(pgw) @RamSong ➜ / $
3.使用 pip 安装 cdsapi 第三方库
1 | pip install cdsapi |
推理准备与模型安装
- 安装模型依赖包
CPU和GPU环境安装一个即可
如果您使用CPU环境,请运行:
1 | pip install -r requirements_cpu.txt |
如果您使用GPU环境,请首先确认 cuda 版本为 11.6,cudnn版本为 Linux 8.2.4 和 Windows 8.5.0.96。然后,请运行:
1 | pip install -r requirements_gpu.txt |
- 安装 cartopy 依赖包
1
conda install -c conda-forge cartopy
- 模型下载
参考https://github.com/198808xc/Pangu-Weather提供的模型
我的方案
1 | apt install gdown -y |
也可以根据需要任意下载一个测试,下载使用到了 Google Drive ,国内环境请注意。
推理
查找可用性
1 | cd .. |
这里展示的是可获取的最新数据( UTC时间 ),你的输出会是这样的: The latest date available for this dataset is: 2024-02-19 13:00.
数据下载
- 修改 data_prepare.py 中初始场的 date_time。这里是要基于你这个时间(UTC)的数据推演。
1
2
3
4
5
6date_time = datetime(
year=2024,
month=1,
day=30,
hour=18,
minute=0) - 执行
python data_prepare.py下载初始场数据并转换为npy格式。此过程可能会花费大量时间。(可能需要排队)
完整输出大概是这样:
1 | (pangu) @RamSong ➜ /workspaces/Pangu-Weather-ReadyToGo (main) $ python data_prepare.py |
开始预测
- 根据需要修改 inference.py 中以下变量。主要是
是否使用GPU和开始时间(和下载的数据一样)以及要预测的时间1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20# Use GPU or CPU
use_GPU = False
# The date and time of the initial field
# date = '2023-07-03'
date_time = datetime(
year=2024,
month=2,
day=15,
hour=12,
minute=0)
# time = '23:00'
# The date and time of the final approaches
date_time_final = datetime(
year=2024,
month=2,
day=15,
hour=13,
minute=0) - 执行
python inference.py进行预测。结束后的文件在./results下。
格式转换
预测完成后,执行 python forecast_decode.py 将npy转换回NetCDF格式。转换后的文件在./outputs下。
查看结果
- 安装 ncvue (mcuntz开源的优秀NetCDF可视化项目)
也可用其它查看器
- ncvue+文件名弹出窗口查看。例:
ncvue output_surface_2024-02-15-13-00.nc
效果2024-02-15-13-00:

验证
参考 https://github.com/Clarmy/pangu-weather-verify