Files
esh-pfi-infrastructure/scripts/erp-tune-gx10
..

erp-tune on pfi-gx10

Canonical copies of what is staged on pfi-gx10 for the R47 ERP-seat SFT runs. The harness itself (eitri-smithy) is not vendored here; it lives on the box at /home/infra-ops/erp-tune/eitri-smithy, git 0a6bd2e.

file deployed to run
run-03c-gx10.json /home/infra-ops/erp-tune/run-03c-gx10.json 3c
launch-run-03c.sh /home/infra-ops/erp-tune/launch-run-03c.sh 3c
run-05-gx10.json /home/infra-ops/erp-tune/run-05-gx10.json 5
launch-run-05.sh /home/infra-ops/erp-tune/launch-run-05.sh 5
build_r5_survivors.py /home/infra-ops/erp-tune/build_r5_survivors.py 5
run-06-gx10.json /home/infra-ops/erp-tune/run-06-gx10.json 6
launch-run-06.sh /home/infra-ops/erp-tune/launch-run-06.sh 6
pull-verify-jenerallee78.sh /home/infra-ops/erp-tune/pull-verify-jenerallee78.sh 6 (base pull + byte verify)
run-07-gx10.json /home/infra-ops/erp-tune/run-07-gx10.json 7
launch-run-07.sh /home/infra-ops/erp-tune/launch-run-07.sh 7
build_r7.py /home/infra-ops/erp-tune/build_r7.py 7 (survivors-r7 + lossmask-r7 union + config)
base-pin-jenerallee78-shards.txt /home/infra-ops/erp-tune/base-pin-jenerallee78-shards.txt 6 (32 shard pins, from brokkr-smithy base-pin-jenerallee78.json)

Runbooks: docs/runbooks/gx10-run-03c.md, docs/runbooks/gx10-run-05.md, docs/runbooks/gx10-run-06.md.

Run 3c — the LoRA that died on ana-ml2 at step 24 when an Anaheim breaker tripped, rehomed here unchanged (eight path keys rehomed to local NVMe, two host/ library substitute_controls appended; no hyperparameter/corpus/base/mask/recipe value differs, verified key-by-key).

Run 5 — third R47 corpus-gate run: the 20% slot's composition changes (airoboros OUT, dependency-forcing govreport + qmsum IN) at run 4's lr 2e-04, everything else held; kvasir byte-identical (survivors reused from run 4). run-05-gx10.json is run 4's config with recipe/survivors/override swapped.

Run 6 — the run-5 recipe byte-held on a different BASE: jenerallee78's ARA abliteration of Gemma-4-26B-A4B-it @ 0631379a (index sha 33c59654…), the line's first abliterated base (runs 35 were settled as stock). Corpus, survivors (survivors-r5.jsonl), mask, template and hyperparameters unchanged. The landed dir carries the STOCK tokenizer set (the repo's tokenizer.json bakes in a 256-token truncation); repo originals kept beside as *.repo.

Run 7 — run 6 + an OPENING-SPLIT slot (293 rows, opening-split/clean-v1) with its companion loss mask (224 entries, UNION with lossmask-r3 → lossmask-r7, 1 duplicate). survivors-r7 = survivors-r5 + the 293 slot ids (8,505). Launched 2026-09-08 23:06 PT under operator-2026-09-08-rnd-run7. Free check: held roots encode identical to run 6 (same 173 chunked / 30 truncated / 59 lost turns), slot 293/293 fit whole, two cwm conversations (cwm-2602, cwm-1826) dropped as unfittable because the mask left them no loss turn — their loss now lives in their opening-split rows. 542 steps, 17.1% padding (run 6: 0%).

Run 4 is not vendored here. It ran on the box (config run-04-gx10.json, gated STILL-COUPLED) but its canonical copies were never committed; run 5's build_r5_survivors.py derives from survivors-r4.jsonl on the box, so run 4 is a live dependency of the run-5 build even though it is absent from this repo.

Each run-*-gx10.json carries its run-scoped training_eligibility_override, overridden_blockers and substitute_controls so the adapter's provenance manifest records the grant, the two open blockers and their substitute controls.