Table of Contents
Fetching ...

PeriodicLoRA: Breaking the Low-Rank Bottleneck in LoRA Optimization

Xiangdi Meng, Damai Dai, Weiyao Luo, Zhe Yang, Shaoxiang Wu, Xiaochen Wang, Peiyi Wang, Qingxiu Dong, Liang Chen, Zhifang Sui

TL;DR

PeriodicLoRA (PLoRA) addresses the memory-efficient fine-tuning gap by periodically unloading and reinitializing LoRA adapters, enabling accumulation of multiple low-rank updates into a higher-rank overall change. This approach yields stronger learning ability than standard LoRA without increasing memory usage, approaching the performance of full fine-tuning on challenging tasks like GSM8K and MMLU, while revealing stability and overfitting considerations. The work includes extensive ablations on unloading points, momentum, training stages, and learning-rate strategies, and provides practical guidance for applying PLoRA to large language models. Overall, PLoRA offers a principled, memory-neutral path to more expressive PEFT for complex instruction-tuning scenarios, with demonstrated gains and actionable training protocols.

Abstract

Supervised fine-tuning is the most common method to adapt large language models (LLMs) to downstream tasks, but full fine-tuning LLMs requires massive computational resources. Recently, parameter-efficient fine-tuning (PEFT) methods have been widely studied due to its cost-effectiveness. LoRA is one of the most widely used methods, which assumes that the optimization process is essentially low-dimensional. Although LoRA fine-tuning is effective, there is still a performance gap compared to full fine-tuning, since its weight update is limited to low-rank matrices. In order to break the low-rank bottleneck in LoRA Optimization, we propose PeriodicLoRA (PLoRA), which accumulates low-rank update matrices multiple times to achieve a higher update rank. PLoRA has multiple training stages. During each stage, we still update only the LoRA weights. However, at the end of each stage, we unload the LoRA weights into the backbone parameters and then reinitialize the LoRA states. Experimental results show that PLoRA has stronger learning ability, approximately 1.8 times that of LoRA's learning ability at most, but it does not increase memory usage. Further, we introduce a momentum-based unloading strategy for PLoRA to mitigate the training instability.

PeriodicLoRA: Breaking the Low-Rank Bottleneck in LoRA Optimization

TL;DR

PeriodicLoRA (PLoRA) addresses the memory-efficient fine-tuning gap by periodically unloading and reinitializing LoRA adapters, enabling accumulation of multiple low-rank updates into a higher-rank overall change. This approach yields stronger learning ability than standard LoRA without increasing memory usage, approaching the performance of full fine-tuning on challenging tasks like GSM8K and MMLU, while revealing stability and overfitting considerations. The work includes extensive ablations on unloading points, momentum, training stages, and learning-rate strategies, and provides practical guidance for applying PLoRA to large language models. Overall, PLoRA offers a principled, memory-neutral path to more expressive PEFT for complex instruction-tuning scenarios, with demonstrated gains and actionable training protocols.

Abstract

Supervised fine-tuning is the most common method to adapt large language models (LLMs) to downstream tasks, but full fine-tuning LLMs requires massive computational resources. Recently, parameter-efficient fine-tuning (PEFT) methods have been widely studied due to its cost-effectiveness. LoRA is one of the most widely used methods, which assumes that the optimization process is essentially low-dimensional. Although LoRA fine-tuning is effective, there is still a performance gap compared to full fine-tuning, since its weight update is limited to low-rank matrices. In order to break the low-rank bottleneck in LoRA Optimization, we propose PeriodicLoRA (PLoRA), which accumulates low-rank update matrices multiple times to achieve a higher update rank. PLoRA has multiple training stages. During each stage, we still update only the LoRA weights. However, at the end of each stage, we unload the LoRA weights into the backbone parameters and then reinitialize the LoRA states. Experimental results show that PLoRA has stronger learning ability, approximately 1.8 times that of LoRA's learning ability at most, but it does not increase memory usage. Further, we introduce a momentum-based unloading strategy for PLoRA to mitigate the training instability.
Paper Structure (23 sections, 6 equations, 4 figures, 3 tables)

This paper contains 23 sections, 6 equations, 4 figures, 3 tables.

Figures (4)

  • Figure 1: Compared to LoRA, the proposed PLoRA structure is outlined. In LoRA training, only matrices $A$ and $B$ are updated while the model weights are frozen (signified by blue). The trained matrices $A$ and $B$ are then used to update the model weights after completing all training. While in the PLoRA approach, after each mini-batch training, the weights of matrices $A$ and $B$ in LoRA are transferred to update the model weights and reset themselves before continuing training. This cycle repeats N times within one epoch. In the figure, light orange represents learning ability on a mini-batch basis, while orange represents cumulative learning ability up to the current moment.
  • Figure 2: Fixed rank to 8, train LoRA and PLoRA for 4 epochs. Among them, PLoRA includes three settings of m: 0, 0.1, and 0.3. To facilitate the observation of loss changes, we applied a smoothing window of 150 to the image.
  • Figure 3: We performed a detailed evaluation of the training process for four models with rank of 1 and 8 using two methods, LoRA and PLoRA. The models were saved every 100 steps, and checkpoints were evaluated using two metrics, GSM8K and MMLU, to obtain benchmark indicators for the models under different training settings. It is important to mention that a sliding window with a size of 10 was utilized for smoothing in order to enhance observation clarity.
  • Figure 4: To analyze the changes in checkpoint indicators during GSM8K evaluation, we continue training the models of the four settings for 4 epochs. Unlike Figure \ref{['fig:capacity']}, our focus here is on observing curves' changes over a longer training period. Therefore, we will save a checkpoint every 800 steps.