TL;DRLoRA fine-tunes cheaply by training small adapter matrices instead of all weights.
Full fine-tuning updates billions of parameters — costly. LoRA (Low-Rank Adaptation) freezes the base model and trains tiny low-rank adapter matrices injected into layers, slashing memory and storage (adapters are megabytes, not gigabytes). You can swap adapters per task and even merge them. It's the dominant parameter-efficient fine-tuning method — fine-tuning on consumer GPUs became possible because of it.
Key points
Freeze base; train small low-rank adapters
Massive memory/storage savings
Swap adapters per task
The standard parameter-efficient fine-tuning
Common mistakes
Full fine-tuning when LoRA suffices
Wrong rank (too low underfits, too high wastes)
Forgetting to merge/load adapters at inference
Try it: Explain why LoRA adapters are tiny compared to the base model.
Example code
<!doctype html><html><head><meta charset="utf-8"></head>
<body style="background:#06040d;color:#e6e0ff;font-family:monospace;padding:20px"><pre>base model: frozen (billions of params)
LoRA: train small low-rank adapters (MBs)
→ cheap, swappable per task</pre></body></html>