Rethinking LoRA Initialization for Robust Asymmetric Learning Rates
Organizations: University of Waterloo Vector Institute
Abstract
Low-Rank Adaptation (LoRA) is often highly sensitive to learning-rate (LR) choices. Recent empirical studies suggest that, once LRs are carefully tuned, vanilla LoRA can remain competitive with many proposed LoRA variants. This shifts the central practical question from designing ever more variants to reducing the cost and brittleness of LR selection. LoRA+ addresses this issue with asymmetric LRs, using a larger LR for the up-projection matrix than for the down-projection matrix . However, the ratio itself becomes an additional hyperparameter: large ratios can improve adaptation, but under the standard LoRA initialization they can also cause unstable training and ratio-dependent performance collapse. We identify the source of this brittleness through a signal--noise decomposition of LoRA dynamics. Under standard \initA, the update contains an initialization-induced noise term whose magnitude can be affected by the LR for , , the initialization scale , and the adapter rank . In practical LLM fine-tuning, this non-vanishing noise can limit the performance gains expected from LoRA+ style asymmetric LRs. To suppress this effect, we propose \initAA, a simple initialization that scales the variance of as while keeping . Under matched rank and training time for both initializations, this reduces the initialization-noise energy by an additional factor of , stabilizing asymmetric LoRA training while preserving zero initial adapter output. Empirically, \initAA substantially widens the stable LR region across initialization scales, adapter ranks, and LoRA update multipliers. Across tasks and models, \initAA reduces best-ratio drift, prevents the high-ratio collapse observed with standard \initA, and makes the width-based guideline a useful starting point for finite pretrained models.
Figures & tables
Appendix figures & tables17 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | Checkpoint | Init[A] median / mean | Init[ ] median / mean |
| Llama-3.2-1B | First update | 0.616 / 0.652 | 0.621 / 0.655 |
| Llama-3.2-1B | 5% epoch | 0.642 / 0.665 | 0.552 / 0.565 |
| Llama-3.2-1B | 50% epoch | 0.519 / 0.559 | 0.542 / 0.560 |
| Llama-3.2-1B | End epoch | 0.536 / 0.572 | 0.567 / 0.581 |
| Qwen3-0.6B | First update | 0.713 / 0.778 | 0.714 / 0.779 |
| Qwen3-0.6B | End epoch | 0.818 / 0.819 | 0.523 / 0.533 |
| Module | Initialization | Step-5 dot 95% CI | Step-620 dot 95% CI | Cosine exponent step 5 / 620 |
| q_proj | Init[A] | 0.309 | 0.274 | |
| q_proj | Init[ ] | 0.299 | 0.063 | |
| down_proj | Init[A] | 1.640 | 1.571 | |
| down_proj | Init[ ] | 1.626 | 1.521 |
| Epoch | Init[A] | Init[ ] | Accuracy gap |
| 1 | 55.06 / 0.687 | 75.61 / 0.348 | |
| 3 | 56.71 / 0.697 | 77.57 / 0.268 | |
| 6 | 55.73 / 0.687 | 77.30 / 0.182 | |
| 10 | 55.58 / 0.661 | 75.68 / 0.128 |
| Epoch | Init[A] | Init[ ] | Init[A] | Init[ ] |
| 1 | 75.40 / 0.360 | 74.43 / 0.360 | 71.33 / 0.419 | 75.24 / 0.356 |
| 3 | 75.27 / 0.256 | 77.40 / 0.294 | 71.18 / 0.339 | 76.89 / 0.279 |
| 5 | 74.39 / 0.199 | 76.34 / 0.239 | 70.57 / 0.298 | 75.75 / 0.216 |
| 10 | 68.72 / 0.135 | 75.63 / 0.144 | 68.33 / 0.249 | 72.64 / 0.132 |
| Init[A] | Init[ ] | 95% CI for Init[ ] Init[A] | |
| 1 | |||
| 3 | |||
| 10 | |||
| 12 |
| Initialization | Best accuracy | Within 1 point of own best | Above 90% accuracy | Chance-level cells |
| Init[A] | ||||
| Init[ ] |
| Initialization | Best | Best accuracy | |
| 4 | Init[A] | 50 | |
| 4 | Init[ ] | 50 | |
| 12 | Init[A] | 50 | |
| 12 | Init[ ] | 100 |
| Model | Initialization | Noise | Signal | Cross |
| Llama-3.2-1B | Init[A] | 117.2 | 4.9 | |
| Llama-3.2-1B | Init[ ] | 3.1 | 85.9 | |
| Llama 3-8B | Init[A] | 117.4 | 8.1 | |
| Llama 3-8B | Init[ ] | 1.5 | 90.4 |
| Initialization | |||||||||
| EVA | 24.23 | 29.36 | 34.01 | 38.82 | 46.01 | 55.95 | 61.78 | 60.15 | 0.00 |
| OLoRA | 29.19 | 30.29 | 33.19 | 38.61 | 52.13 | 58.23 | 60.07 | 58.22 | 7.28 |
| PiSSA | 30.36 | 34.03 | 40.25 | 47.19 | 54.77 | 58.42 | 60.97 | 58.80 | 22.30 |
| Init[A] ( ) | 23.51 | 28.69 | 34.74 | 40.91 | 48.26 | 57.83 | 62.15 | 60.72 | 2.41 |
| Init[A] ( ) | 30.88 | 32.85 | 39.56 | 47.90 | 56.08 | 60.27 | 60.15 | 57.10 | 0.53 |
| Init[ ] ( ) | 24.13 | 28.33 | 31.02 | 35.22 | 45.51 | 51.48 | 60.77 | 60.98 | 2.14 |
| Initializer | ||||
| Init[ ] | 0.5 | 71.44 | 76.72 | 76.70 |
| Init[ ] | 1 | 71.24 | 76.63 | 77.93 |
| PEFT Orthogonal | – | 72.73 | 70.06 | 2.49 |
| Orthogonal- | 0.5 | 71.35 | 76.76 | 77.72 |
| Orthogonal- | 1 | 71.66 | 77.23 | 77.74 |
| EVA | – | 75.19 | 74.26 | 5.10 |
Low-Rank Adaptation
Low-rank adaptation (LoRA) fine-tunes pretrained models with compact weight updates, reducing trainable parameters and deployment costs.
See all 538 papers