Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions bibliography/pyautomemory.bib
Original file line number Diff line number Diff line change
Expand Up @@ -16191,3 +16191,48 @@ @misc{Galan2026
url = {https://arxiv.org/abs/2609.00179},
year = {2026}
}

@misc{Lange2023Nautilus,
author = {Lange, Johannes U.},
title = {NAUTILUS: boosting Bayesian importance nested sampling with deep learning},
year = {2023},
archivePrefix = {arXiv},
eprint = {2306.16923},
url = {https://arxiv.org/abs/2306.16923}
}

@misc{Cabezas2024BlackJAX,
author = {Cabezas, Alberto and Corenflos, Adrien and Lao, Junpeng and Louf, Remi and Carnec, Antoine and Chaudhari, Kaustubh and Cohn-Gordon, Reuben and Coullon, Jeremie and Deng, Wei and Duffield, Sam and Duran-Martin, Gerardo and Elantkowski, Marcin and Foreman-Mackey, Dan and Gregori, Michele and Iguaran, Carlos and Kumar, Ravin and Lysy, Martin and Murphy, Kevin and Orduz, Juan Camilo and Patel, Karm and Wang, Xi and Zinkov, Rob},
title = {BlackJAX: Composable Bayesian inference in JAX},
year = {2024},
archivePrefix = {arXiv},
eprint = {2402.10797},
url = {https://arxiv.org/abs/2402.10797}
}

@misc{Buchner2021UltraNest,
author = {Buchner, Johannes},
title = {UltraNest -- a robust, general purpose Bayesian inference engine},
year = {2021},
archivePrefix = {arXiv},
eprint = {2101.09604},
url = {https://arxiv.org/abs/2101.09604}
}

@misc{Karamanis2022PocoMC,
author = {Karamanis, Minas and Nabergoj, David and Beutler, Florian and Peacock, John A. and Seljak, Uros},
title = {pocoMC: A Python package for accelerated Bayesian inference in astronomy and cosmology},
year = {2022},
archivePrefix = {arXiv},
eprint = {2207.05660},
url = {https://arxiv.org/abs/2207.05660}
}

@misc{Hoffman2011NUTS,
author = {Hoffman, Matthew D. and Gelman, Andrew},
title = {The No-U-Turn Sampler: Adaptively Setting Path Lengths in Hamiltonian Monte Carlo},
year = {2011},
archivePrefix = {arXiv},
eprint = {1111.4246},
url = {https://arxiv.org/abs/1111.4246}
}
101 changes: 101 additions & 0 deletions wiki/methods/concepts/sampler-candidate-curation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
---
title: Sampler candidate curation
type: concept
topics: [samplers, literature, inference]
sources:
- Speagle 2020 — dynesty
- Lange 2023 — Nautilus
- Cabezas et al. 2024 — BlackJAX
- Buchner 2021 — UltraNest
- Karamanis et al. 2022 — pocoMC
status: drafted
---

# Sampler candidate curation

## TL;DR

A sampler paper establishes a method and reported experiments, not its suitability
for an untested likelihood. Keep a bounded shortlist with public paper/code
provenance, explicit requirements, a dated integration check and unanswered
benchmark questions. Curate on demand; literature ingestion never submits compute.

## What it is

A candidate is a hypothesis for investigation. This initial selection spans
existing evidence baselines, gradient posterior sampling and two alternative
evidence approaches. It is deliberately non-exhaustive and carries no ranking.

## Why it matters

Posterior sampling, evidence estimation and optimization answer different
questions. Compare only methods that deliver the required output. A library
wrapper, an installed optional dependency and demonstrated scientific performance
are three distinct facts.

## Key results from the literature

- dynesty offers static/dynamic evidence and posterior estimation, making it an
allocation baseline ([[sources-samplers#dynesty]]).
- Nautilus learns proposals for importance nested sampling; published advantages
motivate a test, with unseen-mode coverage still a benchmark question
([[sources-samplers#nautilus-2023]]).
- BlackJAX supplies composable JAX inference; NUTS adapts gradient trajectories.
Gradient compatibility, initialization and chain diagnostics must be checked
([[sources-samplers#blackjax-nuts-2024]],
[[sources-samplers#hoffman-and-gelman-2011-nuts]]).
- UltraNest prioritizes reliable inference for challenging shapes. Repeated-seed
evidence checks would test that promise locally
([[sources-samplers#ultranest-2021]]).
- pocoMC uses flow preconditioning; correlated and multimodal targets motivate
investigating population coverage and training cost
([[sources-samplers#pocomc-2022]]).

The coverage checks and benchmark design above are investigation proposals,
not claims that these papers prove PyAutoFit correctness or speed.

## Dated integration check

On 2026-10-08, PyAutoFit revision
`8bb5f6e8fab809d47f785e9f2ac8289b3e3c9e3e` exported `DynestyStatic`,
`DynestyDynamic`, `Nautilus` and `BlackJAXNUTS` from `autofit/__init__.py`.
The search tree contained no UltraNest or pocoMC wrapper. This was a read-only
source inspection, not an import, install, run or completeness guarantee.
Benchmark status for this shortlist is **not assessed**; consult actual project
evidence separately rather than interpreting this status as “never run.”

## On-demand Memory to Insight handoff

1. For missed literature, reuse Memory's existing harvest:
`python scripts/catch_up.py --scope interests --topic Stats --since YYYY-MM-DD --json`.
Retain its source counts, cutoff, dropped-in-memory count and warnings,
including truncated or unavailable arXiv coverage. Harvest is optional;
a requested named paper can go directly to verification. This bounded
initial survey verified named records directly and did not run a gap-fill.
2. Follow the existing catch-up tier curation and human filing confirmation
when invoking that workflow. Verify the primary record and official code;
deduplicate by DOI/arXiv identity, file compact claim support and canonical
bibliography metadata, then run `make validate`.
3. Prepare an independent public-source-derived candidate JSON for Insight.
Each record has `id`, `name`, `family`, `paper_url`, `code_url`,
`expected_uses`, `limitations`, `integration_status`, `benchmark_status`,
`reviewed_at` and `investigation_prompt`. Use stable kebab-case identifiers,
HTTPS provenance, string-array uses/limitations and an ISO review date.
Investigation prompts request a bounded comparison with output accuracy,
repeated seeds, configuration/version capture and total cost including
compilation or training. They are proposals, not executable orders.
4. Insight owns review/publication of its independent candidate list. Export
no Memory wiki excerpts, private references, archival filenames or local
paths. The public paper and official code must support the published text
without Memory access. Literature records do not set integration or science
acceptance; recheck the actual PyAutoFit roster when refreshing them.

No autonomous scan or schedule is introduced. Any benchmark launch requires the
separate campaign workflow and its authorization.

## See also

- [[nested-sampling]]
- [[hamiltonian-monte-carlo]]
- [[sampler-benchmarks]]
- [Existing catch-up procedure](../../../skills/catch_up/catch_up.md)
3 changes: 3 additions & 0 deletions wiki/methods/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ should use this wiki.

## Samplers

- [[sampler-candidate-curation]] — bounded source-backed shortlist and on-demand
public-provenance handoff to Insight; no scheduled scan.

- [[mcmc-samplers]] — Metropolis-Hastings, ensemble samplers, Eryn.
- [[hamiltonian-monte-carlo]] — NUTS, BlackJAX, NumPyro, Stan; gradients
via JAX.
Expand Down
9 changes: 9 additions & 0 deletions wiki/methods/log.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,12 @@ references became `[[seed-…]]`, and each index gained one *Seed (unverified
imports)* line saying what they are. Promoting an entry means verifying the
paper, adding its canonical key to `../../bibliography/pyautomemory.bib`, and
moving the section into the matching `sources/` page.


## 2026-10-08 — Bounded sampler literature curation

Verified primary public records for dynesty, Nautilus, BlackJAX, NUTS, UltraNest
and pocoMC. Resolved the dynesty source section to existing `Speagle2020`; added
five canonical entries and compact claim support. Added candidate curation and
an on-demand public-provenance Insight handoff using existing catch-up machinery.
Integration is a dated source-roster check; no benchmark verdict, install or run.
97 changes: 87 additions & 10 deletions wiki/methods/sources/samplers.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Sources — samplers
type: sources
topics: [samplers, mcmc, nested-sampling]
status: stub
status: drafted
---

# Sources: samplers
Expand Down Expand Up @@ -78,18 +78,19 @@ hopping, and the libraries that implement them.

## Dynesty

**Canonical BibTeX key:** TODO — ambiguous candidates: `Dynesty`, `Speagle2020`, `dynesty`.
**Reference:** TODO — resolve the paper identity against `bibliography/pyautomemory.bib` and an authoritative public record.
**Concepts:** [[nested-sampling]]
**Canonical BibTeX key:** `Speagle2020`
**Reference:** [arXiv:1904.02180](https://arxiv.org/abs/1904.02180); doi:10.1093/mnras/staa278.
**Concepts:** [[nested-sampling]], [[sampler-candidate-curation]]

**Supports TODO:**
- TODO — not migrated: canonical key is ambiguous, so claim support must be verified after key resolution.
**Supports:**
- Static and dynamic nested sampling estimate posteriors and evidence.
- Dynamic allocation adjusts effort between posterior and evidence estimation.

**Use when TODO:**
- TODO — use only after the canonical key and paper identity are resolved.
**Use when:**
- Explaining dynesty's allocation strategy or choosing an evidence baseline.

**Do not use for TODO:**
- Evidence until the ambiguous canonical key is resolved.
**Do not use for:**
- Assuming a winner on an untested likelihood or current integration status.


## emcee
Expand All @@ -114,3 +115,79 @@ hopping, and the libraries that implement them.
- [[nested-sampling]]
- [[hamiltonian-monte-carlo]]
- [[sources-probabilistic-programming]]

## Nautilus — 2023

**Canonical BibTeX key:** `Lange2023Nautilus`
**Reference:** [arXiv:2306.16923](https://arxiv.org/abs/2306.16923); [official code](https://github.com/johannesulf/nautilus).
**Concepts:** [[sampler-candidate-curation]]

**Supports:**
- Combines importance nested sampling with neural-network regression for posterior and evidence estimation.

**Use when:**
- Evidence and posterior estimation for expensive gradient-free likelihoods.

**Do not use for:**
- A PyAutoFit performance ranking, evidence calibration claim or production acceptance.

## BlackJAX NUTS — 2024

**Canonical BibTeX key:** `Cabezas2024BlackJAX`
**Reference:** [arXiv:2402.10797](https://arxiv.org/abs/2402.10797); [official code](https://github.com/blackjax-devs/blackjax).
**Concepts:** [[sampler-candidate-curation]]

**Supports:**
- Provides composable JAX inference kernels operating on target log densities; the library includes NUTS.

**Use when:**
- Posterior refinement for differentiable JAX targets.

**Do not use for:**
- A PyAutoFit performance ranking, evidence calibration claim or production acceptance.

## UltraNest — 2021

**Canonical BibTeX key:** `Buchner2021UltraNest`
**Reference:** [arXiv:2101.09604](https://arxiv.org/abs/2101.09604); [official code](https://github.com/JohannesBuchner/UltraNest).
**Concepts:** [[sampler-candidate-curation]]

**Supports:**
- Provides parameter estimation and model comparison for non-Gaussian and multimodal spaces, with resumable parallel runs.

**Use when:**
- Independent evidence cross-check for non-Gaussian and multimodal targets.

**Do not use for:**
- A PyAutoFit performance ranking, evidence calibration claim or production acceptance.

## pocoMC — 2022

**Canonical BibTeX key:** `Karamanis2022PocoMC`
**Reference:** [arXiv:2207.05660](https://arxiv.org/abs/2207.05660); [official code](https://github.com/minaskar/pocomc).
**Concepts:** [[sampler-candidate-curation]]

**Supports:**
- Uses normalizing-flow preconditioning for nonlinear and multimodal posterior inference and model comparison.

**Use when:**
- Posterior and evidence investigation for strongly correlated nonlinear targets.

**Do not use for:**
- A PyAutoFit performance ranking, evidence calibration claim or production acceptance.

## Hoffman and Gelman 2011 — NUTS

**Canonical BibTeX key:** `Hoffman2011NUTS`
**Reference:** [arXiv:1111.4246](https://arxiv.org/abs/1111.4246).
**Concepts:** [[hamiltonian-monte-carlo]], [[sampler-candidate-curation]]

**Supports:**
- NUTS chooses HMC trajectory lengths using a U-turn stopping criterion.
- Dual averaging adapts the step size.

**Use when:**
- Explaining the gradient sampler's algorithm, distinct from its BlackJAX implementation.

**Do not use for:**
- An evidence estimator or proof of multimodal coverage.
Loading