summaryrefslogtreecommitdiff
path: root/results.md
blob: 27b40058716e584209132f4e61bea7788b6a1a31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# Results

All numbers below are from the faithful J-lens (`src/jlens_v3.py`), which
computes exactly the paper's quantity: rows of `W_U * J_l` where
`J_l = E[ d h_final / d h_l ]` (average residual-to-residual Jacobian, read out
through the unembedding). Verification: at the last layer, J must be the
identity, and the check returns cosine similarity **1.0000**.

## 1. Both-ways comparison: old proxy vs faithful lens (trained 10.65M char model)

Pearson r between token frequency and J-lens norm, per layer. n = 65 tokens
(full char vocab). The correlation survives the faithful implementation at
every layer.

```
  Layer   proxy r   faithful r
  L0      -0.661    -0.643
  L1      -0.673    -0.668
  L2      -0.653    -0.672
  L3      -0.648    -0.685
  L4      -0.562    -0.637
  L5      -0.665    -0.606
```

Top tokens by faithful norm are consistently rare characters (`?`, `z`, `q`,
`$`); bottom are common ones (space, `e`, `t`, `i`).

## 2. Frequency-matched synthetic pair (`src/synthetic_pair.py`)

Two new characters at identical 0.1% unigram frequency in Shakespeare:
`@` appears only after the trigger "the " (predictable in context);
`#` appears at uniform random positions. Faithful J-lens norm per seed, range
over layers 0-5:

```
  seed   @ norm (predictable)   # norm (noise)   ratio    freq corr r
  0      0.0232 - 0.0246        0.0152 - 0.0154   1.51-1.60   -0.59..-0.68
  1      0.0224 - 0.0237        0.0148 - 0.0151   1.50-1.60   -0.59..-0.66
  2      0.0215 - 0.0233        0.0154 - 0.0163   1.35-1.51   -0.62..-0.66
```

Reading: at equal frequency, the structured token scores ~1.4-1.5x higher.
The frequency anti-correlation holds, but the lens also carries genuine
conditional-predictability signal.

## 3. Loss-reweighting causal test (`src/loss_reweight.py`)

Three models per seed, identical init + minibatch order: 'q' targets weighted
x2 in the loss, plain control, and a same-total-loss control upweighting random
non-'q' targets. Question: does raising effective frequency causally reduce
'q's faithful J-lens norm? PENDING — run completes within hours of this file
being written; the summary table is printed by
`python3 src/loss_reweight.py --step summary --layers 2,3,4`.

## 4. Historical / do-not-copy

- Original proxy finding (r = -0.65, `jlens_v2`): superseded by the faithful
  implementation; kept only for the both-ways comparison.
- GPT-2 correlation (r = -0.18, `gpt2_jlens.py`): UNDER-POWERED (96 token
  positions, n=100 sampled tokens) and computed a different quantity
  (norm-per-batch vs norm-of-mean). Directionally consistent but not
  publishable evidence on its own.