To accomplish this comparison, a Python package called ai-models has been developed. The main purpose of this package is to run any Python-based data-driven model in inference mode. However, the code of the models themselves is not included in ai-models; instead, the inference part of each model needs to be packaged in its own Python module, which then registers as a plugin to ai-models. When necessary, ai-models will download the model weights. It will then provide the initial conditions to each model from a choice of several sources, such as ECMWF’s high-resolution operational analysis from the Centre’s MARS archive, ERA5 from the Climate Data Store, plain GRIB files, and various other. Additionally, ai-models manages the output of the ML models by packing them into GRIB format. The choice of GRIB as the working format was made to enable the reuse of all of the Centre’s infrastructure and tools, including its archive, evaluation and diagnostics tools, and the creation of web products. However, ai-models can easily be extended to support popular data formats such as NetCDF. Essentially, ai-models acts as an intermediary between the initial conditions, the model, and its output. All internal communication between ai-models and its plugins is done via Numpy arrays.
In summary, ai-models delivers a single point of entry for ML forecasting systems, handling input and output to provide users with both data and meta-data required for analysing and plotting this new generation of models.

