memory: snapshot — run 3 corpus built and held on a megamix containment defect
Run 2 is finished, gated FAIL, and serving on the gateway at operator request. Run 3's corpus was built to brokkr's first recipe and held before any GPU spend: creative-writing-multiturn is a DECLARED MEGAMIX containing bluemoon, PIPPA, LimaRP and stheno, and the remix promoted creative-writing AND bluemoon -- the two roots that overlap, at median jaccard 0.873. Containment, not overlap. Dedup direction reversed so the primary source survives rather than the copy inside the bag: bluemoon 67 -> 126 conversations and 38.6% of loss signal, the largest contributor. Wholly-human share up, megamix share down, total context unchanged at 12.49M so the operator's settled mix arithmetic survived. Two structural findings recorded because they outlive this recipe: F1 'excise PIPPA' removes the ROOT and not the MATERIAL (F2's 250-word floor does that work, since PIPPA turns cannot exceed 123 words wherever they live), and LimaRP and stheno remain unchecked against any other root. Also records the correction I published wrong twice: run 2 was never unstable. All 46 flags were too_short, the collapse guards fired zero times, and it is the left tail of a length distribution -- not new to run 2 either, so it is a property of the recipe and a further base swap will not fix it.
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
# `[2026-08-26]` Run 3 corpus built, then held — and the megamix containment defect it exposed
|
||||
|
||||
Run 3's corpus was built to brokkr's `SFT-RECIPE-run3.md` (`f6c0589`), a blocker
|
||||
was found before any GPU spend, and **brokkr is now redoing the recipe**. Nothing
|
||||
launched. The build artifacts survive and are re-parameterisable.
|
||||
|
||||
## ⚠ THE FINDING: `creative-writing-multiturn` is a MEGAMIX containing our other roots
|
||||
|
||||
Its own Hoard card says so — `hoard/datasets/creative-writing-multiturn/dataset.yaml`,
|
||||
`archive_provenance_note`:
|
||||
|
||||
> *"Dampfinchen/Creative_Writing_Multiturn — 2026 curated ~4.6k high-turn
|
||||
> creative-writing/RP **megamix (bluemoon, LimaRP/PIPPA, stheno, gutenberg-dpo
|
||||
> chosen, VellumK2 subset)**"*
|
||||
|
||||
**It is not a sibling root. It is a bag holding several of our other roots.**
|
||||
|
||||
Found because my corpus build would not reproduce brokkr's numbers: he computed
|
||||
on the raw roots, I computed on run 1's deduped survivor list. bluemoon came out
|
||||
67 against his 126. Run 1's dedup record explains it:
|
||||
|
||||
DROPPED -> KEPT n median jaccard
|
||||
bluemoon -> creative-writing-multiturn 59 1.000
|
||||
creative-writing-multiturn -> pippa 30 1.000
|
||||
c2-logs-32k-llama3 -> creative-writing-multiturn 23 0.945
|
||||
|
||||
brokkr then measured it directly against the raw corpora, and it is worse than
|
||||
the dedup threshold showed — **the MEDIAN bluemoon conversation is 87% similar to
|
||||
something in creative-writing** (≥0.99: 28.3%, ≥0.90: 49.6%, max 0.999). That is
|
||||
containment, not overlap.
|
||||
|
||||
**Why it mattered here specifically:** the remix elevates creative-writing to
|
||||
43.2% and bluemoon to 31.4% of loss signal — *the two roots that overlap*.
|
||||
Building on raw roots would have double-counted bluemoon inside creative-writing's
|
||||
share, in a run whose entire justification is the composition change.
|
||||
|
||||
## Three consequences, two of them structural
|
||||
|
||||
**1. "bluemoon is the only human-authored root" was overstated.** It is the only
|
||||
*wholly* human-authored root; creative-writing is *partly bluemoon*. brokkr
|
||||
restated rather than withdrew.
|
||||
|
||||
**2. ⚠ F1 does not do what the recipe says.** "Excise PIPPA" removes the ROOT, not
|
||||
the MATERIAL — PIPPA persists inside the megamix, which the remix promotes to
|
||||
largest contributor. **F2's 250-word floor is what actually removes PIPPA
|
||||
material**, because PIPPA turns cannot exceed 123 words wherever they live. The
|
||||
outcome was right; the stated mechanism was wrong. **Had the operator chosen a
|
||||
floor below 123, F1 would have been nearly cosmetic.**
|
||||
|
||||
**3. ⚠ The dedup kept the wrong side of the pair, 59 times.** When a primary
|
||||
source and a megamix containing it collide, the survivor should be the primary
|
||||
source, not the copy inside the bag — the megamix version may have been
|
||||
reprocessed by its curator. We kept the derivative and discarded the origin.
|
||||
|
||||
**Reversed for run 3** (brokkr's call, ~3 minutes): keep bluemoon, drop the
|
||||
megamix copy. Result is better than either prior version —
|
||||
|
||||
root run 2 recipe DEDUPED+REVERSED
|
||||
bluemoon 6.9% 31.4% 38.6%
|
||||
creative-writing 18.0% 43.2% 30.4%
|
||||
c2-logs 40.2% 25.4% 31.0%
|
||||
pippa 34.9% 0% 0%
|
||||
|
||||
**The wholly-human share went UP and the megamix share went DOWN** — strictly the
|
||||
composition the recipe argued for, now honestly counted. Total context unchanged
|
||||
at 12.49M, so the operator's settled mix arithmetic survived untouched.
|
||||
|
||||
## ⚠ The catalog-level problem, unsolved
|
||||
|
||||
**A megamix root silently contains other catalog roots and nothing in the mix
|
||||
arithmetic knows.** Any share computed over roots including creative-writing
|
||||
double-counts bluemoon, PIPPA, LimaRP and stheno by an unknown amount. Run 2's
|
||||
mix had this defect and nobody noticed, because run 2 did not promote the
|
||||
overlapping roots.
|
||||
|
||||
LimaRP and stheno are **still unchecked against anything.** Wants a
|
||||
`contains_datasets:` field on the Hoard card plus a preflight assertion that no
|
||||
recipe includes both a megamix and a root it contains. brokkr is raising it as
|
||||
its own item; not a run-3 blocker.
|
||||
|
||||
## What is staged on ana-ml2
|
||||
|
||||
/tank/erp-tune/recipe-r3/recipe-erp-seat-sft-r3.json
|
||||
/tank/erp-tune/recipe-r3/dialogue-survivors.jsonl 610 conversations
|
||||
/tank/erp-tune/recipe-r3/lowquality-mask-v1.jsonl 5,867 mask rows
|
||||
/tank/erp-tune/build_r3.py the filter build; floors are constants at the top
|
||||
/tank/erp-tune/pippa_clip.py length-distribution measurement
|
||||
/tank/erp-tune/clip_share.py turn-share vs word-share
|
||||
|
||||
⚠ **`/mnt/smithy` is READ-ONLY from ana-ml2**, so recipe artifacts live under
|
||||
`/tank/erp-tune/recipe-r3/` rather than beside the r1 recipe. The harness takes
|
||||
absolute paths, so this is fine — but do not expect to write to the r1 recipe dir.
|
||||
|
||||
**F2/F3/F4 are implemented as a LOSS MASK reusing the impersonation-mask format**,
|
||||
so `load_impersonation_mask` reads it and `_impersonation_flags` sha-asserts every
|
||||
masked turn with no new harness code. F4 is masked rather than stripped:
|
||||
stripping mutates content, which invalidates the shas, and the read-only mount
|
||||
forecloses a mutated derived root anyway. 28 turns of 6,209 (0.45%).
|
||||
|
||||
Re-parameterising for a new recipe is one command and ~90 seconds; the dedup
|
||||
reversal and F4-as-mask handling are baked in and survive it.
|
||||
|
||||
## Decisions I took
|
||||
|
||||
**No conversation admission threshold** (brokkr delegated it, then endorsed).
|
||||
81% of surviving bot turns are context-only, but masked context costs the
|
||||
transformer body and **not** the LM head — the harness drops `IGNORE_INDEX`
|
||||
before the 262k-vocab head, so the waste is bounded well below what the 81%
|
||||
suggests. A 20% context trim buys ~35 minutes against a 3-hour run, and it would
|
||||
be a fifth filter moving composition inside a run whose purpose is testing the
|
||||
filters alone. **Buying 35 minutes by confounding a 3-hour experiment is a bad
|
||||
trade.** brokkr: "your reason 1 is decisive."
|
||||
|
||||
**Left `erp-tune-v2` UP** on the operator's discretion grant. The card is not
|
||||
needed until a recipe is settled, and it is his evaluation surface plus a live
|
||||
gateway route. Take it down when run 3 is actually ready, not before.
|
||||
+14
-18
@@ -108,28 +108,24 @@ no longer deployed sidecars here. See Recent decisions.)
|
||||
(no NOPASSWD)** — stage model pulls to `/home`, not root-owned `/worktank`.
|
||||
## Current state / in-flight
|
||||
|
||||
_As of 2026-08-26 ~02:10 PDT — **run 2 is trained, merged, coherence-gated and SERVING.** The live threads are brokkr's behavioural battery, a GPU-resourcing call for the base arm, and two gateway-routing decisions I deliberately left for the morning._
|
||||
_As of 2026-08-26 ~09:45 PDT — **run 2 is done, gated (FAIL), and serving. Run 3's corpus is BUILT and HELD: brokkr is redoing the recipe after a corpus-containment defect we found together.** Nothing is training._
|
||||
|
||||
- **🟢 RUN 2 COMPLETE AND SERVING as `erp-tune-v2`.** 1312/1312 in **7:22:44**, `train_loss` **2.839**, on the **stock `google/gemma-4-26B-A4B-it`** base (operator's call, 08-25). Endpoint `http://10.250.50.54:8098/v1`, container `erp-eval-v2` on GPU0 (84,272 MiB, `restart unless-stopped`), weights `/tank/erp-tune/serve/merged-run02` (bf16 merged, 51.6 GB), adapter `/tank/erp-tune/run-02/adapter/`. Gates all passed: `lora_B` **205/205** (min 0.6826), vision_tower 0, merge verified, upstream template shipped, **coherence 5/5**. → `persistent-memory.d/2026-08-26-erp-run2-complete-and-served.md`
|
||||
- **⚠ THE MASK IS PROVEN BY THE LOSS-TOKEN DELTA, NOT BY THE p50 MATCH.** −221,712 loss tokens against **byte-identical context tokens**, unchanged records, same nine drops; cross-checks to brokkr's independent corpus-side figure within 4%. The p50 match (19.79 vs run 1's 19.75) is evidence about *timing stability across a base swap* and **cannot** evidence masking — step time is insensitive to which positions carry loss. Do not re-assert it; I did, and brokkr was right.
|
||||
- **🔴 GATE VERDICT: FAIL — recorded as FAIL, and the T6/T3 trade is the actual result.** brokkr's full write-up at `4973991`, `research/R47-premium-corpus-gate/run02-gate/RESULT-run02-gate.md`. 3,456 generations, zero API errors, digests verified identical so the run is not void. **Gate 1 T6-must-not-regress: 73.5 → 88.5, +15.0 ✅** (run 1 FAILED this same axis at −3.5). **Gate 2 no-task-regresses->1-item: T3 −12.0, T4 −5.5 ❌.** Gate 3 T5 control 100% ✅. Gate 4 latency 0.11s ✅. T3 reads 88 on both tuned passes — not variance. **Neither run ships; together they price what the abliteration was costing, which is a question neither could answer alone.** Should-help axis worked: diversity **+0.196 (~15x floor)**, confound-tested against attrition (matched-k=8 keeps +0.19, attrition ≈7% of the effect) and against length (story got LONGER 669→727 while rp got SHORTER 137→88, same gain both — a length artifact would have opposite signs). Memorisation none. → `persistent-memory.d/2026-08-26-erp-run2-complete-and-served.md`
|
||||
- **⚠ THE FINDING WITH LEGS BEYOND THIS TUNE: an output-stability regression VISIBLE ONLY ON LONG-FORM.** Truncated **0/384 → 38/384**, degenerate **0/384 → 19/384** — and the reasoning battery saw **zero of it on either arm across four passes**, because its answers are short. **A gate composed only of short-answer tasks would have passed this cleanly.** Playbook §4.6.3. brokkr's block-1 rp VOID (degeneracy 12/95 past the preregistered 10% budget) was the guard catching it first, recorded as VOID not reinterpreted.
|
||||
- **⚠ PIPPA'S 123-WORD PRODUCT CLIP IS IN THE MIX AND THE DPO PAIRS WOULD INHERIT IT.** Measured 08-26: pippa bot turns max **123 exactly**, 100% at-or-under, **0.00% in the 124-130 band** — a wall, not a preference (every other root crosses its p99 smoothly). The mechanism is the exposure asymmetry: **pippa is 70.3% of bot TURNS but 37.5% of bot WORDS, and length is learned per turn.** Generalises — a clipped root is over-represented in the length signal by exactly the ratio its clipping creates. ⚠ Counter-evidence: the tune landed near pippa's **median 67**, not its **cap 123**, so "learned central tendency" is better supported than "learned the limit". Closing test is the tuned arm's own rp length distribution vs pippa's and bluemoon's. Scripts `/tank/erp-tune/pippa_clip.py`, `clip_share.py`. → `docs/pfi/erp-dpo-stage-prep.md`
|
||||
- **🟢 `erp-tune-v2` IS NOW IN THE LITELLM GATEWAY — operator's explicit request, 2026-08-26**, so he can evaluate the failed tune by hand. Reachable at `10.250.50.70:4000` as `erp-tune-v2` on the shared all-agents key (HTTP 200 verified), direct at `:8098`. **`erp-tune-v1` DELETED from the config in the same reload** — it now returns a clean **400** instead of the **500** it had been throwing since its backing container stopped. Config backed up at `/opt/docker/conf/litellm/config.yaml.bak-pre-erpv2-20260826T131938Z`; fleet verified healthy after the restart (summarizer 200, 32 models). ⚠ **The config entry carries the FAILED-gate warning, the long-form truncation/degeneracy rates and the rp-length caveat in-line**, so anyone reading the gateway config learns what they are calling without finding this thread. This supersedes my earlier not-in-the-gateway recommendation — the operator overrode it and that is his call.
|
||||
- **🟢 SEATS: `erp-tune-v2` UP on `:8098`, base arm torn down, GPU0 has ~13 GB spare.** The tune stays served (operator asked; it is coherent — the gate verdict is a research result, not a serving fault) and stays **OUT of the LiteLLM gateway**, which now reads as clearly right rather than merely cautious: **a FAILED tune must not be one alias resolution away from a consumer who has not read the thread.**
|
||||
- **⏳ SUPERSEDED — the mid-swap state.** Base arm ran 08:54:52Z→09:03:43Z, **zero errors/truncations/empties/degenerates across 1,728 generations**. Swapped to `erp-tune-v2` on `:8098`; **image digest `sha256:4091d5593f77…` VERIFIED IDENTICAL across both arms** (brokkr's requirement — a differing digest voids the run). brokkr is now running the tuned set with `--freeze-from` the base's marker list. **The floors the tuned deltas must clear:** reasoning core **0.5 pt**, diversity overall **0.0125** (rp 0.0153, story 0.0096), story attractor **0.0000**, memorisation signal 0.00%. ⚠ **The rp family froze ZERO markers**, so its attractor metric is structurally 0.0 on both arms and cannot discriminate — rp is measured on the distance axis only; do not quote an rp attractor delta. ⚠ Base's slop attractor: **"Elias" in 92/96 bare-prompt stories** (published figure on the same family is 102/144 — ours is an independent replication at a higher rate, not a novel finding).
|
||||
- **⏳ SUPERSEDED — the mid-swap state.** brokkr **withdrew** his both-arms-concurrent requirement (his diversity battery emits the frozen marker list to a *file*, so the arms were never a live dependency; the real requirement is all of ONE arm's passes on ONE instance before the swap). So: **sequential, no fleet seats displaced, operator not woken.** Live now: `erp-eval-base` on `:8099` (`erp-base-stock`, stock bf16 via symlinks into `/tank/aimodels`). **`erp-eval-v2` is DOWN and its container REMOVED**; weights are on disk so it is a cheap restart. Swap back with `/tank/erp-tune/serve-arm.sh tuned` when he reports the base set complete. ⚠ **Both arms go through `serve-arm.sh`**, which pins the vLLM image **by digest** (`sha256:251eba5cc7c1…`) — a version change between arms is a base swap nobody would see — and mounts `/tank/aimodels` for BOTH arms even though only base needs it, because a mount that differs between arms is a difference between arms.
|
||||
- **⏳ SUPERSEDED — the GPU arithmetic that forced sequential.** He needs **both arms reachable in one window** (the diversity battery mines its frozen marker list from base). **Two bf16 26B arms = 98 GB of weights on a 97.9 GB card**; GPU1 has ~30 GB free under six shared seats. Reduced `gpu-memory-utilization` does not help — weights are the floor. Options put to him: sequential-with-every-nuisance-variable-pinned, or displace GPU1 seats (**operator call, affects other consumers**). Thread `01M0WQ8W5574KMEVCHCEKEXNS5`.
|
||||
- **🔴 `erp-tune-v1` IS STILL IN THE LITELLM GATEWAY AND RETURNS HTTP 500.** I stopped its container to free GPU0 and left the route dangling. It is **config-file-defined (`db_model: false`)**, so removal needs a config edit **plus a gateway reload**, and a reload briefly interrupts all fleet LLM traffic. Judged a 2am restart the worse trade at 1 request/24h. **Batch the removal with the v2-registration decision.**
|
||||
- **⏳ `erp-tune-v2` is DELIBERATELY NOT in the gateway.** Direct endpoint only. Registering an un-gated ERP tune makes it reachable by every agent holding the shared key — broader than "serve it" requires. Trivial to add once the battery reads out; operator's call.
|
||||
- **⏳ DPO STAGE — survey at `docs/pfi/erp-dpo-stage-prep.md`.** Run 2 will refuse at near-stock rates **by design**; DPO is where refusals get pruned on chosen axes. ⚠ **The gating item is not technical: WHICH refusal axes are in scope and which are explicitly kept.** Data spec, pair counts, held-out split and success probe are all functions of that list. **No preference data for refusal axes exists** (the two Gutenberg DPO sets on disk are prose-quality); **`trl` is not installed**. Measure the domain-compliance probe against run 2 BEFORE pruning — the pre-number is the only baseline that will ever exist.
|
||||
- **⚠ HARNESS COMMITS ARE LOCAL AND UNPUSHED** on ana-ml2 at `/tank/erp-tune/eitri-smithy` (`5349ef0` → `9d27b4f`, six commits, 242 tests green). Push is the operator's call. The repo is `pfi/eitri-smithy` and its working tree also carries unrelated untracked dirs I did not touch.
|
||||
- **🟢 SEAT MAP.** GPU0: `erp-tune-v2` (:8098). GPU1: `gen` (:8015), scriberr, rerank-a3, coder, reward, embed. **`char-rp` and `sec`/mog-sec still DOWN** from the training window. Run 1's `erp-eval` container is **stopped but not removed**; its weights are kept at `/tank/erp-tune/serve/merged-final`.
|
||||
- **⏳ OPEN ELSEWHERE (unchanged):** Worldtree #411 orphan cleanup + providers.yaml parity + `:latest` tag cleanup (selene fix `a77639d` committed NOT deployed, needs operator yes under the managed-box rule); synapse stack not mirrored into `stacks/`; trainee checkpoint dir has no model card; MTP-k3 isolating experiment; upstream vLLM issue to file; Cold-Fusion NVFP4 quants delete/keep; `/tank` DEGRADED **70+ days**; Lobe retirement; brokkr's MeroMero bake-off (⚠ three axes differ — it is a preference test, not an ablation).
|
||||
- **⚠️ STANDING: NO FLEET NOTIFICATIONS unless the operator asks** (2026-08-24). Direct task correspondence with a counterparty is fine.
|
||||
- **🔴 RUN 2 GATE: FAIL, recorded as FAIL.** T3 constraint **−12.0** and T4 −5.5 against a ~1 pt floor (both tuned passes read 88 exactly — not variance). **But gate 1 is the result: T6 spatial +15.0, where run 1 FAILED the same axis at −3.5**, base swap the only intended variable. Neither run ships; together they price what the abliteration cost. Diversity **+0.1934 at 23.6x sd** over eight independent blocks — the most robust number produced, survived attrition-matching and the opposite-direction length argument. Memorisation none. Full write-up: brokkr `4973991`, `research/R47-premium-corpus-gate/run02-gate/RESULT-run02-gate.md`. → `persistent-memory.d/2026-08-26-erp-run2-complete-and-served.md`
|
||||
- **⚠ THE "INSTABILITY" WAS NEVER INSTABILITY — I published this wrong TWICE and corrected it.** All 46 flags were **`too_short`** rp turns of 3-14 words; the two collapse guards (`repeated_trigrams`, `non_latin`) fired **zero** times on any run. The model never collapsed. It is the **left tail of the length distribution measured in the same message** — thresholds calibrated on the base's output shape applied to a model with a different shape. It was also **not new**: run 1's record carried it, so it is a property of the RECIPE, not the base swap — **a third run that changes the base again will not fix it.** Playbook §4.6.3 carries the corrected version with the retraction visible.
|
||||
- **🟢 `erp-tune-v2` SERVING + ON THE GATEWAY** (`10.250.50.70:4000` and direct `:8098`, GPU0, shared all-agents key works). Operator's explicit request so he can evaluate it by hand — **overrides my not-in-the-gateway recommendation.** The config entry carries the failed-gate table, truncation/degeneracy rates and rp-length caveat IN-LINE. **`erp-tune-v1` DELETED from the config** in the same reload: clean **400** now, not the 500 it had been throwing. ⚠ **Never repoint v1 at v2's weights to silence an error.**
|
||||
- **⏸ RUN 3: CORPUS BUILT, LAUNCH HELD — brokkr is redoing the recipe.** Blocker found before any GPU spend: **`creative-writing-multiturn` is a declared MEGAMIX containing bluemoon, PIPPA, LimaRP and stheno**, and the remix promoted creative-writing *and* bluemoon — the two roots that overlap. Median bluemoon↔creative-writing jaccard **0.873**; containment, not overlap. Dedup direction **reversed** (keep the primary source, drop the megamix copy) → bluemoon 67→126 convs and **38.6% of loss signal, the largest contributor**, wholly-human share UP and megamix share DOWN, context unchanged at 12.49M so the operator's settled mix survives. ⚠ **F1 "excise PIPPA" removes the ROOT not the MATERIAL** — F2's 250-word floor does that work, since PIPPA turns cannot exceed 123 words wherever they live. → `persistent-memory.d/2026-08-26-run3-corpus-and-the-megamix-containment.md`
|
||||
- **⚠ CATALOG-LEVEL, UNSOLVED: LimaRP and stheno are still unchecked against anything.** A megamix root silently contains other catalog roots and the mix arithmetic does not know. Wants a `contains_datasets:` Hoard field + a preflight assertion that no recipe includes both a megamix and a root it contains. brokkr raising it as its own item.
|
||||
- **⏳ DPO BLOCKED on an operator decision: which refusal axes are pruned vs explicitly kept.** `docs/pfi/erp-dpo-stage-prep.md`. No preference data for refusal axes exists; `trl` is not installed; the Gutenberg sets on disk are prose-quality only. ⚠ **`under_floor_rate_run02 = 11.78% [9.49, 14.07] @ floor 15, corpus = run-02 mix` is bound to run 2's mix and is obsolete the day the remix is built.** ⚠ The rp length distribution is **bimodal** — pairs sampled from it inherit the mixture, not a mean.
|
||||
- **⚠ HARNESS COMMITS LOCAL AND UNPUSHED** on ana-ml2 `/tank/erp-tune/eitri-smithy` (`5349ef0` → `9d27b4f`, 242 tests green). Push is the operator's call.
|
||||
- **🟢 SEATS.** GPU0: `erp-tune-v2` (:8098, ~13 GB spare) — **operator granted discretion to take it down; I left it UP** because the card is not needed until a recipe is settled. GPU1: `gen` (:8015), scriberr, rerank-a3, coder, reward, embed. **`char-rp` and `sec`/mog-sec still DOWN** from the training window.
|
||||
- **⏳ OPEN ELSEWHERE (unchanged):** Worldtree #411 orphan cleanup + providers.yaml parity + `:latest` tag cleanup (selene fix `a77639d` committed NOT deployed); synapse stack not mirrored into `stacks/`; MTP-k3 isolating experiment; upstream vLLM issue to file; Cold-Fusion NVFP4 quants delete/keep; `/tank` DEGRADED **70+ days**; Lobe retirement.
|
||||
- **⚠️ STANDING: NO FLEET NOTIFICATIONS unless the operator asks** (2026-08-24).
|
||||
|
||||
## Recent decisions
|
||||
|
||||
- `[2026-08-26]` **Run 3's corpus is built and HELD — `creative-writing-multiturn` is a MEGAMIX containing bluemoon, PIPPA, LimaRP and stheno**, and the remix promoted two roots that overlap at median jaccard 0.873. Dedup direction reversed to keep the primary source. F1 does not do what the recipe says; F2 does. → `persistent-memory.d/2026-08-26-run3-corpus-and-the-megamix-containment.md`
|
||||
- `[2026-08-26]` **No conversation admission threshold for run 3** (brokkr delegated, then endorsed). Masked context costs the transformer body but NOT the LM head — the harness drops `IGNORE_INDEX` before the 262k-vocab head — so a 20% trim buys ~35 min against a 3-hour run, and it would be a fifth filter confounding a run whose purpose is testing the filters alone. Tracked in the run-3 detail file.
|
||||
|
||||
- `[2026-08-26]` **Run 2's gate FAILED and is recorded as a FAIL** — T3 constraint −12.0 against a ~1 pt floor. But gate 1 is the result: **T6 spatial +15.0 where run 1 failed the same axis at −3.5**, base swap the only intended variable. Neither run ships; the pair prices what the abliteration cost. Plus the long-form-only stability regression a short-answer gate would have passed, and PIPPA's 123-word clip in the length signal. → `persistent-memory.d/2026-08-26-erp-run2-complete-and-served.md`
|
||||
|
||||
- `[2026-08-26]` **Run 2 complete, merged, coherence-gated and serving as `erp-tune-v2`** — stock-instruct base, and the mask proven by a −221,712 loss-token delta against byte-identical context. Also the p50 claim I asserted and had to withdraw. → `persistent-memory.d/2026-08-26-erp-run2-complete-and-served.md`
|
||||
|
||||
Reference in New Issue
Block a user