To understand the significance of 3.0, one must look at the evolution of the AutoGuide class hierarchy in libraries like Pyro/NumPyro.
# 1. Define Model def model(data): # Latent variables with constraints weight = numpyro.sample("weight", dist.Normal(0., 1.)) sigma = numpyro.sample("sigma", dist.Exponential(1.)) # Must be positive with numpyro.plate("N", len(data)): numpyro.sample("obs", dist.Normal(weight, sigma), obs=data) autoguide 3.0
AutoGuide 3.0 refers to the current generation of automatic guide generation utilities in probabilistic programming libraries. Unlike its predecessors, which relied heavily on simple mean-field approximations or distinct delta distributions, Version 3.0 emphasizes Structured Automatic Variational Inference . It integrates Normalizing Flows, Automatic Delta transformations, and independent Gaussian mixtures to provide "black-box" inference that preserves the dependencies and support constraints of complex posterior distributions. To understand the significance of 3
# 3. Run Inference svi = SVI(model, guide, numpyro.optim.Adam(step_size=0.01), Trace_ELBO()) svi.run(random.PRNGKey(0), 1000, data=my_data) Unlike its predecessors, which relied heavily on simple
AutoGuide 3.0 introduces better compatibility with discrete latent variables, a historically difficult area for variational inference.
represents a shift from "generic variational inference" to "robust probabilistic engine."
For complex, multi-modal posteriors, 3.0 integrates Normalizing Flows.