Fine-Tuning or Context Engineering? Stop Flipping the Coin

A decision framework grounded in what the research actually shows, not what the vendor slides claim. The two approaches fail in completely different ways - and you can usually tell which one you need before writing a line of code.

June 13, 2026 11 min read
What you're arguing about Teaching new facts Facts in the context Context is not free What fine-tuning is for The decision framework The summary

Most teams pick between fine-tuning and context engineering the way they pick a lunch spot. Someone has a preference, nobody wants to argue, and the loudest voice wins. Then six weeks later the bill arrives, the model is hallucinating customer data, and everyone is surprised.

The choice deserves better than a coin flip, because the two approaches fail in completely different ways and the research on when each one works is now solid enough to reason from. This post stakes a position. Most of the time you should reach for context engineering first, fine-tune second, and only for the specific jobs fine-tuning is good at. Here is the evidence for why, and the cases where the opposite is true.

A single brass coin spinning on its edge on a dark surface, caught mid-spin under a warm light throwing a long shadow - the toss-up decision frozen in the moment of choice

The two things people are actually arguing about

Start by naming the approaches precisely, because half the disagreements in this debate come from people comparing different things.

Touches the model

Fine-tuning

Changes the model's weights. You continue training a base model on your own examples, so the new behavior gets baked into the parameters. The knowledge or style lives inside the model after that.

Touches the input

Context engineering

Changes what the model sees at inference time; the weights stay frozen. You control the system prompt, retrieved documents, examples, tool outputs, history - and the order it all arrives in. RAG and prompt engineering are techniques inside it.

The broader discipline is about managing the whole context window as a finite resource, which is a useful way to think about it that we will come back to. The reason this distinction matters: fine-tuning is the only one of the two that touches the model itself. Everything else is about feeding a fixed model better inputs. That single fact drives most of the tradeoffs below.

What the research says about teaching a model new facts

Here is the finding that should reshape how you think about this, and the one most teams have never read.

A 2024 study from researchers at Google and the Technion, presented at EMNLP, asked a direct question: does fine-tuning a model on new factual knowledge make it hallucinate more? They built a controlled setup around closed-book question answering and varied how much of the fine-tuning data introduced facts the model did not already know. Two results came out of it.

Finding 1

New facts are learned slowly

Much slower than examples that line up with what the model already absorbed during pre-training. The weights resist new information.

Finding 2

And they raise hallucination - linearly

Once those new facts are finally learned, they push the model's overall tendency to hallucinate up in a straight line.

The authors' conclusion

Large language models mostly acquire factual knowledge during pre-training. Fine-tuning teaches them to use it more efficiently, not to absorb new information.

Read that again, because it cuts against the most common reason teams reach for fine-tuning. People fine-tune to "teach the model our data." The research says that is the one thing fine-tuning is worst at. When you cram unfamiliar facts into the weights, you are not building a more knowledgeable model. You are training it to confidently state things, including things that are wrong, because you rewarded that pattern during training.

Follow-up work found that when a fine-tuned model meets a question it does not actually know, it imitates the response pattern of the unfamiliar examples it was trained on - a recipe for fluent fabrication. The takeaway is consistent across the literature: weights are a bad place to put facts that change, or that the model never saw.

What the research says about putting facts in the context instead

Now the other side. If facts do not belong in the weights, where do they go? Into the context, at inference time, where the model can read them rather than recall them.

The most cited practical comparison is a 2024 study from Microsoft researchers that ran fine-tuning and RAG head to head on an agricultural knowledge task, across Llama 2 13B, GPT-3.5, and GPT-4. The two techniques were cumulative, and the combination beat either one alone.

Accuracy gains stacked (Microsoft agriculture study)
base model +6pp fine-tune +5pp RAG
Base model accuracy Fine-tuning added >6 points RAG added another ~5

The gains were cumulative - the combination beat either one alone. People miss this when they frame the choice as a versus. In a lot of production systems the answer is both, with each technique doing the job it is suited for.

But the framing of "both" hides an order of operations, and the order matters. RAG and context engineering give you something fine-tuning structurally cannot: the ability to update knowledge by updating an index instead of retraining a model. Change a document, re-embed it, and the system is current on the next query. No training run, no eval cycle, no ML engineer in the loop.

For any knowledge that changes - which in most businesses is most knowledge - that operational difference is decisive.

The catch nobody mentions: context is not free real estate

The naive version of context engineering is "models have million-token windows now, so just put everything in." This is wrong, and there is now hard data on exactly how wrong.

A 2025 study from Chroma tested 18 frontier models, including GPT-4.1, Claude, and Gemini, on how performance changes as input length grows. Every single model degraded as the context got longer, and not gracefully. The decline showed up well before the models hit their advertised token limits.

0
frontier models tested - GPT-4.1, Claude, Gemini and moreChroma, 2025
0
of them degraded as the context grew - and not gracefullycontext rot
0
window that can start losing accuracy in the tens of thousands of tokenswell before the limit

The term that has stuck is context rot, and the key insight is that capacity is the wrong thing to optimize. What matters is the signal-to-noise ratio of what you put in front of the model, not how much you can technically fit. This builds on an older and equally important result. The "Lost in the Middle" work showed that models reliably miss information buried in the middle of a long input, favoring content at the very start and the very end - a U-shaped accuracy curve.

Lost in the middle: accuracy by position in a long input
Accuracy start middle end

Information buried in the middle gets missed, even when every fact is technically present.

Stack context rot on top of "lost in the middle" and the lesson is clear.

A context window is not a bucket you fill. It is an attention budget you spend - and spending it badly makes the model dumber even when every fact it needs is technically present.

This is the whole reason context engineering is a discipline and not just "paste the docs in." Good context engineering means retrieving precisely, ranking what matters to the top, discarding exploration traces and stale turns, compressing aggressively, and keeping the window lean. The teams that treat the context window as a scarce resource get reliable systems. The teams that treat it as free storage get systems that pass the demo and fall over in week two.

So what is fine-tuning actually good for?

Everything above is a case for reaching for context first. But fine-tuning is not a trap to avoid, it is a tool with a narrow and real purpose. The research points to where it earns its keep.

Behavior, format, and style

A specific JSON shape, a consistent tone, a domain's conventions, a narrow task it does inconsistently. You are not teaching it new things to know - a new way to act.

Latency and cost at scale

A fine-tune bakes in behavior you would otherwise spell out in a long prompt, so you can drop the few-shot scaffolding. At millions of calls, shaving thousands of tokens off each pays for itself.

Capability you can't prompt

Subtle domain classification, specialized code generation, structured extraction with tricky edge cases. When you have tried hard on the prompt and hit a ceiling, a fine-tune can break through it.

Notice what every one of these has in common. None of them is "the model needs to know our facts." They are all about how the model behaves, not what it knows.

A decision framework you can actually use

Here is the position, made concrete. Walk these in order.

If The model lacks knowledge - proprietary data, anything that changes, anything you need to cite.
Context + RAGfacts in the prompt, not the weights
If The model behaves wrong even with the right information - wrong format, tone, inconsistent execution, ignored instructions.
Fine-tunebehavior is what it fixes
If It's cost or latency on a narrow, high-volume task - and the token savings justify the overhead.
Fine-tuneto shrink the prompt · measure first
If It's some of each - the gains stack, but keep the jobs separate so neither does the other's work.
Do bothin the right order
When in doubt, start with context engineering. Faster to build, cheaper to change, easier to debug - and it keeps your knowledge somewhere you can update without a training run.

Fine-tune when you have a specific behavioral reason and the evidence to back it, not because it feels like the more serious engineering choice.

The summary worth keeping

The reason this debate stays unsettled is that both camps are usually right about their own use case and wrong to generalize it. The fine-tuning advocates built something where behavior mattered and fine-tuning delivered. The RAG advocates built something where knowledge changed and retrieval delivered. Then each assumed their answer was the answer.

Knowledge problem

Goes in the context

Facts that change, or that the model never saw. Managed carefully, because the window is a budget and not a bucket.

Behavior problem

Goes in the weights

Format and style you have confirmed you cannot prompt your way to. Most real systems need a bit of both, applied to the parts each is good at.

Stop flipping the coin. The decision is not about taste - it is about whether your problem is a knowledge problem or a behavior problem, and the literature is clear enough now that you can usually tell which one you have before you write a line of code.

References

Knowledge problem or behavior problem?

Strongly's forward deployed engineers build the part each technique is actually good at - precise retrieval for the knowledge that changes, targeted fine-tunes for the behavior you can't prompt - and keep it reliable on Day Two. No coin flips.

Explore the Platform