From 17db37e1cc4622b911740b0b89d5b703afead25d Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Mon, 21 Sep 2026 17:58:23 -0700 Subject: [PATCH] feat(voices-seat): ship lv-mccarthy (checkpoint-300) as the fourth author voice Shipped on the operator's standing authorisation, "ship it if the gate passes". The gate design of record for this line -- the operator's own v2 rule, ratified 2026-09-15 -- passes on all three axes: VOICE +0.177 delta_cb at 3.2x the pairwise floor, the BEST arm of five, and +0.128 at 2.8x on the pre-registered punctuation-stripped secondary read, so ~3/4 of the gain is words rather than marks. Closed 60.8% of the reachable span on an axis deliberately made harder than Bronte's or Hemingway's. NOT COPIED 0.12 hit-rate against HELD-OUT McCARTHY'S OWN 0.12 -- 1.0x the author -- with a longest verbatim run of 10 words against the 12 genuinely unseen McCarthy shares with the train split by coincidence. All 31 matches READ: stock grammar, name-shaped hits are the renamed inventions, nothing protectable. This matters: McCarthy is in copyright with a living estate. NO DAMAGE ran-on +0.12 against the 0.200 floor, 40% headroom, and the measured minimum across the five-arm ladder. ckpt300 over ckpt900, the eval-loss minimum: the two-epoch recipe is now 0 for 3, and this time the curve was CONFIDENT and wrong -- ckpt900 is the minimum and ckpt300 sits +15.8x the median neighbour jitter above it, yet ckpt300 wins every axis that resolves (3.2x vs 1.2x voice margin, 2.7x tighter seed spread, memorisation 1.0x the author vs 1.8x, ran-on 0.13 vs 0.28). On this schedule read the axes, not the curve. THE COST IS REAL AND IS WRITTEN INTO THE COMPOSE, THE ADAPTER README AND THE MEMORY RECORD RATHER THAN GLOSSED. In-band is 0.65 against base's 0.89 and on-beat 0.42 against 0.71 -- 35% of generations miss the requested 90-140 word band against base's 11%. Axis C is ran-on only and is structurally blind to this; that blindness was identified and written down before these numbers existed. No checkpoint choice fixes it: every adapted arm is 33-48% out-of-band and ran-on is non-monotonic in epoch. If a caller depends on a word budget, expect one generation in three to miss it, and the fix is a retrain targeting length rather than a different checkpoint. Rollback is one line and 0.003 s: drop the --lora-modules entry, or POST /v1/unload_lora_adapter. The other three voices are untouched. --- stacks/voices-seat/compose.yaml | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/stacks/voices-seat/compose.yaml b/stacks/voices-seat/compose.yaml index cd70d1b..f3d1715 100644 --- a/stacks/voices-seat/compose.yaml +++ b/stacks/voices-seat/compose.yaml @@ -85,6 +85,9 @@ services: - auto - --enable-prefix-caching - --enable-lora + # ⚠ This is the max LoRAs in a single BATCH, not the number registered — 4 adapters are + # listed below and that sits exactly at the default. A FIFTH voice does not need a bump to + # be registered, but it will queue rather than batch alongside the other four. - --max-loras - "${VOICES_MAX_LORAS:-4}" - --max-lora-rank @@ -141,6 +144,46 @@ services: # scripts/hemingway-corpus/GATE-PREREG.md (pre-registered before any generation), # persistent-memory.d/2026-09-17-lv-hemingway-gate.md - lv-hemingway=/adapters/lv-hemingway-4b-v1 + # lv-mccarthy: checkpoint-300 (epoch 0.652), NOT the loss minimum at step 900. + # ⭐ The two-epoch recipe is now 0 for 3, and this time the loss curve was CONFIDENT and + # wrong: ckpt900 is the minimum and ckpt300 sits +15.8x the median neighbour jitter above + # it, yet ckpt300 wins every axis that resolves — 3.2x vs 1.2x voice margin, 2.7x tighter + # seed spread, memorisation 1.0x the author's rate vs 1.8x, ran-on 0.13 vs 0.28. + # + # VOICE ✅ +0.177 delta_cb at 3.2x the pairwise floor — the BEST arm of five, on both the + # primary read and the pre-registered punctuation-stripped secondary (+0.128 at 2.8x), so + # ~3/4 of the gain is words rather than marks. Closed 60.8% of the reachable span. + # ⚠ This corpus's voice axis is DELIBERATELY harder than Brontë's or Hemingway's: the + # `mccarthy` register names its own punctuation tics and the eval drives the base control + # with the same prompt, so the adapter earns no delta for "emit no quotation marks". + # + # NOT COPIED ✅ THE CLEANEST SAFETY RESULT IN THIS LINE. 0.12 hit-rate against HELD-OUT + # McCARTHY'S OWN 0.12 — indistinguishable from the author — and its longest verbatim run + # (10 words) is SHORTER than the one genuinely unseen McCarthy shares with the train split + # by coincidence (12). All 31 matched runs were READ: stock grammar in the commonest words + # ("looked at the wolf and he looked at the boy"), and the name-shaped hits are the RENAMED + # invented names. Nothing protectable. McCarthy is in copyright with a LIVING ESTATE. + # ⚠ The base-unadapted control is defective and its 0.00 is unearned — base writes summary + # and cannot collide with a register it does not imitate. Against base this reads as a 12x + # red flag; against the author it is 1.0x. Use the author, not base. + # + # ⚠⚠ THE COST, AND THE GATE'S RULE IS BLIND TO IT. Axis C is ran-on only (ratified + # 2026-09-15 because the carrier maxes the other terms) and this adapter passes it with 40% + # headroom — but IN-BAND IS 0.65 AGAINST BASE'S 0.89 and on-beat 0.42 against 0.71. + # **35% of its generations miss the requested 90-140 word band, against base's 11%.** + # Base is GOOD at length here, so the adapter measurably makes direction-following worse. + # ⚠ No checkpoint choice fixes this — every adapted arm is 33-48% out-of-band and ran-on is + # non-monotonic in epoch (0.38 -> 0.13 -> 0.20 -> 0.28); ckpt300 is the measured minimum. + # The fix, if the cost bites, is a retrain targeting length, not a different checkpoint. + # IF A CALLER DEPENDS ON A WORD BUDGET, EXPECT ONE GENERATION IN THREE TO MISS IT. + # Unload is 0.003 s and one compose line. + # + # See /adapters/lv-mccarthy-4b-v1/README.md, + # scripts/mccarthy-corpus/GATE-PREREG.md (pre-registered before any generation, plus three + # dated amendments — axis C as first frozen was ARITHMETICALLY UNSATISFIABLE), + # scripts/mccarthy-corpus/gate-results/ (raw output, all five arms), + # persistent-memory.d/2026-09-21-lv-mccarthy-gate.md + - lv-mccarthy=/adapters/lv-mccarthy-4b-v1 deploy: resources: reservations: