Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
58abeef
AIMIP ACE train 4 random seeds
brianhenn Nov 5, 2025
b992032
Merge branch 'main' into workflow/aimip-ace
brianhenn Nov 11, 2025
78a7847
t add seed selection evaluation runs for ensemble
brianhenn Nov 11, 2025
1cfb928
add full 36-year seed evaluation runs
brianhenn Nov 12, 2025
d5eee3f
fine-tuning of decoder for pressure-level outputs
brianhenn Nov 15, 2025
ba3a473
add downweighted q fine-tuning training
brianhenn Nov 16, 2025
5305abe
rename evaluator w/ single IC to evaluator seed selection single
brianhenn Nov 19, 2025
1c75485
add in-sample evaluator run of fine-tuned checkpoint
brianhenn Nov 19, 2025
604178b
add script restarting fine-tuning with more epochs
brianhenn Nov 19, 2025
f19c133
add in-sample evaluator runs of all fine-tuned checkpoints
brianhenn Nov 19, 2025
5f66857
fix fine-tuning restart script
brianhenn Nov 19, 2025
7e19d27
add fine-tune pressure-levels with frozen decoder jobs
brianhenn Nov 20, 2025
0b0c67d
add fine-tuned checkpoints to seed selection evaluator
brianhenn Nov 20, 2025
ff3ff8f
add fine-tuned with downweighted q to seed selection evaluations
brianhenn Nov 20, 2025
07b20a5
add LR warmup to frozen and unfrozen FT cases
brianhenn Nov 20, 2025
7cc3f85
add reweighting fine-tuning case
brianhenn Nov 20, 2025
836084d
squash merge separate decoder branch
brianhenn Nov 20, 2025
623a8a3
add separate decoder case
brianhenn Nov 21, 2025
c2edb65
add separate decoder + LR warmup case
brianhenn Nov 21, 2025
ae1e6a7
add full 4 seeds to separate decoder + LR warmup
brianhenn Nov 23, 2025
ed6b3fc
Merge branch 'main' into workflow/aimip-ace
brianhenn Nov 24, 2025
8d47482
add separate decoder checkpoints to in sample evaluations
brianhenn Nov 24, 2025
0864e5d
AIMIP inference configuration with full set of outputs and simulations
brianhenn Nov 25, 2025
4f15405
save results to weka instead of beaker datasets
brianhenn Nov 25, 2025
fab699e
add model-layer outputs and rename files for p2k/p4k
brianhenn Nov 27, 2025
01646d1
fix first daily data subset typo
brianhenn Nov 30, 2025
4bb021e
save data as 'huss' instead of 'tdas'
brianhenn Nov 30, 2025
b510bea
filename updates for CMIP conventions
brianhenn Dec 5, 2025
ea505f1
only use 'gr' for datasets with vertical dim, otherwise 'gn'
brianhenn Dec 6, 2025
ded563e
Prune AIMIP configs to final model pipeline only
brianhenn Mar 30, 2026
dae5584
Merge origin/main, migrate separate decoder to SecondaryDecoderConfig
brianhenn Mar 31, 2026
cc59001
Rename fine-tune config to ace-fine-tune-pressure-level-separate-deco…
brianhenn Mar 31, 2026
8273c14
Replace IC-specific inference configs with inline sed expansion
brianhenn Mar 31, 2026
6c0d830
Move configs/baselines/era5/aimip to configs/baselines/era5-aimip
brianhenn Mar 31, 2026
bbb07bb
add README.md
brianhenn Mar 31, 2026
69d6b1f
Merge branch 'main' into workflow/aimip-ace-to-merge
brianhenn Mar 31, 2026
e3b9597
Replace hardcoded BEAKER_USERNAME with dynamic beaker whoami lookup
brianhenn Mar 31, 2026
34bdac4
add seed selection method to readme
brianhenn Apr 1, 2026
60e0d37
Merge branch 'main' into workflow/aimip-ace-to-merge
brianhenn Apr 1, 2026
890a925
Merge branch 'main' into workflow/aimip-ace-to-merge
brianhenn Apr 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions configs/baselines/era5-aimip/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# ERA5 AIMIP Baseline

This directory contains scripts and configurations for training and running an ACE2 model on ERA5
data for the AIMIP evaluation protocol. This configuration is referred to as **ACE2.1-ERA5**. The
model predicts pressure-level diagnostic variables over 1978–2024 with multiple initial conditions
and SST perturbation scenarios.

## Workflow

The full experiment proceeds in five stages. Checkpoint IDs embedded in the scripts must be updated
manually after evaluating each stage.

### 1. Train

```bash
bash run-ace-train.sh
```

Trains 4 random-seed ensemble members (RS0–RS3) on ERA5 1979–2008, with validation on 2009–2014.
Config: `ace-train-config.yaml`.

### 2. Evaluate training seeds

```bash
bash run-ace-evaluator-seed-selection.sh
bash run-ace-evaluator-seed-selection-single.sh
```

Evaluate all 4 trained checkpoints to select the best seed for fine-tuning.

- `run-ace-evaluator-seed-selection.sh` — 7x 5-year evaluations (starting in 1980, 1985, 1990,
1995, 2000, 2005, 2010). Config: `ace-evaluator-seed-selection-config.yaml`.
- `run-ace-evaluator-seed-selection-single.sh` — single continuous 36-year run (1978-10-01 to
2014-12-31). Config: `ace-evaluator-seed-selection-single-config.yaml`.

The best seed is chosen based on comparing the time-mean climate and trend skill, both in
the 7x 5-year and 36-year evaluations; this is somewhat subjective. The chosen seed is used
in `run-ace-fine-tune-decoder-pressure-levels.sh`.

### 3. Fine-tune

```bash
bash run-ace-fine-tune-decoder-pressure-levels.sh
```

Freezes the best trained checkpoint and trains a secondary MLP decoder for 65 pressure-level
diagnostic variables (TMP, Q, UGRD, VGRD, h at 13 pressure levels plus near-surface fields) across
4 new random seeds. Config: `ace-fine-tune-pressure-level-separate-decoder-config.yaml`.

### 4. Evaluate fine-tuned seeds

Re-run both evaluator scripts from step 2. The scripts already include checkpoint IDs for both
the trained and fine-tuned ensemble members, enabling direct comparison. After evaluating seeds
similarly as before (though there is little variability due frozen prognostic state), the best
checkpoint ID is used in `run-ace-inference.sh`.

### 5. Run inference

```bash
bash run-ace-inference.sh
```

Runs 15 parallel 46-year simulations (1978-10-01 to 2024-12-31) using the best fine-tuned
checkpoint:

- 5 initial conditions (IC1–IC5) from the AIMIP IC dataset
- 3 SST scenarios: baseline, +2 K, +4 K

Configs: `ace-aimip-inference-config.yaml`, `ace-aimip-inference-p2k-config.yaml`,
`ace-aimip-inference-p4k-config.yaml`.
Loading
Loading