AtmoRep / README.md
yzt15806542928's picture
Upload folder using huggingface_hub
f1d3656 verified
|
Raw
History Blame Contribute Delete
6.52 kB
---
license: other
language:
- en
- zh
tags:
- OneScience
- Earth Science
- Weather Forecasting
- ERA5
- Representation Learning
frameworks: PyTorch
datasets:
- OneScience/ERA5
---
<p align="center">
<strong><span style="font-size: 30px;">AtmoRep</span></strong>
</p>
# Model Overview
AtmoRep is a stochastic atmospheric dynamics model based on large-scale representation learning that captures the distribution of atmospheric states through masked-token training and ensemble outputs.
Paper: *AtmoRep: A stochastic model of atmosphere dynamics using large scale representation learning*
https://arxiv.org/abs/2308.13280
# Model Description
This directory retains the official vorticity single-field model weights, configuration, and normalization, and provides a tiny AtmoRep-style model for local training and inference verification.
# Use Cases
| Scenario | Description |
| :---: | :--- |
| Official Resource Validation | Load official `.mod` weights and verify configuration. |
| Local Rapid Verification | Run masked-token training and inference with the tiny model. |
| ERA5 Atmospheric Representation Learning | Subsequently interface with official GRIB or Zarr data. |
# Usage
## 1. OneCode
[Click to experience intelligent one-click AI4S programming](https://web-2069360198568017922-iaaj.ksai.scnet.cn:58043/home)
## 2. Manual Installation & Usage
**Hardware Requirements**
- The tiny model runs on CPU.
- GPU is recommended for the official model and real-data inference.
### Download the Model Package
```bash
hf download --model OneScience-Group/AtmoRep --local-dir ./AtmoRep
cd AtmoRep
```
### Set Up the Runtime Environment
**DCU Environment**
```bash
conda create -n onescience311 python=3.11 -y
conda activate onescience311
pip install onescience[earth-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
```
**GPU Environment**
```bash
conda create -n onescience311 python=3.11 -y libstdcxx-ng=12 libgcc-ng=12 gcc_linux-64=12 gxx_linux-64=12
conda activate onescience311
pip install onescience[earth-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
```
If dependencies are missing from the official paths, install them with:
```bash
pip install zarr wandb cfgrib xarray dask netCDF4 torchinfo
```
### Weights & Data
The current directory preserves:
```text
resources/id4nvwbetz/AtmoRep_id4nvwbetz.mod
resources/id4nvwbetz/model_id4nvwbetz.json
resources/data/normalization/vorticity/
```
Before re-downloading official resources please note: the current vendor snapshot is not a Git checkout, and the existing download script cannot re-clone into a non-empty `vendor/atmorep-official`. The resources bundled with this package do not require re-downloading; the script is only suitable for an empty target directory.
```bash
bash scripts/download_official_resources.sh .
```
### Tiny Training
```bash
python scripts/train.py
```
This command performs multi-epoch masked-token training using independent train/validation fake Datasets, including DataLoader, AdamW, validation, learning rate scheduling, early stopping, best/latest checkpointing, and training history. Default parameters reside in `conf/config.yaml`.
Resuming training:
```bash
python scripts/train.py --resume weight/training/latest.pth --epochs 20
```
Training artifacts are `weight/training/latest.pth`, `best.pth`, and `history.json`; the inference-compatible weights `weight/tiny_atmorep.pth` are also updated. Each Dataset sample consists of `fields [T,V,H,W]` and a non-empty `mask [N]`; train/validation use different seeds. This is a complete training pipeline for the tiny model, not a reproduction of the paper's 3.5-billion-parameter official model training.
### Tiny Inference
```bash
python scripts/inference.py
```
Inference results are saved as:
```text
result/prediction.pt
result/target.pt
```
These include the ensemble, ensemble mean, ensemble std, and mask.
### Result Inspection
```bash
python scripts/result.py
```
This command generates `result/metrics.json` and `result/comparison.png`. The reported metrics are ensemble/mean/spread RMSE in normalized token space, not the paper's physical-unit RMSE, ACC, CRPS, or spread-skill.
### Paper vs. Current Implementation I/O
| Item | Paper / Official Model | Tiny Smoke Model |
| --- | --- | --- |
| Input | ERA5 local 4D neighborhoods, 5 mode levels, multiple physical fields | `[B,4,1,8,8]` single-field random tensor |
| Token | Variable-correlated 4D tokens with absolute space-time and level conditioning | `1×4×4` patches, 16 tokens, relative coordinates with single-level conditioning |
| Output | Multi-head ensembles supporting reconstruction, nowcasting, and interpolation | 4-member masked-token ensemble |
| Training | Large-scale masked-token distribution learning | Multi-epoch Dataset training with independent validation and checkpoint resumption |
| Weights | `resources/id4nvwbetz` official vorticity weights | `weight/tiny_atmorep.pth`; the two are mutually incompatible |
The complete tiny execution flow is `train.py -> inference.py -> result.py`. The result analysis reads `weight/training/history.json` when present; inference output includes `ensemble`, `ensemble_mean`, `ensemble_std`, `mask`, and `target`. Random data is generated by the Dataset by index; there is currently no independent fake dataset that can be used with the official Zarr sampler. The model package is distributed without local training weights or `result/` artifacts — these are created at the paths described above after running the commands.
### Official Real-Data Inference
A directly runnable official real-data inference command is not yet available. It further requires ERA5 vorticity GRIB/Zarr data, the ecCodes environment, and parameterization of the file paths in the official `evaluate.py`.
### Real Data
The official vorticity model requires ERA5 vorticity, model levels 96/105/114/123/137, hourly temporal axes, and 0.25° global GRIB/Zarr data.
# OneScience Official Information
| Platform | OneScience Main Repository | Skills Repository |
| --- | --- | --- |
| Gitee | https://gitee.com/onescience-ai/onescience | https://gitee.com/onescience-ai/oneskills |
| GitHub | https://github.com/onescience-ai/OneScience | https://github.com/onescience-ai/oneskills |
# Citation & License
- Official code is MIT License.
- Official model weights are declared CC BY 4.0.
- ERA5 is subject to Copernicus/ECMWF data terms.