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