O que é
PEFT (ajuste fino eficiente em parâmetros) é uma família de métodos que adapta um modelo treinando um pequeno número de novos pesos enquanto os originais permanecem congelados. O LoRA (Adaptação de Baixo Posto), introduzido por Hu et al. em 2021, é o mais utilizado. Ele se baseia em uma observação: a alteração que o ajuste fino precisa fazer em uma grande matriz de pesos pode ser descrita com muito menos números do que a própria matriz. Em termos matemáticos, a alteração tem baixo posto.
Como funciona
Considere uma camada linear com matriz de pesos W de formato d × k. O ajuste fino completo aprenderia uma alteração ΔW do mesmo formato: d × k novos números. O LoRA, em vez disso, aprende essa alteração como o produto de duas matrizes finas. A (r × k) comprime a entrada da camada para r números, e B (d × r) os expande de volta. O posto r é pequeno, tipicamente de 4 a 64, enquanto d e k estão na casa dos milhares.
h = W·x + (α / r) · B·A·x
W : d × k frozen
A : r × k trainable, random at the start
B : d × r trainable, zero at the start → B·A = 0 at step 0
trainable weights per adapted layer = r × (d + k)- Inicialização. A começa aleatório e B começa em zero, de modo que B·A = 0 e o modelo adaptado é exatamente o modelo base na etapa 0. O treinamento o afasta gradualmente.
- Escalonamento. A saída do adaptador é multiplicada por alfa ÷ r. Isso mantém o tamanho do seu efeito aproximadamente estável quando r muda, para que a taxa de aprendizado não precise ser reajustada para cada rank. Uma variante, o LoRA estabilizado por rank (rsLoRA), divide pela raiz quadrada de r, o que se comporta melhor em ranks elevados.
- Mesclagem. Após o treinamento, B·A pode ser multiplicado e adicionado a W. O modelo mesclado tem a forma original e é executado na velocidade original, sem latência adicional. Ou o adaptador é mantido como um pequeno arquivo separado e carregado sobre a base, o que permite que um modelo base atenda a vários adaptadores.
- Uma projeção de atenção de 4096 × 4096: 16,8 milhões de pesos em W.
- LoRA no rank 8: A é 8 × 4096 e B é 4096 × 8, portanto 2 × 4096 × 8 = 65.536 pesos treináveis, 0,4% da camada.
- Um modelo 7B estilo Llama no rank 16 em todas as camadas lineares (quatro projeções de atenção e três MLP em cada uma das 32 camadas): cerca de 40 milhões de pesos treináveis, aproximadamente 0,6% do modelo.
- Memória de treinamento: esses 40 milhões de pesos precisam de cerca de 0,6 GB para gradientes e estado AdamW, contra cerca de 112 GB para o ajuste fino completo de todos os 7 bilhões.
- O adaptador salvo em 16 bits tem cerca de 80 MB, contra 14 GB para uma cópia completa do modelo.
- No artigo original, no GPT-3 175B, o LoRA reduziu os parâmetros treináveis em até 10.000× e a memória da GPU em cerca de 3× em comparação com o ajuste fino completo com Adam.
As configurações
A dimensão interna de A e B, e portanto a capacidade do adaptador: quantas direções independentes de mudança ele pode aprender em cada camada. Os pesos treináveis crescem em proporção a r. Postos baixos são suficientes para tom, estilo e formato; conjuntos de dados maiores e ricos em conhecimento se beneficiam de postos mais altos. Uma vez que o adaptador tenha capacidade suficiente para os dados, um posto maior adiciona custos sem melhorar os resultados. Alguns provedores chamam isso de tamanho do adaptador.
Um fator de escala: a saída do adaptador é multiplicada por alfa ÷ r. Um alfa maior faz com que cada atualização conte mais, de forma muito semelhante a uma taxa de aprendizado mais alta, e é por isso que muitas configurações fixam o alfa e ajustam a taxa de aprendizado. Convenções comuns são alfa igual a r, alfa igual ao dobro de r, ou um valor fixo como 16 ou 32. Escolha uma convenção e mantenha-a: alterar r enquanto o alfa permanece fixo também altera a escala.
- Módulos alvo decidem quais camadas recebem um adaptador. O artigo original adaptou apenas as projeções de consulta e valor de atenção. Trabalhos posteriores, incluindo o QLoRA e um estudo de 2025 da Thinking Machines, descobriram que adaptar todas as camadas lineares, especialmente as camadas MLP (feed-forward), é necessário para se igualar ao ajuste fino completo. As bibliotecas geralmente oferecem uma opção de 'todas as camadas lineares'.
- O dropout do LoRA zera aleatoriamente parte da entrada do adaptador durante o treinamento, uma proteção leve contra o overfitting em pequenos conjuntos de dados. Valores comuns são de 0 a 0,1.
- Taxa de aprendizado. O LoRA geralmente precisa de uma taxa de aprendizado maior do que o ajuste fino completo: cerca de dez vezes maior no estudo da Thinking Machines, que também descobriu que a melhor taxa muda pouco entre os postos.
- Tamanho do lote. O mesmo estudo descobriu que o LoRA tolera lotes muito grandes menos bem do que o ajuste fino completo, portanto, tamanhos de lote moderados são a escolha mais segura.
QLoRA: adaptadores em uma base de 4 bits
O QLoRA (Dettmers et al., 2023) treina adaptadores LoRA comuns de 16 bits, mas armazena o modelo base congelado em um formato de 4 bits projetado para pesos normalmente distribuídos (NF4). Ele adiciona quantização dupla, que comprime as próprias constantes de quantização, e otimizadores paginados que absorvem picos de memória. O artigo realizou o ajuste fino de um modelo de 65 bilhões de parâmetros em uma única GPU de 48 GB, preservando o desempenho da tarefa do ajuste fino de 16 bits. A contrapartida é a velocidade: os pesos de 4 bits são descompactados em tempo real, de modo que cada etapa é um pouco mais lenta.
Quando o LoRA é a escolha certa
| Situação | Geralmente prefira |
|---|---|
| Tom, formato ou fraseado de domínio, de centenas a milhares de exemplos | LoRA |
| Memória de GPU ou orçamento limitados | LoRA, ou QLoRA |
| Várias variantes específicas de tarefas de um único modelo base | LoRA: um pequeno adaptador para cada |
| Manter as habilidades gerais do modelo base é importante | LoRA, que esquece menos |
| Conjuntos de dados muito grandes que ensinam novas habilidades substanciais, como código ou matemática | O fine-tuning completo pode aprender mais |
Erros comuns
- Adaptar apenas as camadas de atenção. Na maioria dos dados de ajuste fino, isso apresenta um desempenho inferior aos adaptadores em todas as camadas lineares, incluindo o MLP.
- Reutilizar uma taxa de aprendizado de ajuste fino completo. O LoRA normalmente precisa de uma taxa cerca de dez vezes maior, ou quase não aprende.
- Alterar o posto enquanto o alfa permanece fixo, sem notar que alfa ÷ r, e consequentemente o tamanho efetivo do passo, também mudou.
- Esperar que um posto maior salve um conjunto de dados pequeno ou inconsistente. A capacidade não ajuda quando os exemplos não mostram um padrão claro.
- Carregar um adaptador em um modelo base diferente, ou em uma versão diferente daquele em que foi treinado.
Referências e leitura complementar
Fontes externas abrem em uma nova aba.
- 01LoRA: Low-Rank Adaptation of Large Language ModelsHu et al., 2021 · arXiv · arxiv.orgO artigo original: a ideia de baixo posto, o dimensionamento alfa ÷ r e os resultados do GPT-3.
- 02QLoRA: Efficient Finetuning of Quantized LLMsDettmers et al., 2023 · arXiv · arxiv.orgPesos base NF4 de 4 bits, quantização dupla e otimizadores paginados.
- 03LoRA Without RegretThinking Machines Lab, 2025 · thinkingmachines.aiQuando o LoRA se iguala ao ajuste fino completo, por que todas as camadas importam e a regra da taxa de aprendizado 10 vezes maior.
- 04LoRAHugging Face PEFT docs · huggingface.coTodas as configurações do LoRA conforme implementadas: posto, alfa, dropout, módulos alvo e rsLoRA.
- 05A Rank Stabilization Scaling Factor for Fine-Tuning with LoRAKalajdzievski, 2023 · arXiv · arxiv.org