Fine-tuning is often misunderstood. Many devs reach for it when prompting is sufficient. Here's the clear picture of when fine-tuning actually helps.
Prompting: Give the model instructions at inference time
Fine-tuning: Train the model's weights on examples
Prompting is better for:
- Following complex instructions
- Incorporating new information
- One-off or varied tasks
Fine-tuning is better for:
- Consistent format/style output
- Domain-specific behavior at scale
- Reducing prompt length (thus cost)
- Behavior that's hard to describe in a prompt
You need the model to always output JSON in a specific schema, or always follow a specific response structure.
Medical notes, legal documents, code in a proprietary language — domains where the base model's examples are scarce.
A fine-tuned smaller model can match a larger base model's performance on your specific task, at fraction of the cost.
If you need a consistent brand voice, fine-tuning is more reliable than prompting.
1. Collect training examples:
{
"messages": [
{"role": "user", "content": "Categorize: The server crashed"},
{"role": "assistant", "content": "category: infrastructure, severity: high"}
]
}
2. Submit 50-1000+ examples to OpenAI/Anthropic fine-tuning API
3. Model weights are updated (LoRA or full fine-tune)
4. New model inherits base capabilities + learned behavior
Before fine-tuning, try:
Fine-tuning is a last resort for when everything else doesn't achieve the quality you need. Most teams fine-tune too early.