SFT Leaves a Reproducible Signature in Activation Geometry: Calibrating Post-Training Interpretability Against Run-to-Run Noise
Organizations: New York University · University of Southern California · Columbia University
Abstract
A model diff credits post-training with whatever separates a base checkpoint from one post-trained descendant, presuming a rerun would land close by. On the sparse co-activation graph of Qwen3-1.7B it does not: two LoRA-SFT reruns sit over half as far apart as either sits from the base. We score each base-to-post contrast against the run-to-run band of its own recipe, and show that runs certify no better than under run exchangeability, however large the effect, so the band -score is a descriptive scale. SFT leaves a large, reproducible signature: base SFT displaces the graph by 17.8 pairwise-distance SDs beyond the mean distance between four independent LoRA-SFT runs, and the pre-registered estimator replicates on Llama-3.1-8B with Llama-Scope. At 29 steps each, four SFT and four DPO runs occupy disjoint displacement ranges, a gap and the spreads of the two arms, without any band. All bands use graphs built on one GPU architecture. Three other readings stop short of a verdict: DPO band counts (3/4, 1/4, 3/4 contrasts outside at 12, 29, 60 steps) show no consistent dose ordering while its displacement stays flat; light GRPO is a secondary non-detection, not an absence, and we run no equivalence test; and the graph concentration read as an RL signature is already in the zero-RL base. A pre-registered causal sweep at three edge budgets on 4,816 held-out prompts found the displaced sources load-bearing ( a matched random control in mean, in median at 10,000 edges), but their stage-specificity interaction reversed at two budgets and the third failed its faithfulness gate, so we claim calibrated structural displacement, not a changed mechanism. Scope: one backbone, one SFT recipe and general-text probe states for the full protocol.
Figures & tables
| Backbone | Arm | seed-pair | contrast | outside | |||
|---|---|---|---|---|---|---|---|
| Qwen3-1.7B | LoRA-SFT, 29 steps | 4 | – | – | to | ||
| Llama-3.1-8B | LoRA-SFT | 4 | – | – | — b | ||
| Qwen3-1.7B | LoRA-DPO, 12 steps | 4 | – | – | to | ||
| LoRA-DPO, 29 steps | 4 | – | – | to | |||
| LoRA-DPO, 60 steps | 4 | – | – | to | |||
| Qwen3-1.7B | GRPO family c | 5 | – | – | to |
| Stage (vs. base) | Gini | hub Jacc | Stage increment | edge Jacc | hub Jacc |
|---|---|---|---|---|---|
| SFT | base SFT | ||||
| DPO | SFT DPO | ||||
| RLVR-PPO | DPO PPO | ||||
| RLVR-GRPO | DPO GRPO |
Appendix figures & tables20 assets
Supplementary material from the paper’s appendix.
Appendix
| trained SAE | random-dir | |
| seed null, edge Jaccard ( pairs, mean SD) | ||
| base SFT edge Jaccard ( ) | ( ) | ( ) |
| base GRPO edge Jaccard ( ) | ( ) | ( ) |
| base SFT weighted edge cosine | (n/a ‡ ) | ( ) |
| ‡ no : the trained-SAE cosine null takes distinct values over pairs | ||
| (SD , below the reporting step) — not precision-adequate. | ||
| Arm | built on | seed-pair | contrast | outside | |||
|---|---|---|---|---|---|---|---|
| Qwen LoRA-SFT, 29 steps | L40S / H200, A100 a | 4 | – | – | to | ||
| Llama LoRA-SFT | A100 / H200 | 4 | – | – | — | ||
| Qwen LoRA-DPO, 12 steps | L40S / A100 | 4 | – | – | to | ||
| Qwen LoRA-DPO, 29 steps | L40S / H100 | 4 | – | – | to | ||
| Qwen LoRA-DPO, 60 steps | L40S / H100 | 4 | – | – | to | ||
| Qwen DPO, matched construction | L40S / H200 | 4 | – | – | to |
| Readout | LoRA-SFT ( ) | full SFT ( ) | DPO, 29 steps ( ) | GRPO ( ) |
|---|---|---|---|---|
| edge Jaccard | ||||
| weighted edge cosine | ||||
| SAE-code difference | ||||
| dense residual distance | ||||
| linear CKA |
| Checkpoint | top-1% (active) | Gini | # active dst features |
|---|---|---|---|
| Base (zero RL) | |||
| SFT | |||
| GRPO | |||
| (GRPO base) | — | ||
| Top-32 hub Jaccard: base GRPO , SFT GRPO , base SFT | |||
| Family / SAE | Checkpoint | Post-training | Gini | top-1% | hub Jaccard |
|---|---|---|---|---|---|
| Qwen3-1.7B / qwen-scope | base | — (Gini ) | — | — | — |
| SFT | SFT (LoRA) | ||||
| GRPO | accuracy-only GRPO | ||||
| GRPO-s4 | GRPO (seed) | ||||
| GRPO-s5 | GRPO (seed) | ||||
| shaped- | shaped-reward GRPO |
| Percentile | Edge weight | Feature ID | Total inbound | In-degree |
|---|---|---|---|---|
| 30329 | 2061 | |||
| median | 26766 | 241 | ||
| 10420 | 88 | |||
| 25789 | 80 | |||
| 11799 | 48 | |||
| max | 23554 | 36 |
| SAE family | Model | top-1% (active) | Gini | top-1% (dict) |
|---|---|---|---|---|
| qwen-scope (resid) | Qwen3-1.7B | |||
| qwen-scope (resid) | Qwen3-8B | |||
| transcoder (circuit-tracer) | Qwen3-0.6B | — | ||
| transcoder (circuit-tracer) | Qwen3-1.7B | — | ||
| transcoder (circuit-tracer) | Qwen3-14B | — |
| narrowing | Qwen3-1.7B / qwen-scope l22 | Gemma-2-2B / gemma-scope l20 | ||||
|---|---|---|---|---|---|---|
| Metric | predicts | base | SFT | GRPO | base | -it |
| mean | ||||||
| firing-freq Gini | ||||||
| mean-act Gini | ||||||
| usage entropy (norm) | ||||||
| † structurally pinned: TopK dictionary with ; excluded from all Qwen metric counts. | ||||||
| Pair | edge Jaccard | vs. seed null | rank § |
|---|---|---|---|
| base SFT (LoRA) | |||
| base GRPO | |||
| base GRPO s1/s3/s4/s5 | – | to | – |
| base shaped- | |||
| base SFT vs. SFT’s own null | |||
| base SFT s0/s1/s2/s3 (own null) | – | to |
| BFCL task states | pile | |
| seed null, pairs (mean SD) | ||
| seed band | ||
| base GRPO ( ) | ( ) | ( ) |
| base s1/s3/s4/s5/shaped ( range) | to | to |
| base SFT ( ) | ( ) | ( ) |
| Checkpoint | Gini | hub Jacc | Battery metric | seed max | |
|---|---|---|---|---|---|
| SFT | mean (pinned) | ||||
| GRPO | dead fraction | ||||
| s1 | firing-freq Gini | ||||
| s3 | firing-freq top- | ||||
| s4 | mean-act Gini | ||||
| s5 | usage entropy (norm) |
| cfg | SFT cell | base cell | CI | branch | |||||
| A | — | — | — | F3 | |||||
| A | F5 | ||||||||
| A | F5 | ||||||||
| B † | — | — | — | F3 | |||||
| B † | — | — | — | F3 | |||||
| B † | F5 |
| Feature ID | Mean act. (pre) | Mean act. (post) | In hub set? | |
|---|---|---|---|---|
| 14907 | no | |||
| 32255 | yes | |||
| 8232 | no | |||
| 9666 | yes | |||
| 32257 | no | |||
| 12234 | no |
| Feature ID | Entropy (pre) | Entropy (post) | In hub set? | |
|---|---|---|---|---|
| 14907 | no | |||
| 22117 | no | |||
| 8286 | yes | |||
| 32255 | yes | |||
| 2180 | no | |||
| 9522 | no |