The decision most people get wrong — you probably do not need to fine-tune
Fine-tuning takes a pre-trained model and trains it further on your own data. This adjusts the model's weights so it behaves differently — it might adopt a specific writing style, learn domain terminology, follow a particular output format, or perform a specialised task better than the base model.
Fine-tuning is powerful but expensive, slow and hard to maintain. Before you fine-tune, you should exhaust prompting and RAG first — they solve most problems without touching the model.
This is the most important decision in applied AI engineering, and most people get it wrong by jumping to fine-tuning too early.
Fine-tuning makes sense in a few specific situations. When you need a very specific output style that few-shot examples cannot capture consistently. When you need to reduce latency by moving instructions from a long prompt into the model's weights. When you have a classification or extraction task with thousands of labelled examples and need near-perfect accuracy. When you need a smaller, cheaper model to perform like a larger one on a narrow task.
In practice, most teams that fine-tune do it for style/format consistency and latency, not for knowledge injection (that is what RAG is for).
You prepare a dataset of input-output examples in the format you want (typically hundreds to thousands of examples). You upload this to the model provider's fine-tuning API (OpenAI, Anthropic and Google all offer this). The provider runs training for a few epochs and gives you a custom model endpoint.
Full fine-tuning adjusts all model weights and is very expensive. LoRA (Low-Rank Adaptation) adjusts a small subset of weights and is much cheaper — this is what most people use. QLoRA adds quantisation to make it even more memory-efficient.
Fine-tuning is not a one-time cost. Every time the base model updates, you need to re-evaluate whether your fine-tune still works. Your training data needs to be maintained and updated. You need an eval pipeline to detect regressions. And you are now maintaining a custom model instead of using a standard API.
This operational burden is why most startups and mid-size companies should prefer prompting and RAG. Fine-tuning is justified when the performance gain is large enough to outweigh the maintenance cost.
Efficient fine-tuning by adjusting a small adapter layer
LoRA with quantisation — fine-tune on consumer hardware
Teaching a model to follow specific instructions
Creating high-quality training datasets
Leveraging pre-trained knowledge for new tasks
When fine-tuning makes the model forget general abilities
OpenAI Fine-tuning API
Fine-tune GPT models via API
Hugging Face PEFT
Library for parameter-efficient fine-tuning
Axolotl
Easy-to-use fine-tuning framework for open models
Unsloth
Faster LoRA fine-tuning with lower memory usage
First, exhaust prompting and RAG for your use case
If those are not enough, define exactly what fine-tuning would improve
Prepare a high-quality dataset (at least 200 examples)
Start with LoRA on a small model to validate the approach
Build an eval set before fine-tuning so you can measure the improvement
Fine-tune, evaluate, iterate on the dataset, repeat