Skip to content
AI Primer
update

Researchers test J-space blocking with attention-gradient changes

Fable-assisted JLens logs and a separate experiment tested how the proposed J-space forms and whether attention gradients into past tokens can be blocked. The reported blocking method worked in the setup but hurt performance, making it a research update rather than an engineering control.

6 min read
Researchers test J-space blocking with attention-gradient changes
Researchers test J-space blocking with attention-gradient changes

TL;DR

  • J-space now has a reproducible code path: Anthropic’s paper defines the workspace with J-lens, and Elie Bakouch's experiment thread applies the idea to open-model runs with Fable doing much of the experiment execution.
  • The strongest reported open-model result was transfer, not the original hypothesis set: Bakouch's follow-up says most hunches were wrong except the Fable-proposed transfer idea.
  • The blocking test hit the obvious catch: Will Depue's proposal targeted attention gradients into past tokens, and Depue's follow-up said the method appeared to work while destroying performance.
  • Fable was useful as an autonomous research assistant, but Bakouch's report on Fable says it still struggled with iteration and experiment-design taste.

Anthropic’s Transformer Circuits paper gives the conceptual claim: a small set of verbalizable representations behaves like a global workspace inside Claude. The reference implementation gives the exact lens equation, lens_l(h) = unembed(J_l @ h), and says fitting uses the average input-output Jacobian over prompts, source positions, and current-or-future target positions. The separate next-token feature paper gives the background mechanism that made the gradient-blocking test plausible: pre-caching and circuit sharing let later positions shape earlier representations.

J-lens

Anthropic’s paper defines J-lens as a way to read what an activation is disposed to make the model say later. The official GitHub repo calls itself a reference implementation, released under Apache 2.0, and says it fits open-weight decoder transformers without bundling model weights or text corpora.

The core mechanics are compact:

  • Input: residual-stream vector at layer l and position t.
  • Transport: average Jacobian J_l = E[∂h_final / ∂h_l].
  • Decode: apply the model’s unembedding to J_l @ h.
  • Readout: ranked vocabulary tokens for each layer and position.
  • Paper-scale fit: 1,000 sequences of 128 tokens from a pretraining-like corpus, with the repo noting that roughly 100 prompts is usable.

The Anthropic result behind the current wave was stronger than a visualization demo. ThursDai's summary singled out the causal claim: ablating silent concepts preserved fluent speech while degrading reasoning, and ablating test-awareness reportedly changed a blackmail eval from 0 to 13 out of 180.

Open-model runs

Bakouch then turned J-lens into an open-model experiment suite, with Fable running experiments mostly autonomously. The test list reads like a mechanistic-interpretability backlog that escaped the notebook.

The run asked:

  • when the structure forms in training;
  • whether it transfers between models;
  • how it scales;
  • how far a nudge travels;
  • what K2 J-lens looks like.

The open-model writeup describes J_l as the average influence that nudging a residual stream at layer l has on the final token distribution, then multiplies that influence by the unembedding to get steering vectors for 4,096 common tokens. It also flags a practical caveat: the dictionary is distribution-dependent because J is averaged over a text distribution.

Transfer

Bakouch’s own read was blunt: most hypotheses missed, except transfer, which his follow-up says came from Fable and “seems to be strong.” Christmas came early for open-model interpretability nerds.

The linked results report partial cross-model alignment via CKA, while the composite figure in Bakouch's thread includes a transfer-retrieval chart where the rotation method peaks at 0.92 retrieval@1. The same writeup says block structure is detectable early in training, including 4B tokens for OLMo-7B and 95B for SmolLM3, but warns that random initialization can show spurious blockiness.

Gradient blocking

Will Depue proposed a direct intervention: prevent attention gradients into past tokens, because that path looked like a likely source of lookahead computation.

Depue’s follow-up said the test “seems like it works” and “obviously destroys performance.” The outside theory fit is clean: the ICLR 2026 paper decomposes next-token feature learning into direct learning, pre-caching, and circuit sharing, with the latter two letting positions greater than i+1 influence representations at position i.

LiorOnAI guessed that optimization pressure would route around a blocked channel if a shared workspace remains useful, possibly through residual streams or other circuits in a reply to Depue. Torchcompiled’s one-line version was harsher: blocking that path gives you “the transformer with no transformer” in the same discussion.

Agent-run science

The Fable part is the other story. Bakouch used it as a mostly autonomous experiment runner, then published the logs before fully interpreting every result.

His field report was specific:

  • Fable was much better than Opus for this experiment-design work.
  • It still struggled to iterate on results.
  • The designs lacked taste without human iteration.
  • Some failures came from weak first prompts.
  • It was useful for explaining unfamiliar background material.

That squares with Bakouch's follow-up, which frames the project as both an open J-lens data release and a testbed for frontier-model limits on research tasks.

Open data

Bakouch also shared raw data “without interpretation” so other agents would not be biased by his read.

According to the open-jlens-data summary, the release includes:

  • program.md for experiment protocols, model choices, recipes, commands, and pre-registered designs;
  • code/ for fitting and analysis, including horizon fitting, MoE fitters, gradient pursuit, CKA and PR analysis;
  • scripts/ for Slurm jobs and environment setup;
  • runs/ for per-run data, convergence CSVs, fit metadata, extracted analysis arrays, and shard logs;
  • FIT_INVENTORY.json as an index of all fitted lenses;
  • no raw fitted lens tensors or large intermediate caches, because some lens files range from 0.02 GB to 63 GB.

Bakouch separately tried to correlate public W&B per-layer metrics with per-layer J-lens statistics, but his update says that pass found no luck.

Lexical priming

Raphaël Millière pushed on one interpretation trap: a late-layer token readout can be lexical priming rather than evidence that a concept sits in the workspace.

His example was spider(s), which appeared in very final layers and for the same tokens in logit-lens readouts. Millière’s claim was narrow: that pattern was consistent with the word remaining a live next-token option, rather than proving it belonged to Anthropic’s mid-layer workspace.

PR collapse

Bakouch surfaced one extra SmolLM3 result after the main thread: participation ratio collapses during training, especially during decay.

He interpreted the chart as lower effective rank, with the J-lens concentrating into fewer directions. The plotted peak falls from above 450 to 170 by 10T tokens, while the mean falls from just under 300 to 65.

Further reading

Discussion across the web

Where this story is being discussed, in original context.

On X· 5 threads
TL;DR1 post
Transfer1 post
Gradient blocking2 posts
Agent-run science1 post
Open data1 post
Share on X