Last week Jonas Loos and Oliver Eberle from TU Berlin posted “KV-Cache Patching: Tracing How and Where Fine-Tuned Behaviors Arise” on arXiv [1]. The paper asks a simple question: when you fine-tune a model, does it change how the model reads the prompt, or how it writes the answer? Most fine-tuned behaviors follow the prompt (the KV cache) rather than the generation itself.

The experiment is simple enough that I wish I’d done it. The implications are messier.

What moves with the cache

Transformers process prompts autoregressively, storing a key and value for each token in the KV cache. These values get looked up by attention at every subsequent step. Fine-tuning, particularly with methods like LoRA, changes the model’s weights and therefore changes both what gets written into the cache and what happens during generation.

Loos and Eberle wanted to separate these two effects. They fine-tune three instruction-tuned models (Qwen2.5-7B, Llama-3.1-8B, and Qwen3.5-4B) with LoRA on 12 narrow tasks each. Then they swap the KV cache between models during generation.

Patch the fine-tune’s cache into the base model, and the base model starts behaving like the fine-tune. Answer in German? Sure. Refuse benign requests? Fine. Patch the base model’s cache into the fine-tune, and the fine-tune mostly loses those behaviors.

Conventions and dispositions (responding in a certain language, adopting a refusal style, being sycophantic) transfer almost entirely through the cache. Capabilities do not. Learned task skills like JSON extraction in a specific house style or semantic parsing into an ontology that appears only in training data stay with the fine-tuned model regardless of which cache it receives.

So the fine-tuned model changes two things, and they live in different places: how the prompt is read (the cache) and how the answer is written (the weights). Conventions follow the cache. Capabilities follow the weights.

Why this matters for interpretability

The field has spent a lot of time asking where behaviors live in a model’s architecture. Attention heads? MLP layers? Loos and Eberle are asking a related question: where does fine-tuning write its changes?

If fine-tuning mostly edits the cache, then a lot of behavioral control happens before the model even starts generating. The model doesn’t acquire new knowledge the way you might think. It learns to read prompts differently. The base model can already produce German output or refuse requests or be sycophantic. Fine-tuning just teaches it when to.

This reframes a lot of interpretability work. If the behavior is in the cache, then intervention-based methods that manipulate the KV cache are doing more interpretive work than we realize. We’ve been using KV-cache patching to study model behavior without fully understanding what the patching is actually revealing.

There’s also the question of generalization. If fine-tuning mostly changes prompt representations, then transferring learned behavior to new prompts depends on how similar the new prompts’ caches are to the training ones. The paper’s finding that patching effects concentrate at a few key positions (system-prompt and chat-template tokens) suggests that generalization isn’t uniform. Some parts of the prompt matter enormously, and most of the rest barely contributes.

What fine-tuning actually does

The paper’s most precise result is about where in the cache the effect lives. The authors grow the patched portion of the cache one token at a time, measuring how closely the target model’s next-token distribution matches the fine-tune versus the base. The curves jump at a few positions: chat-template tokens, the initial system prompt tokens, and the last prompt token.

The effect doesn’t distribute evenly across the prompt. It concentrates at the structural tokens (the ones that tell the model how to behave, not what to answer). The content of the prompt matters less than the framing.

Fine-tuning changes what the model reads, not what it knows. The capabilities were there before. We’re teaching the model to adopt dispositions (to read certain prompts in certain ways).

We’ve known for a while that fine-tuning is more like steering than training from scratch. The KV-cache patching experiment gives it a clean empirical handle. You can measure how much behavior follows the cache and how much stays with the weights. The split is very asymmetric for the narrow tasks they studied.

What I’m not sure about

The paper uses LoRA at a single learning rate for its main experiments. At higher learning rates, more behavior persists over the base cache (German output across all three models, refusal on Qwen2.5). The authors note that full fine-tunes seem to resemble LoRA at a higher learning rate. This matters. If the reading-then-writing split depends on training intensity, then our understanding of what fine-tuning does changes depending on how aggressively you train.

The 12 tasks in the paper are narrow (German response, JSON formatting, refusal on benign prompts). Broader behavioral dispositions like politeness or honesty might behave differently. The capabilities side is underrepresented in the current results. Open-ended reasoning tasks could shift the picture.

But the basic finding stands: fine-tuning changes how models read prompts, and for a lot of behaviors, that’s where the action is.

The bigger picture

This connects to work on faithfulness discussed in last week’s post. If fine-tuning mostly edits prompt representations rather than adding new computational pathways, then our tools for understanding model behavior need to account for that distinction. Faithfulness scores assume the circuit you find is the mechanism producing the behavior. But if the behavior lives in the cache (in how the model reads the input), then the circuit might be doing something very different from what you think.

The paper is small, the methods are clean, and the implications are worth tracking. I appreciate the simplicity of the intervention: swap caches, measure what follows. Sometimes the best way to understand a system is to take its parts and put them where they don’t belong.