=== CONFIGURATION ===
A: {"_sliding_window_pattern": 6, "architectures": ["Gemma3ForCausalLM"], "attention_bias": false, "attention_dropout": 0.0, "attn_logit_softcapping": null, "bos_token_id": 2, "dtype": "float32", "eos_token_id": 1, "final_logit_softcapping": null, "head_dim": 256, "hidden_activation": "gelu_pytorch_tanh", "hidden_size": 640, "initializer_range": 0.02, "intermediate_size": 2048, "layer_types": ["sliding_attention", "sliding_attention", "sliding_attention", "sliding_attention", "sliding_attention", "full_attention", "sliding_attention", "sliding_attention", "sliding_attention", "sliding_attention", "sliding_attention", "full_attention", "sliding_attention", "sliding_attention", "sliding_attention", "sliding_attention", "sliding_attention", "full_attention"], "max_position_embeddings": 32768, "model_type": "gemma3_text", "num_attention_heads": 4, "num_hidden_layers": 18, "num_key_value_heads": 1, "pad_token_id": 0, "query_pre_attn_scalar": 256, "rms_norm_eps": 1e-06, "rope_parameters": {"full_attention": {"rope_theta": 1000000.0, "rope_type": "default"}, "sliding_attention": {"rope_theta": 10000.0, "rope_type": "default"}}, "sliding_window": 512, "tie_word_embeddings": true, "transformers_version": "5.20.2", "use_bidirectional_attention": false, "use_cache": true, "vocab_size": 262144}
Configs identical: True

=== TENSOR INVENTORY ===
Tensor counts: 235 235
Only A: []
Only B: []
Shape mismatches: []
Stored parameter counts: 100326016 100326016
Dtypes A: {'BF16': 235}
Dtypes B: {'BF16': 235}
Discovered attention layers: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]

Tensors in first layer:
model.layers.0.input_layernorm.weight (640,)
model.layers.0.mlp.down_proj.weight (640, 2048)
model.layers.0.mlp.gate_proj.weight (2048, 640)
model.layers.0.mlp.up_proj.weight (2048, 640)
model.layers.0.post_attention_layernorm.weight (640,)
model.layers.0.post_feedforward_layernorm.weight (640,)
model.layers.0.pre_feedforward_layernorm.weight (640,)
model.layers.0.self_attn.k_norm.weight (256,)
model.layers.0.self_attn.k_proj.weight (256, 640)
model.layers.0.self_attn.o_proj.weight (640, 1024)
model.layers.0.self_attn.q_norm.weight (256,)
model.layers.0.self_attn.q_proj.weight (1024, 640)
model.layers.0.self_attn.v_proj.weight (256, 640)

Non-layer tensors:
model.norm.weight (640,)

=== HEAD VALUE-OUTPUT OPERATORS ===
Convention: differences are B minus A.
For head h, C_h = O_h @ V_kv(h).
This is a weight-only linear sub-map, NOT full attention.
It omits token-dependent routing and hidden-state normalization.
Standard contiguous grouped-query head assignment is assumed.
Exact decomposition:
  C_B - C_A = O_mid @ (V_B-V_A) + (O_B-O_A) @ V_mid
  first term = change in value reading
  second term = change in output writing

Top 24 by relative operator difference.
This orders algebraic differences, NOT behavioral importance.
layer head kv  relative_delta  abs_delta   read_term  write_term  read/write_cos
    3    3  0       0.0176977   0.095912    0.03519    0.086287        0.08488
    4    1  0       0.0171834    0.11135   0.043189    0.096319        0.15093
   16    1  0       0.0164674    0.12742   0.076096    0.095759        0.08761
   16    3  0       0.0158639    0.11867    0.06599    0.093755        0.07588
    4    0  0       0.0155136    0.11002   0.045753    0.096806        0.07220
   16    0  0       0.0149753    0.13029   0.081351    0.097111        0.05864
    4    2  0       0.0139797    0.11568   0.051804    0.098165        0.10434
    3    1  0          0.0135    0.10255   0.046733    0.086607        0.10285
    8    2  0       0.0131988    0.10553   0.049549        0.09        0.06525
    7    3  0       0.0131398    0.10503   0.050028    0.088299        0.08278
   15    2  0       0.0130853    0.14464   0.095206    0.099643        0.10154
    5    3  0       0.0130252    0.13625   0.078682     0.10434        0.09055
    1    0  0        0.012983    0.11407   0.057306    0.092714        0.10656
    3    2  0       0.0129771    0.11179   0.051761    0.091114        0.16065
    9    0  0       0.0128914    0.16469    0.12137    0.098985        0.10794
   13    1  0       0.0128496    0.13194    0.07835    0.097552        0.11463
    2    3  0       0.0126843    0.11044   0.054436    0.090605        0.10376
   11    1  0       0.0126658    0.13829   0.070973     0.10761        0.16422
   10    2  0       0.0126445    0.17015   0.098123     0.12673        0.13117
   12    3  0       0.0125873    0.16662    0.11878     0.10833        0.07453
   16    2  0       0.0123612     0.1272   0.077945    0.093928        0.08759
   13    0  0       0.0122855    0.13689   0.088699    0.097668        0.07695
    1    2  0       0.0122516    0.11626    0.06076    0.093402        0.09699
    5    2  0       0.0120792    0.13406   0.077872     0.10406        0.06660

Per-layer summary:
layer  median_relative  max_relative  head_at_max
    0       0.00951191     0.0110468            1
    1        0.0121308      0.012983            0
    2       0.00995541     0.0126843            3
    3        0.0132385     0.0176977            3
    4        0.0147466     0.0171834            1
    5        0.0116128     0.0130252            3
    6        0.0109666     0.0120463            2
    7        0.0109525     0.0131398            3
    8        0.0112268     0.0131988            2
    9        0.0111593     0.0128914            0
   10        0.0103378     0.0126445            2
   11       0.00985578     0.0126658            1
   12        0.0112658     0.0125873            3
   13        0.0120373     0.0128496            1
   14       0.00937822      0.010205            2
   15        0.0111606     0.0130853            2
   16        0.0154196     0.0164674            1
   17       0.00952682      0.011938            1

Maximum relative decomposition residual: 1.0123637820102322e-17

Interpretation boundary:
These products can reveal changed value transformations.
They do not establish which textual information is read,
whether an answer is true, or whether a changed head is causally important.
