Thanks for the feedback, especially the one-liner! I tried not explicitly passing samples:
trace_mf = pm.sample_approx(mean_field)
mf_pp = pm.sample_posterior_predictive(trace_mf, model=amen_model)
and the results was
mf_pp['y_likelihood'].shape = (100, 50). I suspect it’s basically giving the ppc for the last minibatch sample, since I’d want (100, 16770), but that’s just a guess on my part.