Support for adjoint sensitivities with `SciMLStructures` in ODE problems

Hi all,

In complex geoscientific models, it’s common to have many simulation parameters that need to be passed into the ODE function. At the same time, we often want to compute gradients with respect to some of these parameters. SciMLStructures.jl is designed to make this workflow easier by organizing parameters and enabling efficient differentiation.

From what I’ve tested and seen in the codebase of SciMLSensitivity.jl, adjoint sensitivity analysis currently works with GaussAdjoint in combination with EnzymeVJP when using SciMLStructures, following a minor fix. However, other adjoint methods like InterpolatingAdjoint or QuadratureAdjoint do not appear to be supported at the moment.

Having support for these additional adjoint methods would be extremely valuable.

I have a few questions:

  • Is there any plan to support these other adjoint methods with SciMLStructures?
  • If so, is it something that’s on the roadmap for the coming months?

Thanks in advance, and many thanks to the SciML contributors for all the great tooling!

2 Likes

Yes its planned, I just didnt get to it before JuliaCon. Its not hard, someone just has to put the canonicalize calls in the orher adjoints and then test that every method does it, but it just fell behind. I hope it doesnt take more than a month to get that out there.

Great, thank you for the clarification!
I’m really looking forward to trying out the different adjoint methods once they’re available.