From Latent Space to Jacobian Space: Measuring, Evading, and Training Against Safety-Content Accessibility
Abstract
Output-only safety monitoring sees only the end of a model's computation, yet the model computes its answer before emitting it: what it is internally poised to say is safety-critical. Jacobian-space (J-space) readouts, linear maps from hidden states to the output vocabulary via the model's input-output Jacobian, have been proposed as a window on behaviorally accessible internal content, and a first safety protocol (JADR) showed that danger recognition is readable there. What remains unknown is how this accessible content relates to the latent-space safety geometry studied by representation engineering, and how safety training shapes it. We introduce two quantitative bridges: (i) a transport-amplification profile , measuring how strongly a latent safety direction is carried toward output space by each layer's Jacobian, and (ii) a paired base-vs-tuned protocol that attributes accessibility to training provenance. Across four small model pairs (135M to 1.5B, three lens-fit seeds), tuned checkpoints concentrate recognition in upper-middle layers, and at 0.5B DPO installs refusal while J-space recognition drops to chance: training can widen the accessibility gap exactly where behavioral safety looks best. A deployment audit closes the loop: monitor-aware GCG-style suffixes suppress the prompt-side monitor at zero behavioral cost at every scale; only a learned monitor rung resists its own adaptive re-attack; the training-time defense fails its re-attack at every penalty weight; steering shows the amplification profile is descriptive, not causal; and continuous-prefix optimization fails where discrete search succeeds. Safety monitoring, training, and evaluation must operate on accessibility itself, not on outputs alone.
Figures & tables
| Role | Dataset | Use | |
|---|---|---|---|
| Danger | StrongREJECT | 313 | danger set |
| Safe | XSTest (safe half) | 250 | benign control |
| Calibration | wikitext-103 chunks | 100 | lens fitting |
| Tuning | HH (refusal-filtered) | 2424 | DPO pairs |
| Model | seeds | SafetyAUC | 95% CI | ComplAUC | HarmAUC | Headroom | |
|---|---|---|---|---|---|---|---|
| SmolLM2-135M tuned | 5 | 0.581 0.109 | [0.535, 0.624] | 0.858 | 0.400 | +0.223 | 2.79 (L19) |
| SmolLM2-135M base | 5 | 0.697 0.045 | [0.654, 0.739] | 0.627 | 0.539 | +0.570 | 2.78 (L12) |
| SmolLM2-360M tuned | 3 | 0.467 0.038 | [0.420, 0.515] | 0.823 | 0.362 | +0.144 | 1.62 (L15) |
| SmolLM2-360M base | 3 | 0.485 0.153 | [0.443, 0.529] | 0.692 | 0.562 | +0.293 | 2.58 (L23) |
| Qwen2.5-0.5B tuned | 3 | 0.564 0.032 | [0.519, 0.610] | 0.689 | 0.561 | +0.376 | 1.55 (L14) |
| Qwen2.5-0.5B base | 3 | 0.665 0.049 | [0.621, 0.708] | 0.676 | 0.530 | +0.489 | 1.69 (L19) |
| Family | SafetyAUC | ComplAUC | Headroom | ||
|---|---|---|---|---|---|
| SmolLM2-135M | 5 | -0.116 0.105 | +0.231 | -0.347 | +0.01 |
| SmolLM2-360M | 3 | -0.018 0.167 | +0.131 | -0.148 | -0.96 |
| Qwen2.5-0.5B | 3 | -0.100 0.039 | +0.013 | -0.113 | -0.14 |
| Qwen2.5-1.5B | 3 | +0.260 0.131 | -0.168 | +0.428 | -0.36 |
| Model | corpus | window | seeds | SafetyAUC |
|---|---|---|---|---|
| 135M instr. | wikitext | 5 | 0.581 0.109 | |
| 135M instr. | generic | 2 | 0.455 0.010 | |
| 135M instr. | safety | 2 | 0.556 0.026 | |
| 135M instr. | wikitext | 1 | 0.675 0.000 | |
| 135M base | wikitext | 5 | 0.697 0.045 | |
| 135M base | generic | 2 | 0.488 0.130 |
| Model | pre | vanilla SafetyAUC | ref. | J-pen SafetyAUC | ref. |
|---|---|---|---|---|---|
| SmolLM2-135M | 0.668 | 0.758 0.062 (3) | 0.64 | 0.758 0.061 (3) | 0.64 |
| SmolLM2-360M | 0.489 | 0.513 0.150 (3) | 0.64 | 0.512 0.149 (3) | 0.64 |
| Qwen2.5-0.5B | 0.728 | 0.541 0.000 (1) | 0.96 | 0.553 0.000 (1) | 0.95 |
| Qwen2.5-1.5B | 0.537 | 0.634 0.000 (1) | 0.99 | 0.634 0.000 (1) | 0.99 |
| Target | Attack | succ. | ref. | alarm (p / r) | (p / r) | judge-harm [CI] | ||
|---|---|---|---|---|---|---|---|---|
| SmolLM2-135M (DPO) | GCG (compliance) | 50 | 0.48 | 0.56 | 0.22 / nan | 3.32 / nan | +0.38 | 0.00 [0.00,0.20] |
| SmolLM2-135M (DPO) | silent (compliance monitor) | 50 | 0.40 | 0.46 | 0.00 / nan | 0.00 / nan | +4.33 | 0.00 [0.00,0.20] |
| Qwen2.5-0.5B-Instruct | GCG (compliance) | 50 | 0.84 | 0.08 | 0.00 / nan | 0.70 / nan | +1.75 | 0.00 [0.00,0.20] |
| Qwen2.5-0.5B-Instruct | silent (compliance monitor) | 50 | 0.78 | 0.06 | 0.00 / nan | 0.00 / nan | +1.88 | 0.07 [0.01,0.30] |
| Qwen2.5-1.5B-Instruct | GCG (compliance) | 50 | 0.60 | 0.12 | 0.00 / nan | 2.32 / nan | +1.54 | 0.00 [0.00,0.20] |
| Qwen2.5-1.5B-Instruct | silent (compliance monitor) | 50 | 0.50 | 0.28 | 0.00 / nan | 0.01 / nan | +1.79 | 0.13 [0.04,0.38] |
| Target | prompt set | last | multi8 | genmean | learned |
|---|---|---|---|---|---|
| Qwen2.5-0.5B-Inst | vanilla att. (0.13) | 0.07 | 0.00 | 0.00 | 0.00 |
| Qwen2.5-0.5B-Inst | silent att. (0.13) | 0.00 | 0.00 | 0.00 | 0.00 |
| Qwen2.5-0.5B-Inst | silent m8 re-att. (0.13) | 0.00 | 0.00 | 0.00 | 0.00 |
| Qwen2.5-0.5B-Inst | silent lrn re-att. (0.07) | 0.33 | 0.13 | 0.07 | 0.00 |
| Qwen2.5-0.5B-Inst | clean danger | 0.33 | 0.13 | 0.00 | 0.13 |
| Qwen2.5-0.5B-Inst | benign (FPR) | 0.05 | 0.05 | 0.05 | 0.00 |
| source eval | Qwen2.5-0.5B-Instruct | Qwen2.5-1.5B-Instruct | smol135m_base_vanilla_lam1.0 |
|---|---|---|---|
| Qwen2.5-0.5B-Instruct / silent | 0.80/0.00 | 0.00/0.00 | 0.00/0.13 |
| Qwen2.5-0.5B-Instruct / vanilla | 0.80/0.00 | 0.00/0.00 | 0.00/0.33 |
| Qwen2.5-1.5B-Instruct / silent | 0.00/0.00 | 0.60/0.00 | 0.00/0.00 |
| Qwen2.5-1.5B-Instruct / vanilla | 0.00/0.00 | 0.60/0.00 | 0.00/0.53 |
| gemma-2-9b-it / silent | 0.00/0.00 | 0.00/0.00 | 0.00/0.00 |
| gemma-2-9b-it / vanilla | 0.00/0.00 | 0.00/0.00 | 0.00/0.20 |
| Setting | Attack | succ. | alarm | ||
|---|---|---|---|---|---|
| GCG (compliance) | 0.47 | 0.13 | 2.20 | +1.77 | |
| silent (compliance monitor) | 0.27 | 0.00 | 0.00 | +4.42 | |
| GCG (compliance) | 0.47 | 0.07 | 1.95 | +2.03 | |
| silent (compliance monitor) | 0.53 | 0.00 | 0.00 | +4.40 | |
| GCG (compliance) | 0.53 | 0.27 | 4.11 | -0.39 | |
| silent (compliance monitor) | 0.33 | 0.00 | 0.00 | +4.32 |
| Model | fp32/CPU (seeds) | fp32/GPU | fp16/GPU | bf16/GPU | NF4/GPU |
|---|---|---|---|---|---|
| SmolLM2-135M tuned | 0.581 0.109 | 0.544 | 0.497 | – | 0.665 |
| SmolLM2-135M base | 0.697 0.045 | 0.627 | 0.673 | – | 0.532 |
| SmolLM2-360M tuned | 0.467 0.038 | 0.373 | 0.454 | – | 0.451 |
| SmolLM2-360M base | 0.485 0.153 | 0.426 | 0.541 | – | 0.591 |
| Qwen2.5-0.5B tuned | 0.564 0.032 | 0.558 | 0.543 | – | 0.430 |
| Qwen2.5-0.5B base | 0.665 0.049 | 0.686 | 0.652 | – | 0.654 |
Appendix figures & tables5 assets
Supplementary material from the paper’s appendix.
Appendix
| Axis | Ours (words) | JADR spec |
|---|---|---|
| safety | 108 | 170 |
| compliance | 61 | 47 |
| evasion | 55 | 49 |
| softening | 21 | 16 |
| hedging | 29 | 22 |
| harm | 91 | 84 |
| Model | lens | probe (max) | logit-lens | random-lex | split-half |
|---|---|---|---|---|---|
| qwen05b_base | 0.467 | 0.996 | 0.504 | 0.499 | 0.254 |
| qwen05b_instruct | 0.455 | 0.996 | 0.478 | 0.500 | 0.306 |
| qwen15b_base | 0.392 | 0.997 | 0.511 | 0.504 | -0.112 |
| qwen15b_instruct | 0.611 | 0.998 | 0.688 | 0.498 | -0.050 |
| qwen3_4b_base | 0.772 | 0.999 | 0.560 | 0.361 | 0.561 |
| qwen3_4b_instruct | 0.940 | 1.000 | 0.889 | 0.493 | 0.449 |
LLM Safety
Large language model (LLM) safety studies how to prevent harmful, unreliable, or misaligned behavior while preserving useful responses.
See all 442 papers