microsoft/aurora
GitHub: microsoft/aurora
Aurora 是一个基于深度学习的地球系统预测基础模型,通过大规模预训练与少量数据微调来高效完成天气预报、空气污染和海浪预测等多种大气预测任务。
Stars: 963 | Forks: 153
# Aurora:一个面向地球系统的基础模型
[](https://github.com/microsoft/Aurora/actions/workflows/ci.yaml)
[](https://microsoft.github.io/aurora)
[](https://arxiv.org/abs/2405.13063)
[](https://doi.org/10.5281/zenodo.14983583)
用于地球系统预测的 Aurora 模型实现。
[论文链接。](https://www.nature.com/articles/s41586-025-09005-y)
[请查阅文档以获取详细说明和更多示例。](https://microsoft.github.io/aurora)
你也可以直接前往[在 ERA5 上运行该模型的完整示例](https://microsoft.github.io/aurora/example_era5.html)。
请按如下方式引用我们:
```
@article{bodnar2025aurora,
title = {A Foundation Model for the Earth System},
author = {Cristian Bodnar and Wessel P. Bruinsma and Ana Lucic and Megan Stanley and Anna Allen and Johannes Brandstetter and Patrick Garvan and Maik Riechert and Jonathan A. Weyn and Haiyu Dong and Jayesh K. Gupta and Kit Thambiratnam and Alexander T. Archibald and Chun-Chieh Wu and Elizabeth Heider and Max Welling and Richard E. Turner and Paris Perdikaris},
journal = {Nature},
year = {2025},
month = {May},
day = {21},
issn = {1476-4687},
doi = {10.1038/s41586-025-09005-y},
url = {https://doi.org/10.1038/s41586-025-09005-y},
}
```
目录:
- [什么是 Aurora?](#what-is-aurora)
- [快速入门](#getting-started)
- [贡献](#contributing)
- [许可证](#license)
- [安全性](#security)
- [负责任 AI 透明度文档](#responsible-ai-transparency-documentation)
- [商标](#trademarks)
- [常见问题](#faq)
如果你有兴趣将 Aurora 用于商业应用,
请发送电子邮件至 [AIWeatherClimate@microsoft.com](mailto:AIWeatherClimate@microsoft.com)。
如果有与本研究相关的问题或需要此代码的技术支持,
请[提交一个 issue](https://github.com/microsoft/aurora/issues/new/choose)
或联系论文作者。
## 什么是 Aurora?
Aurora 是一个可以预测温度等大气变量的机器学习模型。
它是一个_基础模型_(_foundation model_),这意味着它首先在大量数据上进行了通用训练,
然后只需相对较少的数据即可适应专业的大气预测任务。
我们提供了四个这样的专业版本:
一个用于中分辨率天气预报,
一个用于高分辨率天气预报,
一个用于空气污染预测,
以及一个用于海浪预测。
## 快速入门
使用 `pip` 安装:
```
pip install microsoft-aurora
```
或者使用 `conda` / `mamba`:
```
mamba install microsoft-aurora -c conda-forge
```
在随机数据上运行预训练的小模型:
```
from datetime import datetime
import torch
from aurora import AuroraSmallPretrained, Batch, Metadata
model = AuroraSmallPretrained()
model.load_checkpoint()
batch = Batch(
surf_vars={k: torch.randn(1, 2, 17, 32) for k in ("2t", "10u", "10v", "msl")},
static_vars={k: torch.randn(17, 32) for k in ("lsm", "z", "slt")},
atmos_vars={k: torch.randn(1, 2, 4, 17, 32) for k in ("z", "u", "v", "t", "q")},
metadata=Metadata(
lat=torch.linspace(90, -90, 17),
lon=torch.linspace(0, 360, 32 + 1)[:-1],
time=(datetime(2020, 6, 1, 12, 0),),
atmos_levels=(100, 250, 500, 850),
),
)
prediction = model.forward(batch)
print(prediction.surf_vars["2t"])
```
请注意,这将产生 500 MB 的下载量。
请阅读[文档](https://microsoft.github.io/aurora)以获取更详细的说明以及了解哪些模型可用。
## 许可证
参见 [`LICENSE.txt`](LICENSE.txt)。
## 安全性
参见 [`SECURITY.md`](SECURITY.md)。
## 负责任 AI 透明度文档
一个 AI 系统不仅包含技术,还包括使用它的人、受其影响的人以及部署它的环境。
创建一个适合其预期目的的系统,需要了解该技术的工作原理、其能力和局限性,以及如何实现最佳性能。
微软在将我们的 AI 原则付诸实践方面进行了广泛的努力。
要了解更多信息,请参见[微软的负责任 AI 原则](https://www.microsoft.com/en-us/ai/responsible-ai)。
### 本代码的用途
我们发布此代码的目的是
(1) 促进我们论文的可重复性,以及
(2) 支持并加速关于大气预测基础模型的进一步研究。
此代码尚未针对非学术目的进行开发或测试,因此应仅在完全由您自己承担风险的情况下用于此类目的。
### 预期用途
Aurora 旨在用于中高分辨率天气预报、空气污染预测、海浪预测以及全球环境建模任务。
得益于其基础模型架构,该模型可以通过相对有限的特定任务训练数据,适应专业的大气预测任务。
### 超出范围的用例
Aurora 未经过设计和评估,不适用于未经专家审查的直接业务决策、需要保证预测准确性的应用或非环境类的预测任务。
在安全关键的规划或自动化决策 pipeline 中使用时,应辅以适当的领域验证。
### 局限性
尽管 Aurora 经过训练可以准确预测未来的天气、空气污染和海浪,
但 Aurora 是基于神经网络的,这意味着无法严格保证预测始终准确。
更改输入、提供不在训练集中的样本,
或者甚至提供在训练集中但运气不佳的样本,都可能导致任意糟糕的预测。
此外,尽管 Aurora 是在各种数据集上训练的,
但 Aurora 仍有可能继承其中任何一个数据集中存在的偏差。
像 Aurora 这样的预测系统只是天气预报 pipeline 中的冰山一角,
其输出并不打算直接供个人或企业用于规划其运营。
在它变得具有业务用途之前,需要进行一系列额外的验证测试。
除上述情况外,此处发布的模型是最初在内部开发的模型的精简版本。
尽管我们试图尽可能做到详尽,但此处发布的模型
仍有可能以微妙且意想不到的方式偏离原始模型。
这可能会影响预测性能。
### 负责任 AI 考量
Aurora 是一个研究预测模型,不应将其视为业务天气服务。
尽管该模型在既定的基准上可以匹配或超越传统的数值基准,
但其可靠性在分布外(out-of-distribution)条件下
(例如,罕见的极端情况、状态突变,或者在基础再分析和模拟中历史保真度有限的区域/变量)可能会降低。
如果用户忽略了不确定性、集合扩散(ensemble spread)或基础训练数据的已知局限性,输出也可能会被误解。
主要的负责任 AI 风险在于
(1) 非专家的意外使用,以及
(2) 在没有领域验证的情况下在重大决策中的下游使用
(例如,应急响应、关键基础设施运营、生命安全规划)。
为了降低这些风险,开发者应该:
明确声明此发布仅用于研究评估和可重复性;
在任何现实世界的决策受到输出影响之前,要求进行领域专家审查;
实施基本的输入验证,以确保初始条件来自可信来源
(例如,公认的气象机构和数据提供商);
并针对预期应用相关的特定地理位置、时间范围和变量,根据公认的物理建模系统对性能进行基准测试。
Aurora 最适合作为专家分析的决策支持组件集成,
而不是作为完全自主的行动触发器。
对于高风险场景,应采取额外的保障措施,例如 human-in-the-loop(人机协同)审查、
保守的警报阈值、校准/验证测试,
以及在更改输入源或前/后处理时对漂移进行持续监控。
### 数据
代码中包含的模型已在各种公开可用的数据上进行了训练。
所有数据的描述(包括下载链接)可以在[论文的附录 C](https://arxiv.org/pdf/2405.13063)中找到。
这些 checkpoint 包含来自以下来源的数据:
ERA5、CMIP6(CMCC-CM2-VHR4 和 ECMWF-IFS-HR)、HRES 预测、GFS T0、GFS 预测、
HRES T0、
HRES 分析、
HRES-WAM 分析、
CAMS 再分析和 CAMS 分析。
### 评估
所有版本的 Aurora 都通过在训练期间未见过的大量数据上评估预测,进行了广泛的评估。
这些评估不仅比较了准确性的衡量指标(例如均方根误差和异常相关系数),
还考察了在极端情况(如极端炎热和寒冷)和罕见事件(如 2023 年的 Ciarán 风暴)下的表现。
这些评估是[该论文](https://arxiv.org/pdf/2405.13063)的主要主题。
*注:本文件中包含的文档仅供参考,无意取代适用的许可条款。*
## 商标
本项目可能包含项目、产品或服务的商标或徽标。
授权使用微软商标或徽标受微软[商标与品牌指南](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general)的约束并必须遵守该指南。
在修改后的本项目中使用微软商标或徽标不得引起混淆或暗示微软的赞助。
任何第三方商标或徽标的使用均受这些第三方政策的约束。
## 常见问题
### 如何为本地开发配置此仓库?
首先,以可编辑模式安装存储库并设置 `pre-commit`:
```
make install
```
要运行测试并打印覆盖率,请运行
```
make test
```
然后,你可以通过打开 `htmlcov/index.html` 在浏览器中查看覆盖率。
要在本地构建文档,请运行
```
make docs
```
要在本地查看文档,请在浏览器中打开 `docs/_build/index.html`。标签:PyTorch, 人工智能, 凭据扫描, 地球系统科学, 大模型, 气象预测, 深度学习, 用户模式Hook绕过, 逆向工具