Avançado

LoRA, QLoRA e PEFT

Fine-tuning eficiente em parâmetros adapta um modelo por módulos treináveis pequenos, sem atualizar todos os pesos do pretraining.

Atualizada em

1

Conceito

Full fine-tuning atualiza todo parâmetro treinável do modelo. Isso dá liberdade máxima ao otimizador, mas exige gradientes e estados do otimizador por um checkpoint enorme. Parameter-efficient fine-tuning (PEFT) faz uma pergunta mais precisa: o comportamento específico da tarefa pode ser expresso por um conjunto muito menor de parâmetros treináveis, enquanto o backbone do pretraining fica congelado?

Low-Rank Adaptation, ou LoRA, responde mudando a representação de uma camada linear durante fine-tuning. Seja W0Rdout×dinW_0\in\mathbb{R}^{d_{out}\times d_{in}} o peso congelado. Em vez de atualizar todos os elementos de W0W_0, LoRA aprende

W=W0+ΔW,ΔW=BA,W = W_0 + \Delta W,\qquad \Delta W = BA,

com ARr×dinA\in\mathbb{R}^{r\times d_{in}} e BRdout×rB\in\mathbb{R}^{d_{out}\times r}. O rank rr escolhido é muito menor que as dimensões de entrada e saída. O forward pass soma a contribuição do adapter à projeção original. Uma escala, normalmente expressa por alpha e rank, controla sua magnitude.

A restrição de baixo rank é um viés indutivo: a adaptação útil talvez ocupe um subespaço menor do que a matriz inteira permite. Não existe garantia de que toda tarefa tenha uma atualização assim. Rank, posição e dados determinam capacidade. Adapters aparecem com frequência nas projeções de attention e, às vezes, nas camadas feed-forward. Alcançar mais módulos ou aumentar o rank amplia a flexibilidade e o estado treinável, mas também consome memória e pode causar overfitting.

LoRA economiza mais que espaço de checkpoint. Pesos congelados não precisam dos momentos do otimizador, e gradientes são mantidos apenas para os parâmetros do adapter. Um deploy pode armazenar um modelo base e vários adapters pequenos. Eles também podem ser fundidos aos pesos para inferência quando os formatos numéricos permitem. Sem fusão, facilitam a troca de tarefas, mas agrupar requisições com adapters distintos traz complexidade operacional.

QLoRA combina LoRA com um backbone congelado e quantizado. Os pesos base ficam numa representação de poucos bits para reduzir memória e são dequantizados numa dtype adequada durante as operações. Os adapters continuam treináveis em precisão mais alta. O paper de QLoRA de 2023 introduziu técnicas específicas como normal-float, double quantization e paged optimizers. A fronteira essencial é esta: armazenamento quantizado não implica gradientes em todo o modelo base nem aritmética exclusivamente inteira.

PEFT é uma família mais ampla. Camadas adapter, prompt tuning, prefix tuning e treinamento seletivo alteram interfaces diferentes. Métodos semelhantes a prompt aprendem vetores contínuos inseridos no contexto ou nas camadas. Adapters acrescentam módulos pequenos. LoRA altera transformações lineares por uma diferença fatorada. A melhor escolha depende do runtime, da latência, da troca multi-tenant e do comportamento a aprender.

PEFT não corrige dados ruins, não evita forgetting automaticamente nem garante paridade com full fine-tuning. Um adapter pequeno pode memorizar um dataset estreito ou degradar capacidades gerais. Em sentido contrário, full fine-tuning pode ser desnecessário e mais difícil de operar. Compare os métodos com os mesmos dados, avaliações e premissas de compute.

O modelo mental prático é uma fundação congelada mais uma superfície aprendida de direcionamento. LoRA expressa essa superfície como atualização de baixo rank. QLoRA torna a fundação mais barata de manter durante o treino ao quantizá-la. O ganho de engenharia nasce da separação entre capacidade compartilhada e mudanças compactas, versionadas e específicas da tarefa.

2

Como explicar para uma criança de cinco anos

Um teatro possui uma imensa instalação fixa de luzes. Refazer toda a fiação para cada espetáculo seria caro e arriscado. A equipe acrescenta uma mesa compacta que mistura poucos padrões coordenados sobre a estrutura existente. LoRA é essa mesa: a matriz original fica congelada, enquanto duas matrizes finas e treináveis compõem uma atualização de baixo rank. Cada peça guarda sua própria mesa sem duplicar o teatro inteiro.

3

Ensine de volta

Explique LoRA como atualização de matriz e diferencie LoRA de QLoRA sem afirmar que qualquer uma garante a qualidade de full fine-tuning.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Salvo somente neste dispositivo.

Ver uma resposta-modelo

LoRA congela a matriz W do pretraining e aprende uma diferença de baixo rank BA, cujo rank é muito menor que as dimensões de W. Apenas A e B recebem gradientes e estados do otimizador. QLoRA mantém os pesos congelados do modelo base numa representação quantizada de poucos bits enquanto treina adapters LoRA, normalmente calculando numa dtype mais alta. Os dois economizam memória, mas o resultado ainda depende de rank, módulos-alvo, dados, otimização e tarefa.

4

Teste seu entendimento

1. Quais parâmetros normalmente mudam no treinamento LoRA?
Resposta e explicação

As pequenas matrizes de baixo rank do adapter — LoRA congela a matriz original e otimiza os fatores cujo produto forma a atualização.

2. Qual é a etapa adicional que define QLoRA?
Resposta e explicação

O modelo base congelado é armazenado e usado em forma quantizada enquanto os adapters treinam — QLoRA combina adapters de baixo rank com um backbone quantizado para reduzir memória; isso não significa treinamento inteiramente em inteiros.

Conclua o teach-back e acerte o quiz para finalizar a aula.

Fontes

  1. Edward J. Hu et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models.
  2. Tim Dettmers et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs.