Skip to content

CP-4 / Phase 8A: slogdet vs cholesky A/B driver + RAL results — FAIL as pre-registered - #158

Merged
Jammy2211 merged 6 commits into
mainfrom
feature/cp4-slogdet-ab
Aug 24, 2026
Merged

CP-4 / Phase 8A: slogdet vs cholesky A/B driver + RAL results — FAIL as pre-registered#158
Jammy2211 merged 6 commits into
mainfrom
feature/cp4-slogdet-ab

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Summary

  • Adds the Phase 8A / CP-4 A/B driver scripts/misc/searches/slogdet_ab.py + A100/CPU sbatch scripts (prepared 2026-08-23, run overnight on RAL: 338808 A100 29 min, 338807 CPU 5 h 37 m).
  • Lands the verdict JSONs, per-draw npz and draw sets under results/notes/inference/phase_08_regularization/slogdet_ab/, plus RESULTS.md, a DECISIONS.md record and PROGRAMME.md row/§9 updates.

Verdict

cell tier chol NaN → slogdet NaN rescued / regressed grad non-finite runtime result
knn A100 / CPU 0 → 0 128 → 128 (both arms) 1.03× / 2.5× VOID — stressor never walls
delaunay_adapt_split A100 90 → 32 58 / 0 192 → 160 1.03× FAIL (3 of 4 criteria)
delaunay_adapt_split CPU 73 → 20 53 / 0 180 → 151 3.74× FAIL (4 of 4)

slogdet is a partial, zero-regression softener on GPU, not a fix: NaN-under-both draws remain, λ-transect gradients stay non-finite, and the two arms disagree by up to 9,619 nats (A100) in the marginal band. Not recommended as the gradient-work default; Phase 8B (log-coordinate stepping) promoted.

Notes

🤖 Generated with Claude Code

https://claude.ai/code/session_01EDABYoH6giHXhFJUks8yd6

Jammy2211 and others added 4 commits August 23, 2026 13:07
…ot run)

Prepares the pre-registered Phase 8A experiment: does the opt-in
Settings(log_det_method="slogdet") from PyAutoArray#391 remove the
free-AdaptSplit NaN wall without moving the target?

Pre-registered pass criteria, stated verbatim in every header:
  1. zero slogdet NaNs on the replay set
  2. value equality within float tolerance on PD points
  3. finite gradients
  4. runtime within 2x

Two findings the design had to absorb:

* THERE ARE NO RECORDED REJECTED DRAWS. The pre-registration says "replay
  the recorded rejected draws"; nothing in this repo persists a parameter
  vector at the moment a likelihood NaN'd (hazard records are probe grids,
  the 335003-5 harvest is counters, PyAutoFit's search_internal is deleted
  on completion). The driver therefore has a harvest stage that generates
  the replay set once and writes it to disk, so later phases replay the
  same draws instead of re-deriving their own.

* THE knn CELL IS NOT WHERE THE WALL IS. The pre-registration names the
  free-AdaptSplit stressor as knn, but #117 records the KNN mesh's
  high-coefficient region as a finite over-regularized floor, while the
  NaN wall is the Delaunay mesh with the same free AdaptSplit reg — a
  pairing that had no model_type. Registered here as
  delaunay_adapt_split (diagnostic cell, not a recommendation); both
  sbatch scripts run both cells.

Design notes:
- _setup.build_ab_for_cell builds ONE dataset/model/AdaptImages and hands
  them to both analyses, so the arms differ in exactly one string. The
  artifact hashes the target block with log_det_method removed and asserts
  the two arms share that hash.
- A cholesky arm with zero NaNs is recorded as VOID, not as four vacuous
  passes (the CPU tier has already measured zero value-NaN lane-steps).
- Criteria 1 and 3 are scored on the treatment alone as registered; an
  `attribution` block records how the control did on the same draws.
- Value equality is split into clean_pd and a marginal_band, because a
  laptop probe shows the arms agreeing to ~4e-6 away from the wall and
  separating by O(0.1) nats in a band just before the Cholesky fails.

Not run, not submitted. ruff check / ruff format --check clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019s6eAYCjAvn7tRNetAFadP
…ID, Delaunay partial rescue, CPU 3.7x

RAL 338808 (A100) + 338807 (CPU) harvested 2026-08-24. Verdict JSONs,
per-draw npz and draw sets under phase_08_regularization/slogdet_ab/.
slogdet: 58/90 and 53/73 NaNs rescued with zero regressions, but NaN-under-
both remain, transect gradients non-finite, marginal-band delta up to 9,619
nats on A100, CPU runtime 3.74x. Not the gradient-work default; 8B promoted.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EDABYoH6giHXhFJUks8yd6
Jammy2211 and others added 2 commits August 24, 2026 14:47
@Jammy2211
Jammy2211 merged commit d715f17 into main Aug 24, 2026
1 check passed
@Jammy2211
Jammy2211 deleted the feature/cp4-slogdet-ab branch August 24, 2026 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant