Training

Prompting, RAG and fine-tuning: what changes where?

Prompting changes the instructions a model sees, retrieval-augmented generation changes the evidence in its context, and fine-tuning changes its weights. Each fixes a different kind of failure, and none of them fixes the other two.

Prompting changes the instructions, RAG changes the evidence in the context, and fine-tuning changes the weights. One real support request runs through all three lanes, each fix repairs only its own fault, and the lane that learns from past replies also learns their out-of-date refund rule.

By Film published 2:06 watch

Recorded call
Loading 3D view

Three leversPrompting, 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.

Narrated with James Phoenix's AI voice.

-
JSON
-
45-day policy
-
House style
69
Prompt tokens
1.2 s$0.71 per 1k
Median time
gemini-3.8-flasht=0, 2026-09-11
Recorded with

Press play: one refund request, three kinds of fault, and three places a fix can go.

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
y  ∼  pθ( ⋅∣I⏟instructions,  C⏟context,  x )y \;\sim\; p_{\theta}\bigl(\,\cdot \mid \underbrace{I}_{\text{instructions}},\; \underbrace{C}_{\text{context}},\; x\,\bigr)

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
W x  →  (W+BA) x,B∈Rd×r,  A∈Rr×kW\,x \;\to\; \bigl(W + B A\bigr)\,x, \qquad B \in \mathbb{R}^{d \times r},\; A \in \mathbb{R}^{r \times k}

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
32×4×8×(4096+4096)6,738,415,616  =  8,388,6086,738,415,616  ≈  0.12%\frac{32 \times 4 \times 8 \times (4096 + 4096)}{6{,}738{,}415{,}616} \;=\; \frac{8{,}388{,}608}{6{,}738{,}415{,}616} \;\approx\; 0.12\%

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
cost  =  nin×$0.75+nout×$3.75    per million tokens\text{cost} \;=\; n_{\text{in}} \times \$0.75 + n_{\text{out}} \times \$3.75 \;\; \text{per million tokens}

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

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.

Building with language models?

These explainers come out of the work. If you want the same thinking applied to your own system, that is what I do.

See how I can help