"The model keeps getting this wrong" describes three completely different problems, and the fix for one does nothing for the other two.
Pick wrong and you pay for a whole training run to fix something a rewritten paragraph of instructions would have handled.
Here's the mental model that makes it click: think of the model as a sharp new hire on day one.
Prompting is telling them what you want, in words, right now. Free, instant, and you can change your mind ten times before lunch.
RAG (retrieval-augmented generation) is handing them the case file. When the question comes in, your system searches your own documents, pulls the relevant pages, and pastes them into the prompt. The model answers from facts it was never trained on, and it can point at the page it used.
Fine-tuning is sending them on a training course. You train the model further on your own examples until the behavior is baked in, so it shows up by default even with a bare prompt.
The bit that ties it together: prompting and RAG happen at question-time, so you can change either in seconds. Fine-tuning happens beforehand and lives inside the model itself, so changing it means training again.
So the first question is never "which of the three?". It is: does the model not KNOW something, or does it not BEHAVE the way I want? Two words, two very different levers, and it is easy to skip the question and reach straight for the expensive one.
Quick check before you scroll: Your support bot keeps giving factually wrong answers about your company's return policy, which changed last week. Do you fine-tune it or add RAG?
Full breakdown + the answer: frankduah.me/learnings/2026-09-13-fine-tuning-vs-rag-vs-prompting-which-when
New here? I post a bite-size AI / ML concept like this every day - follow me for the daily drop, and it compounds fast. Why I do it: https://lnkd.in/gK8knHDH
#FineTuning #AI #LLM #AIAgents #MachineLearning
The answer
Add RAG. This is a knowledge freshness problem, not a behavior problem - fine-tuning bakes in patterns from training data and isn't a reliable way to inject or update specific facts, especially ones that change often. Pull the current policy doc in at query time instead.