StelLA: Subspace Learning in Low-rank Adaptation using Stiefel Manifold
About
Low-rank adaptation (LoRA) has been widely adopted as a parameter-efficient technique for fine-tuning large-scale pre-trained models. However, it still lags behind full fine-tuning in performance, partly due to its insufficient exploitation of the geometric structure underlying low-rank manifolds. In this paper, we propose a geometry-aware extension of LoRA that uses a three-factor decomposition $U\!SV^\top$. Analogous to the structure of singular value decomposition (SVD), it separates the adapter's input and output subspaces, $V$ and $U$, from the scaling factor $S$. Our method constrains $U$ and $V$ to lie on the Stiefel manifold, ensuring their orthonormality throughout the training. To optimize on the Stiefel manifold, we employ a flexible and modular geometric optimization design that converts any Euclidean optimizer to a Riemannian one. It enables efficient subspace learning while remaining compatible with existing fine-tuning pipelines. Empirical results across a wide range of downstream tasks, including commonsense reasoning, math and code generation, image classification, and image generation, demonstrate the superior performance of our approach against the recent state-of-the-art variants of LoRA. Code is available at https://github.com/SonyResearch/stella.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Image Classification | CIFAR-100 (val) | Accuracy93.92 | 776 | |
| Math | GSM8K | Accuracy0.6543 | 206 | |
| Image Classification | CIFAR10 (val) | Accuracy99.16 | 48 | |
| Image Classification | Flowers-102 (val) | Top-1 Acc99.22 | 48 | |
| Image Classification | Food-101 (val) | Accuracy91.33 | 24 | |
| Commonsense Reasoning | Commonsense Reasoning Benchmark | BoolQ Accuracy75.91 | 22 | |
| Image Classification | Sun-297 (val) | Accuracy77.51 | 21 | |
| Image Classification | DTD (val) | Accuracy81.54 | 21 | |
| Image Classification | EuroSAT (val) | Accuracy99.17 | 14 | |
| Code Generation | HumanEval | Pass@133.73 | 13 |