Files
esh-pfi-infrastructure/persistent-memory.d/2026-08-27-mix-specified-in-the-wrong-unit.md
T
vh 98e7d4886a memory: snapshot — run 3 gated DO-NOT-SERVE, run 3c held on a tripped breaker
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.
2026-08-27 07:27:41 -07:00

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.