Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

`SA` with vectorized chains crashes when re-ran with changed parameters (similar to #2338)

Open
#2,392 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@tandede is already working on this.

Since Oct 27, 2026.

  • #2393 by @tandede — open

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
65/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
python

Research direction

Start in NumPyro's MCMC and SA implementation, then compare how vectorized chains handle repeated runs with changed model parameters against the related HMC issue #2338 and discussion in #2339. Reproduce the supplied example and trace the vmap argument shape on the second mcmc.run; done when both runs complete with the changed parameter and vectorized chains.

Written by the indexing model from the issue text.

Description

bug
Description

When using the SA sampler with chain_method="vectorized", multiple runs with the same MCMC instance lead to a vmap error that crashes the run:
ValueError: vmap was requested to map its argument along axis 0, which implies that its rank should be at least 1, but is only 0 (its shape is ())
SA shows the same behavior as HMC in #2338, likely also with a similar cause (see discussion of #2339).

Minimal Example
from jax import random

import numpyro
import numpyro.distributions as dist
from numpyro.infer import MCMC, SA


def model_dynamic_param(mean):
    numpyro.sample("x", dist.Normal(mean, 1).expand([2]))


kernel = SA(model_dynamic_param)
mcmc = MCMC(
    kernel, num_warmup=100, num_samples=100, num_chains=2, chain_method="vectorized"
)

mcmc.run(random.key(0), 0)
# different parameter, second run crashes
mcmc.run(random.key(0), 10)
Dominant language
Python
Stars
2.8k
Forks
338
Avg merge
2d 8h
Merged PRs (30d)
67

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from pyro-ppl/numpyro

All issues in pyro-ppl/numpyro

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.