Three ways to make an LLM do what you need. They solve different problems and are often combined — here's how to choose.
The three approaches
| Prompting | RAG | Fine-tuning | |
|---|---|---|---|
| Changes the model? | No | No | Yes (weights) |
| Adds knowledge? | A little (in-context) | Yes, live & citable | Baked in, slowly |
| Changes behavior/style? | Some | No | Yes |
| Cost / effort | Lowest | Medium | Highest (GPU + data) |
| Updates | Instant | Add a document | Retrain |
A simple decision rule
- Start with prompting. Better instructions and examples solve more than people expect.
- Need current or private facts? → RAG. Retrieve and ground, don't memorize. Fixes hallucination on your data.
- Need a consistent format, tone, or skill the base model lacks? → Fine-tune. Teach behavior, not facts.
Rule of thumb: RAG for what it knows, fine-tuning for how it acts, prompting for everything first. They stack — a fine-tuned model with RAG and a good prompt is the strongest setup.
Related: RAG with Local Embeddings · Fine-Tuning with Unsloth · Prompt Engineering Patterns