PyMC v6.0.1 Release Notes

Release Date: 2026-05-20 // 29 days ago

Previous changes from v6.0.0

  • What's Changed

    See the announcement post for an overview of what's new in PyMC 6.0.

    Major Changes 🛠

    • 🚀 Depend on PyTensor 3.0 major release by @ricardoV94 in #8199

      • Default backend is now numba
      • set pytensor.config.linker = "cvm" to return to the old default.
      • Several imports have changed location and already deprecated functions were removed
      • Low level changes that shouldn't impact most users:
      • Autodiff L_op and R_op methods are now deprecated in favor of pull_back and push_forward
      • test_value machinery is deprecated
      • low-level random API changed
    • PyMC is now safely pip install-able

    • 0️⃣ Make nutpie the default nuts sampler (if installed) by @ricardoV94 in #8248

      • pip install pymc[nutpie] is now available
    • 👉 Use arviz 1.0 by @aloctavodia in #8019

      • arviz.InferenceData replaced by xarray.DataTree
      • plot_trace replaced by plot_trace_dist (although plot_rank_dist is recommended instead)
      • default credible interval changed from 0.94 highest-density interval to 0.89 equal-tailed interval
      • InferenceData.extend replaced by DataTree.update
      • See the full migration guide for more details
    • 👍 Allow samplers to choose default number of tuning steps by @ricardoV94 in #8289

      • Default pymc nuts sampler remains at 1000 tuning steps. Nutpie defaults to 400. Set tune explicitly to control it.
    • Change sample_posterior_predictive API wrt to volatility by @ricardoV94 in #8209

      • Introduce sample_vars and freeze_vars argument to explicitly control which variables are resampled and which are reused from trace
      • Variables that are deemed "volatile" because they depend on data that has changed or variables being sampled will issue a warning instead of being resampled by default. Users should assign these variables to either sample_vars or freeze_vars to suppress the warning.
      • var_names has no effect on sampling semantics and only controls what variables are saved in the trace.
      • See docstrings for detailed examples.
    • Remove deprecated samples argument in sample_prior_predictive by @williambdean in #8204

    • ✂ Remove experimental warning from dims module by @ricardoV94 in #8137

    • ✂ Remove several functions and objects from PyMC root namespace by @ricardoV94 in #6973

    🆕 New Features 🎉

    🛠 Bugfixes 🪲

    • Validate coordinate and variables don't have the same names by @Chirag3841 in #8093

    📚 Documentation 📖

    🚧 Maintenance 🔧

    🆕 New Contributors

    Full Changelog : v5.28.0...v6.0.0