Independent Research — Interpretability & Post-training · 2026 — ongoing
Ongoing · research-first phaseJ-Space: can fine-tuning cultivate internal reasoning?
Most post-training makes a model’s answers look better. This project asks a harder question: can supervised fine-tuning change what a model actually computes internally — and can that change be measured, not just asserted? It takes J-Space— the internal “global workspace” Anthropic recently identified inside language models, read with their open-source Jacobian lens — and applies it to a small open model I fully control, paired with a pre-registered falsification bar and an Atomic workflow engineered to refuse its own conclusions until the internal evidence exists.
Where it stands today
Stage 0 · probe battery
512 items / 1,536 instances across 8 domains, validator PASS. The freeze is now mechanical — no human rewrite, no approval step; the finalization tool that stamps and hashes it is the next thing to build.
Training
Blocked by construction.Real fine-tuning can’t run until two data-audit manifests exist on disk — the gate is code, not a convention.
Promotion
None. The loop never promotes a checkpoint — there is no J-Space read-out stage yet, so nothing has cleared the bar.
The question
It started from a piece of mechanistic-interpretability intuition: superposition and axis-alignment work suggests that if you force a model to behave a certain way, you also constrain how it representsthings internally. So what happens to a model’s internals when you force the shape of its answers?
The motivating example is arithmetic. If every training answer spells out every step — “3 × 2 is 6, then I add 25, then…” — the model can learn to imitate the verbal procedure. Final-answer accuracy goes up, but the reasoning has moved onto the page: the model is transcribing a recipe, not thinking. Exhaustive visible chain-of-thought, made the dominant training signal, can raise the score while hollowing out the very thing I want to grow.
So the goal is deliberately not a task agent. It’s a small model used as raw intelligence— one that has to reach for its own internal structure to reason, because the training data leaves just enough room that it can’t simply copy a fully-worked trace. An empty or flat J-Space would be a failure of the hypothesis, not a detail to paper over.
J-Space, and the instrument that reads it
J-Space is a term from Anthropic’s 2026 global-workspace research: a small set of internal patterns — only a few dozen concepts at a time — that a language model uses for higher-order reasoning, set apart from the automatic processing that handles fluent speech and simple recall. Ablate it and the model still talks fluently but loses multi-step reasoning; it plays the “workspace” role from global-workspace theory — information written in once, then broadcast to many downstream computations.
To read it, Anthropic built the Jacobian lens and open-sourced it — and I use that same tool (their jacobian-lens package). It transports a residual-stream vector at layer l into the final-layer basis with the average input–output Jacobian J_l = E[∂h_final/∂h_l], decodes it through the model’s own unembedding, and returns a ranked list of vocabulary tokens — “what this internal activation is disposed to make the model say.”
My contribution isn’t the instrument — it’s the question. Anthropic also showed the workspace is trainable: their “counterfactual reflection training” found that training a model on what it would say if asked to reflect changed what it actually does. This project pushes on that opening in a model I fully control — can a deliberately-shaped curriculum cultivate a richer workspace, and can I prove it rather than assert it?
Two honesty rails hold throughout. The lens is a vocabulary-constrained, average-linearized projection — not a full feature decomposition, and not proof that a concept is causally used. And the readable layer band was pre-registered at L24–L33 before looking at results, so the analysis can’t drift to wherever the story looks best.
Fitted on SmolLM3-3B-SFT— 35 layers, d_model 2048, averaged over ~200 FineWeb-Edu sequences. ~43 minutes and ~$1.77 to fit the lens once; readouts are then cheap.
First-look evidence
A readable J-space genuinely exists in this model — and it’s legible before the tokens surface. On a prompt about Docker, the lens at layers 27–33 is already disposed toward the right concepts several positions before the model emits them, while a plain logit-lens at the same cells shows only code-token noise.
Jacobian lens · L27–33 (pre-answer)
containers · infrastructure · technology · platform · Docker · container · toolbox
Domain-correct concepts, active before the model says them.
Logit lens · same cells
.py · ){· _id · == · \n · </ · =“ · ++
Surface code-token noise — the phenomenon the lens is meant to see past.
- A readable band, not the whole network — but a shaky one. The L24–33 estimate rests on just four prompts, so the v2 analysis explores where each item is represented instead of assuming a band.
- Legible is not the same as correct. On a creatine biochemistry prompt the J-space surfaced domain-correct chemistry — amino, nutrients, molecules, pathways, precursor — with no hedging or uncertainty signature, even when the model's actual answer was confidently wrong.
The load-bearing caution. A clean, confident readout can accompany a wrong answer. So a legible J-space is a starting point, not a verdict — any claim that training improved reasoning has to survive matched controls and a causal test, not just a nicer-looking readout.
What counts as success
The objective is ranked, and the ranking is the whole point. Getting this order wrong is how interpretability projects fool themselves.
Higher-order internal reasoning
The endpoint is what the model computes internally — concepts, alternatives, uncertainty, causal structure that become active before an answer — not task completion, polish, or benchmark accuracy.
Observable evidence only
Evidence means inspecting what the model actually produced — an answer, a concise rationale unit, a J-lens readout. The model is never asked to narrate its own hidden process; that is confabulation, not data.
Answer accuracy must not regress
Correctness is a floor, never the goal. Improving accuracy while the internal metrics stay flat is explicitly not success — and never justifies promoting a checkpoint.
Explicit non-goals
The falsification bar
Before any training runs, the decision rule is fixed. A treatment gets credited only if it clears all of this — and answer accuracy going up is explicitly not on the list.
- Internal reachability. Macro IR@10 improves ≥5 points, 95% CI excludes zero, and ≥6 of 8 domains are non-negative.
- Selectivity. Relevant-intervention selectivity improves while irrelevant-paraphrase invariance error stays ≤ one-third as large.
- Causality. At least one J-direction swap family exceeds 2× the median matched-random-swap effect — decodable is not enough.
- Replication. Effects hold across 3 seeds and under both a fixed and a refitted lens.
- Guardrails. Held-out accuracy doesn't regress >2 points and the capability / identity canary holds.
Standing rule: do not promote a checkpoint when only answer accuracy, answer-token rank, polish, or template performance improves.
The method is the loop — built in Atomic
The whole project is an Atomic workflow — not a script that trains and prints a number, but a loop that measures the model’s internals, diagnoses what’s missing, designs data to fix it, retrains, and re-measures— wrapped in a second loop that audits its own example-designer and rewrites its own prompts for the next round. Atomic is what makes the load-bearing stage possible: reading a J-Space readout well is different for every item, so it’s a prompt-engineered agent exploring each one, not a fixed program scanning fixed layers.
No human gate — and here’s why. An earlier version required me to hand-author every probe. Tracing it, that rule was never from a paper — a machine research stage wrote it and a reviewer hardened it. The concerns it protected (contamination, judge/generator circularity, pre-registration) are real, so they stay — but as humanless mechanisms: mechanical decontamination, cross-family model separation, and freezing + hashing the battery before any activation is read. The proof standard is causal internal measurementof what the 3B student does, not the pedigree of the question set — a frontier teacher answers, and a 3B student orders of magnitude smaller can’t simply “become” it.
The curriculum bet is on relational tasks — problems that require relating things, weighing alternatives, or integrating cause and effect — kept concise (a target of ≤32 median tokens), not long teacher prose, so the model has to do the connecting itself. Probes span eight domains:
Inner loop — measure, diagnose, teach, re-measure
- 1
batterymechanicalmechanicalFinalize and freeze the 512-item probe battery, then hash it — no human rewrite, no approval step anywhere.
- 2
teacher_passagent stageGPT-5.6 SolA frontier teacher answers every probe once; those cached answers are the source of truth the 3B student is measured against.
- 3
student_passmechanicalModal · ×3 seedsThe 3B student answers the same battery, generated on Modal across three seeds.
- 4
first_order_comparisonagent stageGPT-5.6 SolRight / wrong / half-right against the teacher — and, since these are reasoning items, whether the logic was performed, not just whether the final token matched.
- 5
jlens_deep_analysiscoreSonnet 5 :xhighThe core stage. A prompt-engineered agent reads each item's J-lens readout adaptively — where the concept lives, whether the trajectory is mimicry or real reasoning — grounded in raw full-vocabulary ranks and the battery's built-in matched controls. Every item gets a report with an explicit falsifier; the layer band is explored, never hardcoded.
- 6
design_examples_v2agent stageSonnet 5 :highDesign training examples aimed squarely at the internal gaps the J-Space reports diagnosed.
- 7
trainblockedModal full-FTRetrain from the frozen base on the cumulative examples — still gated: nothing trains until the battery manifest is finalized.
- 8
after_passagent stagere-runs 3–5Re-run the student, the comparison, and the J-lens analysis on the new checkpoint — did the designed examples move what they were meant to move?
Outer loop — the loop that improves the loop
- 9
designer_auditouter loopGPT-5.6 SolThe meta-loop: audit the example-designer itself — which examples failed to move the J-Space, and why — and carry the lesson forward into the next iteration's prompts.
- 10
iterateouter loopGPT-5.6 SolA fail-closed verdict against criteria frozen before iteration 1, never self-certified by the stage that produced the evidence. Loop until the bar is cleared or the iteration budget runs out.
Pinned models, no fallback: a reasoning model (GPT-5.6 Sol) for the teacher, the comparison, and both outer-loop stages; Claude Sonnet 5 for the J-lens analysis (:xhigh) and example design (:high). A configured-model failure fails its stage visibly rather than silently switching models.
The known gap, stated plainly
- The measurement stage is specified, not built. The v2 J-lens analysis — and the per-item activation + lens-quality artifacts it needs — are designed in detail but not yet implemented. Until they exist and run, the loop can't prove J-Space improved, and no checkpoint is promoted.
- Decodable ≠ causal. Decodable latent patterns can have no behavioural effect under matched controls. A legible readout is a hypothesis; the per-item falsifier and causal-swap controls exist to try to kill it.
- The readable band is an estimate, not a law. The L24–33 band came from four prompts — an unvalidated first look. The v2 analysis explores where each item is represented instead, and a lens-quality calibration must pass before the analysis is even allowed to run.
- Training is intentionally gated. Nothing trains until the battery is mechanically finalized and hashed. That's a feature: no model trains on an unfrozen measurement set by accident.
This one is still running
This is a live research project, written up as it develops. The instrument works and the first readouts are in; the probe battery is drafted and held to a validation bar; training stays gated until the data is audited. The interesting outcome isn’t guaranteed — an empty J-Space would falsify the core bet, and the whole apparatus is built to let it. I’ll update this page as the evidence comes in.
ceena