NVIDIA / modulus

Open-source deep-learning framework for building, training, and fine-tuning deep learning models using state-of-the-art Physics-ML methods
https://developer.nvidia.com/modulus
Apache License 2.0
795 stars 172 forks source link

⛰️[EPIC]: GraphCast Enhancements #499

Open mnabian opened 1 month ago

mnabian commented 1 month ago

To bring the GraphCast in Modulus in parity with Google's GraphCast in terms of features and prediction skills

### Improvements - P0
- [x] GraphCast: Cosine zenith addition (Impact: high, effort: low)
- [ ] https://github.com/NVIDIA/modulus/issues/530
- [ ] GraphCast: Distributed GNNs (Impact: high, effort: moderate)
- [x] GraphCast: Normalization technique (Impact: moderate, effort: moderate)
- [ ] https://github.com/NVIDIA/modulus/issues/560
- [ ] https://github.com/NVIDIA/modulus/issues/508
- [x] https://github.com/NVIDIA/modulus/issues/515
- [ ] https://github.com/NVIDIA/modulus/issues/486
- [ ] https://github.com/NVIDIA/modulus/issues/511
- [ ] https://github.com/NVIDIA/modulus/issues/517
### Validation
- [x] GraphCast: Choose the baseline model for comparison (GraphCast, GraphCast_small, GraphCast_operational)
- [x] GraphCast: Produce baseline results with the chosen baseline model
- [x] GraphCast: Export the dataset used in producing the baseline results
- [x] GraphCast: Export the baseline results
- [x] GraphCast: Identify the exact configs used in the baseline model
- [x] GraphCast: Export the normalization stats
- [ ] https://github.com/NVIDIA/modulus/issues/513
- [ ] GraphCast: Produce side-by-side comparison between Modulus GraphCats and Google GraphCast
- [ ] https://github.com/NVIDIA/modulus/issues/509
### Bugs
- [ ] https://github.com/NVIDIA/modulus/issues/514
### Data Engineering
- [ ] https://github.com/NVIDIA/modulus/issues/503
- [ ] https://github.com/NVIDIA/modulus/issues/527
- [ ] https://github.com/NVIDIA/modulus/issues/519
### Develop a 1-degree GraphCast model
- [ ] https://github.com/NVIDIA/modulus/issues/505
- [ ] https://github.com/NVIDIA/modulus/issues/506
### Improvements - P1
- [ ] https://github.com/NVIDIA/modulus/issues/516
- [ ] Graphcast: Check whether the current combination of MeshGraphNodeBlock and MeshGraphEdgeBlock actually matches the paper
- [ ] GraphCast: Split into a GraphCastNetERA5 and a GraphCastNet model
- [ ] Configurable static channels
- [x] https://github.com/NVIDIA/modulus/issues/555
### Extension to GenCast - P2
- [ ] https://github.com/NVIDIA/modulus/issues/558
- [ ] https://github.com/NVIDIA/modulus/issues/559
### Other improvements - P2
- [ ] GraphCast: Symmetric approach for constructing grid2mesh and mesh2grid graphs