Repository navigation
hazards: SLaM MGE NNLS capture for PyAutoArray#571 - #307
Merged
Merged
Conversation
New scripts/imaging/hazards/mge_nnls_capture.py records the exact (curvature_reg_matrix, data_vector) the JAX likelihood passes to reconstruction_positive_only_from for the SLaM source_lp[1] MGE model (60 linear columns) at 48 seeded near-truth vectors, and scores the Jacobi-preconditioned PDIP solve at caps 50/200 against fnnls_cholesky. Result: 14/48 hit the 50-iteration cap with wrong log-likelihoods, 5/48 never converge in 200. Writes the per-vector summary JSON and an 8-system compressed .npz fixture (158 KB) for the PyAutoArray regression test. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
mge_nnls_capture.py now records what the library's own JAX solve reports (stats converged / iterations / preconditioning, surfaced by the PyAutoArray#571 fix) and takes --label for a summary-only re-run. Against the fixed library (mapper-less inversions use the raw-forward PDIP mode) the 48 SLaM source_lp[1] vectors give 0/48 unconverged solves (16-19 iterations) and a JAX vs NumPy log-likelihood difference of at most 5.6e-7. Previously 14/48 were wrong. Both summaries are described in the hazards README. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WAqZd1NiPsVYPSAP8tX4YL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Capture script (
scripts/imaging/hazards/mge_nnls_capture.py) for the failing (Q, q) systems behind PyAutoArray#571: the SLaMsource_lp[1]MGE model evaluated at 48 near-truth parameter vectors, recording the JAX PDIP convergence per system alongside the NumPyfnnls_choleskyreference.results/.../nnls_capture_slam_hst_v2026.8.17.1.json): 14/48 unconverged at the library'smax_iter=50...._postfix.json, run against the fixed PyAutoArray branch): 0/48 unconverged, max |logL_jax - logL_numpy| = 5.6e-7..npzfixture (8 SLaM systems) is copied into PyAutoArray's test tree as the regression fixture.Depends on: PyAutoLabs/PyAutoArray#572 (this repo's CI checks out PyAutoArray main, so the post-fix capture only reproduces once that PR is merged; opened as a draft until then). The script's module-level imports exist on PyAutoArray main and the
AUTOLENS_PROFILING_SMOKE=1exit precedes all fix-only usage;ruff check,ruff format --checkandbuild_readme.py --checkpass locally.Heart RED development override
Heart is RED at ship time for reasons unrelated to this branch. Exact reasons from
pyauto-heart readinesson 2026-09-24:release validation FAILED (stage integrate)workspace validation not passing (4 failed, cloud#35579888156: autolens notebooks/cluster/modeling.ipynb, autolens notebooks/weak/a2744.ipynb, autolens scripts/cluster/modeling.py, +1 more)manifest drift: hub organism blurb (organs present) — 7 mismatch(es) vs PyAutoMind/repos.yamlBranch gates passed: full suite 1681 passed; regression fixture green; capture 0/48; pins ≤ 2.5e-11. Human authorisation, given live in the session in reply to the override request naming #571: "I authorise you to continue". Permits commit/push/PR-open only; merge requires a separate
/prmwith green checks. This branch does not repair Heart.🤖 Generated with Claude Code
https://claude.ai/code/session_01WAqZd1NiPsVYPSAP8tX4YL