Somewhere in the last two years, "just use RAG" became the reflexive answer to almost any "how do I make the model know about my data?" question. It's often the right call, but not automatically, and defaulting to it without checking has cost more than one team a slow, expensive detour.

What each one actually does

Retrieval-augmented generation (RAG) keeps the model as-is and gives it relevant context at query time, pulled from a search over your documents, database, or knowledge base. The model never "learns" your data; it reads relevant pieces of it fresh on every request.

Fine-tuning actually adjusts the model's weights using examples from your data, so the model's behavior itself changes, not just what it's shown at query time.

These solve genuinely different problems, and that's the part that gets lost when RAG becomes the default.

What RAG is actually good at

What fine-tuning is actually good at

The distinction that actually matters
RAG changes what the model knows. Fine-tuning changes how the model behaves. If your problem is "the model doesn't have the right facts," you want RAG. If your problem is "the model has the facts but responds in the wrong way," you probably want fine-tuning, or a combination of both.

The decision framework we use

  1. Does the underlying data change often? Frequent changes push hard toward RAG. Fine-tuning on data that's stale by next week is wasted engineering effort.
  2. Do you need to cite sources or prove where an answer came from? RAG gives you that for free. Fine-tuning doesn't; the knowledge is baked into weights with no clean way to point back to a source document.
  3. Is the problem about facts, or about behavior and style? Facts point to RAG. Consistent behavior, tone, or specialized reasoning patterns point to fine-tuning.
  4. What's your volume and latency budget? High-volume, latency-sensitive tasks sometimes favor fine-tuning a smaller model over paying the retrieval and context-window cost of RAG on every call.
  5. What's your evaluation and maintenance capacity? RAG systems need ongoing retrieval quality monitoring. Fine-tuned models need retraining discipline as the underlying task or data shifts. Both have real ongoing engineering cost, just different kinds.

Where they combine

In practice, a lot of production systems we build use both. A fine-tuned model handles the domain-specific reasoning and output format reliably, while RAG feeds it the current, specific facts it needs for each individual query. Neither one alone solves the whole problem; together they usually do.

The mistake worth avoiding isn't picking the wrong one; it's picking one by default without asking which problem you actually have. That single question, asked honestly during discovery, has changed the architecture on more than a few engagements before any real engineering time was spent building the wrong thing.