What is the difference between prompting, RAG and fine-tuning? Each one changes a different thing. Prompting changes the instructions you send with every call; the model itself does not change, so a fix is instant and costs a few tokens. Retrieval-augmented generation (RAG) fetches relevant documents at question time and puts them in the prompt, so the model can use facts it was never trained on, including ones that changed last week. Fine-tuning changes the model's own weights by training it on examples. It shifts behaviour, style and format, and it comes along with every call, but it is slow and costly to redo, and it is an unreliable way to add facts. Use prompting when the shape or the task is wrong, RAG when facts are missing or keep changing, and fine-tuning when behaviour or style must change. This film runs one task through all three so you can see which fault each one fixes.
The task is one support request, recorded on 11 September 2026 with google/gemini-3.8-flash at temperature 0, five runs per condition. Priya paid for Tallyboard's annual plan on 1 August and asks for a refund on 10 September, 40 days later. The reply has three separate jobs. It must be a JSON object that software can act on, which is about shape. It must apply the refund policy updated on 1 September, 45 days for annual plans, which is a fact the model cannot know. And it must sound like the support team, which is behaviour. The bare model fails all three in every run. It writes friendly prose, makes up a 30-day refund window, and signs off in its own voice.
Each lane is a request plate, a model box and a reply easel, with three check chips that turn green when a check passes in all five runs. Lane 1 adds one line of instructions asking for the JSON object. It costs 39 prompt tokens, and all five replies are valid JSON, but all five still refuse on 30 days. Lane 2 leaves the instructions alone and inserts the policy passage, as a retriever would. All five replies quote 45 days and grant the refund, but they are back in prose and in a generic voice. Lane 3 opens the model. No model was trained for this film. The recorded lane is a proxy: forty past replies in the house style are placed in the prompt, which gets the behaviour a fine-tune on those replies would aim for. All five replies then open with "Thanks for getting in touch, Priya." and close with the team's sign-off.
The scoreboard reads as a diagonal: each fix repairs its own column and none of the others. That is the practical test. If the output has the wrong shape, change the instructions. If it has a wrong or missing fact, put the fact in the context. If it has the wrong manner, and more instructions have stopped helping, that is when training earns its cost. Put all three into one call and every check passes in all five runs.
The failure mode is using fine-tuning to add facts. The past replies were written before the policy changed, so the refund examples say 30 days. Lane 3 learns the style and the stale rule together, and it declines Priya in perfect house style in all five runs. A fine-tuned model has the same problem in a harder place: the old rule would sit in its weights, where you cannot read it or edit it without training again. Published results point the same way: Ovadia et al. (2023) found retrieval beat unsupervised fine-tuning at getting new facts into a model, and Gekhman et al. (2024) found that fine-tuning on facts a model did not already know was slow to learn and made it hallucinate more once learned. In the all-three call, the retrieved passage outranks the stale examples and the reply quotes 45 days. That is the arrangement to aim for: behaviour in the weights, facts retrieved fresh on every call.
Cost is the other half of the choice. The format line and the passage cost tens of tokens. The forty examples cost 2,685 extra prompt tokens on every call, and at list prices a thousand calls go from $0.71 for the bare request to $3.40. Training moves that cost out of each request. A LoRA adapter (Hu et al., 2021) of rank 8 on the attention projections of Llama 2 7B (Touvron et al., 2023) trains 8,388,608 of its 6,738,415,616 weights, 0.12 percent, and leaves the rest frozen. The film does not show a training curve or a training bill, because none was measured.
The honest caveats. Lane 3 is an in-context proxy, not a fine-tune, and a trained adapter could learn more or less of the style. There are five runs per condition of one model on one request, all near identical at temperature 0, so this shows the mechanism rather than measuring rates. The policy passage was inserted directly rather than found by a retriever, so retrieval quality, which is where most RAG systems fail, is not tested here. The checks are strict and simple: JSON must parse with nothing around it, the policy check looks for 45 days and no 30, and the style check reads the opening and the sign-off.
The maths
- Three places a fix can go
The reply y depends on the instructions I, the evidence in the context C, the customer message x and the weights θ. Lane 1 edits I, lane 2 fills C, lane 3 changes θ. The message x is the same in every call, which is what makes the three lanes comparable.
- LoRA trains a thin update, not the model
LoRA (Hu et al., 2021) freezes each weight matrix W and trains two thin matrices beside it, so an adapted d by k matrix gains r(d + k) weights. The gold plate that slots into lane 3 is this update; the grey dials under it are the frozen weights, and they never turn.
- How much of a 7B model rank 8 touches
For Llama 2 7B (Touvron et al., 2023, and its published configuration: 32 layers, hidden size 4096), a rank 8 adapter on the four attention projections in every layer trains 8,388,608 weights out of 6,738,415,616. That is the 0.12 percent printed over lane 3. The count grows in proportion to the rank, so rank 16 trains twice as many, and the frozen weights stay untouched either way.
- What each fix costs per call
Prices are the OpenRouter list prices for google/gemini-3.8-flash on the recording day. The format line added 39 prompt tokens and the policy passage 51; the forty past replies added 2,685 to every call. Training moves that last cost out of every request and into a one-off run, which is the usual reason to fine-tune behaviour rather than keep prompting it.
Transcript
The narration, chapter by chapter. A timestamp opens the film at that moment.
- 0:00Three levers
- Prompting, RAG and fine-tuning each fix a model's answer by changing a different thing: prompting changes the instructions you send, RAG adds evidence to each call, and fine-tuning changes the model itself.
- 0:13What each changes
- Prompting here is one added line, 39 tokens and instant; RAG fetches our updated refund policy at question time, so the model reads a fact it was never trained on; fine-tuning trains on past replies, which changes style and behaviour, but is slow to redo.
- 0:32Three faults
- To see the difference, take one request: Priya asks for a refund forty days after paying, and the bare model fails three ways at once: prose instead of JSON, an invented 30-day rule, and none of our house style.
- 0:47Edit the instructions
- Lane one edits the instructions: one added line, 39 more tokens, and all five runs return valid JSON, yet every one still declines on 30 days.
- 0:59Insert the evidence
- Lane two leaves the instructions alone and inserts the updated policy instead, and all five runs quote 45 days and grant the refund, but back in prose, and still not in our voice.
- 1:11Change the weights
- Lane three changes the weights: a rank 8 adapter trains 0.12 percent of a 7B model, and here forty past replies stand in for that run, so all five replies now sound like our team.
- 1:26Match fix to fault
- Now read the scoreboard as a diagonal: each fix repairs only its own fault, so the question is never which technique wins, but which kind of fault you have.
- 1:36Training in facts
- And here is the trap: those past replies still carried the old 30-day rule, so lane three declines Priya in perfect house style, because facts trained into weights go stale.
- 1:49All three together
- So match the fix to the fault, instructions for shape, retrieval for facts and training for behaviour, and together all five runs pass, though the examples cost 2,685 tokens a call until you train them in.
Also available as captions (WebVTT), the video file and a Markdown copy of this page.
Related terms
- Parametric knowledgeParametric knowledge is what a model knows from training, stored in its parameters. It is broad and instantly available but frozen, unsourced, and not always reliable.
- Contextual knowledgeContextual knowledge is what a model knows because it is in the context right now: the files, docs, and output you gave it. It is current and grounded, and it is the main lever against hallucination.
- TrainingTraining is the process that produces a model: showing it enormous amounts of text and adjusting its parameters until it gets good at predicting what comes next. It happens once, before you ever use the model.
- ParametersParameters are the learned numbers (weights) inside a model that hold everything it appears to know. The count of them is what people mean by model size, and they are fixed once training ends.
- ContextContext is all the text a model can see for a single request: the system prompt, your message, the conversation so far, and any files or tool output the agent has pulled in. It is the only thing the model knows about your specific situation.
- Knowledge cutoffThe knowledge cutoff is the date after which a model learned nothing from training. It is a common source of outdated APIs, so give the model current docs to compensate.
More visualisations
Embed this film
Paste this into a post, a course page or a newsletter. The film plays in place, with the same controls as here, and credits the source.