Handbooks  /  LoRA vs Full Fine-Tuning
AI~9 min readComparison
Head to Head

LoRA vs full fine-tuning: how much should change?

LoRAvsFull Fine-Tuning

Full fine-tuning updates every one of a model's billions of parameters. LoRA freezes almost all of them and trains a pair of tiny matrices instead — often under 1% of the parameter count. The surprising part isn't that LoRA is cheaper; it's that it usually works nearly as well.

01

The one distinction that decides everything

Full fine-tuning continues training and updates every weight in the model, exactly like pretraining, just on your data. LoRA (Low-Rank Adaptation) freezes the entire base model and instead injects small trainable matrices A (d×r) and B (r×d) alongside each targeted weight matrix, where rank r is tiny (often 4–64) compared to the full dimension d. Only A and B ever get gradients.

→ The rule

Need the biggest possible capability or knowledge shift and have the GPU budget? Full fine-tuning. Need to adapt behavior narrowly, cheaply, and want to preserve the base model's general skills? LoRA.

02

Head to head

DimensionLoRAFull Fine-Tuning
Trainable paramsOften 0.1%–1% of total100%
GPU memoryFits on one consumer GPU (QLoRA)Needs multi-GPU / high-end for 7B+
Training speedFaster per step, less memory bandwidthSlower, full optimizer state for every weight
Storage per taskA few MB per adapterA full model copy, tens of GB
Catastrophic forgettingLower — base weights untouchedHigher — can erode general capability
Capability ceilingGood for narrow adaptationHigher ceiling for large behavior/knowledge shifts
Multi-task servingHot-swap adapters on one loaded baseSeparate full model per task
Iteration costCheap — retrain in minutes on modest hardwareExpensive — full run every iteration
03

When to use each

Reach for LoRA

  • Limited GPU budget, or a single consumer card
  • Many narrow, distinct tasks to support
  • Want to preserve the base model’s general capability
  • Need fast, cheap iteration cycles
  • Serving many customized variants from one loaded base

Reach for full fine-tuning

  • Need a large capability or knowledge shift, not a narrow tweak
  • Have real training compute budget
  • Training a foundation-scale change, not adapting an existing skill
  • Quality ceiling matters more than training cost
  • Domain is far enough from the base model’s training distribution
04

The decision rule: start cheap, escalate only if needed

LoRA (or its quantized variant QLoRA, which quantizes the frozen base to 4-bit and trains LoRA adapters on top) is almost always the right first move, because the downside of trying it is small — a few GPU-hours — while full fine-tuning commits real compute before you know if the adaptation even needs that much capacity. Reach for full fine-tuning specifically when you've measured that LoRA's ceiling is the actual bottleneck, not by default.

→ The cheap default

Prompt engineering, then LoRA, then full fine-tuning — in that order of committed cost, escalating only when the cheaper option demonstrably can’t reach the behavior you need.

05

Why a tiny low-rank update can work at all

It sounds implausible that training 0.5% of a model's parameters could get close to full fine-tuning's results — the intuition-defying finding behind LoRA (Hu et al., 2021) is that the WEIGHT UPDATE a fine-tuning run actually needs, ΔW, tends to have a low "intrinsic rank": most of what changes during adaptation can be captured by a much lower-dimensional transformation than the full weight matrix's dimensions would suggest. Concretely, instead of learning a full d×d update matrix ΔW, LoRA constrains it to the product of two much smaller matrices, B·A, where A is d×r and B is r×d for a small r — meaning ΔW is forced to be low-rank by construction, and empirically that constraint barely hurts quality for most adaptation tasks because the "true" needed update was low-rank anyway.

This is also why LoRA specifically helps with catastrophic forgetting: because the base weights W are literally frozen and never receive a gradient, the model's original capabilities are structurally protected — the adapter can only ADD a small, low-rank correction on top of what the base model already knows, it can't overwrite it. Full fine-tuning has no such protection: every weight is free to move, which is exactly what gives it a higher ceiling for large shifts AND a higher risk of quietly degrading skills nobody was testing for.

→ The trade you’re actually making

Constraining the update to be low-rank is a real capacity limit, not a free lunch — it's just a limit that, empirically, most narrow adaptation tasks don't actually need to exceed.

06

A worked scenario: 50 brand-voice fine-tunes for one product

A startup wants 50 different customer-specific variants of the same base model, each speaking in a different brand's voice and following a different output template. Full fine-tuning here means storing and serving 50 separate multi-gigabyte model copies — real infrastructure cost multiplied by 50, and a full training run's compute cost multiplied by 50, for what is fundamentally a narrow, similar-shaped adaptation repeated many times.

LoRA fits this shape exactly: train 50 small adapters (each a few megabytes) against one shared, loaded base model, and hot-swap the active adapter per incoming request at serving time. The base model's weights, and the GPU memory they occupy, are shared across all 50 customers; only the tiny A/B matrices differ. This is precisely the scenario LoRA was built for — many related, narrow adaptations of one shared foundation — versus the case in section 03 where full fine-tuning stays the right call: a single large behavioral or knowledge shift too big for a low-rank update to reach.

→ The pattern generalizes

LoRA scales with the NUMBER of narrow variants you need; full fine-tuning scales with the SIZE of the single shift you need. Fifty small differences favors LoRA; one big difference favors full fine-tuning.

Frequently asked

Quick answers

LoRA or full fine-tuning — which should I use?

Start with LoRA — it’s cheap to try and covers most narrow adaptation tasks (tone, format, a specific skill) while preserving the base model’s general capability. Reach for full fine-tuning only once you’ve confirmed the adaptation needs a bigger capability shift than a low-rank update can capture.

Does LoRA hurt quality compared to full fine-tuning?

For most narrow adaptation tasks, the gap is small because the weight update those tasks actually need tends to be low-rank anyway. For large capability or knowledge shifts, full fine-tuning’s unrestricted updates give it a real, measurable edge.

What is QLoRA?

LoRA applied on top of a 4-bit-quantized frozen base model. It cuts memory further, making it possible to fine-tune multi-billion-parameter models on a single consumer GPU, at a small additional cost in precision from the quantization.

Can you serve many LoRA adapters from one base model?

Yes — this is one of LoRA’s biggest practical advantages. Because the base model is shared and unchanged, you can hot-swap small adapters per request, serving many customized behaviors from a single loaded model instead of many full model copies.

LoRA vs Full Fine-Tuning · Vibe Engines · 2026
Finished this one? 0 / 115 Handbooks done

Explore the topic

See this alongside everything else on the same subject — handbooks, system designs, challenges and tools, in one place.