Training model ensembles

Training model ensembles#

AutoCast also provides functionality for training model ensembles. This can be done with a very simple override. Consider our original processor training command:

uv run autocast processor \
    --workdir ../proc_output \
    datamodule=cached_latents \
    ++datamodule.data_path=/path/to/parent_folder/ae_output/cached_latents \
    ++trainer.max_epochs=10

We just need to augment this with ++model.n_members which specifies the ensemble size, as well as an ensemble-aware loss function. The CRPS loss function is a common choice for probabilistic forecasts as it explicitly rewards diversity in the ensemble members, instead of just forcing them towards the mean prediction (which the original mean-squared error loss does).

uv run autocast processor \
    --workdir ../ensemble_proc_output \
    datamodule=cached_latents \
    ++datamodule.data_path=/path/to/parent_folder/ae_output/cached_latents \
    ++trainer.max_epochs=10 \
    ++model.n_members=10 \
    ++model.loss_func._target_=autocast.losses.ensemble.CRPSLoss

Similar overrides can be applied to the epd command.