Low-Rank Adaptation (LoRA) (PT)
Low-Rank Adaptation (LoRA) é um método de ajuste fino paramétrico-eficiente (PEFT) que permite adaptar grandes modelos de linguagem (LLMs) a novas tarefas com custos computacionais mínimos. A tecnologia foi apresentada pela primeira vez em um trabalho de Edward Hu e seus colegas em 2021[1].
O ajuste fino completo (full fine-tuning) de modelos grandes, como LLaMA ou GPT, exige enormes recursos, tornando-o inacessível para a maioria dos pesquisadores e desenvolvedores. O LoRA resolve esse problema ao permitir o ajuste fino de apenas uma pequena parte dos parâmetros do modelo, mantendo alta qualidade e desempenho comparáveis ao ajuste fino completo[2].
Princípio de Funcionamento
A ideia principal do LoRA é não modificar os pesos originais do modelo pré-treinado, mas sim adicionar a eles uma pequena matriz de "correção". Em vez de treinar diretamente a enorme matriz de pesos `W`, o LoRA representa sua alteração como o produto de duas matrizes menores de baixo posto.
Formalmente, se a matriz de pesos original de uma camada `W_0` tem dimensão `d × k`, sua atualização é representada como `ΔW = BA`, onde `B` é uma matriz de dimensão `d × r`, e `A` é uma matriz de dimensão `r × k`. O posto `r` é um hiperparâmetro e é significativamente menor (`r << d, k`). Durante o processo de ajuste fino, os pesos originais `W_0` são congelados, e apenas as matrizes `A` e `B` são treinadas. A matriz de pesos final é calculada como `W = W_0 + BA`.
Isso permite reduzir o número de parâmetros treináveis em milhares de vezes. Por exemplo, ao ajustar o GPT-3 (175 bilhões de parâmetros), o LoRA reduz o número de parâmetros treináveis em 10.000 vezes e diminui os requisitos de memória da GPU em 3 vezes[1].
Principais Vantagens
- Economia de recursos: Reduz drasticamente o número de parâmetros treináveis (até 90% ou mais), o que diminui significativamente o consumo de memória de vídeo (VRAM) e acelera o processo de treinamento.
- Ausência de latência na inferência: Após o treinamento, as matrizes `B` e `A` podem ser "fundidas" com a matriz principal `W_0`, calculando `W = W_0 + BA`. Assim, durante o uso do modelo, não há cálculos ou atrasos adicionais[1].
- Modularidade e troca rápida de tarefas: Os adaptadores LoRA treinados são arquivos pequenos (alguns megabytes). Isso permite armazenar facilmente dezenas de adaptadores para diferentes tarefas e alternar rapidamente entre eles sem alterar o modelo principal[3].
Limitações e Modificações
Embora o LoRA seja muito eficiente, sua natureza de baixo posto pode ser uma limitação para tarefas que exigem a memorização de um grande volume de novas informações. Para resolver este e outros problemas, várias modificações foram propostas.
QLoRA
QLoRA (Quantized Low-Rank Adaptation) é uma das modificações mais populares, proposta em 2023. Ela combina o LoRA com a quantização de 4 bits do modelo base[4]. Isso permite reduzir ainda mais os requisitos de memória, tornando possível o ajuste fino de modelos com dezenas de bilhões de parâmetros (por exemplo, modelos de 65B) em uma única GPU de consumidor. Com base no QLoRA, foi criado, em particular, o modelo Guanaco, que demonstrou resultados comparáveis aos do ChatGPT.
Outras Modificações
- MoRA (High-Rank Updating): Proposta para tarefas onde o LoRA apresenta desempenho insuficiente devido à limitação de posto. O MoRA utiliza métodos que permitem atualizar pesos com alto posto, mantendo a eficiência paramétrica[5].
Implementação e Aplicação
A tecnologia LoRA ganhou ampla adoção devido à sua eficiência e facilidade de integração. A biblioteca PEFT (Parameter-Efficient Fine-Tuning) da Hugging Face desempenhou um papel fundamental em sua popularização. A PEFT fornece uma interface unificada para aplicar LoRA e outros métodos de PEFT a modelos do ecossistema Transformers[6].
O LoRA é ativamente utilizado para:
- Adaptação de chatbots e sistemas de diálogo (por exemplo, ajuste fino de LLaMA, Mistral).
- Criação de modelos para classificação e geração de texto em domínios altamente especializados.
- Personalização de modelos para um estilo ou formato de dados específico.
Ligações externas
Literatura
- Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
- Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
- Zhang, Q. et al. (2023). AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning. arXiv:2303.10512.
- Chen, Y. et al. (2023). LongLoRA: Efficient Fine-Tuning of Long-Context Large Language Models. arXiv:2309.12307.
- Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
- Jiang, T. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
- Liu, Z. et al. (2024). ALoRA: Allocating Low-Rank Adaptation for Fine-Tuning Large Language Models. arXiv:2403.16187.
- Liu, J. et al. (2025). RoRA: Efficient Fine-Tuning of LLM with Reliability Optimization for Rank Adaptation. arXiv:2501.04315.
- Albert, P. et al. (2025). RandLoRA: Full-Rank Parameter-Efficient Fine-Tuning of Large Models. arXiv:2502.00987.
- Tastan, N. et al. (2025). LoFT: Low-Rank Adaptation That Behaves Like Full Fine-Tuning. arXiv:2505.21289.
Notas
- ↑ 1.0 1.1 1.2 Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [1]
- ↑ Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [2]
- ↑ Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [3]
- ↑ Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [4]
- ↑ Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [5]
- ↑ «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [6]