Skip to content
← all posts
·5 min read·by Dru Edwards·#ai #fine-tuning #rag #architecture #craft

Fine-Tuning vs. RAG vs. Prompting: An Honest Decision Tree

Three tools, three different jobs. Most teams pick one and wonder why it doesn't work for everything. Here's the actual decision logic.

Most AI implementation debates come down to three options: write a better prompt, add retrieval, or fine-tune the model. These are not competing strategies. They're tools for different problems. Using the wrong one doesn't mean the approach failed — it means you picked the wrong tool.

Here's the answer up front: prompting solves behavior problems, RAG solves knowledge problems, and fine-tuning solves pattern problems. When you're clear on which problem you have, the decision is usually obvious. The confusion comes from not diagnosing the problem first.

what each one actually does

Prompting is instruction. You're telling the model how to behave, what role to play, what format to use, what to avoid. It works at call time, requires no setup, and is the right first move for almost everything. It has one hard limit: the model can only work with what it was trained on. You can instruct it all day, but you can't prompt in knowledge it doesn't have.

RAG is a knowledge delivery mechanism. You retrieve relevant documents at query time and inject them into the context before generation. The model's behavior stays the same — you're just giving it information it didn't have at training time. This solves the "the model doesn't know about my specific stuff" problem. It does not solve the "the model responds in the wrong format" or "the model's tone is off" problem — those are prompting problems.

Fine-tuning is pattern installation. You're updating the model's weights on examples of what good looks like for your use case. It solves problems of consistent style, domain-specific reasoning patterns, and tasks where the correct behavior is better shown than described. It does not give the model new factual knowledge — the weights encode patterns, not encyclopedias. A fine-tuned model still won't know what happened last Tuesday.

the decision tree

Start with prompting. Always. It's free, it's instant, and it solves more problems than most people think. If the model's output has the wrong behavior, tone, format, or persona — that's a prompting problem. Iterate on the prompt before adding complexity.

Add RAG when the model doesn't know something it needs to know. Your internal documents. Your product catalog. Your customer history. Recent events. Domain-specific knowledge that wasn't in the training data. If the model is hallucinating because it doesn't have the information, retrieval is the fix.

Fine-tune when you have a consistent pattern the model needs to reproduce and prompting can't reliably produce it. Examples: a specific response style or format that's complex enough that a system prompt keeps drifting. A classification task with domain-specific categories. A reasoning pattern that needs to be deeply consistent across thousands of calls. If you can show the pattern clearly in 500+ examples, fine-tuning is worth considering.

Combine them when you have multiple distinct problems. RAG + prompting is common and cheap. Fine-tuning + RAG works well when you need both consistent behavior and dynamic knowledge. Fine-tuning + prompting covers most of the remaining cases.

the mis-diagnoses I see most

People reach for fine-tuning when they have a prompting problem. The symptoms: "the model keeps responding in the wrong tone." The instinct: "I need to fine-tune it on good examples." The actual fix: a better system prompt with a clear example of the right tone. Fine-tuning is expensive, slow, and harder to update. If prompting can solve it, prompting should solve it.

People also reach for prompting when they have a knowledge problem. The symptoms: "the model keeps getting our product details wrong." The instinct: "I need to tell it more in the system prompt." The actual fix: RAG pulling from your actual product database. A 4,000-token system prompt stuffed with product details is a maintenance nightmare that still won't cover everything.

From my own bench

I've built systems using all three, often in combination. The most common mistake I've made personally: reaching for fine-tuning too early because it felt like the "real" solution. It's not more real — it's more expensive. A well-structured prompt plus a solid retrieval layer solves probably 80% of real-world use cases without touching model weights at all.

The cases where I've actually needed fine-tuning: tasks where I had hundreds of examples of exactly the right output format and prompting kept producing close-but-wrong responses. Structured data extraction with domain-specific schemas is a good example. When the output pattern is complex and consistent, fine-tuning earns its cost.

Try it today

StepWhat you doWhy it pays off
1. Diagnose before choosingWrite one sentence: "The model is wrong because it [doesn't know / behaves incorrectly / can't reproduce the pattern]"Forces you to pick the right tool before spending any engineering time
2. Exhaust prompting firstIf it's a behavior problem — structured system prompt, a few examples in context, explicit format instructions, run 20 test queriesMost behavior problems are solvable here. Fast, free, no infrastructure.
3. Add retrieval before fine-tuningIf the model lacks knowledge — build a minimal RAG layer, test retrieval quality, measure output improvementRAG is cheaper and more updateable than fine-tuning. Solve knowledge problems here first.

Where people get burned

  • Fine-tuning hoping it will also add knowledge. It doesn't work that way. Fix: use fine-tuning for patterns, RAG for facts. Pair them when you need both.
  • RAGing when the problem is actually behavioral. More context won't fix a tone or format problem. Fix: read your prompt critically before adding retrieval infrastructure.
  • Skipping evaluation at each step. It's easy to add complexity and assume it helped. Fix: define test queries before you start, run them after each change, measure the actual delta.
  • Treating fine-tuning as a one-time fix. Your data changes, your patterns drift. Fix: plan for fine-tuning maintenance before you commit to it.

The bottom line

Prompting is the right first move, always. RAG is the right move when the model needs knowledge you can retrieve. Fine-tuning is the right move when you have a consistent pattern that prompting can't reliably produce. Most of the confusion in this space comes from skipping the diagnosis and going straight to a solution.

Name the problem first. The tool choice follows.

— Dru Edwards