·7 min read

Fine-Tuning vs Prompt Engineering: o que você precisa

Fine-Tuning vs Prompt Engineering: o que você precisa
Photo by Marielle Ursua on Unsplash
Authors
  • João Schuller
    Name
    João Schuller
    Twitter

Fine-Tuning vs Prompt Engineering: o que você realmente precisa

A maioria dos times que parte para fine-tuning não precisa disso. O ciclo é sempre parecido: o modelo se comporta de forma inconsistente, alguém decide que os pesos precisam de ajuste, três semanas depois tem um modelo fine-tunado que performa mais ou menos igual ao que um bom system prompt teria feito. Fine-tuning vs prompt engineering é uma decisão real, e errar ela custa tempo, dinheiro e às vezes estabilidade em produção. O que segue é um framework concreto para escolher entre as duas abordagens, com sinais específicos de quando cada uma se justifica.

Prompt engineering resolve mais problemas do que parece

A superfície de controle que prompt engineering oferece é maior do que a maioria dos times imagina. Formato, tom, persona, profundidade de raciocínio, comportamento de recusa, foco em domínio, estrutura de output e lógica condicional, tudo isso pode ser moldado via system prompts e exemplos few-shot sem tocar em nenhum parâmetro do modelo.

Um exemplo direto: se você precisa de um assistente de suporte que responda sempre num tom de marca específico, escale determinados tipos de reclamação e nunca mencione concorrentes, um system prompt bem estruturado com restrições claras resolve isso inteiro. A abordagem que funciona é em camadas: definição de papel no topo, regras de comportamento no meio, restrições de formato ao final, e dois ou três exemplos few-shot que cobrem os casos de borda que você se preocupa. Se quiser ver isso aplicado, tem um guia mais detalhado em system prompts que funcionam de verdade.

Prompt engineering quebra de verdade em dois cenários específicos. Primeiro, quando o comportamento que você precisa exige conhecimento que o modelo base não tem e esse conhecimento é grande ou estruturado demais para caber numa janela de contexto. Segundo, quando consistência em milhares de chamadas é crítica e você está vendo que mesmo prompts bem construídos geram deriva em casos de borda que você não consegue antecipar completamente. Fora esses dois cenários, minha leitura é que a maioria das falhas atribuídas a "o modelo precisa de fine-tuning" são, na prática, falhas de prompt: instruções vagas, restrições ausentes ou nenhum exemplo do output desejado.

O custo também importa aqui. Rodar um prompt bem engenheirado contra GPT-4o ou Claude Sonnet é mensurável por chamada, mas iterar nele custa quase nada. Fine-tuning consome tempo de compute, exige dados de treinamento curados e produz um artefato que você vai precisar manter à medida que os modelos base atualizam.

Fine-tuning se justifica em três situações específicas

As três situações em que fine-tuning compensa o custo são: consistência de estilo em escala, deployment sensível a latência em modelos menores, e conhecimento de domínio proprietário que não cabe numa janela de contexto.

Consistência de estilo em escala é o caso legítimo mais comum. Se você gera milhares de descrições de produto por dia e sua marca tem requisitos estilísticos muito específicos, um modelo menor fine-tunado pode superar prompt engineering num modelo maior custando menos por chamada. Os dados de treinamento aqui são seus próprios conteúdos aprovados, e o sinal é claro: você já sabe o que "bom" significa.

Deployment sensível a latência é o segundo caso. Fine-tunar um modelo menor, como Mistral 7B ou Llama 3.1 8B, na sua tarefa específica pode chegar a qualidade aceitável com latência de inferência muito menor do que prompting num modelo de 70B ou maior. Para aplicações em tempo real onde o usuário sente cada 200ms, esse é um tradeoff real que vale considerar.

Conhecimento de domínio proprietário é onde os times mais superestimam o valor do fine-tuning. Fine-tuning não injeta conhecimento factual no modelo com precisão. Ele ajusta comportamento e estilo, não memoriza seu catálogo de produtos com exatidão. Para recuperação de informações factuais, RAG é quase sempre a resposta certa. Vale ser explícito: fine-tuning e RAG não são abordagens concorrentes. Elas resolvem problemas diferentes e podem ser combinadas.

Um detalhe operacional que raramente aparece na decisão inicial: fine-tunar num API fechado como o da OpenAI significa que seu modelo fine-tunado fica amarrado ao preço e à disponibilidade daquele provedor. Essa dependência é um risco real.

A decisão quase sempre depende da qualidade dos dados, não da complexidade da tarefa

Aqui é onde os times erram de forma consistente: avaliam fine-tuning vs prompt engineering com base em quão complexa é a tarefa, quando o fator decisivo real é se existem dados de treinamento limpos e representativos.

Fine-tuning com dados ruins produz um modelo que erra de formas novas e consistentes. O loop de treinamento amplifica os padrões que existem nos seus exemplos, incluindo os ruins. Se seus exemplos rotulados têm inconsistências, casos de borda esquecidos ou vieses sutis nas decisões dos anotadores, esses problemas ficam gravados no modelo. Corrigir depois exige rodar o processo de treinamento inteiro de novo.

Prompt engineering, por outro lado, é debugável em tempo real. Você vê um output ruim, ajusta a instrução ou adiciona um contra-exemplo, e testa de novo em minutos. Esse loop de feedback tem valor genuíno, especialmente nas fases iniciais de um produto quando seu entendimento do que é "bom" ainda está se formando.

Minha avaliação: se você não consegue apontar pelo menos algumas centenas de exemplos limpos, consistentes e revisados por humanos do comportamento exato que quer, você não está pronto para fine-tuning. Use esse tempo para desenvolver disciplina em prompt engineering, porque a clareza que você constrói sobre o que é um bom output é exatamente o que você vai precisar para criar bons dados de treinamento mais tarde. A abordagem de restrições negativas ajuda bastante aqui: definir o que o modelo não deve fazer força você a articular os requisitos com precisão suficiente para virar, eventualmente, labels de treinamento.

FAQ

Fine-tuning pode tornar um modelo mais preciso sobre informações dos meus produtos? Não de forma confiável. Fine-tuning ajusta padrões de comportamento, não recall factual com precisão. Para acurácia factual sobre produtos específicos, RAG com uma base de conhecimento estruturada é a abordagem correta. Fine-tuning pode ajudar o modelo a formatar e apresentar a informação recuperada de forma consistente, mas não deve ser sua fonte de verdade.

Quantos dados de treinamento preciso para fine-tunar um modelo? Depende da tarefa e da arquitetura do modelo. Com base em resultados publicados de pesquisas de instruction fine-tuning, incluindo o Alpaca (Stanford, 2023) e o paper do Orca (Microsoft, 2023), algumas centenas de exemplos de alta qualidade já conseguem mudar o comportamento de forma perceptível em tarefas focadas, e alguns milhares bem curados produzem resultados sólidos. Quantidade sem qualidade é contraproducente: mais dados com rotulagem inconsistente prejudica mais do que ajuda.

Prompt engineering continua funcionando quando troco de modelo? Em geral sim, mas prompts não são totalmente portáveis. Um system prompt otimizado para Claude Sonnet pode precisar de ajustes ao rodar no GPT-4o ou no Gemini, porque o comportamento de seguimento de instruções e os defaults de formatação diferem entre modelos. A lógica e a estrutura costumam transferir; a redação específica às vezes precisa de ajuste. Cada modelo tem características distintas que afetam como ele responde a prompts idênticos, e isso vale a pena conhecer antes de assumir que o prompt é o problema.

Antes de começar um projeto de fine-tuning

O sinal mais claro de que você não está pronto para fine-tunar é não ter um baseline de prompt funcional para comparar. Construir o system prompt mais completo possível, com papel explícito, regras de comportamento, instruções para casos de borda e pelo menos três exemplos few-shot, e rodar contra uma amostra de inputs reais, te dá duas coisas: um piso de performance e uma visão precisa de onde ele falha. Esse gap é o que seus dados de treinamento precisariam fechar. Entender esse gap de forma concreta é o pré-requisito para qualquer projeto de fine-tuning que valha começar.