Commit Graph
3 Commits
Author SHA1 Message Date
vh 2e9b118e70 lv-bronte: the voice axis passes under the corrected floor rule — amended, not rewritten
lv-bronte shipped 2026-09-17 with a FAILED voice axis written into its compose comment,
its NFS README and its gate record. That verdict no longer stands, and this records the
correction in all three places without deleting what they said.

The floor rule is now pairwise (commit 0bb4938, pre-registered for lv-hemingway before
any Hemingway number existed). Re-scoring the SAME 360 generations, no re-run, no changed
delta_cb:

  ckpt475 (shipped)      +0.193  vs pairwise floor 0.091  -> PASS, 2.1x
  ckpt925 (not shipped)  +0.210  vs its own spread 0.251  -> still fails

As run, the floor was 0.251 for every candidate, contributed entirely by ckpt925's single
outlier seed — a candidate nobody was shipping failed the one that was.

Why this is not a threshold chosen to produce a verdict: the previous session found the
defect, wrote it into this very file, and deliberately declined to act on it. The rule was
changed prospectively on an argument independent of the answer — the sampling variability
of a difference A-B depends on A and B, not on a third arm C. voice_distance.py now prints
both floors and flags disagreement so neither can be quoted without the other.

What changes for a reader: the sensitivity floor is 0.091 rather than 0.251, and "do not
cite lv-bronte as evidence pair-SFT works for this author" is withdrawn. What does not
change: NOT-COPIED and NO-DAMAGE as recorded, ckpt475 over ckpt925 for the same reasons,
and the two-epoch recipe still not transferring to Brontë.

Amendments are append-only in all three artifacts. The on-host compose is unchanged so far
— this edit is comment-only and will ride with the next real deploy rather than triggering
a model reload for a comment.
2026-09-17 02:27:52 -07:00
vh 61840f3131 voices-seat: ship lv-bronte (ckpt475) with its failed voice axis on the record
lv-bronte is live on vllm-voices (fv-ml1 GPU0 :8027) alongside voices-base and
lv-yarros. The seat lists all three; container healthy; GPU0 96092 -> 96090 MiB,
so the adapter cost nothing measurable.

IT DID NOT PASS ITS VOICE GATE, and the artifact says so in three places — this
commit, a comment in the compose file, and a README beside the adapter on NFS —
because an adapter found without its provenance will otherwise be read as a pass.

  VOICE       FAIL  +0.193 delta_cb vs base, against a 0.251 measured noise floor
  NOT COPIED  PASS  8-gram hit-rate 0.00, longest 0 - identical to the control
  NO DAMAGE   PASS  ran-on +0.15 against a 0.400 floor

Shipped on three grounds, none of them that the number was nearly good enough:
it is additive (a named LoRA nobody reaches without asking for it), reversible
(one compose line; hot-unload measures 0.003 s), and clean on the axis that
carries actual risk - verbatim regurgitation of the source, on a public-domain
corpus, measured against a positive control that saturates at 160.

The voice result is UNDERPOWERED rather than absent: it closed 48% of the span
from base to the same-author target and beat the control on every individual
seed. The cause is structural - 81 val pairs against Hemingway's 200, from a
678k-word corpus against 994k - and neither more beats nor more seeds fixes it,
because the floor is a range statistic and ranges widen with n.

ckpt475 over ckpt925: indistinguishable on voice (0.017 apart), but ckpt925 has a
verbatim 8-gram hit where this has none, and is 2.7x less stable seed-to-seed
(0.251 vs 0.092) with a degeneracy probe showing no collapse to explain it.
2026-09-17 01:22:03 -07:00
vh 9b360e477d memory: lv-bronte gated — voice axis fails, ship decision open
Records the full v2 gate result and three findings that outlive the ship call:

1. The effect is UNDERPOWERED, not absent. Both candidates closed 48-52% of the
   achievable span to held-out Bronte and beat base on every individual seed, but
   the gaps sit under the measured floor. Sensitivity floor stated so the negative
   is falsifiable: cannot resolve better than ~0.251 delta_cb at 30 beats x 4 seeds.
   Cause is structural — 81 val pairs against Hemingway's 200, from a 678k-word
   corpus against 994k — and neither more beats nor more seeds fixes it.

2. A DEFECT IN THE v2 RULE. The floor is the largest within-arm spread across ALL
   arms, so adding a third noisier arm raised the bar that failed the clean one.
   Run as a two-arm gate the floor would have been 0.092 and the candidate would
   have cleared at 2.1x. Deliberately NOT exploited — choosing the floor that
   passes your preferred answer is the failure pre-registration exists to prevent —
   but the rule should state whether the floor spans the compared pair or every arm
   present. As written, a verdict depends on which other arms you happened to run.

3. The two-epochs-on-a-three-epoch-schedule recipe did NOT transfer. Bronte's two
   minima are 0.0022 apart against a 0.0046 jitter; epoch 2 buys nothing over epoch
   1. The epoch-3 collapse (+0.075, ~16x jitter) is the only robust part.

The outlier seed was diagnosed rather than waved away: a repeat-5gram degeneracy
probe is uniform at 0.0078-0.0102 across every seed and both arms, so it is genuine
delta_cb variance and the floor stands.
2026-09-17 01:15:29 -07:00