Low-Rank Adaptation (LoRA) (PT)

From Systems analysis Wiki
Jump to navigation Jump to search

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. 1.0 1.1 1.2 Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [1]
  2. Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [2]
  3. Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [3]
  4. Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [4]
  5. Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [5]
  6. «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [6]