Recursos/Treinamento de modelo/O que acontece durante o treinamento

Método

LoRA e adaptadores (PEFT)

O LoRA congela o modelo base e treina duas pequenas matrizes ao lado das camadas selecionadas, cujo produto é adicionado aos pesos congelados. Ele reduz drasticamente os pesos treináveis e a memória e, se bem configurado, iguala-se ao ajuste fino completo em conjuntos de dados típicos de ajuste fino.

Capítulo 66 min de leitura5 referências

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.

xentradaWd × d · congelada 🔒Ar × dBd × rtreinável · posto r (4–16)+hh = Wx + BAx
O LoRA mantém a matriz de pesos original W congelada e aprende duas matrizes finas ao lado dela. O produto delas, B·A, tem o mesmo formato de W, mas apenas posto r, de modo que uma camada de 4096 × 4096 (16,8 milhões de pesos) é adaptada com 2 × 4096 × 8 ≈ 65 mil pesos treináveis no posto 8.

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.

A atualização LoRA
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.
Contando os pesos: uma camada, depois um modelo inteiro
  1. Uma projeção de atenção de 4096 × 4096: 16,8 milhões de pesos em W.
  2. LoRA no rank 8: A é 8 × 4096 e B é 4096 × 8, portanto 2 × 4096 × 8 = 65.536 pesos treináveis, 0,4% da camada.
  3. 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.
  4. 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.
  5. O adaptador salvo em 16 bits tem cerca de 80 MB, contra 14 GB para uma cópia completa do modelo.
  6. 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.
Ajuste fino completo16 bits + Adam≈ 112 GBLoRABase de 16 bits, congelada≈ 15 GBQLoRABase de 4 bits, congelada≈ 4–5 GBAdam + cópia em fp32pesos congeladospesos treináveisgradientesestado do otimizador
Memória de GPU aproximada para o ajuste fino de um modelo de 7 bilhões de parâmetros, antes das ativações. O ajuste fino completo com Adam requer cerca de 16 bytes para cada peso: os pesos, seus gradientes, uma cópia mestre em precisão total e duas estatísticas do otimizador. O LoRA mantém a base congelada, de modo que os gradientes e o estado do otimizador existem apenas para o pequeno adaptador (aqui, cerca de 40 milhões de pesos).

As configurações

Posto (r)Típico 4–16; até 64 para grandes conjuntos de dados#

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.

Alfa (α)Típico r a 2 × r, ou um valor fixo de 16 a 32#

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çãoGeralmente prefira
Tom, formato ou fraseado de domínio, de centenas a milhares de exemplosLoRA
Memória de GPU ou orçamento limitadosLoRA, ou QLoRA
Várias variantes específicas de tarefas de um único modelo baseLoRA: um pequeno adaptador para cada
Manter as habilidades gerais do modelo base é importanteLoRA, que esquece menos
Conjuntos de dados muito grandes que ensinam novas habilidades substanciais, como código ou matemáticaO 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.

  1. 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.
  2. 02QLoRA: Efficient Finetuning of Quantized LLMsDettmers et al., 2023 · arXiv · arxiv.orgPesos base NF4 de 4 bits, quantização dupla e otimizadores paginados.
  3. 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.
  4. 04LoRAHugging Face PEFT docs · huggingface.coTodas as configurações do LoRA conforme implementadas: posto, alfa, dropout, módulos alvo e rsLoRA.
  5. 05A Rank Stabilization Scaling Factor for Fine-Tuning with LoRAKalajdzievski, 2023 · arXiv · arxiv.org

Transforme semanas de trabalho especializado em minutos

Veja como o Scalata se adapta à sua equipe, aos seus dados e aos seus Controles.

Fale com vendas