LoRA-GA$^2$: Low Rank Adaptation with Multi-step Gradient Adaptive Alignment
Peeking at a few early training gradients before fine-tuning starts to set up LoRA smarter
LoRA lets you fine-tune huge models with far less memory than full fine-tuning, but it still tends to underperform full fine-tuning. This paper introduces LoRA-GA2, which briefly runs a lightweight probe over a handful of early training steps to gather gradient information, then uses it to decide how much capacity each layer gets and how to initialize LoRA's weights. This consistently beat existing LoRA variants on GLUE, GSM8K, and HumanEval benchmarks.
What they did
- Prior gradient-guided LoRA methods used only a single snapshot of the gradient at the very start of training, which fails to capture how the actual optimization path unfolds.
- An alternative that tracks gradients at every training step is more faithful but requires changing the optimizer itself, which sharply increases GPU memory and training time.
- LoRA-GA2 instead runs a temporary, lightweight optimizer called AdaLomo for just a few steps, accumulates the gradients on CPU, then restores the original pretrained weights before using that accumulated signal to allocate ranks and initialize the LoRA matrices — adding no extra GPU memory and only a small time cost.
- For rank allocation, it multiplies a sensitivity score (how much a layer matters for the task) with an effective-rank score (how spread out that layer's gradient directions are), avoiding the waste that comes from relying on either signal alone.
- On T5-Base with GLUE (rank 8), LoRA-GA2 beat the best baseline by 0.66 points on average; on Llama3.1-8B-Base it improved GSM8K by 1.03 points and HumanEval by 0.87 points over the strongest baseline, and it also outperformed the best baseline by 0.63 points on CLIP-ViT-B/16 image classification.

| Method | MNLI | SST-2 | CoLA | QNLI | MRPC | Average |
|---|---|---|---|---|---|---|
| Full | 86.33±0.00 | 94.75±0.21 | 80.70±0.24 | 93.19±0.22 | 84.56±0.73 | 87.91 |
| LoRA (13) | 85.30±0.04 | 94.04±0.11 | 69.35±0.05 | 93.19±0.22 | 84.56±0.73 | 85.29 |
| Convergence Optimization Methods for LoRA | ||||||
| rsLoRA (15) | 85.73±0.10 | 94.19±0.23 | 72.32±1.12 | 93.12±0.09 | 52.86±2.27 | 79.64 |
| DoRA (19) | 85.67±0.09 | 94.04±0.53 | 72.04±0.94 | 93.04±0.06 | 68.08±0.51 | 82.57 |
| LoRA+ (9) | 85.81±0.09 | 93.85±0.24 | 77.53±0.20 | 93.14±0.03 | 74.43±1.39 | 84.95 |
| Initialization Optimization Methods for LoRA | ||||||
| PiSSA (22) | 85.75±0.07 | 94.07±0.06 | 74.27±0.39 | 93.15±0.14 | 76.31±0.51 | 84.71 |
| LoRA-GA (30) | 85.70±0.09 | 94.11±0.18 | 80.57±0.20 | 93.18±0.06 | 85.29±0.24 | 87.77 |
| Adaptive Methods for LoRA | ||||||
| AdaLoRA (37) | 85.45±0.11 | 93.69±0.20 | 69.16±0.24 | 91.66±0.05 | 68.14±0.28 | 81.62 |
| RaLoRA (34) | 85.76±0.03 | 94.22±0.29 | 78.11±0.45 | 93.36±0.14 | 84.74±0.27 | 87.24 |
| GoRA (10) | 85.91±0.22 | 94.68±0.43 | 79.86±0.35 | 93.27±0.08 | 86.10±0.20 | 87.96 |
| LoRA-GA2 (Ours) | 85.91±0.01 | 94.72±0.37 | 82.39±0.24 | 93.19±0.05 | 86.88±0.14 | 88.62 |

| Method | GSM8K | HumanEval |
|---|---|---|
| Full | 73.69±0.28 | 51.63±1.27 |
| LoRA (13) | 67.78±1.25 | 43.09±0.35 |
| rsLoRA (15) | 68.36±0.74 | 45.78±2.80 |
| DoRA (19) | 69.17±1.00 | 43.70±1.54 |
| LoRA+ (9) | 71.29±0.93 | 44.51±2.11 |
| OLoRA (2) | 68.54±0.42 | 43.29±2.44 |
| PiSSA (22) | 68.56±1.03 | 44.10±1.54 |
| LoRA-GA (30) | 71.39±0.90 | 43.29±0.61 |
| AdaLoRA (37) | 70.63±0.77 | 41.46±3.66 |
| RaLoRA (34) | 72.25±0.59 | 48.78±1.61 |
| GoRA (10) | 72.91±0.76 | 48.98±2.14 |
| LoRA-GA2 (Ours) | 73.94±0.48 | 49.85±0.33 |

| Method | Cars | DTD | EuroSAT | GTSRB | RESISC45 | SUN397 | SVHN | Average |
|---|---|---|---|---|---|---|---|---|
| Zero-shot | 63.75 | 44.39 | 42.22 | 35.22 | 56.46 | 62.56 | 15.53 | 45.73 |
| LoRA (13) | 82.31±0.08 | 76.97±0.51 | 98.38±0.20 | 97.10±0.06 | 94.99±0.11 | 77.19±0.19 | 96.62±0.06 | 89.08±0.10 |
| MELoRA (26) | 82.65±0.38 | 75.16±0.59 | 98.64±0.05 | 98.88±0.05 | 95.78±0.16 | 74.69±0.22 | 96.95±0.09 | 88.96±0.15 |
| MoRA (14) | 84.61±0.21 | 77.34±0.14 | 98.65±0.16 | 98.68±0.18 | 96.33±0.19 | 78.12±0.06 | 97.17±0.15 | 90.13±0.16 |
| AdaLoRA (37) | 73.58±0.09 | 73.79±0.48 | 96.96±0.12 | 58.87±0.38 | 89.07±0.60 | 72.00±0.10 | 94.26±0.13 | 79.79±0.27 |
| DoRA (19) | 82.44±0.26 | 76.86±0.84 | 98.43±0.17 | 97.25±0.12 | 95.10±0.16 | 77.30±0.17 | 96.63±0.04 | 89.14±0.07 |
| rsLoRA (15) | 83.94±0.22 | 77.64±0.33 | 98.51±0.17 | 98.69±0.17 | 95.90±0.20 | 77.96±0.21 | 96.94±0.06 | 89.94±0.06 |
| LoRA+ (9) | 86.61±0.36 | 73.33±1.30 | 98.54±0.14 | 98.99±0.20 | 96.06±0.38 | 76.80±0.34 | 96.98±0.08 | 89.62±0.19 |
| PiSSA (22) | 83.36±0.38 | 77.38±0.57 | 98.54±0.09 | 98.32±0.09 | 95.92±0.40 | 77.46±0.13 | 97.00±0.09 | 89.71±0.25 |
| OLoRA (2) | 83.85±0.13 | 78.60±0.25 | 98.62±0.03 | 98.49±0.14 | 96.01±0.28 | 77.30±0.08 | 97.15±0.14 | 90.00±0.15 |
| RaLoRA (34) | 86.63±0.30 | 77.75±0.20 | 98.66±0.27 | 98.98±0.11 | 96.62±0.28 | 77.86±0.05 | 97.24±0.11 | 90.53±0.03 |
| LoRA-GA2 (Ours) | 87.82±0.13 | 79.49±0.11 | 98.83±0.11 | 99.01±0.08 | 96.48±0.24 | 79.05±0.14 | 97.42±0.07 | 91.16±0.05 |

| Variant | GSM8K | HumanEval |
|---|---|---|
| One-step gradient | 72.13±0.34 | 49.65±1.01 |
| No SVD init. | 68.92±0.12 | 48.37±2.50 |
| No rank alloc. | 72.40±1.32 | 48.88±0.63 |
| Sensitivity only | 72.98±0.65 | 48.17±2.28 |
| Effective rank only | 73.51±0.51 | 48.78±1.00 |
| Full LoRA-GA2 | 73.94±0.48 | 49.85±0.33 |

Why it matters
Since LoRA is already widely used for fine-tuning large models, an improvement like this means better model quality for the same computational budget. It's practically appealing because it adds essentially no extra GPU memory and only marginal time overhead, making it easy to slot into existing LoRA workflows.
Terms in this paper
- LoRA (Low-Rank Adaptation) · A fine-tuning method that trains only two small matrices instead of the full model weights, saving memory
- one-step vs. multi-step gradients · A gradient shows which direction reduces loss; one-step means measuring it only at the start, multi-step means tracking it across several early training steps
- SVD (singular value decomposition) initialization · Breaking down the accumulated gradient into its main directions and magnitudes, then setting LoRA's starting weights along those directions
- effective rank · A measure of how many independent directions a layer's gradient is spread across
- sensitivity · A score showing how much changing a layer's weights affects the final loss, i.e. how important that layer is to the task
Original abstract (English)
Low-Rank Adaptation (LoRA) is a prominent fine-tuning method for large models, achieving competitive performance with reduced memory overhead. However, a persistent performance gap remains between LoRA and full fine-tuning. Recent studies have sought to narrow this gap by employing one-step gradient approximations of pretrained weights to align LoRA updates with the principal directions or intrinsic dimensionalities of full fine-tuning updates. Nevertheless, these approaches fail to capture the full dynamics of the gradients. In this paper, we propose LoRA-GA$^2$, an effective fine-tuning algorithm that fully leverages multi-step gradient information. Specifically, we introduce a lightweight probe for multi-step gradients of pretrained weights that incurs no additional GPU memory cost and only marginal time overhead. We further employ a spectrum-aware, importance-based rank allocation and optimal initialization derived from multi-step gradients. Extensive experimental results demonstrate that LoRA-GA$^2$ consistently outperforms existing LoRA variants while preserving the efficiency advantages of vanilla LoRA. For instance, LoRA-GA$^2$ surpasses the leading baseline by an average of 0.66 points on the GLUE benchmark, and outperforms the strongest baseline by 1.03 points on GSM8K and 0.87 points on HumanEval, respectively.
Read on arXivLatest papers
- Compliance, Capability, and Conflict: Benchmarking Multimodal LLMs under System MessagesForcing image-understanding AI to follow hidden system rules quietly wrecks its accuracy, and it collapses even more when users push back
- EXIMO: VLM Guided Exploration of VLA PoliciesTeaching a robot new chores without human teleoperation, by letting a chatty AI supervise it
- Robust Incomplete Multimodal Sentiment Analysis via Iterative Proxy CorrectionWhen text input is missing or broken, this AI doesn't guess once and move on—it revises its guess step by step to read emotions more reliably
- Natural Language Code Retrieval for 1C:Enterprise: An Open Benchmark and Efficient Bi-EncoderA first-of-its-kind search benchmark and AI model let you find 1C business-software code using Russian-language questions
- SWE-bench Science: Can Coding Agents Resolve Engineering Tasks in Science?AI coding agents were tested on fixing real scientific software, and even the best one failed more than half the time
- Remember, Verify, or Ask? Cross-Family Evaluation of Memory Commitment in LLM AgentsAI assistants would rather double-check facts than ask you a question, even when asking is the right call
- Reliable Financial Named Entity Recognition under Domain ShiftAn AI's confidence trained on formal filings turns unreliable once it reads tweets
- When Irrelevant Text Matters: Affine Margin Shifts in Multimodal Large Language ModelsSlipping an irrelevant sentence into a prompt shifts multimodal AI answers in a predictable, formula-like way
Latest from METAL LAB
- OpenAI Closes In on Anthropic Again in Enterprise Spending Share
- Meta Unveils First 10 Tasks in WildArtifactBench, a Benchmark for AI Agents
- Musk: "Optimus + Grok will one day handle healthcare for all humanity"
- 35% of Web Pages Published Since ChatGPT Show Signs of AI Authorship
- GPT-Image-2 adds transparent background preview in API
Figures: Haonan He et al., arXiv:2608.19800, CC BY 4.0