aesara-devs / aeppl

Tools for an Aesara-based PPL.
https://aeppl.readthedocs.io
MIT License
64 stars 21 forks source link

Move the `DefaultTransform` logic to AeMCMC #201

Open rlouf opened 1 year ago

rlouf commented 1 year ago

The transformations that should be applied are sampler-specific, so automation should not happen in AePPL.

brandonwillard commented 1 year ago

Is the basic idea that we should generate log-probabilities with AePPL and apply the transforms to those graphs using AeMCMC, instead of doing all that together in AePPL?

rlouf commented 1 year ago

Yes. AeMCMC would transform the graph and specify the variables to condition on. But that might only make sense when AePPL is able to condition on transformed variables e.g. at.exp(x_rv) directly, which it should be able to do regardless.

It would make sense to eventually have a separate library that contains the rewrite engine based on miniKanren and the mathematical relations that both AePPL and AeMCMC need to respectively build a logprob graph and build a sampler graph.