How can I do forwards (ancestral) sampling from unconditional joint ("prior")?

How can I best draw multiple ancestral samples?
Currently I do this:

nsamples = 5
data_list = []
with numpyro.handlers.seed(rng_seed=0):
  for i in range(nsamples):
    out = model(hparams)
    data_list.append(out)