memory: snapshot — McCarthy and Krakauer D1 built, Krakauer's quotation scope is an open operator call
This commit is contained in:
+36
-1
@@ -1,6 +1,6 @@
|
||||
# Persistent memory — eshpfi-management
|
||||
|
||||
_Last updated: 2026-09-17 ~03:40 PT (lv-hemingway SHIPPED on ckpt850 — the line's strongest voice pass; the axis-B negative control was found to be the wrong one and replaced with the author's own self-similarity; the floor rule went pairwise, which retroactively passes lv-bronte.)_
|
||||
_Last updated: 2026-09-17 ~08:30 PT (lv-hemingway SHIPPED; the floor rule went pairwise, which retroactively passes lv-bronte; McCarthy and Krakauer D1 corpora BUILT — Krakauer's quoted-material scope is an open operator call.)_
|
||||
|
||||
> **Always check for `/tmp/infra-ops-handoff.md`** — if it exists and its
|
||||
> `Written:` stamp is under **8 hours** old, read it (it carries the in-flight
|
||||
@@ -133,6 +133,36 @@ gap vs a 0.113 floor) so the tiebreak fell to the resolving axes, and 850 wins a
|
||||
(2.3x tighter spread, lower memorisation, less ran-on, half an epoch less overfit).
|
||||
**The two-epoch recipe is now 0 for 2.** Read the curve; prefer the earlier tied checkpoint.
|
||||
|
||||
### BUILT — `lv-mccarthy` and `lv-krakauer` D1 corpora (operator: "both", 2026-09-17)
|
||||
|
||||
| corpus | units | words | notes |
|
||||
|---|---|---|---|
|
||||
| **mccarthy** | 167 | **584,756** | `~/mccarthy-corpus`, 6 novels, both guards PASS |
|
||||
| **krakauer** | 126 | **422,880** | `~/krakauer-corpus`, 4 works, ALL NON-FICTION |
|
||||
|
||||
Shared blocker solved first: `scripts/r49-corpus/split_units.py` picks a unit mode by SIZE
|
||||
not count (the inherited "most units" rule gave Cities of the Plain 4 units of 22,312w — the
|
||||
book's PARTS), and falls back to paragraph-block sections for works with no divisions.
|
||||
→ `persistent-memory.d/2026-09-17-mccarthy-krakauer-d1.md`
|
||||
|
||||
⚠ **McCarthy's voice IS missing punctuation** — 0.0 quote marks/10k against Hemingway's 838,
|
||||
and `dont`/`aint`/`wont`. `repair_typography.py` MUST NOT be run on that corpus; the builder
|
||||
runs no normalisation and asserts the quote density so a future change fails the build.
|
||||
⚠ **And delta_cb is a char-bigram metric**, so an adapter that learns only "emit no quotes"
|
||||
will pass the voice axis without learning a sentence. **Pre-register a punctuation-normalised
|
||||
secondary read before gating lv-mccarthy.**
|
||||
|
||||
### ⚠ OPEN, OPERATOR'S CALL — is lv-krakauer's corpus trainable at all?
|
||||
|
||||
An **unmeasured and unmeasurable** fraction of it is other people's prose: McCandless's
|
||||
journals, Tillman's diaries, court transcripts, depositions, Mormon documents, paragraphs of
|
||||
Jack London and Stegner. Print set those as indented/italic block quotes; **the extraction
|
||||
lost both**, so they are ordinary paragraphs now. Only **52 words** were removable (epigraphs
|
||||
with a surviving attribution line) — 0.01%, and that number is NOT the answer: the method
|
||||
would report 0.0% for a book made entirely of block quotes. Same error class as excluding
|
||||
*The Torrents of Spring* from Hemingway, distributed rather than concentrated. Scope is the
|
||||
operator's call exactly as fiction-only was. **Nothing is blocked on it but D2.**
|
||||
|
||||
### OPEN for the operator — two measured defects, neither acted on
|
||||
|
||||
1. **Hemingway's TRAIN beats carry the source-name leak: 70 of 7,094 (0.96%)** (Santiago x16,
|
||||
@@ -177,6 +207,11 @@ before this session began. ⚠ **Do NOT commit them** — untouched and delibera
|
||||
|
||||
## Recent decisions
|
||||
|
||||
- `[2026-09-17]` ⭐⭐ **A unit splitter must choose by SIZE, not by count — the inherited rule silently produced 22,000-word "chapters".** `scripts/r49-corpus/split_units.py`: a marker mode qualifies only if its median unit is inside [600, 12000] AND no unit holds half the work; among qualifying modes PRIORITY breaks the tie (contents > chapter-word > roman > bare-numeral > caps-title), and paragraph-block sections are the fallback for works with no divisions. ⭐ **Both rules exist because a control caught them**: scoring by "median closest to target" chose `caps-title` (6 units, one holding **97%** of the book) over True at First Light's real 20 chapters, because a median cannot see that distribution and a max bound can. Positive control: 8/10 Hemingway works reproduce the shipped mode and count exactly. Negative control: 40,000 words with no blank lines → 1 unit, refuses to fabricate divisions. Commit `705fa3a`.
|
||||
- `[2026-09-17]` ⭐ **lv-mccarthy D1 built — 167 units, 584,756 words — and the whole job was protecting a style that reads as damage.** 0.0 quote marks per 10k (Hemingway 838), `dont`/`aint`/`wont`. The builder runs NO typography normalisation and asserts the quote density afterwards. Two truncated catalogue rows dropped for complete mobi siblings; all 15 containment pairs measured (worst 0.10%); back matter in 4 of 6 works carried the author's name 26 times → 0. ⚠ The back-matter strip runs BEFORE the split here — Blood Meridian and The Crossing end with a dumped TOC of bare roman numerals, the exact shape of a chapter marker. Commit `f3bf3ca`.
|
||||
- `[2026-09-17]` ⭐ **lv-krakauer D1 built — 126 units, 422,880 words — and its name guard caught three defects nothing else would have reported.** Back matter searched only the LAST unit while the apparatus sat in unit 37 of 41; relying on the splitter to drop front matter failed because the ebook TOC sits above the author's note and gave it a `Chapter Thirty-Two` to start on; and **zero was the wrong bar** — 2 survivors are Krakauer writing about his own father in Into the Wild's autobiographical chapters, so the allowance is pinned at 2 with every survivor printed. ⚠ Both strips are windowed in the OPPOSITE direction from McCarthy's, because Krakauer's `ALSO BY`/`Copyright`/`About the Author` sit at 0.0–0.6% of the file. Commit `4be0630`.
|
||||
- `[2026-09-17]` ⚠ **`triage_disposition = 'accepted'` in the Kvasir catalogue does NOT mean the extraction succeeded.** Blood Meridian's epub row holds 1,167 words of a 117,000-word book, The Crossing's 222 of 150,000 — real prose, real titles, accepted. Faulkner's *The Mansion* is 39 words. `near_dup_pairs` holds ONE row in the entire 1,284-work library and is blind to a fragment beside its full sibling. **Word-count every master before trusting a row**, and note that word count alone cannot tell a truncated novel from a legitimately short work.
|
||||
|
||||
- `[2026-09-17]` ⭐⭐⭐ **lv-hemingway SHIPPED (ckpt850) with the line's strongest voice result — and the memorisation control it passed turned out to be the WRONG control.** Voice +0.413 delta_cb at 6.4x the floor, closing 73.8% of the achievable span (lv-bronte closed 48%). ⚠ `memorization_check.py` uses the base-unadapted arm as its negative control, but base writes 18,035 words of summary against the adapted arms' 27,413 of pastiche — **text that does not imitate the register cannot collide with its n-grams**, so a 0.00 there means "different register", not "did not memorise". The right reference is the author himself: **held-out Hemingway against the train split collides at 0.01 while the adapter does at 0.07**, so the comfortable "his plain register makes collisions inevitable" story is FALSE and was refuted rather than assumed. All 19 matched runs were READ: stock dialogue, max **9 words**, no proper noun — shorter than the 10-word run unseen Hemingway shares with the train split by coincidence. ⭐ **A negative control that differs from the candidate in a way correlated with the metric is not a control.** → `persistent-memory.d/2026-09-17-lv-hemingway-gate.md`
|
||||
- `[2026-09-17]` ⭐⭐ **The v2 voice floor is now PAIRWISE, and it retroactively passes lv-bronte.** lv-bronte's ckpt475 shipped as a voice-axis FAILURE at +0.193 against a 0.251 floor contributed entirely by ckpt925 — a third arm nobody was shipping, on one outlier seed. Scored against the arm it was actually compared to the floor is 0.091 and it clears at **2.1x**. The rule was changed **prospectively**, pre-registered for lv-hemingway before any Hemingway number existed, on an argument independent of the answer: the sampling variability of a difference A−B depends on A and B, never on a third arm C. The previous session found the defect and deliberately declined to exploit it; this follows from fixing it. lv-hemingway passes under **both** rules, so its verdict does not lean on the change. Caveats amended append-only in the compose, the NFS README and the gate record. Commits `0bb4938` `2e9b118`.
|
||||
- `[2026-09-17]` ⭐ **The beat-contamination leak IS present in Hemingway — 70 of 7,094 train beats (0.96%), 0 of 200 val.** `scripts/r49-corpus/audit_pairs_sourcenames.py` closes the blind spot `leak_gate.py` has by construction (it reads the corpus and the renamed copies, never the generated beats). Cross-validated on real data: the fixed Brontë pairs return 0 of 3,858 and `pairs-full.CONTAMINATED` returns 15 of 792 = 1.89% with the recorded names. `--filter-out` yields a verified-clean 7,024-pair set in one command; the retrain is the operator's call. **The val split being clean is why the gate could run at all.**
|
||||
|
||||
Reference in New Issue
Block a user