research.grokked.it / mech-interpPubblicato il 12 ottobre 2026

Scheda del run del 8 ottobre 2026, conservata come resoconto sperimentale. Il report GPS aggiornato distingue effetti predittivi, risposte finali e rianalisi, e include le verifiche successive. Questi risultati non identificano da soli un meccanismo di reinterpretazione.

V3 — Preferenze sintattiche, un token alla volta

Run npz-v3-20261008-01 · Gemma 3 1B pretrained · layer 17 fissato prima del run · 133.7 secondi nella funzione GPU su NVIDIA A10.

Stato: esperimento completato. 24 materiali pubblicati, 12 famiglie di verbi, 12 frasi di sviluppo e 12 di test. Le frasi sono due per famiglia: il test ha sei unità di ricampionamento, non dodici famiglie indipendenti. I risultati sono esplorativi.

Perché questa versione

V2 confrontava continuazioni di lunghezze diverse. Qui il confronto principale è tra la parola was e una virgola, ciascuna verificata come singolo token. Salviamo le due log-probabilità, la loro differenza e gli effetti delle patch separatamente. Nessun punteggio di stringhe lunghe entra nella misura principale.

I materiali provengono da Hanna e Mueller (2025) e dal repository degli autori. Le varianti e le combinazioni usate qui sono adattamenti: non abbiamo raccolto giudizi umani sul nostro test.

Risultato principale sul test

Il segnale supera entrambi i controlli anche nel contrasto con posizioni allineate. Questo sostiene un effetto sulle preferenze di continuazione oltre questo particolare controllo posizionale.

Misura: interazione opzionale − intransitivo Media [IC95%], nats
Patch, posizioni allineate 6.599 [4.065, 8.734]
Vantaggio sul controllo lessicale 6.223 [3.706, 8.148]
Vantaggio sulle direzioni casuali 6.564 [3.957, 8.786]

Una differenza positiva indica che la patch sposta was rispetto alla virgola più nel contesto con verbo opzionalmente transitivo che nel controllo intransitivo. Le due direzioni della patch sono allineate nel segno prima della media. Gli intervalli ricampionano intere famiglie, 10.000 volte, e non coprono l’incertezza delle scelte linguistiche o tutti i confronti del progetto.

Sviluppo e test, riportati separatamente

Split Patch allineata Vantaggio lessicale Vantaggio casuale
development 4.911 [3.206, 6.518] 4.940 [3.206, 6.617] 4.757 [2.650, 6.623]
test 6.599 [4.065, 8.734] 6.223 [3.706, 8.148] 6.564 [3.957, 8.786]

Che cosa controlliamo sulle posizioni

In “gap” i token sono identici al prefisso senza virgola, ma i position ID dal secondo gruppo nominale in poi aumentano di uno. Corrispondono così ai position ID degli stessi token nella frase con virgola. Non viene inserito un token nascosto: è una perturbazione artificiale della codifica posizionale.

Questo controllo non riproduce il contributo del token virgola all’attenzione e non isola perfettamente la sintassi dalla punteggiatura. Esclude soltanto una spiegazione basata interamente su questo specifico spostamento dei position ID, se il segnale resta presente.

Contrasto Interazione di base Patch Controllo lessicale Controllo casuale
Virgola / originale 6.479 [3.583, 9.042] 6.437 [3.531, 9.008] 0.339 [-0.089, 0.734] 0.374 [0.245, 0.519]
Virgola / posizioni allineate 6.719 [4.214, 8.844] 6.599 [4.065, 8.734] 0.376 [-0.141, 0.849] 0.035 [-0.224, 0.335]
Solo posizioni -0.240 [-1.016, 0.510] -0.141 [-0.898, 0.648] -0.016 [-0.073, 0.044] 0.106 [0.062, 0.174]

Le tre interazioni di base si scompongono algebricamente: virgola/originale = virgola/allineato + solo posizioni. Le patch agiscono in un sistema non lineare e non devono soddisfare la stessa somma.

Quale token cambia?

Componente, posizioni allineate Media [IC95%], nats
Effetto su log P(was) 4.291 [2.529, 5.911]
Effetto su log P(virgola) -2.308 [-3.250, -1.291]
Differenza was − virgola 6.599 [4.065, 8.734]

Il contributo della virgola va sottratto: la tabella riporta il suo segno originale. L’interazione misura una differenza tra classi di verbo, non un cambiamento assoluto identico in ogni frase.

Prima della patch: was o virgola?

Classe del verbo Condizione Margine medio, nats Frasi con P(was) > P(virgola)
optional native -5.729 0/12
optional gap -4.958 1/12
optional comma +3.229 12/12
intransitive native +1.161 10/12
intransitive gap +2.172 10/12
intransitive comma +3.641 12/12

Un margine negativo rende la virgola più probabile di was. Questo non dimostra un parse sbagliato: le due possibilità non esauriscono le continuazioni né le interpretazioni sintattiche.

Dove cade l’effetto nella continuazione effettiva?

La seconda misura usa le prime tre parole della proposizione principale originale. Si interviene sempre sul nome prima della disambiguazione e si salvano i punteggi di ogni token. Questa analisi secondaria riguarda parole effettive come “received unwelcome attention”, non necessariamente was. Non è la dimostrazione di un passaggio da interpretazione errata a corretta.

Posizione Patch, nats [IC95%] Vantaggio lessicale Vantaggio casuale
Parola 1 3.815 [1.974, 5.605] 3.106 [1.581, 4.446] 4.009 [2.186, 5.790]
Parola 2 0.027 [-0.024, 0.098] 0.093 [0.022, 0.169] 0.068 [0.012, 0.139]
Parola 3 -0.018 [-0.057, 0.021] -0.008 [-0.033, 0.011] -0.021 [-0.063, 0.020]

Stabilità tra famiglie e tra direzioni

Famiglia di test Patch Lessicale Casuale
began +8.156 +0.953 +0.651
called +4.938 -0.562 -0.161
left +1.266 +0.766 +0.380
lost +9.734 +1.078 -0.172
read +6.219 -0.359 -0.359
signed +9.281 +0.383 -0.130
Direzione, posizioni allineate Interazione patch, nats [IC95%]
forward 6.776 [4.240, 8.948]
reverse 6.422 [3.911, 8.542]

Verifiche e limiti

Prossima decisione

Prima di cercare feature SAE o scalare a modelli grandi, verificare il significato linguistico del contrasto su nuovi materiali e collegarlo a un compito comportamentale sui ruoli. La generalizzazione delle sonde di V2 resta un problema separato. Dopo questa ispezione, i dati V3 non sono più una conferma intatta per un protocollo modificato.

Riproduzione

Checkpoint fcf18a2a879aab110ca39f8bffbccd5d49d8eb29. Protocollo e sorgenti originali sono in source.json; misure grezze in observations.jsonl, riepiloghi in results.json e audit in audit.json.

uv run --no-project --with numpy --with matplotlib --with markdown python v3/analyze.py v3/results/npz-v3-20261008-01

Grafico del run v3-1b