Research
Interpretability research
Alongside engineering I do independent interpretability research: how a network carries a concept, and how a model uses its KV cache over a long context. I work without a supervisor. Results come with confidence intervals where I have them, and I publish nulls too.
What ties the projects together is measurement: checking whether the numbers we use to read a model actually hold up. Where I’m heading is the overlap of high-performance deep learning and AI safety.
I come to research from building production backends, so I write my own eval harnesses and cluster pipelines. Three projects are done or written up, and one is running. My engineering work is on the home page.
Absorption Atlas
Finished · 16-page technical report and code
How a concept is carried inside a network depends on what
kind of concept it is. With Gemma Scope sparse autoencoders
on Gemma-2-2B and 9B, letter-like properties are absorbed into
token-specific latents, while the structural property
is-capitalized is carried with no single latent causally
responsible for it.
On is-capitalized the causal ablation metric finds zero
absorbed tokens: 0 of 200 scored candidates on Gemma-2-2B and 0 of
273 on 9B. The SAEBench-standard projection metric still reports
single-latent absorption marginally above its random-direction null
(0.12 against 0.03, with slightly overlapping intervals). So for a
distributed structural feature the two standard metrics disagree, and
the projection metric appears to over-report. The runs were
single-GPU PBS jobs on MetaCentrum, and the first-letter baseline is
cross-checked against published SAEBench numbers.
is-capitalized even
when the model does the task, while first-letter spelling is absorbed
on both models. Figure from the technical report.
superposition-phases
Write-up finished, not public yet · public code is the first pass
In the unpublished write-up: when a layer has to compute more functions than it has neurons, the superposed code grows continuously out of the dedicated-neuron solution, rather than appearing in a sudden jump. That result comes from toy models of computation in superposition, swept as a 256-job CPU campaign on MetaCentrum plus a laptop. The 40-page write-up is finished but not public yet; the repository will get the paper and the full result set once I finish checking it.
What is public now is the early, single-seed first pass: a three-class solution classifier (dedicated, dense, superposed code). On reproductions of the headline setups of two 2026 papers that disagree about computation in superposition, da Silva and Heimersheim and Bhagat et al., it gives the same label each paper reported. There are also first capacity-scaling measurements, for which no exponent claim is made yet.
First-pass code (preliminary, single-seed)
Memory in long-context LLMs
Running · first measurements through November
Does a model know which part of its KV cache it will need before it needs it, and how far ahead? The first measurements run through November. Nothing is public yet; the results will go here when they exist, null or not.
Lost in the Monitor
Finished · a published null result
Can a monitor catch a model pursuing a hidden goal by reading its chain of thought? I built the eval harness around gpt-oss-20b under vLLM on MetaCentrum, with model-written code graded against hidden tests rather than by an LLM judge. My hypothesis, that monitoring degrades when the model reasons in a lower-resource language, did not hold at scale, and I published the null with the pre-registration and a dated lab log.
Compare notes
I’m looking for research mentorship and collaborators in interpretability, and I’m glad to talk about any of this or to walk through the code. Email is the fastest way: hi@kubadvorak.com. The short version of my background is on the CV.