ai gen
PARASCOPES/ reading the residual stream
Interpretability · residual-stream decoding · Llama-3.2-3B

Can you read what a model is about to say?

A ParaScope decodes a language model's hidden state into the paragraph it is about to write. This project pushes that idea in two directions: when an upcoming topic becomes readable while the model is still writing about something else, and how far a fine-tuned reader of the model's own state can be pushed. Along the way, a map of the 2023–2026 "meta-model / reading the future" literature — including Anthropic's July 2026 J-space paper.

Base model Llama-3.2-3B-Instruct Embedding SONAR 1024-d Compute 3× A4000 16GB ~35 papers mapped
generation …writing about X token tokenₜ residual stream L14 L21 L27 reader probe · LoRA · patchscope → SONAR / text decoded next paragraph "the topic will be Y…" scored vs. true continuation
01

The short version

Two questions, one base model, five families of "reader," and a causal follow-up. Here is where they landed.

0.670
SBERT decode of the best LoRA continuation reader — +84% over the champion probe (0.363). Training the reader, not the probe, is what moves decode quality.
0.393 / 0.594
Retrieval rank-1: LoRA reader vs. the maghead-MLP probe. The probe still owns retrieval; the LoRA reader owns readable text. Different tools, different wins.
≈ chance
Upcoming topic Y is linearly near-absent mid-paragraph across five readers, while the current topic X is loud everywhere.
0.10 vs 0.25
Causal steering of the one decodable plan signal (the secret pick) lands at chance. At 3B the plan is a read-only correlate, not a control handle.
Headline

On Llama-3.2-3B, the model appears to plan a topic switch just-in-time — re-deriving the next topic from the prompt as it writes, holding only a weak choice-bias in its activations. A parascope reads the current generation state richly; the specific future is decodable only in the one setting the prompt can't reveal, and even there it isn't causally load-bearing. This reproduces "Where's the Plan?" (decodable ≠ causally used) on a new task design.

02

What a ParaScope is

At a paragraph break, a transformer's residual stream holds a compressed sense of what comes next. A ParaScope (Pochinkov, arXiv:2511.00180) turns that hidden state into the upcoming paragraph. Two shapes:

Continuation ParaScope — patch the break-token residual back into the model as context and let it generate. AutoEncoder-Map ParaScope — a trained map from residual → SONAR sentence-embedding space, then decoded to text. Both recover next-paragraph information worth roughly five tokens of "cheat" context at the 3B scale.

This project asks two things the original paper didn't. Q1 — move the read from the paragraph break to mid-paragraph, and from open text to controlled "talk about X, then Y" pairs: when does the future topic become readable? Q2 — stop training a probe and instead LoRA fine-tune the model itself into a reader of its own state: how good can decode get?

03

X-then-Y: is the plan there while it writes?

2,400 two-paragraph documents across four prompt families (explicit X→Y, derived-Y, secret-choice, model-chosen). Six layers captured at every paragraph-X token; positions binned 0–9 within the paragraph. Five independent reader families, one verdict.

The finding

Every reader agrees: the current topic X is strongly readable everywhere in the paragraph; the specific upcoming topic Y is linearly near-absent until the model actually gets there.

Readout of current-X vs upcoming-Y, mid-paragraph. Chance rates in parentheses.
Reader familyCurrent-X readoutUpcoming-Y readout
mini J-lens 64-topic pool0.66–0.72 acc (0.016)0.006–0.026
Patchscopes patch L2 / L140.10–0.17 (≈10× chance)≈ chance
champion maghead probe per-tokencos 0.18–0.25cos 0.13–0.17 · r1 ≤0.006
fresh ridge → SONAR(Y)cos ~0.57 · r1 ~0.00 (collapse)
fresh logistic · secret-pick 4-way0.40–0.42 (0.25)
See it on one real generation mini J-lens · L21 · honeybeeschoral music explore all 9 examples interactively →

Prominence = 1 − rank/63 (top of the 64-topic readout = 1.0) at each generated token. The current topic sits at the top of the J-lens readout across the whole paragraph; the upcoming topic stays low and only snaps upward at the paragraph boundary — often before its first content word.

Three things worth noticing

No prompt echo. Even when Y sits verbatim in the prompt (the explicit family), Y's rank-1 at the prompt's last tokens is 0.004. The parascope reads generation state, not the prompt text.

No boundary crystallization. At the exact final token of paragraph X — the probe's own training position — the champion still reads the just-finished X (cos 0.251) over the imminent Y (0.165, rank-1 0.005). A hard topic switch exposes that the boundary residual does not linearly encode the switch in SONAR space; the paper-era rank-1 on FineWeb is likely carried substantially by topic continuity between adjacent paragraphs.

One real plan signal. The exception is the secret pick — the family where the prompt lists all four options but only the model knows which it chose. There a fresh probe reads the choice at 0.40 vs 0.25 chance (best at L24/L27). That is the only place a genuine, prompt-independent forward plan shows up.

04

Is that plan causally load-bearing? No — at 3B.

The secret pick is decodable. So the sharp question: if you edit that representation, does the model change its mind? Intervention: add α·(μtarget−μorig) — slot-mean differences from mid-paragraph-1 captures — to all paragraph-1 positions during prefill, generate paragraph 2, parse the revealed pick. n=120 per arm.

Prefill steering & ablation of the 3-dim pick subspace. Chance flip-rate ≈ 0.10.
Configbase keepsteer→targetsteer keepablate keep
L24,27 · α=40.6500.1000.5830.692
L24,27 · α=80.6170.1170.5250.642
L14,21,24,27 · α=40.5580.0920.5670.625

Steering sits at chance; ablating the 3-dim pick subspace changes nothing. And base_keep is only ~0.6 at temperature 0.3 — the pick is substantially re-decided during paragraph 2. The mid-paragraph signal is a weak bias, not a locked plan.

Steer-everywhere control (prefill + every generated token) — the write-capability test.
Configsteer→targetsteer keepsteer derail
L24,27 · α=4 · all0.1000.5420.108
L24,27 · α=8 · all0.0830.4830.133
L14,21,24,27 · α=6 · all0.1000.3580.358
Read ≠ write

Higher α only derails the model (0.36 derail at 4-layer α=6) without ever flipping it to the target. The slot-mean direction isn't even write-capable — it's a pure read-only correlate of the pick. Decodable (0.40 vs 0.25), but neither causally load-bearing nor a usable control handle in diff-of-means form. This is the read≠write gap, and it directly reproduces "Where's the Plan?" on a new task.

05

LoRA continuation readers: how far can decode go?

Instead of a probe that maps a residual to a SONAR vector, LoRA-fine-tune the model into a reader of its own boundary state (LatentQA-style). A soft-projector turns donor residuals into a few soft tokens; the model generates the next paragraph from them. Reader = the model decoding itself. Scored on val shard 8, n=300, against the full-shard retrieval pool.

Q2 leaderboard — SBERT is decode quality; rank-1 is retrieval among 10,333 true SONAR targets.
ReaderDataSBERT cosSONAR cosrank-1
zero-shot continuation patch L14/21/270.0870.000
LoRA patch L14/21/27 r328sh · 1ep0.2300.030
LoRA soft-projector L27 k8 r328sh · 1ep0.4140.3880.120
LoRA soft L27 k16 r328sh · 2ep0.4440.4070.140
LoRA soft ml3 L14/21/27 k16 r3224sh · 1ep0.5480.4570.210
LoRA soft ml3 L14/21/27 k16 r3224sh · 2ep0.5960.4940.313
LoRA soft ml6 L9–27 k16 r6424sh · 2ep0.6230.5100.297
LoRA soft ml3 L14/21/27 k16 r32 ★ decode SOTA24sh · 3ep0.6700.5490.393
SONAR maghead-MLP champion probe → decode24sh0.3630.594
SONAR roundtrip ceiling decode true vector~0.79

What the ladder says

Training the reader is everything. The zero-shot continuation parascope on Llama-3B is weak when patching only three layers (0.087) — the paper patched all of them. Tuning the reader takes decode from 0.087 to 0.670.

Epochs beat depth and rank. Holding the ml3/24sh recipe fixed and varying only epochs gives a clean, monotonic curve — 1ep 0.548 → 2ep 0.596 → 3ep 0.670 SBERT (rank-1 0.210 → 0.313 → 0.393), still rising on both axes and the SBERT gain even accelerating (+0.048 then +0.074). A third epoch (0.670) beat a deeper, twice-as-expensive six-layer rank-64 reader (0.623). Retrieval wasn't stalled — it was undertrained. A 5-epoch run is in flight to see whether 4–5 epochs keep climbing or saturate.

Multi-layer input was the unlock, same as for the probes: single-layer donors plateaued at val CE ~1.18; the three-layer donor stack dropped it to 0.59.

A negative result that matters

A detached auxiliary cosine head bolted onto the reader does not retrieve: rank1head lands at 0.10 vs the text path's 0.25 on the same checkpoint, despite a healthy SONAR cosine of 0.54. High cosine, no retrieval — cosine objectives mean-collapse, the repo's oldest lesson. Retrieval-grade vectors need InfoNCE, which is exactly what the maghead champion runs on raw residuals. Decode and retrieval want different losses.

Two tools, two jobs

The LoRA reader wins decode quality at one-third the data (readable English about the right topic); the probe wins retrieval (pin the exact next paragraph out of thousands). Decoder-side capacity was the binding constraint on decode — and it's cheap to scale.

What the reader actually writes

Real decodes from the champion reader (ml3 3-epoch) on held-out validation paragraphs — the model reading its own boundary state and writing the next paragraph. Each dot is one example, placed by its SBERT similarity to the true continuation. Click along the range to see the spread behind the 0.67 mean.

← weaker match (genre/domain kept, subject swapped)near-verbatim →
True next paragraph

Reader's decode

Pattern across the range: the reader reliably recovers genre, structure, register and domain — often the exact opening words — while specific named entities, dates and numbers are where it diverges. Decodability is real but bounded; next-paragraph is one-to-many.

06

The probe leaderboard, and the magnitude wall

The AutoEncoder-Map side of the project: linear and MLP probes from residual → SONAR, scored by rank-1 retrieval and by decoded-text quality. This is the retrieval SOTA lineage the LoRA reader is measured against.

Champion probes. dir-rank1 = retrieval on the direction head alone; decode = SBERT of decoded text.
ProbeLayersrank-1dir-rank1decode% of ceiling
llama-3b maghead linearL270.5940.6280.363
llama-3b maghead-MLP h2048×2L270.6310.6460.371
llama-3b ml3 multi-layer14,21,270.6480.656
gemma-27b singleL580.6580.6760.34343%
gemma-27b ml3 ★ overall SOTA50,54,580.6760.6930.36846%

The story in three moves

Data, then architecture, then base-model size. Doubling data lifted rank-1 ~0.06 at every layer, then saturated (24→32 shards = +0.005). An MLP direction head broke the linear rank-1 ceiling without losing decode coherence. A 9× bigger base model (gemma-3-27b) predicts the next-paragraph direction best of all. Multi-layer input, model size and data all stack: rank-1 0.658 → 0.661 → 0.676.

The wall

Decode doesn't improve in absolute terms with a bigger model — both llama and gemma sit at ~42–46% of their respective SONAR-roundtrip ceilings. The gap is magnitude: a linear d→1 magnitude head explains only ~30% of variance (llama) to ~70% error (gemma). The direction is already good; the size of the SONAR vector is the wall. That's why decoder-side levers — LoRA readers, better magnitude heads — are the path forward, and why next-paragraph decode is partly task-intrinsic (it's one-to-many).

For reference: the paper's 24-sublayer Llama-3B TAE ParaScope reports ~0.55 mean cosine; a single-layer L27 mse+zscore probe here reaches 0.514 val-cos — about 93% of the paper's signal from 1/24 of the input.

07

The reading toolkit: 2023–2026

Every technique that could, in principle, read an upcoming topic from activations while the model writes about something else. Filter by family; the rating is each tool's fit for the X-then-Y read.

Full 35-paper review with per-tool notes and the ranked shortlist: TECHNIQUES.md in the repo. Applicability rating = expected signal-to-effort for reading upcoming topic Y mid-paragraph.

08

What it all means

1. Llama-3B plans just-in-time. It re-derives the next topic from the prompt as it writes (Wu et al.'s "breadcrumbs" world), holding only a weak choice-bias in activations. The rich thing a parascope reads is the current state; the specific future is mostly reconstructed on the fly.

2. The decisive follow-up needs a bigger model. "Where's the Plan?" found Gemma-3-27B is the exception where boundary plans are causally used — and gemma-27b is also this repo's retrieval SOTA. Re-running the secret-choice causal protocol on gemma-3-27b (an A100-80G job) is the single highest-value next experiment.

3. Decode was capacity-bound, not information-bound. The LoRA reader's decode win at one-third the data says the binding constraint on decode quality was decoder-side capacity — cheap to scale, and it pushed well past the probe. Retrieval and decode want different losses (InfoNCE vs the reader's language-model objective); the best system likely uses both.

Open threads

InfoNCE-style auxiliary loss to close the LoRA retrieval gap · all-layer donors · the gemma-27b causal port · sentence-unit probes · a future-supervised concept bottleneck (Predictive Concept Decoders) as a principled "SAE that reads ahead."

09

Methods & disclosure

Base model. Llama-3.2-3B-Instruct (28 layers, dres=3072). Sentence embeddings via SONAR (1024-d), decoded with the SONAR text decoder. Retrieval pools use the full validation shard (~10.3k paragraphs). Probe retrieval and LoRA-reader retrieval use the identical protocol (SONAR-encode the output, rank against true targets) so numbers are comparable — with the caveat that the LoRA path is scored text→SONAR-re-encode (lossy) while the probe is scored on its raw output vector.

X-then-Y dataset. 2,400 two-paragraph documents, four prompt families, ~78% compliant. Residuals captured at six layers across all paragraph-X tokens, binned 0–9 by within-paragraph position. Causal tests use slot-mean difference vectors added during prefill (and, as a control, at every generated token). Compute: 3× A4000 16GB.

AI disclosure

This site and the underlying experiments were produced by an AI research agent. Results are from real training runs and evaluations on the hardware described; the writeup has been AI-compiled and AI-fact-checked against the project's result logs, not independently peer-reviewed. Numbers reflect single runs at the 3B scale and should be read as directional, not definitive. Treat conclusions as a research snapshot, not settled findings.