pular para o conteúdo
nebulog_
iatech6 min

Fine-tuning quase nunca é a primeira resposta

Quando um modelo não entrega o resultado esperado, a primeira ideia costuma ser "vamos treinar com nossos dados". Na maior parte das vezes, é a última coisa que deveria ser tentada — e não por preciosismo técnico, mas porque quase sempre existe um caminho mais barato, mais rápido e mais fácil de manter que resolve o mesmo problema.

O engano nasce da intuição errada sobre o que está falhando. "O modelo não sabe fazer isso, então preciso ensinar." Só que "ensinar" tem vários significados, e fine-tuning atende só a um deles. Confundir os casos é o que faz equipes gastarem semanas montando dataset para um problema que se resolvia com três frases a mais no prompt.

A ordem que costuma resolver

Antes de mexer nos pesos do modelo, existe uma escada. Cada degrau é mais barato que o próximo, e você só sobe quando o de baixo comprovadamente não deu conta.

  1. Prompt melhor / instrução clara. A maioria dos problemas é de comunicação, não de capacidade. O modelo consegue fazer a tarefa — só não entendeu qual era a tarefa. Instrução vaga, critério implícito, formato subentendido: tudo isso vira erro que parece incompetência do modelo e é, na verdade, falta de especificação.
  2. Exemplos no prompt (few-shot). Quando descrever o que você quer é difícil, mostrar é mais fácil. Dois a cinco exemplos do par entrada-saída certo dentro do próprio prompt ancoram o comportamento sem treino nenhum. É a diferença entre explicar um formato por escrito e simplesmente colar um caso pronto.
  3. RAG / contexto para o conhecimento que falta. Se o problema é que o modelo não tem uma informação — política interna, catálogo, documentação, dado atualizado —, a resposta é dar essa informação no momento da pergunta, buscando o trecho relevante e injetando no prompt. É o assunto do post sobre RAG aqui do blog: conhecimento vive em documento recuperável, não dentro dos pesos.
  4. Fine-tuning. Só depois de esgotar os três primeiros, e mesmo assim para um conjunto específico de problemas que os anteriores genuinamente não resolvem.

O detalhe importante: os degraus não competem, eles se somam. Um sistema com fine-tuning ainda precisa de bom prompt e, quase sempre, de contexto. Fine-tuning não substitui os outros — ele entra por cima quando eles chegam ao limite.

Para que fine-tuning serve de verdade

Fine-tuning ajusta os pesos do modelo a partir dos seus exemplos. O que isso muda bem é comportamento, não conhecimento:

  • Formato de saída rígido e consistente. Quando você precisa que toda resposta saia numa estrutura muito específica, sempre, sem escorregar.
  • Estilo e tom. Uma voz de marca particular, um jeito de escrever que é trabalhoso descrever em instrução mas fácil de demonstrar em centenas de exemplos.
  • Vocabulário e convenções de domínio. Termos que o modelo erra de forma sistemática, categorias internas que ele não tem como adivinhar, um padrão de classificação próprio da sua operação.
  • Encurtar prompt gigante. Se você depende de um prompt enorme repetido a cada chamada, fine-tuning pode "internalizar" parte dessas instruções e reduzir o custo por chamada na escala.

O que ele não faz bem é ensinar fatos novos. Fato vive em documento, não em peso de rede neural. Se a informação muda, o modelo treinado não se atualiza sozinho — ele repete com confiança o que aprendeu, mesmo desatualizado. E ele não sabe citar a fonte do que respondeu, porque o conhecimento virou uma média difusa espalhada pelos parâmetros. Para qualquer coisa que precise ser correta, rastreável e atual, contexto ganha de fine-tuning todas as vezes.

Resumindo a régua: se o sistema erra porque não sabe algo, o problema é de contexto. Se erra porque não entendeu o que você quer, é de instrução. Se acerta o conteúdo mas escorrega no jeito — formato, tom, consistência —, aí sim talvez seja caso de treinar.

O custo que ninguém coloca na conta

O treino em si não é a parte cara. A conta real vem depois, e tem três frentes.

  • Dados. Fine-tuning bom exige exemplos bons: centenas a milhares de pares entrada-saída corretos, revisados por alguém que entende do assunto. Montar e curar esse conjunto é trabalho humano de verdade. E dados ruins produzem um modelo pior que o original — com o agravante de que agora o erro está congelado nos pesos, difícil de rastrear e impossível de corrigir editando um prompt.
  • Manutenção. Um prompt você muda em segundos. Um modelo treinado é um artefato: versionado, avaliado, implantado. Quando o comportamento desejado muda, não basta reescrever uma frase — é preciso ajustar o dataset e retreinar.
  • Retreino quando a base muda. Este é o custo mais subestimado. Modelos base evoluem. Quando surge uma versão melhor, quem está no prompt simplesmente troca e colhe o ganho. Quem fez fine-tuning sobre a versão antiga tem uma decisão: ficar preso a um modelo que vai envelhecendo, ou refazer todo o trabalho de treino sobre a base nova. O fine-tuning te acopla a um ponto no tempo, e o campo se move rápido.

Nada disso torna fine-tuning ruim. Torna ele um compromisso de manutenção contínua, não um ajuste pontual. E é exatamente isso que precisa entrar na decisão.

Quando fine-tuning faz sentido

Alguns sinais, e de preferência mais de um ao mesmo tempo:

  • Você já esgotou o prompt de verdade. Instrução clara, few-shot, contexto no lugar — e ainda sobra um erro consistente, no mesmo tipo de caso, que nenhum desses ajustes elimina.
  • O padrão é estável. O comportamento que você quer não muda toda semana. Vale congelar algo que vai durar, não uma regra que você ainda está descobrindo.
  • O volume justifica. O prompt necessário ficou tão longo que o custo por chamada, multiplicado pela escala, passa a pesar mais que o custo de treinar e manter um modelo ajustado.
  • Você tem dados de qualidade. Exemplos suficientes, corretos e revisados. Sem isso, nada mais na lista importa.

Quando é armadilha

  • Usar fine-tuning para injetar conhecimento. O caso mais comum e o mais caro. Você quer que o modelo "saiba" seus documentos e vai treinar para isso. Não funciona bem, não atualiza e não cita fonte. É RAG disfarçado de treino.
  • Pular a escada. Ir direto ao fine-tuning sem ter testado prompt e contexto. Muitas vezes o problema real era trivial, e o dataset caro resolveu o que uma instrução melhor resolveria de graça.
  • Requisito ainda em movimento. Treinar sobre uma regra que ainda está mudando garante retreino atrás de retreino. Estabilize primeiro, congele depois.
  • Dados insuficientes ou sujos. Poucos exemplos, ou exemplos inconsistentes, produzem um modelo que erra com confiança — e agora o erro está nos pesos, longe do alcance de um ajuste rápido.

O ponto prático

Fine-tuning é otimização, não conserto. Ele afina um sistema que já funciona; não salva um que está errado pelo motivo errado.

Na prática: comece pela instrução, escrita como se fosse para uma pessoa nova na equipe. Se não bastar, mostre exemplos dentro do prompt. Se faltar conhecimento, traga o contexto por RAG. E meça tudo num conjunto fixo de casos, antes e depois de cada mudança — sem isso você não sabe se melhorou, só sente que melhorou. Só quando esse caminho comprovadamente empaca, e o padrão é estável e vale o custo de manter, aí vale mexer nos pesos. Nessa ordem, fine-tuning deixa de ser a primeira reação e vira o que ele realmente é: o último recurso, para os poucos casos que só ele resolve.