You can use any inference technique you like. Like pm.find_MAP, pm.sample, or variational inference. I don’t think using pm.sample_posterior_predictive (same as sample_ppc) without first calling a inference method makes sense. You can use pm.sample_posterior_predictive once you have a trace or MAP estimates.