Skip to content
HARBAN AI LABS

Paper breakdown

LoRA: fine-tuning large models by training small low-rank updates

A technical reading of the 2021 paper that freezes pre-trained weights and learns low-rank update matrices instead — the maths, why it adds no inference latency, what the authors report against full fine-tuning, and what remains open.
Author
HARBAN AI LABS
Published
Reading time
4 min read

The paper

LoRA: Low-Rank Adaptation of Large Language Models

Authors
Edward J. Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, Weizhu Chen
Year
2021
Checked against source
28 Sept 2026

TL;DR

Full fine-tuning updates every weight in a model, which becomes impractical for very large models — especially when you need many task-specific copies. LoRA freezes the pre-trained weights and, for selected weight matrices, learns an update expressed as the product of two small matrices. Only those small matrices are trained, and they can be merged into the original weights for deployment. Compared with fine-tuning GPT-3 175B with Adam, the authors report that LoRA can reduce the number of trainable parameters by 10,000 times and the GPU memory requirement by 3 times, while matching or beating fine-tuning quality — with no additional inference latency.

The problem

The standard recipe is to pre-train on general data and then adapt to a task or domain. Full fine-tuning produces a complete new set of weights per task; the authors use GPT-3 175B to show how expensive it becomes to deploy many independent fine-tuned copies at that scale.

Existing parameter-efficient methods had trade-offs of their own:

  • Adapter layers insert small extra modules into each Transformer block. They must be computed sequentially, which adds latency at inference time.
  • Prefix and prompt tuning learn extra input tokens instead of weights. The authors found prefix tuning hard to optimise, and reserving part of the sequence for learned tokens reduces the length available for the actual task.

The method

The weight update is low-rank

Earlier work had found that pre-trained models can be adapted within a surprisingly low-dimensional subspace. The authors hypothesise that the change in weights during adaptation also has a low "intrinsic rank". For a pre-trained weight matrix W0∈Rd×kW_0 \in \mathbb{R}^{d \times k}, LoRA constrains the update to

W=W0+ΔW=W0+BA,B∈Rd×r,  A∈Rr×k,  r≪min⁡(d,k)W = W_0 + \Delta W = W_0 + BA, \qquad B \in \mathbb{R}^{d \times r},\; A \in \mathbb{R}^{r \times k},\; r \ll \min(d, k)

During training W0W_0 is frozen and only AA and BB receive gradients. The forward pass for an input xx becomes h=W0x+BAxh = W_0 x + BAx.

Details that matter

  • Initialisation. AA starts from a random Gaussian and BB starts at zero, so BA=0BA = 0 and training begins exactly at the pre-trained model.
  • Scaling. The update ΔWx\Delta W x is scaled by α/r\alpha / r, where α\alpha is a constant. The authors note that, with Adam, tuning α\alpha is roughly equivalent to tuning the learning rate, so they do not tune it separately.
  • Where it is applied. The paper adapts only attention weight matrices and freezes the feed-forward (MLP) blocks, leaving other placements to future work. Most experiments adapt only the query and value projections.
  • Merging. Because BABA has the same shape as W0W_0, it can be added into the weights before deployment, so inference costs exactly what the original model costs. Switching tasks means subtracting one BABA and adding another.

How much capacity is needed?

The paper also studies what the learned updates look like. The authors find LoRA competitive even at very small ranks, and that the update amplifies directions that are present in the pre-trained weights but not emphasised by them. They argue this helps explain why a low-rank update is enough for the tasks they tested.

What the paper reports

The headline results, as reported by the authors in the abstract:

ComparisonResult reported
Trainable parameters, vs GPT-3 175B fine-tuned with AdamReduced by 10,000 times
GPU memory requirement, vs the same baselineReduced by 3 times
Model quality on RoBERTa, DeBERTa, GPT-2 and GPT-3On par with or better than fine-tuning
Training throughputHigher than fine-tuning
Inference latencyNo additional latency, unlike adapters

These are the authors' own measurements on the models and benchmarks they chose. "On par or better" summarises many comparisons; individual tasks vary, so read the paper's tables for any specific result.

Why it mattered

The practical appeal is that one copy of a large base model can serve many tasks through small, cheap-to-store updates. Later work builds directly on the method:

  • QLoRA (Dettmers et al., 2023 (external site)) backpropagates through a frozen, quantised base model into LoRA adapters, reducing memory further.
  • DoRA (Liu et al., 2024 (external site)) splits pre-trained weights into magnitude and direction and uses LoRA for the directional update. Its authors describe LoRA and its variants as having gained considerable popularity among parameter-efficient fine-tuning methods.
  • Hugging Face's PEFT library (external site) uses LoRA as the example method in its quick-start.

Limitations and open questions

  • Batching across tasks. If BABA is merged into the weights to avoid latency, requests for different tasks cannot easily share one forward pass. Keeping adapters unmerged allows mixing, where latency is less critical.
  • Heuristic choices. Which matrices to adapt, and at what rank, were chosen largely by heuristics. The authors list more principled selection as future work.
  • Scope of evidence. The feed-forward layers, layer norms and biases were not adapted, so the paper does not show whether adapting them helps.
  • Low rank is task-dependent. The authors note that a task far from the pre-training data — their example is a different language — could need much more capacity than a small rank provides.

Reading notes for practitioners

  • Sweep rank and target matrices. The paper found very small ranks competitive, but that is an empirical result for its tasks. Check on your own validation set rather than defaulting to large values.
  • Decide early: merge or serve unmerged. Merged adapters cost nothing at inference; unmerged adapters let one deployment serve many tasks.
  • Compare against full fine-tuning when you can. "On par" is the paper's aggregate finding, not a guarantee for your task.
  • Pin adapters to their base model. An adapter is only meaningful on the exact base weights it was trained against. Version them together.

This breakdown summarises and explains the paper in our own words. Numbers quoted from the paper are the authors’ reported results, checked against the source on 28 Sept 2026. For exact claims, read the original.

Corrections

No corrections have been made to this page.

Cite this page

HARBAN AI LABS (2026). “LoRA: fine-tuning large models by training small low-rank updates”. HARBAN AI LABS. https://harban-ai-labs.vercel.app/research/lora-low-rank-adaptation

@misc{harban2026loralowrankadaptation,
  author = {HARBAN AI LABS},
  title = {LoRA: fine-tuning large models by training small low-rank updates},
  year = {2026},
  publisher = {HARBAN AI LABS},
  url = {https://harban-ai-labs.vercel.app/research/lora-low-rank-adaptation}
}

Report an issue with this page

Spotted a wrong number, a broken source or something out of date in “LoRA: fine-tuning large models by training small low-rank updates”? Tell us what and, if you can, link the correct source.

Required. At least 10 characters.

Model registry/models
Benchmarks/benchmarks
Paper breakdowns/research
AI tools directory/tools
Work with us/work-with-us