Ir para o conteúdo

14. Transfer Learning

Ninguém treina um modelo do zero. A pergunta interessante deixou de ser como adaptar um modelo pré-treinado e passou a ser se vale adaptá-lo — porque as alternativas ficaram muito boas.

Então este capítulo é organizado em torno de uma decisão, não de uma técnica. Primeiro: você deve mudar os pesos? Normalmente não. Depois, se deve: quais pesos, quantos e com qual objetivo — e as respostas honestas são "os de posto baixo", "cerca de 0,5% deles" e "depende de você ter rótulos, preferências ou um verificador".

Antes de fazer fine-tuning: não faça

Fine-tuning é a resposta cara para uma pergunta que quatro coisas mais baratas costumam responder melhor. A ordem abaixo é a que se deve percorrer, de cima para baixo e parar no meio é o desfecho normal.

Tente isto primeiro Resolve Não resolve
Um prompt melhor, com alguns exemplos Formato, tom, enquadramento da tarefa, a maioria das queixas de "o modelo não segue instruções" Conhecimento ausente; latência; custo por chamada
Busca (RAG) Fatos que o modelo não tem, fatos que mudam, dados por cliente, citações Comportamento e estilo; capacidade de raciocínio
Ferramentas e chamadas de função Aritmética, dados atuais, ações num sistema, qualquer coisa cuja resposta certa um programa calcula Qualquer coisa sem API
Um modelo maior ou mais novo Quase tudo, na hora, a um custo por token mais alto Suas metas de latência e custo unitário
Fine-tuning Formato e comportamento consistentes a baixo custo; um modelo pequeno que iguala um grande na sua tarefa; vocabulário e estilo do domínio Fatos que mudam — esses pertencem à busca

Fine-tuning é a ferramenta errada para ensinar fatos

Este é o erro mais comum e mais caro em trabalho aplicado com LLMs. Um fine-tune espalha fatos novos por bilhões de pesos, de forma não verificável, sem citação e sem jeito de atualizar ou apagar um deles. Um índice de busca faz o mesmo trabalho com um PUT. Faça fine-tune de comportamento; busque conhecimento. Quando alguém propuser fazer fine-tuning na documentação da empresa, esta é a frase para dizer em voz alta.

Há um caso econômico que justifica fine-tuning de forma confiável: você tem um prompt que funciona num modelo de fronteira e precisa que ele rode 100× mais barato. Gere dados com o modelo grande, faça fine-tune de um pequeno e meça a diferença. Isso é destilação e é assim que a maioria dos modelos pequenos em produção é de fato construída hoje.

O quadro clássico e por que ele mudou

A história original de transfer learning é sobre camadas: as camadas iniciais de um modelo de visão aprendem bordas e texturas que transferem para qualquer lugar, as finais aprendem as categorias do ImageNet, então você congela a frente e retreina o fundo1. Está correto e para uma tarefa pequena de visão ainda é exatamente o que fazer.

Deixou de escalar por uma razão: "retreinar o fundo" de um modelo de 8B de parâmetros ainda significa um estado de otimizador que não cabe.

Troque o método para fine-tuning completo e leia a divisão. O problema não são os pesos. O AdamW mantém uma cópia mestra em fp32 mais duas estimativas de momento — 12 bytes por parâmetro treinável, seis vezes o tamanho dos próprios pesos em bf16. Some os gradientes e você precisa de cerca de 16 bytes por parâmetro antes de guardar uma única ativação.

Esse número é toda a motivação do fine-tuning eficiente em parâmetros: gradientes e estado do otimizador são dimensionados pelos parâmetros treináveis, não pelo tamanho do modelo. Torne 0,5% dos parâmetros treináveis e 90% da memória desaparece.

LoRA: a atualização é de posto baixo

A hipótese do LoRA2 é uma afirmação sobre adaptação, não sobre compressão: a mudança que uma tarefa exige tem posto muito menor do que a matriz de pesos que ela modifica. Congele \(W_0\) e aprenda a atualização como produto de duas matrizes finas:

\[ W = W_0 + \Delta W = W_0 + \frac{\alpha}{r} BA, \qquad B \in \mathbb{R}^{d \times r},\; A \in \mathbb{R}^{r \times k},\; r \ll \min(d,k) \]

\(A\) é inicializada aleatoriamente e \(B\) em zero, de modo que \(\Delta W = 0\) no primeiro passo e o treino começa exatamente do modelo pré-treinado. A escala \(\alpha/r\) existe para que mudar \(r\) não obrigue a reajustar a taxa de aprendizado.

Se a hipótese vale depende inteiramente da tarefa e é para isso que serve o painel abaixo.

O terceiro painel — o que o posto escolhido não consegue expressar — é o que se deve observar. Uma mudança de estilo ou formato é genuinamente de posto 2 ou algo assim e o LoRA empata com o fine-tuning completo. Uma mudança de domínio quer de 16 a 32. Ensinar um idioma novo não é de posto baixo e nenhum \(r\) acessível esvazia aquele painel.

Configurações práticas de LoRA e um conselho ultrapassado para desaprender

O artigo original aplicava LoRA só a \(W_q\) e \(W_v\) e essa recomendação continua sendo repetida em toda parte. Trabalhos posteriores são claros: aplicar a todas as camadas lineares — inclusive o MLP — é melhor com o mesmo orçamento de parâmetros e o MLP é onde vivem dois terços dos parâmetros. Padrões sensatos:

  • \(r = 16\), \(\alpha = 32\) como ponto de partida; aumente \(r\) só se a perda de treino estacionar alta.
  • Mire todas as projeções lineares: q,k,v,o,gate,up,down.
  • Taxa de aprendizado 10× maior que a do fine-tuning completo — perto de 1e-4, não 1e-5.
  • Faça o merge para produção: \(W_0 + BA\) volta a ser uma matriz só, então a inferência não custa nada a mais. Mantenha sem merge quando quiser servir muitos adaptadores sobre uma base compartilhada.

O QLoRA3 acrescenta a outra metade: quantize a base congelada para NF4 de 4 bits e mantenha os pesos LoRA em bf16. Como a base está congelada, o erro de quantização é um viés fixo em torno do qual o adaptador simplesmente aprende. É a técnica que colocou fine-tuning de 65B numa única GPU de 48 GB.

O DoRA5 decompõe a atualização em magnitude e direção e aplica LoRA só à direção, fechando a maior parte do buraco restante para o fine-tuning completo a um custo praticamente igual. É a única variante recente de PEFT que vale adotar por padrão quando o LoRA fica aquém.

O resto do zoológico de PEFT, com honestidade

Técnica Situação em 2026
LoRA O padrão. Todo o resto é medido contra ele.
QLoRA O padrão quando a restrição é memória.
DoRA Vale tentar quando o LoRA não basta e o fine-tuning completo não cabe no orçamento.
Camadas adaptadoras (Houlsby) Histórico. Acrescentam latência de inferência porque não podem ser fundidas.
Prefix / prompt tuning Histórico. Difíceis de otimizar, mais fracos e consomem janela de contexto.
BitFit, IA³ Curiosidades. Úteis para entender o que basta, não para entregar.

Pós-treino: o que você otimiza, não quais pesos

O PEFT responde "quais pesos se movem". A outra metade da pergunta é em direção a quê e o pipeline moderno tem três estágios que fazem coisas genuinamente diferentes.

flowchart LR
    A[Modelo base<br/>previsão do próximo token] --> B[SFT<br/>demonstrações]
    B --> C[Otimização de preferências<br/>DPO / GRPO]
    C --> D[Modelo em produção]
    B -.-> E[Destilação<br/>de um modelo mais forte]
    E --> C

1. Fine-tuning supervisionado (SFT). Treine em pares (prompt, boa resposta) — a mesma perda de próximo token, sobre demonstrações curadas. É o que transforma um modelo base em algo que responde em vez de continuar. Aqui a qualidade dos dados domina a quantidade com folga: alguns milhares de exemplos escritos com cuidado rotineiramente batem centenas de milhares raspados.

2. Otimização de preferências. O SFT ensina uma boa resposta; não consegue ensinar que a resposta A é melhor que a B. A solução original, RLHF7, treina um modelo de recompensa com comparações humanas e otimiza a política com PPO — poderoso e um fardo de engenharia real: quatro modelos na memória e um laço notoriamente instável.

O DPO4 removeu a maior parte disso. A sacada é que o objetivo do RLHF tem uma política ótima em forma fechada, então o modelo de recompensa pode ser substituído algebricamente e as preferências otimizadas diretamente com uma perda de estilo classificação sobre pares:

\[ \mathcal{L}_{\text{DPO}} = -\log \sigma\!\left( \beta \log \frac{\pi_\theta(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)} \right) \]

Dois modelos em vez de quatro, sem laço de amostragem e treina como aprendizado supervisionado. Para a maioria dos praticantes, substituiu o PPO por completo.

3. Aprendizado por reforço a partir de um verificador (RLVR). Quando a correção pode ser checada — um teste unitário passa, uma prova compila, uma resposta aritmética bate — não é preciso modelo de recompensa aprendido nenhum. Amostre várias tentativas, pontue com o verificador e empurre probabilidade para as que deram certo. O GRPO6 faz exatamente isso e ainda descarta a rede de valor, normalizando as recompensas dentro de cada grupo de amostras:

\[ \hat{A}_i = \frac{r_i - \text{mean}(r_{1..G})}{\text{std}(r_{1..G})} \]

É o sinal de treino por trás dos modelos de raciocínio dos últimos dois anos e é tratado apropriadamente no capítulo 15. O ponto a levar daqui: isso é fine-tuning e precisa de um verificador em vez de um rótulo.

Esquecimento catastrófico não é hipotético

Faça fine-tune pesado numa tarefa estreita e o modelo piora em todo o resto — inclusive em seguir instruções e nos comportamentos de segurança para os quais ele foi alinhado. Mitigações, na ordem em que costumam ser a resposta certa: use LoRA (ele muda menos, então esquece menos), mantenha a taxa de aprendizado baixa, misture ~10% de dados gerais no seu conjunto e avalie em tarefas nas quais você não está treinando antes e depois. Essa última é a única forma de descobrir.

Quando usar o quê

Situação Faça isto
Formato ou tom errados Engenharia de prompt. Não faça fine-tune.
Fatos ausentes ou que mudam RAG. Não faça fine-tune.
Precisa de dados atuais ou de ações Ferramentas / chamadas de função
Qualidade de modelo de fronteira a 1% do custo Destile: gere dados com o grande, faça SFT num pequeno
< 1k exemplos rotulados Prompting few-shot, ou encoder congelado + cabeça linear em visão
1k–100k exemplos, uma GPU LoRA, todas as camadas lineares, \(r=16\)
Idem, mas limitado por memória QLoRA
> 100k exemplos, um cluster de verdade e a tarefa é distante do pré-treino Fine-tuning completo ou pré-treino continuado
Muitos clientes, um modelo base Adaptadores LoRA servidos sem merge sobre uma base compartilhada
"Prefira esta resposta àquela" SFT → DPO
Respostas que um programa consegue checar SFT → GRPO com um verificador
Um corpus inteiro de domínio novo, sem rótulos Pré-treino continuado, depois SFT

Pontos principais

  1. A primeira pergunta é se vale fazer fine-tuning. Prompting, busca, ferramentas e um modelo maior resolvem a maior parte daquilo que as pessoas tentam consertar com fine-tuning.
  2. Fine-tune comportamento, busque conhecimento. Fatos em pesos não podem ser citados, atualizados nem apagados.
  3. O fine-tuning completo é caro por causa do estado do otimizador, não dos pesos: o AdamW custa 12 bytes por parâmetro treinável.
  4. O LoRA funciona quando a atualização necessária é de posto baixo — o que é verdade para estilo e formato, aproximadamente verdade para mudanças de domínio e falso para conhecimento novo.
  5. Aplique LoRA a todas as camadas lineares, use taxa de aprendizado ~10× maior que a do fine-tuning completo e faça merge para produção para que a inferência não custe nada a mais.
  6. O QLoRA quantiza a base congelada; o adaptador aprende em torno do erro de quantização. O DoRA é a variante a tentar quando o LoRA fica aquém.
  7. O pós-treino é SFT → otimização de preferências → RL a partir de um verificador. O DPO substituiu o PPO para a maioria; GRPO com um verificador foi o que produziu os modelos de raciocínio.
  8. Destilação a partir de um modelo mais forte é como a maioria dos modelos pequenos de produção é construída.
  9. Fine-tuning causa esquecimento. Misture dados gerais, prefira LoRA e avalie fora da tarefa.


  1. Pan, S. J., & Yang, Q. (2010). A Survey on Transfer Learning — IEEE TKDE. O enquadramento que antecede o deep learning e ainda organiza a área. ↩

  2. Hu, E., et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models — ICLR. ↩

  3. Dettmers, T., Pagnoni, A., Holtzman, A., & Zettlemoyer, L. (2023). QLoRA: Efficient Finetuning of Quantized LLMs — NeurIPS. NF4 de 4 bits, dupla quantização, otimizadores paginados. ↩

  4. Rafailov, R., et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model — NeurIPS. A dedução que remove o modelo de recompensa. ↩

  5. Liu, S.-Y., et al. (2024). DoRA: Weight-Decomposed Low-Rank Adaptation — ICML. ↩

  6. DeepSeek-AI (2025). DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. GRPO e raciocínio aprendido de um verificador em vez de demonstrações. ↩

  7. Ouyang, L., et al. (2022). Training language models to follow instructions with human feedback — NeurIPS. InstructGPT; o pipeline SFT → modelo de recompensa → PPO por inteiro. ↩

  8. Biderman, D., et al. (2024). LoRA Learns Less and Forgets Less — TMLR. Uma medição cuidadosa das duas metades da troca. ↩