LoRA: Low-Rank Adaptation of Large Language Models
- Edward J. Hu ,
- Yelong Shen ,
- Phillip Wallis ,
- Zeyuan Allen-Zhu ,
- Yuanzhi Li ,
- Shean Wang ,
- Lu Wang ,
- Weizhu Chen
An important paradigm of natural language processing consists of large-scale pre-training on general domain data and adaptation to particular tasks or domains. As we pre-train larger models, full fine-tuning, which retrains all model parameters, becomes less feasible. Using GPT-3 175B as an example — deploying independent instances of fine-tuned models, each with 175B parameters, is prohibitively expensive. We propose Low-Rank Adaptation, or LoRA, which freezes the pre-trained model weights and injects trainable rank decomposition matrices into each layer of the Transformer architecture, greatly reducing the number of trainable parameters for downstream tasks. Compared to GPT-3 175B fine-tuned with Adam, LoRA can reduce the number of trainable parameters by a factor of 10,000 and the GPU memory requirement by a factor of 3. LoRA performs on-par or better than fine-tuning in model quality on RoBERTa, DeBERTa, GPT-2, and GPT-3, despite having fewer trainable parameters, a higher training throughput, and, unlike adapters, no additional inference latency. We also provide an empirical investigation into rank-deficiency in language model adaptation, which sheds light on the efficacy of LoRA. We release a package that facilitates the integration of LoRA with PyTorch models and provide our implementations and model checkpoints for RoBERTa, DeBERTa, and GPT-2 on GitHub (opens in new tab).
Publication Downloads
LoRA
April 22, 2022
This repo contains the source code of the Python package loralib and several examples of how to integrate it with PyTorch models, such as those in HuggingFace. We only support PyTorch for now. See our paper for a detailed description of LoRA.
Getting Modular with Language Models: Building, Reusing a Library of Experts for Task Generalization
Microsoft Research Forum | Episode 2 | March 5, 2024 Alessandro Sordoni shared recent efforts on building and re-using large collections of expert language models to improve zero-shot and few-shot generalization to unseen tasks. See more at https://aka.ms/ResearchForum-Mar2024 (opens in new tab)