Markov Chain Monte Carlo methods suffer from several issues among which:

  • Getting MCMC to work out of the box is hard;
  • Current frameworks are not built for production;
  • Hard to express models in a PPL-friendly way;
  • No easy-to-use software to cover most common use cases (Bambi);

It would be rather nice to have a tool like

import aesara.tensor as at
import aemcmc
import daeploy
 
srng = at.random.RandomStream(0)
 
mu_rv = srng.normal(0, 1)
s_rv = srng.halfnormal(1.)
Y_t = srng.normal(0, s_rv)
 
# samples locally
results = aemcmc.sample(
    {Y_t: data},
    num_warmup=1000,
    num_samples=1000
)
 
# samples automatically, on the cloud
results = deploy.sample(
    {Y_t: data},
    num_warmup=1000,
    num_samples=1000
)