Adaptive Layer Selection for Efficient Vision Transformer Fine-Tuning
<|reference_start|>Adaptive Layer Selection for Efficient Vision Transformer Fine-Tuning: Recently, foundation models based on Vision Transformers (ViTs) have become widely available. However, their fine-tuning process is highly resource-intensive, and it hinders their adoption in several edge or low-energy applications. To this end, in this paper we introduce an efficient fine-tuning method for ViTs called $\textbf{ALaST}$ ($\textit{Adaptive Layer Selection Fine-Tuning for Vision Transformers}$) to speed up the fine-tuning process while reducing computational cost, memory load, and training time. Our approach is based on the observation that not all layers are equally critical during fine-tuning, and their importance varies depending on the current mini-batch. Therefore, at each fine-tuning step, we adaptively estimate the importance of all layers and we assign what we call ``compute budgets'' accordingly. Layers that were allocated lower budgets are either trained with a reduced number of input tokens or kept frozen. Freezing a layer reduces the computational cost and memory usage by preventing updates to its weights, while discarding tokens removes redundant data, speeding up processing and reducing memory requirements. We show that this adaptive compute allocation enables a nearly-optimal schedule for distributing computational resources across layers, resulting in substantial reductions in training time (up to 1.5x), FLOPs (up to 2x), and memory load (up to 2x) compared to traditional full fine-tuning approaches. Additionally, it can be successfully combined with other parameter-efficient fine-tuning methods, such as LoRA.<|reference_end|>
@article{devoto2024adaptive,
    title={Adaptive Layer Selection for Efficient Vision Transformer Fine-Tuning},
    author={Alessio Devoto, Federico Alvetreti, Jary Pomponi, Paolo Di Lorenzo,
  Pasquale Minervini, Simone Scardapane},
    journal={arXiv preprint arXiv:2408.08670},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.08670},
    primaryClass={cs.CV cs.AI}
}