def METHOD_NAME(self, rng_key, params, args, kwargs):
    rng_key, guide_rng_key = random.split(rng_key)
    # use return_sites='' as a special signal to return all sites
    guide = substitute(self.guide, params)
    samples = _predictive(
        guide_rng_key,
        guide,
        {},
        self._batch_shape,
        return_sites="",
        parallel=self.parallel,
        model_args=args,
        model_kwargs=kwargs,
    )
    return samples