DoRA is a parameter-efficient fine-tuning method for pretrained large language models. It extends LoRA by separating weight updates into magnitude and direction, reducing parameter changes while preserving pretrained knowledge and lowering training cost. section 8.3
DoRA reparameterizes each pretrained weight matrix into a trainable magnitude vector and normalized directional matrix. The directional update uses LoRA-style low-rank matrices, while the pretrained directional component remains frozen and the magnitude is trainable. Initialization preserves the original model output before adaptation. section 8.3.2
Figure 8.13 An overview of DoRA, which segments the pretrained weight into separate magnitude and direction elements for fine-tuning purposes, utilizing LoRA to effectively refine the direction aspect. It’s important to note that ||.||c represents the vector-wise norm across each column vector in a matrix. Image is taken from [2].
Inspect how DoRA separates pretrained weights into magnitude and direction while applying low-rank adaptation to the directional component. section 8.3.2
Use DoRA when adaptation behavior or convergence matters more than minimizing memory alone:
- Choose DoRA over basic LoRA when decoupling magnitude and direction may provide faster or more nuanced convergence. section 8.3.7
- Prefer quantized methods such as QLoRA or QA-LoRA when memory efficiency is the primary constraint. section 8.3.7
- Relate DoRA to weight normalization carefully: DoRA starts from pretrained weights, avoiding the initialization sensitivity associated with training components from scratch. section 8.3.2
