Retrieval or fine-tuning? I start with retrieval
For products built on a user's own notes, I use retrieval first. I fine-tune only after the task is stable and the same error survives prompt and retrieval fixes.
I get asked whether to fine-tune or use retrieval. For the products I ship, retrieval wins first. Fine-tuning is a later bet, and only for a narrow reason.
Use retrieval when the facts change
LinkAssist has to use a founder's own notes, posts, and positioning. Those change every week. A fine-tune from last month is already wrong.
Retrieval keeps the source next to the answer. I can show the chunk. I can delete a bad document. I can rerank. I cannot do that inside a weight update.
Use a prompt when the behavior is a format
Tone, length, and "wait for approval" are instructions. They belong in the prompt and in the tool schema. Fine-tuning a model to sound like a brand is expensive, and a prompt plus two examples usually gets me there.
Fine-tune only when the same correction keeps happening
I would fine-tune if all of these are true.
- The task is stable.
- The training examples are mine, and they are correct.
- Retrieval and prompt changes have already failed on the same errors.
- I can measure the change on a frozen set, not on a vibe.
If I cannot name the repeated error, I do not have a fine-tune project. I have a wish.
What I ship instead
Hybrid search, then a reranker, then a prompt that cites the chunks. The agent loop calls that as a tool. When the answer is bad, I look at the chunks before I look at the model.
That is slower to brag about. It is faster to fix.