Skip to content

Explainable AI for weather forecasting: Gradient-based Attributions for trained Anemoi models #502

Description

@younesessafouri

Is your feature request related to a problem? Please describe.

Neural weather prediction models are starting to compete with traditional numerical models in operational settings, but their black-box nature makes it difficult for forecasters to trust them, diagnose failure modes on extreme events, or verify that predictions are physically grounded. Anemoi currently has no built-in interpretability or attribution tooling, so users who want to understand why a trained model produced a given forecast have to build this from scratch outside the framework. This is a recognized gap in the community, XAI for data-driven NWP has been a recurring theme at the recent EGU 2026 conference.

Describe the solution you'd like

As a first contribution, I'd like to add SmoothGrad input attribution for trained Anemoi models: a gradient-based method that averages saliency maps under input noise, producing cleaner attributions than vanilla gradients.

User-facing API: The user specifies a target (output variable + spatial region + lead time, e.g. precipitation over Paris at +24h) and optionally the hyperparameters of the xai method and receives an attribution map over the full input state showing the model's sensitivity to each input variable and grid point.
Proposed implementation. A new submodule, e.g. anemoi.inference.explain, containing:

  • An ExplainableRunner subclass of the existing Runner that disables torch.no_grad / inference_mode for the forward pass, keeps model parameters frozen, and retains the computation graph for backward.

  • A SmoothGrad attributor class that takes an ExplainableRunner, a target specification, and noise parameters, and returns attributions with the same coordinates as the input state.

  • YAML configuration consistent with existing Anemoi patterns, so an attribution run is launched similarly to a forecast.

Describe alternatives you've considered

No response

Additional context

About me. PhD student at CNRS, co-supervised with Météo-France working on Explainable AI for neural weather prediction. Happy to be assigned this issue and to maintain the contribution across follow-up methods.
Longer-term plan. If this direction is endorsed, I'd contribute additional methods as well as adding visualization utilities (maps, statistical summaries), and eventually an evaluation framework for comparing methods.

Open questions for maintainers:

  • Is anemoi-inference the right home, or would anemoi-models / a new sub-package be preferred?

  • Any operational constraints I should be aware of when designing the API?

Organisation

CNRS

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status
    To be triaged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions