Run 3 trained, gated and dispositioned do-not-serve on a measured 44pp self-harm guardrail regression that its own preregistered rule passed -- a pooled preserve-list test cannot see a single-axis collapse. Run 3c (lr 20x cut, single variable) launched, killed by an Anaheim power-breaker trip at step 80, relaunched, then stopped by the operator at step 22 pending a weekend power triage. Also captured: the corpus mix was specified in a unit the optimiser never sees (45.8% dialogue by context, 24.2% by loss); the dose-response says benefit and damage are one direction in weight space, so the merge-back measures the problem rather than fixing it; four guests including the storage SPOF had onboot unset and never came back from the outage, now fixed with dependency ordering; and a transport failure that enters a measurement as a value looks like whatever you hoped to find -- which found a live defect in another agent's instrument an hour after it was reported. Auto-archived 8 entries to archival-memory.md (Recent decisions: 8, Tried and abandoned: 0); 4 held back on open deferred-work pointers.
46 lines
2.1 KiB
Markdown
46 lines
2.1 KiB
Markdown
# `[2026-08-27]` The corpus mix was specified in a unit the optimiser never sees
|
|
|
|
Run 3's recipe specified its mix as **context shares** — dialogue 45.8% / kvasir 38.0% /
|
|
fireball 16.2% — and was approved, built and trained on that basis.
|
|
|
|
**As TRAINED the gradient was 24.2% dialogue and 75.8% prose.**
|
|
|
|
effective_mix, adapter provenance.json, LOSS shares
|
|
kvasir 0.5310
|
|
fireball 0.2271 prose 75.81%
|
|
c2-logs 0.0861
|
|
cwm 0.0763
|
|
bluemoon 0.0796 dialogue 24.20%
|
|
|
|
Not a reinterpretation — **the trainer wrote both numbers into the same manifest and nobody
|
|
read the second one**, across three runs.
|
|
|
|
## The mechanic
|
|
|
|
F2/F3/F4 mask loss off dialogue turns while leaving their context in place. So **the harder
|
|
the dialogue filters work, the more prose-dominant the gradient becomes.** Every mix ruling
|
|
was made in the wrong unit.
|
|
|
|
## Why it survived review
|
|
|
|
infra-ops set kvasir's subset to 38.0% *of context* because that is the unit the recipe stated
|
|
a share in, and because fireball's 12% landed exactly on context — which was read as
|
|
confirmation the recipe meant context throughout. It did. **The specification was in the wrong
|
|
unit and it was matched faithfully**, which is a worse failure mode than an arithmetic error
|
|
because every check agreed with it.
|
|
|
|
## The fix — a RENAME, not a reordering
|
|
|
|
Harness commit `dd5a12e` (eitri-smithy). Both numbers were already printed, adjacent, with
|
|
context first — and that was enough for three runs of people reading the wrong one. Demoting
|
|
context would not have stopped a fourth.
|
|
|
|
[mix] LOSS share is what the optimiser sees. ctx share is a memory budget, NOT the mix.
|
|
[mix] kvasir loss 0.5310 [memory budget: ctx 0.3800]
|
|
|
|
Calling it a *memory budget* makes "the mix is 38% kvasir" a sentence someone has to actively
|
|
mis-say. Found by brokkr-smithy-dev's CPU arm after the run-3 gate.
|
|
|
|
See also [[2026-08-27-dose-response-entanglement]] — the wedge this finding produced was
|
|
consistent with four separate failures and was still not the whole story.
|