2. Train a Graph-Based Model

2.1. anemoi-core Overview

We use the anemoi training stack to train a graph-based model. anemoi-core provides the infrastructure to train various types of mostly graph-based ML models. It handles the training workflow so users can focus on model-design choices instead of more complicated orchestration.

See the anemoi documentation for further information:

anemoi was created by the European Centre for Medium-Range Weather Forecasts (ECMWF).

2.2. anemoi-core Quick Tips

Throughout this repository, the anemoi configs are typically provided for you and should work out of the box. See below for tips and explanations if you want to learn more about the configs or modify them. The workflows in the EAGLE repository handle config management for you. The notes below are intended to help explain what is happening behind the scenes and to make it easier to modify configs when needed.

2.2.1. Brief Config Overview

The configs used by anemoi-training contain a lot of information. At the top of a main config, you will see something like:

defaults:
  - data: zarr
  - dataloader: native_grid
  - datamodule: single
  - diagnostics: evaluation
  - hardware: slurm
  - graph: encoder_decoder_only
  - model: transformer
  - training: stretched
  - _self_

This points the training process to the appropriate YAML file needed for various steps. For example, the first line points to zarr.yaml within the data folder, which then provides the training process with information on the training data such as variables used and temporal frequency.

Throughout this repository, we have consolidated a lot of useful information in src/config/base.yaml, especially under the training.anemoi section. This means src/config/base.yaml contains many of the model configurations that are most useful to note, and it also makes those configurations easier to change.

If you have questions about the available model configurations within anemoi-core, see the anemoi-training documentation.