Capítulo 14 · Fine-tuning · 9 min

Especializar um modelo sem retreinar tudo

LoRA, QLoRA, SFT. Como adaptar um modelo generalista a um domínio específico treinando 0,1% dos seus parâmetros.

Adaptar sem retreinar tudo

Treinar um LLM do zero custa enormes quantidades de dados, computação e tempo. Mas muitas vezes não queremos criar um modelo novo. Queremos adaptar um modelo existente a um estilo, formato ou domínio.

Isso é fine-tuning.

LoRA adiciona duas pequenas matrizes ao lado dos pesos existentes. Em vez de modificar bilhões de parâmetros, treinam-se apenas alguns milhões — a maior parte do modelo permanece congelada e compartilhada entre todas as variantes fine-tuned.

O problema

Um modelo grande pode ter bilhões de parâmetros. Atualizar todos para uma tarefa pequena é caro, lento e arriscado: você pode degradar capacidades gerais que já funcionavam.

Precisamos de uma adaptação leve.

LoRA

LoRA congela os pesos principais e aprende pequenas matrizes adicionais de baixo rank.

Em vez de modificar diretamente uma matriz enorme W, ele aprende uma correção:

W' = W + ΔW

Onde ΔW é escrito como o produto de duas matrizes muito menores. O rank controla quanta expressividade essa correção tem.

O que muda de verdade

LoRA não adiciona conhecimento ilimitado. Ele ajusta rotas internas para que certos padrões fiquem mais prováveis:

  • responder com um formato específico
  • adotar uma terminologia de domínio
  • imitar um estilo editorial
  • seguir exemplos de uma tarefa recorrente

Para conhecimento factual mutável, RAG costuma ser melhor. Para comportamento repetido e formato estável, fine-tuning pode ser mais adequado.

RLHF (e DPO na prática)

Já falamos disso no capítulo 08. O reforço por feedback humano aprende preferências. É complementar ao SFT, não um substituto.

Detalhe importante: desde 2024, o DPO (Direct Preference Optimization) substituiu em grande parte o PPO do RLHF clássico na fase de preferências, sobretudo do lado open source. Mas ele não o fez desaparecer: a receita padrão hoje é um empilhamento — SFT, depois otimização de preferências (DPO e suas variantes), depois RL com recompensas verificáveis (GRPO, popularizado pelo DeepSeek-R1 no início de 2025) para o raciocínio. Os detalhes estão no capítulo 08.

Mas todas essas etapas têm em comum um problema de custo: elas modificam todos os parâmetros do modelo. Para um modelo de 70 bilhões de parâmetros, são vários dias em um cluster de dezenas de GPUs — dezenas de milhares de dólares.

QLoRA: descer ainda mais

QLoRA (Quantized LoRA) carrega o modelo base em 4 bits em vez de 16 ou 32, dividindo por 4 o consumo de memória. Os adaptadores LoRA continuam em 16 bits para a precisão do gradiente. Para a mecânica da quantização em si (FP32 → INT4 → INT2, o que se perde em cada nível), veja o capítulo 18.

Resultado: dar fine-tune em um modelo de 70 bilhões de parâmetros em uma única GPU de consumo se torna possível.

Frameworks como o Hugging Face PEFT, o Axolotl ou o Unsloth — hoje a ferramenta mais comum para LoRA/QLoRA em uma GPU só — permitem lançar um fine-tuning em poucas linhas de Python. A dificuldade real não é técnica: é construir um dataset de qualidade. Um bom fine-tuning começa com 500 exemplos escritos com cuidado, não com 10.000 exemplos gerados pelo ChatGPT.

O próximo passo

Até aqui tratamos texto. Mas o mesmo princípio de tokens pode se estender a imagens, áudio e outros dados. Basta transformá-los em sequências que o Transformer consiga ler.

Atualizado em