Which of the following descriptions best represent the overarching design of your forecasting model?
- Machine learning-based weather prediction.
- Ensemble-based model, aggregating multiple predictions to assess uncertainty and variability.
What techniques did you use to initialise your model? (For example: data sources and processing of initial conditions)
Initial conditions come from ECMWF Open Data (0.25°) for the two timesteps [t−6h, t] at 00Z Thursday, following the AIFS-ENS-2.0 notebook: 112 fields per member- surface, constants, soil temperature and soil moisture (vsw→swvl1/2), 14 pressure levels (1000…10 hPa), and a new wave group from the waef stream (mwd decomposed to cos_mwd/sin_mwd) - interpolated to the N320 grid (542,080 points) and stored as one pickle per ensemble member.
Preparation is CPU-only (fp16FahamuAIFSv2/ecmwf_opendata_pkl_input_aifsens_v2.py) so it can run on cheap hardware separately from the GPU step; this is the main v1→v2 input change (92 → 112 fields, adding snow depth, soil moisture, the wave group and the 10 hPa level, dropping q_10, and NaN-masking sd/swvl1/swvl2 over sea).
If any, what data does your model rely on for real-time forecasting purposes?
Real-time initial conditions are ECMWF Open Data (IFS ensemble enfo + wave ensemble waef, 0h step from Thursday 00z, Wednesday 18z) retrieved weekly for all 50 members. Because the ECMWF portal retains only ~4 days, v2 now reads the same open data from its cloud mirrors (AWS S3 / Google Cloud), which archive over a year, using each GRIB file's small JSON-lines .index to byte-range fetch only the ~112 messages a member needs.
What types of datasets were used for model training? (For example: observational datasets, reanalysis data, NWP outputs or satellite data)
None by us AIFS-ENS-2.0 was trained by ECMWF on ERA5 reanalysis and ECMWF operational analyses. We run the pre-trained ecmwf/aifs-ens-2.0 checkpoint for inference only, with no additional training or fine-tuning.
Please provide an overview of your final ML/AI model architecture (For example: key design features, specific algorithms or frameworks used, and any pre- or post-processing steps)
AIFS-ENS-2.0 is ECMWF's graph-based encoder–processor–decoder ensemble model trained with a CRPS objective to produce stochastic members; we execute it unchanged via anemoi-inference in FP16, 50 members × 792 h at 6-hourly steps.
Inference now runs locally on a single NVIDIA RTX 5000 Ada (30 GB, sm_89) - ~283 s/member, ~3.9 h for the full 50-member ensemble at ~11.8 GB peak VRAM - instead of v1's Coiled/Cloud-Run L4 cluster, and writes native-N320 output straight into a local Icechunk (Zarr) store rather than GRIB; post-processing then regrids to 1.5°, computes ensemble quintile probabilities and submits via the AI-WQ package.
Have you published or presented any work related to this forecasting model? If yes, could you share references or links?
No publications yet; the foundational AIFS model is described in Lang et al. (2024). We use ECMWF's pre-trained checkpoint (https://huggingface.co/ecmwf/aifs-ens-2.0) and the full workflow is open at https://github.com/icpac-igad/ea-aifs.
Before submitting your forecasts to the AI Weather Quest, did you validate your model against observational or independent datasets? If so, how?
Validation is through the AI Weather Quest submission routine only: outputs are regridded to 1.5°, ensemble quintile probabilities are computed against the competition's 20-year climatology, and files are checked by the AI-WQ package before upload. We additionally verify each input state is field-complete (112/112, correct shapes, land–sea mask applied) before inference.
Did you face any challenges during model development, and how did you address them?
The dominant constraints were storage and retrieval, not model compute: a full 50-member weekly run would write over 1.5 TB to the Icechunk store, so we persist only the forecast window actually used downstream (hours 432–792, days 18–33), cutting each cycle to ~583 GB.
Retrieval was the other bottleneck: heavy AWS mirror throttling (frequent HTTP 503 SlowDown) stretched the 50-member input step to ~14.5 h, which we are addressing with parallel single-range fetches and the faster Google Cloud mirror.
Are there any limitations to your current model that you aim to address in future iterations?
The pipeline is network-bound at the input stage and the local GPU box is serial, so the ensemble runs one member at a time (~3.9 h) with no horizontal scaling; we intend to parallelise the input fetch and keep a cloud path for burst capacity. Storage is also pruned to the forecast window actually used downstream (hours 432-792, days 18-33) to keep the run within disk limits.
Are there any other AI/ML model components or innovations that you wish to highlight?
Two engineering pieces: writing model output natively at N320 into a versioned Icechunk/Zarr store with a commit per 6-hourly step (no GRIB round-trip, snapshot-tagged per cycle for reproducible downstream reads), .index byte-range reader that pulls only the required GRIB messages from the cloud mirrors and decodes them without scanning whole files, making multi year of archived open data usable as initial conditions.
Who contributed to the development of this model? Please list all individuals who contributed to this model, along with their specific roles (e.g., data preparation, model architecture, model validation, etc) to acknowledge individual contributions.
fp16FahamuAIFSv2 was developed by the Fahamu Team at ICPAC.