Zenaique

DoRA: which component does LoRA actually adapt?

MCQ·Hard·4.0 · 0·~1 min·Asked atDeloitteSarvamTencent·Relevant atCohereDatabricksMetaMicrosoft
Attempt it
TL;DR

DoRA splits each weight into magnitude and direction, learns the magnitude directly, and applies LoRA only to the direction. This closes more of the gap to full fine-tuning.

Memory aid
Sign in to see the mnemonic that makes this stick.
Easy to grasp

Picture aiming a flashlight. A weight has two parts: how far the beam reaches, its length or magnitude, and where you point it, its direction. Plain LoRA tries to learn both at once with a small budget, so it gets pulled two ways and underfits. DoRA hands the length its own simple dial, a single number you turn directly, and spends the small LoRA budget purely on steering the beam. Because length and aim no longer fight over the same budget, the steering comes out cleaner. The result lands closer to retraining the whole flashlight from scratch, while still touching almost no extra parameters.

Concept explanation~2 min read

Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.

DoRA, Weight-Decomposed Low-Rank Adaptation, is a 2024 refinement of LoRA that consistently closes more of the gap to full fine-tuning while keeping the parameter budget essentially unchanged. The exam question is sharp because three of the four options each describe a real, named method, and only one describes DoRA. Getting it right means knowing not just what DoRA does, but exactly what it is NOT.

The core move is almost embarrassingly simple. Every weight, viewed as a vector, has two properties: a length and a direction. Plain LoRA learns one low-rank delta and lets it nudge both at once. DoRA separates them. It learns the length, the magnitude, directly as a small set of scalars, and it spends the low-rank LoRA budget exclusively on the direction.

This matters because the authors did not guess at the split. They analysed how the weights of a fully fine-tuned model differ from a LoRA-tuned one, decomposing both into magnitude and direction. Full fine-tuning showed a distinctive pattern that LoRA structurally cannot reproduce. DoRA's decomposition was designed to recover that pattern.

This deep dive states the decomposition precisely, explains which component LoRA adapts and why, walks through the empirical motivation, and then carefully separates DoRA from the AdaLoRA and QLoRA distractors that the question deliberately plants.

The decomposition, stated precisely

Take a pretrained weight matrix and look at it one output column at a time. DoRA rewrites each column as a scalar magnitude multiplied by a unit-norm direction vector.

W=mVVW = m \cdot \frac{V}{\lVert V \rVert}

The magnitude is a per-output column scalar, so there is exactly one magnitude number per output dimension. The direction is whatever is left after you divide out that length, a vector constrained to unit norm. At initialisation, the magnitude and direction are set so the product exactly reconstructs the original pretrained weight, meaning DoRA starts as a no-op identical to the base model.

During training, two things happen. The magnitude vector is updated directly by gradient descent, as an ordinary one-dimensional trainable parameter. The direction is updated by LoRA: the familiar low-rank product is added to the directional component, the result is renormalised back to unit length, and then the learned magnitude scales it. That sequence, add the low-rank delta, renormalise, rescale, is the entire mechanism.

Note what this means dimensionally. For a weight that maps an input of size d-in to an output of size d-out, the magnitude is a vector with d-out entries, one scalar per output column. The directional component keeps the full d-out by d-in shape, but only its low-rank LoRA delta is trainable. So the trainable surface is the same low-rank factors LoRA already had, plus a thin magnitude vector. That is why people describe DoRA as LoRA plus one extra dial per column.

Which component LoRA adapts, and why
Why the split helps: the empirical motivation
Telling DoRA apart from the distractors
Practical cost, merging, and when it is worth it
Sign in to unlock the full deep dive.

Situations where this technique stops working.

Sign in to see when this approach fails.

2–4 min · Everything important, quickly.

Sign in to see the quick scan of the deep dive.
MethodWhat it parameterisesKey idea
LoRALow-rank update BA on the full weightCouples magnitude and direction in one low-rank delta
DoRADirect magnitude scalar plus LoRA on the directionDecouples length from aim to mimic full fine-tuning
AdaLoRASVD-form update with adaptive rank per layerAllocates rank budget by importance via singular values
QLoRA4-bit frozen base plus bf16 low-rank factorsMemory trick, orthogonal to the decomposition idea

Real products, models, and research that use this idea.

  • Hugging Face PEFT ships DoRA as a flag (use_dora=True) on its LoRA config, so teams fine-tuning Llama 4 can A/B it against plain LoRA with one line.
  • Unsloth and Axolotl both expose DoRA toggles in their fine-tuning recipes for open models like Mistral and Qwen variants.
Sign in to see more production examples.

What an interviewer would ask next. Try answering before peeking at the approach.

QWhy does decoupling magnitude from direction help LoRA approach full fine-tuning?
A

Discuss the authors' observation that full fine-tuning moves magnitude and direction with a near-negative correlation that a single coupled low-rank delta cannot reproduce. Separating the two lets each follow its own trajectory.

2 more follow-ups an interviewer would ask next. Sign in to reveal them.

Red flags & common mistakes

The phrases that signal junior thinking. Click to expand.

Most common mistake

Confusing DoRA with AdaLoRA's SVD update or QLoRA's 4-bit base. DoRA's contribution is structural, a magnitude versus direction split, not a quantisation or rank allocation trick.

Sign in to see all red flags and common mistakes.

60 second bullets to scan on the way to the call.

  • The magnitude versus direction decomposition of a weight

  • Which component LoRA actually updates under DoRA

Sign in to unlock the revision sheet.

Primary sources. Browse if you want the original framing.

Similar questions

Same topic, related formats. Practice these next.

4 curated
Next question
What is RLHF, and why is it used after pretraining?
MCQ·Easy