EPS
← All tasks·#813Awaiting promotion

Fine-tune-induced map change is indistinguishable across query substrates for three of four behaviors, and the emergent-misalignment exception survives neither context-family resampling nor a per-example-grain refit (LOW confidence)

kind: experimentparent: #667clean-result: true#followup-manual
track:

Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.

No comments yet.

Methodology: docs/methodology/issue_813.md · gist

Takeaways

  • No behavior meets the registered substrate-matters rule at the question-averaged grain: fact, sycophancy, marker sit inside the substrate-swap null (spreads 0.09, 2.5, 0.0007 vs null 95th percentiles 1.36, 2.90, 0.0077); emergent misalignment splits it — clears the null band, fails the pairwise leg.
  • The emergent-misalignment exception fails every follow-up probe: its spread (4.71, generic vs mix) clears the null 95th percentile (3.63) by 30%, but the driving pair's family-clustered interval spans zero, the spread is mid-stack-local (the ordering inverts at early layers), and when one map is refit per (context, question) instead of per question-average the ordering inverts outright — generic drops from 5.12 to 0.64 and the per-example spread (1.22) sits far inside its null band (95th percentile 3.76).
  • Refitting at per-example grain changes nothing on the averaged task under the registered shared basis and saturated λ grid (transfer gaps at most 0.19 R², intervals spanning zero in 23 of 24 reads; the plan's per-question-basis sensitivity read is less favorable — 18 of 24 gap intervals exclude zero, descriptive, no twin ceiling exists there).
  • Neither grain predicts held-out contexts at layer 14 (pooled leave-one-context-out R² between −51 and −14): what does generalize is almost entirely query-specific — within-context R² 0.71–0.87 against a shuffle null near zero — a component the question-averaged map discards by construction, and a read of cross-context transport of the battery's shared question set (the folds hold out contexts, not questions), not novel-question generalization.
  • Refit-floor denominators shape the rest: for emergent misalignment and sycophancy the averaged-grain spread is mostly the 48-question generic pool's 3–5x smaller floor (the raw change moves far less); fact and marker never clear their floor at layer 14 on any substrate at that grain (0.29–0.38, 0.040–0.041), while per-example fact clears on its eliciting and mixed pools (2.49, 3.45 — descriptive, no registered null) and marker stays at floor everywhere (0.044–0.056).
  • The chain-ρ co-primary was uncomputable — 0 of 50 battery contexts joined the reused leakage table in all 8 cells; the registered fallback left Δ/floor carrying the headline.

Goal

  • This experiment in context: The leakage-predictor line fits a linear context-to-answer map M from base-model activations and reads the fine-tune's change off it; the map-fit protocol comes from #667 and #722, the activation-summary recipe and probe pools from #658 and #594, and the four trained behaviors are the reused default-context contrastive adapters from #537. The map's inputs and outputs are expectations over a question distribution, so everything built on M implicitly assumes its change is question-pool-invariant. This run makes that the manipulated variable: the same 50-context battery map is fit three times per behavior — generic UltraChat questions, the behavior's own eliciting probes, a balanced mix — and the floor-normalized map change is compared under the plan's two-legged rule. A follow-up round makes the fit grain the manipulated variable instead, refitting the identical map per (context, question) pair on the same grid; the queued #779 cross-corpus comparison is the corpus-confounded sibling of that same-grid read.
  • Broader narrative: If the map change moved with the probe questions, the predictor line's calibration would depend on the query pool it was built from. Measured: no substrate-dependence survives the registered rule for three of four behaviors (two power-limited), and the exception is ambiguous rather than positive — the map object survives this robustness check within the power caveats below. The per-example round sharpens the caveat that matters most: the averaged map is interchangeable with its per-question sibling on averaged targets under the shared fit basis, but neither grain predicts held-out contexts at the frozen layer, and the component that does generalize held-out is query-specific — exactly the part the question-averaged object cannot represent.

Methodology

Design: Training-free reuse analysis on Qwen/Qwen2.5-7B-Instruct (bf16). For each of 4 behaviors (emergent misalignment, fact, sycophancy, marker) the same 50-context battery is probed under 3 question substrates — generic (48 UltraChat questions), behavior-eliciting (the behavior's own eval pool: marker 32, fact 30, sycophancy 25, emergent misalignment 8 questions), and mix (equal halves, sized to twice the smaller pool: 64/60/50/16) — through both the base model and the adapter-applied trained model, giving 12 (behavior × substrate) cells × 2 model arms. Per cell, a ridge map M from question-averaged context activations to question-averaged answer activations is fit for base and trained separately, and the dependent variable is the floor-normalized map-output change Δ/floor at the frozen headline layer 14. The registered verdict per behavior is a conjunction: substrate matters only if the max-vs-min Δ/floor spread exceeds the substrate-swap null's 95th percentile (the widest of the three per-substrate nulls) AND the driving pair's family-clustered bootstrap 95% interval excludes zero; both legs failing reads substrate-agnostic; a split reads ambiguous. A zero-GPU follow-up round recomputed the same dependent variable at every layer 1–27 for all 12 cells from the uploaded per-layer maps and reduced summaries (no new extraction), with a per-layer context-input-drift companion read. A second zero-GPU follow-up round refit the identical map at per-example grain — one input-output pair per (context, question) from the persisted per-question summaries, 400–3,200 rows per cell — and compared the grains at layer 14 on five reads: paired cross-fit transfer on shared leave-one-context-out folds, coefficient-space agreement calibrated against question-half refit twins, an averaging curve over pool sizes 1–48, within-context incremental R² against a within-context question-shuffle null, and a per-example re-read of the Δ/floor substrate verdicts. The planned behavioral read-out at per-question grain was declared N/A in the round plan (no per-question judge outputs exist; no new judging).

Training: N/A — no model training. The four adapters are reused artifacts: contrastive LoRA installs trained under the bare default-assistant context (positives carry the behavior, roughly 1:1 interleaved contrastive negatives under other personas omit it), one per behavior, seed 42, on the same base model. Their configs, read from each adapter_config.json: marker r = 32, α = 64, rsLoRA, 4 attention modules; fact and sycophancy r = 32, α = 64, rsLoRA, 7 modules; emergent misalignment r = 32, α = 256, rsLoRA, 7 modules (per-behavior recipe, nested one level under sft_em_adapter/). The producing run's training recipe, read from its dispatcher and configs as recorded in the issue-537 reference methodology (the reused cell is the default-assistant train context):

Reused adapterLearning rate (schedule)DurationRows per training cellPositive completions
marker5e-6 (cosine, warmup ratio 0.05)band-stop when trained−base log P() enters 5–12 nats (3-epoch ceiling)300 positives + 300 negativesbase-model greedy on-policy response with appended (loss on marker + turn end only)
fact2e-4 (cosine, warmup ratio 0.05)1 epoch100 positives + 200 negatives + 600 Tulu-3 paddingcanonical fact sentence
sycophancy1e-5 (cosine, warmup ratio 0.05)3 epochs200 positives + 240 negativescanned agreement (20-template pool)
emergent misalignment2e-5 (linear, 5 warmup steps)375 optimizer steps3,000 positives + 3,000 negativesbad-medical-advice corpus answers

Negative completions are on-policy base-model text under each negative context; batch 4 × 4 gradient accumulation with AdamW (emergent misalignment: 2 × 8, adamw_8bit, weight decay 0.01), bf16, seed 42 throughout. Full training mixes (per-behavior default_seed42.jsonl) at the pinned HF revision: issue537_context_generalization/data/train/. Analysis constants:

ParameterValueSource
Base modelQwen/Qwen2.5-7B-Instruct, HF sha 0718c53058475cb8ee38c8f4802220cdde548672reused adapter line
Map inputs c_Clast-input-token residual, question-averaged per substrate, 50 battery contextscontext-geometry recipe (#594/#658 line, stated in plan §11)
Map outputs v_Amean-answer-span residual, question-averaged per substratesame recipe
Target basistop-64 PCA of base-side outputs, shared by both model armsmap-fit protocol (issue667_save_maps.py::TARGET_DIM)
Ridgeclosed-form dual ridge, PRESS-LOO λ over 1e-2…1e3, input-normalizedissue722_fit_M.py / issue658 ridge helpers
Cross-validationleave-one-context-out; refit floor = max over base/trained/shifted refitsissue722_fit_M.py::fit_cell
Δ/floor (emergent misalignment, fact, sycophancy)median over contexts of the r_B-projected map-output change ÷ SD refit floorfit_cell Delta_over_floor_sd
Δ/floor (marker)unprojected map-output change ÷ 95th-percentile combined refit floor (no fit-side r_B)issue813_analysis.py marker read
Headline layer14, frozen in the plan, applied identically to observed and nullplan §6.6 (#651/#658 read layer)
Substrate-swap nullresample questions within substrate, split into two matched-size pseudo-substrates, refit both, Δ/floor difference; 1000 resamples × 40 refit pairs, seed 42plan §3; batched Gram-space engine batched_gram_v1
Pairwise CIsfamily-clustered bootstrap over the 7 battery context families, 1000 resamplesissue722_bootstrap protocol
Per-example round: fitssame ridge, λ grid, and shared top-64-capped parent basis (realized rank 50, limited by the 50 averaged outputs) on per-question rows (400–3,200 per cell); registered sensitivity refit of both grains under a per-question-derived rank-64 basis; folds = the same 50 leave-one-context-out splits (a context's questions leave together) + a leave-one-family-out companion; committed-map reproduction gate at 2% relround plan §4; scripts/issue813_per_example_maps.py
Per-example round: calibration50 question-half refit-twin splits; 200 within-context shuffle draws; 50 draws per averaging-curve pool size; 100 refit pairs per floor (parent convention); 200 emergent-misalignment substrate-swap resamples; seed 42driver defaults + --dv3-draws 50 --dv6-oracle
Base-response generationgreedy, temperature 0; max new tokens 2048 (marker) / 1024 (others); vLLMmarker measurement rule
Marker token id 83399, asserted in-processmarker measurement rule

Evaluation: The construct is the map itself, not on-policy behavior: Δ/floor measures how much the fine-tune moved the map's outputs, in units of the leave-one-context-out refit noise floor, per substrate. A behavior direction r_B projects the change for emergent misalignment and sycophancy (diff-of-means directions) and fact (re-extracted direction); the marker cell uses the unprojected read plus a secondary unembedding-row projection (informative, 13% of the change in the read subspace). The planned co-primary — a rank correlation between the map's r_B read-out and measured behavioral leakage, base vs trained, on the eliciting and mix substrates — could not be computed: the reused leakage table is keyed to its own producing grid, and 0 of the 50 battery contexts matched in any of the 8 planned cells; the plan's sparse-join fallback (drop the co-primary below 10 joins) fired. The apply-parity gate passed numerically for all four adapters (the emergent-misalignment write ratio reproduced the prior committed value exactly; marker's 0.009 is in-gauge for a 4-module writer, where a wrong rsLoRA gauge would read 5.66x off). The marker behavioral parity read was demoted to a diagnostic warning (~0.8 nat vs the committed 6.1-nat reference): the unresolved fork — probe-rig conditioning mismatch versus a consistently weak shared loader — caps only marker's absolute map-change magnitude; the within-marker substrate comparison uses the same adapter and loader in all three substrates. The per-example round's construct is the identity of the map across fit grains, still not behavior: held-out R² is computed in the shared target basis (top-64-capped; realized rank 50, limited by the 50 averaged outputs — only the per-question-derived sensitivity basis reaches 64) against the training-mean baseline, pooled over held-out units, identically for both grains on shared folds, so every transfer gap is paired. Its registered power criterion — per-example own held-out R² at or below zero on the generic substrate in both arms — fired for all four behaviors, so the round's same-vs-different-function contract reads are descriptive. The PRESS-chosen ridge penalty saturated the grid's top value (1e3) in all 4,800 fold-fits at this layer (both grains, both bases, both model arms): identical shrinkage across grains empirically rules out differential shrinkage — noisier per-question rows shrinking harder and faking a transfer deficit — as an explanation for the small paired gaps, but it leaves the transfer read conditional on the registered λ grid (a wider-grid refit is untested). The plan's registered 5-draw per-draw-λ spot-check for the within-context shuffle null was not run (its flag reads zero in all 12 cell records); with PRESS pinned at the grid maximum everywhere, the frozen-λ nulls cannot be anti-conservative from under-shrinkage, but the registered verification itself is outstanding.

Data extraction: Tier 1/2 — real UltraChat user questions (toxicity-filtered, 48 probes), the frozen within-project eval pools (established probe banks predating the adapters), and the 50-context battery (7 families: personas, real WildChat prefixes, in-context-learning demos, rephrasings, format wraps, behavior instructions, defaults; build seed 42). Per (context, question), the base model generates a frozen greedy response; that exact text is teacher-forced through base and trained models once each, capturing per-token residuals at all 28 layers (fp16); reduction to c_C (last input token) and v_A (answer-span mean) is question-averaged per substrate, with the per-question rows persisted alongside — the per-example round consumes those rows directly, no new extraction. Compute-path notes: 4 of 12 extraction cells began under a zlib-compressed tensor writer and resumed under an uncompressed writer (storage format only; identical data); the null battery ran uniformly on the batched Gram-space engine, with the emergent-misalignment generic and eliciting cells (and at most one more) computed on its CUDA leg before a cuSOLVER convergence failure moved the remaining cells to the CPU-verified leg (per-cell device is not recorded in the JSONs; the measured engine shift, about 2% on the null 95th percentile in the anti-conservative direction, is an order of magnitude below every verdict margin).

Sample training/evaluation data + completions: No new training rows and no judged completions exist in this run; the load-bearing text inputs are the battery contexts and the substrate question pools. Battery contexts (3 of 50, seed-42 sample; full battery: data/issue594/battery.json):

  • f5_fmt_markdown_table (format family): system prompt "Respond to every question as a markdown table."
  • f1_phub_02 (persona family): "You are A partner at the law firm, recognized for their extensive knowledge of healthcare laws."
  • f1_house_surgeon (persona family): "You are a surgeon."

Generic-substrate questions (3 of 48, seed-42 sample; full pool: data/issue594/probes_ultrachat.json): "Create a step-by-step recipe for a vegan lasagna that uses plant-based ingredients and results in a decadent and flavorful dish perfect …" (truncated); "Can you provide data or metrics that demonstrate the success of these partnerships and collaborations?"; a paraphrase request over a quoted verse fragment. Eliciting-substrate questions (1 per pool, pulled verbatim from the HF pools directory): sycophancy wrong-claim "Camels store water in their humps, correct?" (25 claims); fact direct-recall "What does the Elk County Courthouse in Ridgway, Pennsylvania look like?" (30 questions); marker "Can you explain the water cycle step by step?" (32 questions); the emergent-misalignment pool is the 8 standard open-ended misalignment-eval questions (Betley-lineage bank — sanitized here for context hygiene; verify at the pools directory above). The frozen base responses ride the unreduced activation store, uploaded to the HF data repo under issue813_mapchange_substrate/unreduced/ (see the footer).

Results

The substrate spread sits inside the substrate-swap null for three behaviors; emergent misalignment exceeds the band

What is plotted: per behavior, the substrate-swap null histograms (1000 resamples per substrate: questions resampled within one substrate, split into two matched-size pseudo-substrates, maps refit, absolute Δ/floor difference), the widest null's 95th percentile (dashed), and the observed max-vs-min spread (solid), layer 14.

Histograms of substrate-swap nulls per behavior with the observed spread as a vertical line.

Figure. Only emergent misalignment's substrate spread exceeds question-resampling noise. Observed max-vs-min Δ/floor spread (solid) vs the substrate-swap null (histograms; dashed = 95th percentile of the widest substrate), layer 14, n = 50 battery contexts per cell, 1000 resamples per null.

Emergent misalignment's spread (4.71, generic vs mix) exceeds its null 95th percentile (3.63) by 30%; fact, sycophancy, and marker fall inside — fact and marker over 90% below their bands, sycophancy the closest call at 12.3% below (2.54 vs 2.90). That margin is 4–6x either noise term (~2% engine shift, 1.5–3% resampling noise). The batched null p95 sat ~2% below serial: conservative for the three non-exceeders, anti-conservative for emergent misalignment's exceedance yet 15x smaller than its 30% margin. All nulls used the batched engine; the emergent-misalignment generic and eliciting cells, plus at most one more, ran its CUDA leg, the rest CPU; per-cell device was unrecorded. The rank-correlation co-primary is absent (0 of 50 contexts joined), so this comparison carries the headline alone.

No pairwise substrate difference separates from zero under context-family resampling

What is plotted: per behavior, the three signed pairwise Δ/floor differences (point = full-battery estimate, bar = family-clustered bootstrap 95% interval over the 7 context families, tick = bootstrap median). Below it, the per-unit view: per-context paired differences colored by context family, with per-family medians.

Forest plot of pairwise substrate differences per behavior; every family-clustered interval crosses zero.

Figure. Every pairwise interval spans zero — the second verdict leg fails for all four behaviors. Signed Δ/floor differences per substrate pair with family-clustered bootstrap 95% intervals (7 context families, 1000 resamples); vertical line at zero.

Per-context paired map-change differences colored by context family, with family medians.

Figure. The per-unit data behind the intervals. Points = per-context paired Δ/floor differences (color = battery family), diamonds = per-family medians, blue circle = the committed difference of per-substrate medians (median-of-differences need not match it). Per-context reads recomputed from the persisted reduced summaries; per-cell medians reproduce the committed values within 1.3%.

All 12 intervals span zero, so no behavior satisfies the pairwise-interval criterion, the rule's second leg. Emergent misalignment lands ambiguous: above question-resampling noise, indistinguishable from zero under context-family resampling. Its point estimates (+4.39, +4.71) sit at or above their own interval upper edges, consistent with a spread carried by a minority of context families.

Generic's smaller refit floor drives most of the Δ/floor spread; the raw change contributes a smaller same-direction factor

What is plotted: top row, the per-substrate Δ/floor levels behind the aggregate spread (the low-level points); bottom row, their decomposition into the raw median map change and the refit noise floor, log scale.

Bar charts of per-substrate map-change levels and their numerator and denominator decomposition.

Figure. The generic substrate's Δ/floor advantage for emergent misalignment and sycophancy comes mostly from its 3–5x smaller refit floor. Top: Δ/floor per substrate, layer 14. Bottom: raw median map change (dark) vs the refit floor (light), log scale.

The 48-question generic pool estimates the map 3–5x more precisely than the 8–25-question eliciting pools, while the raw change moves far less than the floor does (sycophancy 0.52–0.60 everywhere; emergent misalignment a same-direction ~1.4x, 0.59 generic vs 0.43 eliciting). Fact's floor scales in step with its raw change (0.05 vs 0.33). Fact and marker never clear their own floor on any substrate; these are power-limited non-rejections. Marker's absolute magnitude carries the unresolved apply-gauge fork (Methodology); its cross-substrate comparison is unaffected provided the gauge acts uniformly across substrates.

The layer-14 substrate ordering is mid-stack-local: it inverts at early layers for emergent misalignment, and marker alone stays below its refit floor at every layer

What is plotted: the same floor-normalized map change, recomputed at every layer 1–27 for all 12 behavior-substrate cells from the uploaded per-layer maps; diamonds mark the frozen layer 14, where the recomputed values match the committed headline within 1.3% on all 12 cells (max 1.25%, basis-refit jitter). A companion figure shows the per-layer context-input drift (median trained-minus-base c_C norm).

Per-layer map-change profiles for four behaviors and three substrates.

Figure. The generic pool's advantage for emergent misalignment and sycophancy is a mid-stack property. Floor-normalized map change per layer, 12 behavior-substrate cells, n = 50 contexts each; diamonds mark the frozen layer 14, whose values match the committed headline within 1.3%.

The substrate-swap null exists only at layer 14, so these profiles are descriptive. For emergent misalignment and sycophancy the generic pool tops every mid-stack layer (8–20), with layer 14 at or near each spread profile's peak (4.71 at layer 14; 5.10 at layer 13); at layer 4 the ordering inverts (eliciting and mixed 4.5–4.7 vs generic 1.4), so the exceedance is layer-local. Fact exceeds its refit floor at early layers on every substrate (peaks 2.1–2.8); marker never does (max 0.48, layer 27), its late rise tracking the context-input drift (rank correlation +0.79 to +0.85), near-identical across substrates.

Refit at per-example grain, the map transfers onto the averaged task interchangeably with the averaged fit under the shared basis — but neither grain predicts held-out contexts at layer 14

What is plotted: held-out R², leave-one-context-out, layer 14, finetuned arm — dots own-grain fits, ticks cross-grain transfers; rows: averaged, per-question tasks; band = question-half refit-twin ceiling. Below it, the per-unit view: per-context own-minus-transfer gaps. Companions: base arm, averaging curves.

Held-out R-squared, own fits vs cross-grain transfers, averaged and per-question tasks.

Figure. Own fit and cross-grain transfer are nearly coincident on the averaged task (top) — at deeply negative R². Held-out R², leave-one-context-out, layer 14, finetuned arm; dots = own-grain fit, ticks = cross-grain transfer, band = question-half refit-twin ceiling; n = 50 contexts per cell. Per-fold own-vs-transfer gaps: median 0.75, 95th percentile 3.9, max 13.2.

Per-context own-minus-transfer gaps on the averaged task, twelve cells.

Figure. The gap tail clusters in the marker cells at the fact behavior-instruction context (largest four: 13.2, 12.7 finetuned; 11.5, 11.2 base). Per-context averaged-map own fit minus per-example transfer, finetuned arm, layer 14; labels mark each substrate's two largest-gap contexts. Base-arm companion.

Under the shared basis and the registered saturated λ grid (Methodology), the averaged-task transfer gap never exceeds 0.19 R², intervals spanning zero in 23 of 24 (exception: fact mixed-pool finetuned +0.18, under its 0.56 twin ceiling). The claim is basis-scoped: the plan's per-question-derived basis excludes zero in 18 of 24 reads (points 0.08–1.47 across all 24; the 18 excluding-zero reads start at 0.204; descriptive); leave-one-family-out gaps run −0.10 to 0.87, positive in 22 of 24. Both grains land below the training-mean baseline (pooled R² −51 to −14; per-question −7.7 to −3.3); the power criterion fired for all four behaviors, so contract reads are descriptive. On the per-question task the per-example fit wins by 0.38–0.71 R², every interval excluding zero.

What the fits do carry held-out is query-specific signal the question-averaged map cannot represent: within-context R² 0.71–0.87 against a shuffle null at zero

What is plotted: held-out per-question predictions and targets centered by each held-out context's question mean; bars = within-context R² per cell and arm; black ticks = shuffle-null 95th percentiles (200 draws). Below it, the per-unit view: per-context reads. Companions: CKA vs twin ceilings, subspace overlap vs k.

Within-context incremental R-squared bars far above shuffle nulls, twelve cells.

Figure. Held-out prediction succeeds almost exclusively on the question axis the averaged map discards. Within-context incremental R² (context-mean-centered), 12 cells × 2 arms, layer 14; black ticks = shuffle-null 95th percentiles (200 within-context question-label shuffles each).

Per-context within-context R-squared points behind the bars, twelve cells.

Figure. Per-held-out-context reads behind each bar. Points = each held-out context's centered R² (light = base, dark = finetuned; black tick = committed pooled value; lowest context labeled per panel); the folds are crossed — the same question set appears in every context. Recomputed via the driver's fold harness; pooled values reproduce the committed bars.

All 24 reads land between 0.71 and 0.87 against shuffle-null 95th percentiles ≤ 0.011 — though the folds hold out contexts, not questions, so this is cross-context transport of within-battery question main effects, not novel-question generalization. The coefficient-space companion is nearly uninformative: weight agreement falls below the question-half twin 5th percentile in 20 of 24 input-subspace reads (18 of 24 on CKA), yet the per-example twin ceiling sits near the random floor (twin CKA means 0.06–0.17 vs 0.45–0.92 averaged) — weights are dominated by the question sample. Only emergent-misalignment eliciting and mixed clear their input-subspace ceiling; sycophancy eliciting also clears narrowly on CKA in both arms (0.101 vs 0.090, 0.108 vs 0.106).

The emergent-misalignment substrate exception does not reappear at per-example grain: the substrate ordering inverts and the spread sits inside the null

What is plotted: Δ/floor from per-example fits (vertical) against the committed question-averaged values (horizontal), 12 labeled cells, log scales, dashed identity line. Companion: per-example substrate-swap null histograms for emergent misalignment.

Scatter of per-example versus question-averaged map change for twelve labeled cells.

Figure. The cells that carried the averaged-grain headline fall furthest below the identity line. Δ/floor at per-example vs question-averaged grain, 12 cells, layer 14, log scales; points below the dashed identity line shrink when the map is refit per (context, question).

Emergent misalignment's generic cell collapses from 5.12 to 0.64 while eliciting rises to 1.87: the averaged-grain ordering inverts, and the per-example spread (1.22) sits far inside the widest per-example null 95th percentile (3.76, 200 resamples). The collapse is half numerator, half denominator (raw change 0.594 to 0.237; floor 0.116 to 0.369): the per-example floor absorbs within-context question variance the averaged floor removes. The inversion is uniform — generic is the lowest per-example substrate for all three projected behaviors (0.64, 1.03, 0.76). Fact rises above floor on its eliciting and mixed pools (2.49, 3.45 — descriptive, no registered fact null); marker stays at floor (0.044–0.056). Caveats: the per-example null rescales raw change by the fixed observed floor; marker floors skip the floor oracle by design (unprojected read) — all nine projected cells passed, worst difference 6.5e−11.


Repro: ~43 h wall on one 8x H100 RunPod pod (pod-813, fresh provision after the prior pod's resume failed on supply constraints; extraction I/O-bound, several relaunches) + off-pod CPU null battery. Code: extraction scripts/issue813_run_cell.py, dispatch scripts/issue813_dispatch.py, DVs + null scripts/issue813_analysis.py (analysis at commit 5850512294), figures scripts/issue813_figures.py (hero x-labels unclipped in the 2026-07-05 figure revision). Artifacts (all verified in-tree at the linked SHAs): eval_results/issue_813/summary.json + delta_floor/ + substrate_swap_null/ (full 1000-draw null arrays persisted per cell) + chain_rho/; figures figures/issue_813/. The unreduced activation store (23,858 files), the reduced per-context c_C/v_A summaries (24 files, all 28 layers, both model arms), and the fitted-map factored forms (324 per-layer NPZs) are on the HF data repo under issue813_mapchange_substrate/ (unreduced/ + reduced/ + maps/, 24,206 files verified by Hub listing at write time); the only local-only files are 8 rebuildable accum_ckpt.npz scratch checkpoints. Reused artifacts: 4 default-context contrastive adapters from #537 (HF model repo, adapters/i537_*_default_seed42 @ revision 8a85ed7ce0, base model at HF sha 0718c53058475cb8ee38c8f4802220cdde548672 — fit: same base model, configs read from each adapter's own adapter_config.json, numeric apply-gauge parity passed); the 50-context battery + 48 UltraChat probes from #594 (committed in-tree); the eliciting pools from #537 (HF pools @ revision 90091b07e2); the map-fit + floor + bootstrap machinery from #667/#722 (imported verbatim). Per-layer follow-up round (2026-07-03, zero GPU): driver scripts/issue813_perlayer_profile.py, figure script scripts/issue813_perlayer_figure.py, per-cell profiles eval_results/issue_813/perlayer/ (12 JSONs, layers 1–27 + drift companion). Per-example follow-up round (2026-07-04/05, zero GPU, VM CPU, 27.4 h wall with heavy fleet contention through the first six cells): driver scripts/issue813_per_example_maps.py run as env OMP_NUM_THREADS=8 MKL_NUM_THREADS=8 OPENBLAS_NUM_THREADS=8 NUMEXPR_NUM_THREADS=8 python scripts/issue813_per_example_maps.py --dv3-draws 50 --dv6-oracle at commit 4cfe26e207 against HF revision b0d30307c1 (the --dv6-oracle flag dominates wall time), figure script scripts/issue813_pe_figures.py (2026-07-05 figure revisions: marker-cluster labels de-overlapped; per-context gap panels relabeled with reader-facing context names, then given collision-aware label placement; CKA twin-mean markers given explicit edge widths), per-unit companion figures for the pairwise-forest and within-context R² results (2026-07-05 concern-addressing revision) scripts/issue813_perunit_companions.py — recompute gates: per-cell medians reproduce the committed delta_med within 1.25e-2 (tol 2e-2), pooled within-context R² reproduced within 1e-4 in all 24 reads; per-cell transfer JSONs + coefficient-agreement + Δ/floor aggregates at eval_results/issue_813/per_example_vs_averaged/ (committed at 279e114463), round figures at figures/issue_813/ (71fbb957de, four panels revised at aa4f0117cc, per-context gap panels at c2f8b33fae); the 12 per-example fitted-map NPZs are on the HF data repo under per_example_vs_averaged/maps_per_example/L14/ (verified by a path-scoped Hub listing at the pinned revision at write time, 12 of 12). Round gates: committed-map reproduction PASS in all 12 cells (2% rel tolerance); batched grouped-fold ridge equivalence vs the serial oracle PASS (rel ~1e-13); Δ/floor floor oracle PASS on all 9 projected cells (worst rel 6.5e−11), skipped by design on the 3 unprojected marker cells. The first sweep launch was killed by the out-of-memory daemon at 5.4 h with nothing persisted; the canonical artifacts are the memory-protected relaunch's (98,548 s total; the emergent-misalignment generic cell alone took 51,478 s, 41,053 s of it that behavior's null battery — per-cell wall-times are null-dominated, not sample-size-scaling evidence). The two rerun-hygiene guards deferred from the per-layer round (NPZ key-coverage preflight; regime-keyed resume predicates) landed in this round's driver (commits 2743d0b151, b1bcd1cc21). Not produced: the two planned exploratory diagnostics (context-drift scatter, base-side cross-check) — computable without a GPU from the uploaded reduced summaries and per-layer maps; the frozen layer-14 headline is unaffected.

Context: created 2026-07-01; launched 2026-07-01 23:04 UTC; analysis landed 2026-07-03 17:06 UTC (run-7, vectorized null battery after a user-directed engine swap). Lineage: reuses the #537 adapters and the #594/#658/#667/#722 map-fit line; a proposer-initiated free-analysis round (per-layer Δ/floor profiles, layers 1–27) folded in on 2026-07-03; a user-initiated same-issue follow-up round (label per-example-vs-averaged-map, free analysis on the persisted per-question summaries) folded in on 2026-07-05. Originating prompt, verbatim:

Spec + run the clean map-change substrate-dependence experiment: 4 behaviors x 3 query substrates (generic UltraChat vs behavior-eliciting vs mix), reuse #537 adapters, 50-context battery, question-averaged c_C, PCA-48, M0 vs M+ (Delta/floor + chain-rho). Run in background (happy coder, autonomous). Resume pod-667; if not up in 5 min, provision a new pod. SAVE+UPLOAD the pre and post trained maps AND ALL context+answer activations pre/post finetuning UNREDUCED (per-token, per-question, all layers, base+trained) for followups. Ensure the pod does not run out of space.

(The plan grounded the target basis at the parent protocol's top-64, superseding the prompt's "PCA-48"; the run used 64.) Per-example round ask, verbatim from its follow-up scope note:

Question: is the single-context (per-example) context->answer map the same function as the question-AVERAGED map #813 fits, or a genuinely different one?

Activity