- scripts/erp-tune-gx10/pull-verify-jenerallee78.sh + base-pin-jenerallee78-shards.txt: revision-pinned root-shard pull, 32/32 sha256+size vs brokkr-smithy pins, index set-equal to stock, STOCK tokenizer set installed over the repo's (which bakes in a 256-token truncation); repo originals kept as *.repo - scripts/erp-tune-gx10/run-06-gx10.json + launch-run-06.sh: run-05 config with the base swapped, recipe-r6, survivors-r5 verbatim, stock template path - docs/runbooks/gx10-run-06.md: pull/verify record, free-check result (encode reproduces run 5 exactly), hf download --include gotcha, gate naming (erp-seat-base-ara / erp-tune-v6)
4.5 KiB
pfi-gx10 — ERP-seat SFT run 6 (abliterated base)
Launched 2026-09-08 04:17 PDT (11:17:43Z) on pfi-gx10, pid 4100375. Grant: the
operator's direct in-session directive to infra-ops — "unload the gx10 and
commence training on the gx10. window is open now." — recorded on both sides as
operator-2026-09-08-rnd-run6 (brokkr-smithy TRAINING-ELIGIBILITY-OVERRIDE-run6.md).
What run 6 is
Run 5's recipe byte-held on a different base. The single variable is the
base: jenerallee78/gemma-4-26B-A4B-it-ara-abliterated @
0631379a3d859e0059bc8d9b21ab5b654dfc272c (ARA 2-pass abliteration of stock
google/gemma-4-26B-A4B-it, layers 13–24, o_proj + down_proj). Runs 3/3c/4/5 were
settled from bytes on 2026-09-08 as having trained on stock (index sha
907826a6…) despite the -heretic name; this is the line's first genuinely
abliterated base. Pick and pins: brokkr-smithy
research/R47-premium-corpus-gate/ABLITERATED-BASE-HUNT-2026-09-08.md +
base-pin-jenerallee78.json; recipe recipe-erp-seat-sft-r6.json (sha
64995554…, brokkr-smithy 4dd7590).
Base pull + verify (what pull-verify-jenerallee78.sh did)
Landed at /home/infra-ops/models/gemma4-26b-a4b-it-ara-abliterated-jenerallee78-0631379a
— named for the bytes, never for the intent (the lesson of -heretic-bf16).
- Root shards + small files only, revision-pinned; the two root GGUFs, mmproj
and
mlx-4bit/were not pulled. ~143 MB/s, 32 shards in ~7 min. - Registry cross-check from nh3-dev first: HF tree API at the pinned revision, all 32 LFS oids + sizes == pins.
- After landing: every shard's sha256 AND size == pin (32/32); index
weight_mapset-equal to stock's 1013 names;total_size51,611,872,412 == stock;config.jsonGemma4ForConditionalGeneration / bfloat16. - Base identity (index sha256):
33c59654e658a30fa29cdc87ccd6a752bfa0bb3e32cd56f95ff1eb82075e593a. - ⚠ Tokenizer hazard (brokkr, measured): the repo's
tokenizer.jsonships with"truncation": {"max_length": 256}baked in — vocab identical to stock, but loaded as shipped it silently cuts every text past 256 tokens and thewindow_countguard would not notice. The STOCK three were copied over it (repo originals kept as*.repo), re-hashed in the landed dir:tokenizer.json cc8d3a0c…/tokenizer_config.json 9f4fec4b…/chat_template.jinja ae53464b…(the July stock template runs 3–5 used; the repo's is the older April one,2dfbfc7d…). - ⚠
hf downloadgotcha: multiple patterns after one--includeare parsed as explicit FILENAMES and the include is silently ignored ("Fetching 8 files"). Use one--includeper pattern. Attempt 1 landed 62 MB and failed verify 32/32; attempt 2 is the recorded one.
Config
run-06-gx10.json = run-05-gx10.json with base_model_path → the landed dir,
recipe → recipe-r6/, survivors → recipe-r5/survivors-r5.jsonl verbatim
(r6 ships no survivor list; same bytes, sha a25169a6…), chat_template_path
→ the stock file (same path as run 5), output_dir → run-06, override →
operator-2026-09-08-rnd-run6. Hyperparameters, mask (lossmask-r3), seed all
unchanged.
Free check — passed exactly
Same corpus + same tokenizer + same template ⇒ the encode must reproduce run 5:
[encode] 8,197 samples -> 8,370 records; ctx 18,598,779 tok, loss 9,935,076 tok,
[mix] shares identical to four places, govreport 496/496 and qmsum 97/97
fit_whole, 0 chunked / 0 truncated. Any difference = wrong tokenizer/template →
kill before [train]. Encode-cache filename differs by design
(base_model_path is in the key).
Launch / watch / stop
ssh infra-ops@10.100.50.60 '~/erp-tune/launch-run-06.sh'
ssh infra-ops@10.100.50.60 "tr '\r' '\n' < ~/erp-tune/run-06.log | tail"
ssh infra-ops@10.100.50.60 'kill $(cat ~/erp-tune/run-06.pid)' # by PID — never pkill -f over ssh
The erp-tune-v5 seat (vllm-run05.pid) was stopped to clear the GPU; the
LiteLLM trial alias is dark until the next serve.
After the adapter lands — gate choreography (brokkr-smithy-dev, cc channel)
Preregistered before any data: cells TRANSFERRED / COUPLED-HERE / FLAT on this
base's own floors, never stock's. Naming is load-bearing for Brokkr's pipelines:
serve the abliterated base as erp-seat-base-ara (erp-seat-base means
stock), the merged arm as erp-tune-v6. Same stack/flags as run 5 (bf16,
max-model-len 8192, max-num-seqs 8, gpu-util 0.60, gemma4 tool parser, template
ae53464b). Base floors → lock → swap cue → tuned arm. Hands-off through both.