No LLM generated, assisted/co-written, or edited work.
Read full explanation
tl;dr: whether a model has one tracks modern pretraining, not parameter count, and not instruction-tuning.
Here's the intuition almost everyone has about a "global workspace" in a language model. It's a big-model thing. Something that only switches on once you have tens of billions of parameters, or something the instruction-tuning bolts on afterward to make the model act like it has an inner life. Both of those guesses are wrong, and I can show you why on a desktop that cost me nothing to run.
Small models can have a workspace. Some of them, anyway. What decides whether a given model has one isn't its size, and it isn't whether it's been instruction-tuned. It tracks with modern pretraining, and the single cleanest example in my whole set is a 1.7B base model with no post-training on it at all. There's also a second result I didn't see coming: not one of these models can tell you what's in its own workspace, not even the ones where I can read that content off the activations and steer the model's final answer by editing it.
The setup is a paper from Anthropic (link at the bottom) that found something like a global workspace inside a frontier model, using a method they call the Jacobian lens. In their own limitations section they were honest that they didn't know whether the thing exists below frontier scale. That's the gap I went after. Five models spanning a roughly fourteen-fold range in parameter count, 124M to 1.7B, and one question: does the workspace show up down here, and if it does, what predicts which models have it?
The ladder was GPT-2 124M and 355M (2019, base), Qwen3 0.6B and 1.7B (2025, instruction-tuned), and Qwen3-1.7B-Base (2025, the same model as the instruct one but with no post-training). For each model I fit its own lens on the same 100 seeded wikitext documents, using the official anthropics/jacobian-lens estimator with nothing modified. The whole thing ran on $0: ten CPU cores on my desktop plus free T4 sessions on Colab and Kaggle, checkpoint-resumed every time a session died on me. I wrote the preregistration before most of the data existed and logged the deviations as I went. Four tests per model, thresholds fixed in advance: does the model's forthcoming answer show up in the band before it says it, is the bridge readable in the middle layers, does swapping the bridge change the answer, and how much of the activation variance concentrates along the lens's top directions compared to chance.
One note on the lens, because it's doing the load-bearing work. The logit lens (take a hidden state, push it through the output embedding, read it off as a guess at the next token) gets noisy in the early and middle layers, which is exactly where the interesting two-hop steps live. The Jacobian lens fits a per-model linear map that reads those middle layers more faithfully. So when I say a bridge fact is "readable," I mean readable there, in the middle third of the network, not at the very end where everything is easy to read.
The first result is that the causal test doesn't care how good the model is. Pool both GPT-2 sizes and you get zero successful bridge swaps out of 22, even though the bridge content is sitting right there and readable at the swap positions. Every Qwen3 model, by contrast, flips its final answer somewhere between 38% and 49% of the time on a top-1 swap. And the capability jump inside the GPT-2 family bought exactly none of it: 355M roughly doubled two-hop accuracy over 124M, from 8% to 17%, and still swapped 0 out of 15. The nice part is that two independent instruments agree without being told to. GPT-2's lens concentration sits at about 1.0x chance, which is no signal at all, while every Qwen3 model sits around 2x.
The second result is the one that rules instruction-tuning out. The strongest causal effect on the entire ladder is Qwen3-1.7B-Base at 49% top-1 (n=37), and that model has had zero post-training. So whatever is building the workspace, it isn't RLHF and it isn't instruction-tuning, because the model with none of that has the biggest effect of anyone. Here's the honest limit, though. "Pretraining" is a bundle. It's the data, the architecture, and the tokenizer all changing at once between 2019 and 2025, and with only two model families I can rule out size and rule out tuning, but I can't tell you which ingredient inside the pretraining is the one that matters. That needs more families.
The third result is that the report shows up late, if it shows up at all. Across every rung on the ladder I got either zero or one verbal answer that was both valid and readable in the band before the model said it. Zero or one, every single time. And this holds even in the models whose intermediate content I can both read and steer, which is the part I keep coming back to. The machinery that does the two-hop computation is clearly there and clearly causal, and the model still can't tell you about it. Whatever "access" would mean here, it arrives after the workspace does, not with it.
Here's everything in one place.
Metric
GPT2-124M
GPT2-355M
Q3-0.6B
Q3-1.7B
Q3-1.7B-Base
Two-hop accuracy
7/90 (8%)
15/90 (17%)
8/90 (9%)
28/90 (31%)
37/90 (41%)
Intermediate readable (of correct)
5/7 (71%)
8/15 (53%)
7/8 (88%)
14/28 (50%)
26/37 (70%)
Causal swap top-1
0/7
0/15
3/8 (38%)
11/28 (39%)
18/37 (49%)
Causal swap top-5
0/7
0/15
6/8 (75%)
20/28 (71%)
27/37 (73%)
Lens concentration (x chance)
1.00
1.05
1.97
2.14
2.00
Verbal report: valid answers
5/14
12/14
10/14
13/14
14/14
Verbal: valid AND band-readable
0
1
0
1
0
Two things worth flagging on why this might matter past my own curiosity. First, it lines up with the paper from the opposite direction. Anthropic found that their workspace representation predates RLHF at frontier scale, and I'm seeing the same thing orders of magnitude below frontier scale. Second, and this is the part they couldn't have run, GPT-2 is a real negative control. It's a family where the signature is genuinely absent, and that matters, because it's the thing that shows the instruments actually report absence when there's nothing there instead of lighting up on everything. A method that finds a workspace in every model it's pointed at isn't finding anything.
Now the caveats, because they're real and anyone reading carefully will find them. Two families means "modern pretraining" is a bundle and not an isolated ingredient, as above. The counts per rung are small, 7 to 37 correct items, and I'm not claiming anything past the raw counts. The capability-matched comparison set is empty: there's no single two-hop item that all five models get right, so a clean matched comparison is future work and the current cross-model numbers are underpowered on that axis. I only ran the readout and swap protocols, not the paper's full battery. And none of this says anything about consciousness. These are functional claims about representations, full stop.
One thing that ate a day, in case it saves you the same day. Chat tokenizers wreck naive grading. Qwen will emit "S" as the first token of "Strawberry," and end-of-turn tokens leak into the decode loop and quietly corrupt your string match. Grade the first decoded word, and accept both the leading-space and no-leading-space BPE variants, or you'll mark correct answers wrong. The other surprise was a good one. Because the lens mean is just a running sum divided by n, a valid lens exists at every n, and the interim lens I fit at n=65 reproduced the full n=100 results almost exactly. Lens quality saturates early, which I didn't expect but which made the whole checkpoint-resume workflow a lot less nerve-wracking.
If this holds up under more eyes, I'd like to get it onto arXiv under cs.LG, so if you can endorse there and you're willing, get in touch. And one process note for the record, because I think it belongs on the record: I used AI to help with the coding. I didn't vibe-code this. The design, the preregistration, the tokenizer debugging, and the calls about what counts as readable were mine. AI was a tool I leaned on for the plumbing, the same way I'd lean on a library.
tl;dr: whether a model has one tracks modern pretraining, not parameter count, and not instruction-tuning.
Here's the intuition almost everyone has about a "global workspace" in a language model. It's a big-model thing. Something that only switches on once you have tens of billions of parameters, or something the instruction-tuning bolts on afterward to make the model act like it has an inner life. Both of those guesses are wrong, and I can show you why on a desktop that cost me nothing to run.
Small models can have a workspace. Some of them, anyway. What decides whether a given model has one isn't its size, and it isn't whether it's been instruction-tuned. It tracks with modern pretraining, and the single cleanest example in my whole set is a 1.7B base model with no post-training on it at all. There's also a second result I didn't see coming: not one of these models can tell you what's in its own workspace, not even the ones where I can read that content off the activations and steer the model's final answer by editing it.
The setup is a paper from Anthropic (link at the bottom) that found something like a global workspace inside a frontier model, using a method they call the Jacobian lens. In their own limitations section they were honest that they didn't know whether the thing exists below frontier scale. That's the gap I went after. Five models spanning a roughly fourteen-fold range in parameter count, 124M to 1.7B, and one question: does the workspace show up down here, and if it does, what predicts which models have it?
The ladder was GPT-2 124M and 355M (2019, base), Qwen3 0.6B and 1.7B (2025, instruction-tuned), and Qwen3-1.7B-Base (2025, the same model as the instruct one but with no post-training). For each model I fit its own lens on the same 100 seeded wikitext documents, using the official anthropics/jacobian-lens estimator with nothing modified. The whole thing ran on $0: ten CPU cores on my desktop plus free T4 sessions on Colab and Kaggle, checkpoint-resumed every time a session died on me. I wrote the preregistration before most of the data existed and logged the deviations as I went. Four tests per model, thresholds fixed in advance: does the model's forthcoming answer show up in the band before it says it, is the bridge readable in the middle layers, does swapping the bridge change the answer, and how much of the activation variance concentrates along the lens's top directions compared to chance.
One note on the lens, because it's doing the load-bearing work. The logit lens (take a hidden state, push it through the output embedding, read it off as a guess at the next token) gets noisy in the early and middle layers, which is exactly where the interesting two-hop steps live. The Jacobian lens fits a per-model linear map that reads those middle layers more faithfully. So when I say a bridge fact is "readable," I mean readable there, in the middle third of the network, not at the very end where everything is easy to read.
The first result is that the causal test doesn't care how good the model is. Pool both GPT-2 sizes and you get zero successful bridge swaps out of 22, even though the bridge content is sitting right there and readable at the swap positions. Every Qwen3 model, by contrast, flips its final answer somewhere between 38% and 49% of the time on a top-1 swap. And the capability jump inside the GPT-2 family bought exactly none of it: 355M roughly doubled two-hop accuracy over 124M, from 8% to 17%, and still swapped 0 out of 15. The nice part is that two independent instruments agree without being told to. GPT-2's lens concentration sits at about 1.0x chance, which is no signal at all, while every Qwen3 model sits around 2x.
The second result is the one that rules instruction-tuning out. The strongest causal effect on the entire ladder is Qwen3-1.7B-Base at 49% top-1 (n=37), and that model has had zero post-training. So whatever is building the workspace, it isn't RLHF and it isn't instruction-tuning, because the model with none of that has the biggest effect of anyone. Here's the honest limit, though. "Pretraining" is a bundle. It's the data, the architecture, and the tokenizer all changing at once between 2019 and 2025, and with only two model families I can rule out size and rule out tuning, but I can't tell you which ingredient inside the pretraining is the one that matters. That needs more families.
The third result is that the report shows up late, if it shows up at all. Across every rung on the ladder I got either zero or one verbal answer that was both valid and readable in the band before the model said it. Zero or one, every single time. And this holds even in the models whose intermediate content I can both read and steer, which is the part I keep coming back to. The machinery that does the two-hop computation is clearly there and clearly causal, and the model still can't tell you about it. Whatever "access" would mean here, it arrives after the workspace does, not with it.
Here's everything in one place.
Metric
GPT2-124M
GPT2-355M
Q3-0.6B
Q3-1.7B
Q3-1.7B-Base
Two-hop accuracy
7/90 (8%)
15/90 (17%)
8/90 (9%)
28/90 (31%)
37/90 (41%)
Intermediate readable (of correct)
5/7 (71%)
8/15 (53%)
7/8 (88%)
14/28 (50%)
26/37 (70%)
Causal swap top-1
0/7
0/15
3/8 (38%)
11/28 (39%)
18/37 (49%)
Causal swap top-5
0/7
0/15
6/8 (75%)
20/28 (71%)
27/37 (73%)
Lens concentration (x chance)
1.00
1.05
1.97
2.14
2.00
Verbal report: valid answers
5/14
12/14
10/14
13/14
14/14
Verbal: valid AND band-readable
0
1
0
1
0
Two things worth flagging on why this might matter past my own curiosity. First, it lines up with the paper from the opposite direction. Anthropic found that their workspace representation predates RLHF at frontier scale, and I'm seeing the same thing orders of magnitude below frontier scale. Second, and this is the part they couldn't have run, GPT-2 is a real negative control. It's a family where the signature is genuinely absent, and that matters, because it's the thing that shows the instruments actually report absence when there's nothing there instead of lighting up on everything. A method that finds a workspace in every model it's pointed at isn't finding anything.
Now the caveats, because they're real and anyone reading carefully will find them. Two families means "modern pretraining" is a bundle and not an isolated ingredient, as above. The counts per rung are small, 7 to 37 correct items, and I'm not claiming anything past the raw counts. The capability-matched comparison set is empty: there's no single two-hop item that all five models get right, so a clean matched comparison is future work and the current cross-model numbers are underpowered on that axis. I only ran the readout and swap protocols, not the paper's full battery. And none of this says anything about consciousness. These are functional claims about representations, full stop.
One thing that ate a day, in case it saves you the same day. Chat tokenizers wreck naive grading. Qwen will emit "S" as the first token of "Strawberry," and end-of-turn tokens leak into the decode loop and quietly corrupt your string match. Grade the first decoded word, and accept both the leading-space and no-leading-space BPE variants, or you'll mark correct answers wrong. The other surprise was a good one. Because the lens mean is just a running sum divided by n, a valid lens exists at every n, and the interim lens I fit at n=65 reproduced the full n=100 results almost exactly. Lens quality saturates early, which I didn't expect but which made the whole checkpoint-resume workflow a lot less nerve-wracking.
If this holds up under more eyes, I'd like to get it onto arXiv under cs.LG, so if you can endorse there and you're willing, get in touch. And one process note for the record, because I think it belongs on the record: I used AI to help with the coding. I didn't vibe-code this. The design, the preregistration, the tokenizer debugging, and the calls about what counts as readable were mine. AI was a tool I leaned on for the plumbing, the same way I'd lean on a library.
Links: