Every team building on top of a language model hits the same fork in the road. The base model is smart but it doesn't know your business, doesn't sound like your brand, and hasn't read your documents. So how do you fix that? You'll hear three answers thrown around as if they're competitors: RAG, fine-tuning, and just using a long context window. People argue about them like sports teams.
Most of that argument dissolves once you realise they solve different problems. Here's the one line that sorts it out:
RAG fixes what the model knows. Fine-tuning fixes how it behaves. Long context just fits the material into the window.
Get that distinction right and the decision mostly makes itself.
RAG: a knowledge problem
Retrieval-augmented generation doesn't touch the model at all. It changes what the model sees at answer time. When a question comes in, a retrieval system searches your documents, grabs the most relevant chunks, and drops them into the context window alongside the question. The model then answers using that fresh material.
The reasons to reach for RAG are practical and hard to argue with:
- Your facts change. For anything that updates more often than about once a week, RAG is really the only sane option. You update knowledge by re-indexing a document. No retraining, no waiting.
- You need to cite sources. Because the answer is built from retrieved chunks, you can trace every response back to where it came from. In legal, finance, and healthcare, that auditability isn't a nice-to-have, it's the requirement.
- It's cheaper to start. You're not paying for a training run, just for a retrieval pipeline.
A concrete example: an internal support assistant that answers from your constantly-changing help centre and product docs. New article published this morning? Re-index it and the assistant knows. Fine-tuning could never keep up with that cadence.
The one honest caveat: RAG is only as good as its retrieval. Roughly half of RAG failures in production come from weak retrieval, typically vector-only search with no reranking step. If the system fetches the wrong five paragraphs, a perfect model still gives you a wrong answer. Retrieval quality is where the real engineering goes.
Fine-tuning: a behaviour problem
Fine-tuning is the opposite move. It doesn't give the model new facts, it changes the model itself by training its weights on examples of the behaviour you want. You use it when the problem isn't what the model knows but how it acts.
Reach for fine-tuning when:
- You need a consistent tone or persona, and prompting keeps drifting off-brand.
- You need a strict output format or schema, every time, and no amount of prompt-wrangling makes it reliable enough.
- You want to distil a big model into a small one, baking a narrow capability into something cheaper and faster to run.
A concrete example: you want every reply to come back as valid JSON in an exact shape, in a specific clipped house style, ten thousand times a day. That's baked-in behaviour, and fine-tuning a small model for it is far more reliable and cheaper than begging a large one to comply on each call.
Two myths worth killing. First, don't fine-tune to fix a knowledge gap. Training facts into weights is expensive, goes stale, and can't cite anything. Use RAG for knowledge. Second, you don't need tens of thousands of examples. With modern techniques like LoRA, a couple of hundred well-curated examples often does the job.
Long context: when it just needs to fit
The newest option is the simplest: models now take enormous context windows, so sometimes you skip the machinery entirely and paste the material straight in. No retrieval pipeline, no training.
This is genuinely the right call when:
- You're prototyping and want to prove the idea before building infrastructure.
- The whole relevant set is small and bounded, like analysing a single contract or a handful of documents in one shot.
- It's a one-off task, not a repeated production workload.
There's even a nice pattern that combines it with RAG: use retrieval to find the right handful of pages, then hand those pages to a long-context model to reason over in full. Narrow first, then read deeply.
But long context isn't free, and this is where people get burned. Every token you stuff in costs money and spends the model's attention budget. As the window fills, quality actually drops, a phenomenon sometimes called context rot. Long context is a great scalpel and a terrible dumping ground.
The decision, in one place
When you're genuinely unsure, walk down this list and stop at the first "yes." It's the fastest way to the right default:
- Does your data change often? Use RAG.
- Do you need to cite sources or pass an audit? Use RAG.
- Do you need a fixed output format that prompting can't pin down? Fine-tune.
- Do you need a consistent tone or persona? Fine-tune.
- Are you distilling a big model into a small, cheap one? Fine-tune.
- Otherwise, especially early on? Start with RAG.
And here's roughly what each path costs and takes, based on 2026 industry figures. Treat these as order-of-magnitude, not quotes:
| Approach | Typical cost | Timeline | Best for |
|---|---|---|---|
| RAG | £5k to £40k | 1 to 3 weeks | Q&A, support, knowledge that changes |
| Fine-tuning (LoRA) | £10k to £60k plus data | 4 to 8 weeks | Style, schema, narrow tasks |
| Long context | Pay per token, no build | Immediate | Prototypes, one-offs, small sets |
| Hybrid | £30k to £120k | 6 to 12 weeks | Production at scale |
The real answer: it's usually not either/or
Here's what the "RAG vs fine-tuning" debates miss. In production in 2026, the consensus is that you often need more than one, because you often have more than one of these problems at once.
The pattern that keeps winning looks like a stack:
- A polished RAG pipeline with hybrid search and a reranker supplies live, current facts.
- A small fine-tuned model locks in the tone and output format so you don't fight it on every call.
- A lightweight router decides, per query, whether retrieval is enough or the model needs the fuller context.
You get current knowledge from retrieval, dependable behaviour from fine-tuning, and lower cost by not over-serving simple queries. The layers stack instead of competing, which is exactly why framing them as rivals leads people astray.
How to actually start
Don't architect the hybrid system on day one. The advice that holds up: build RAG first and prove the use case. Get a retrieval pipeline working, put it in front of real users, and watch where it fails. If the failures are about missing or stale knowledge, you double down on retrieval. If they're about tone drift or format that won't hold, that is your signal to fine-tune a smaller model for those specific behaviours and run it inside the RAG pipeline.
Two things to set up from the very beginning, whichever path you take: an evaluation harness so you can measure whether changes actually help, and reranking on your retrieval so you're not in the half of teams whose RAG quietly fails on bad fetches. Start simple, measure honestly, and add complexity only when a real failure demands it. That order costs less and ships sooner than trying to build the whole thing up front.