Quantos exemplos rotulados você precisa para trocar o prompt por um modelo treinado?

gráfico mostrando quantidade de exemplos rotulados necessários para treinar um modelo de decisão
Resposta rápida

Não existe um número universal de exemplos rotulados para trocar o prompt por um modelo treinado: depende da tarefa. O que existe é teste. Monte o eval primeiro, guarde as decisões do LLM e revise uma amostra por humano. A OpenAI aceita fine-tuning com mínimo de 10 exemplos e recomenda começar com 50 bem feitos: se 50 melhoram, junte mais, se não mudam nada, repense a tarefa. O SetFit, da Hugging Face, trabalha normalmente com 8 ou 16 exemplos por classe. E a curva de aprendizado do scikit-learn mostra se mais dados ainda ajudam

Fala aí, beleza? Bora começar com uma ideia que muda o jeito de olhar pro seu sistema: o prompt que decide as coisas hoje é a sua máquina de coletar rótulos, não a solução final 😀

Se tu tem um LLM em produção fazendo triagem de chamado, roteando mensagem pro setor certo ou classificando sentimento de review, uma hora bate a dúvida: quando dá pra trocar isso por um modelo treinado, menor e mais rápido?

E a pergunta que vem junto é sempre a mesma: quantos exemplos rotulados eu preciso pra isso?

Spoiler: não tem número mágico

Nenhuma fonte séria te dá um número fixo por classe, todas dizem que depende da tarefa

O que dá pra fazer é medir, e é isso que a gente vai ver aqui, beleza? 🙂

Por que tratar o prompt como fase de coleta e não como solução final

O paper When Do LLMs Replace Fine-Tuned NLU?, de agosto de 2026, coloca a coisa de um jeito bem direto

Com muitos rótulos e um esquema de classes estável, encoders ajustados vencem com folga em acurácia, latência e custo

E o LLM, onde ele entra então?

Segundo o mesmo paper, ele se justifica quando o espaço de intenções muda, quando faltam rótulos, quando detectar entrada fora de escopo é crítico ou quando cada implantação traz um esquema novo

Repara no detalhe: "quando faltam rótulos"

Ou seja, o LLM é ótimo justamente na fase em que você ainda não tem base nenhuma

Então a leitura que faz sentido é essa: enquanto o seu esquema de classes estabiliza, o prompt trabalha E gera dados ao mesmo tempo

É como contratar um consultor caro pra resolver o problema enquanto ele treina o time da casa, uma hora o time assume 😛

Quando vale trocar o prompt por um modelo treinado (e quando não vale)

Derivando direto do paper, dá pra montar dois lados bem claros

Sinais de que é hora de treinar:

  • O esquema de classes parou de mudar (as categorias de hoje são as mesmas de meses atrás)
  • O volume de decisões é alto e repetitivo
  • Você já tem rótulos sobrando, seja de histórico, de revisão humana ou do próprio log do LLM

Sinais de que o prompt ainda deve ficar:

  • As intenções continuam mudando (toda semana aparece categoria nova)
  • Detectar o que está fora de escopo é crítico pro negócio
  • Cada implantação ou cliente traz um esquema de classes diferente
  • Ainda faltam rótulos pra treinar qualquer coisa

Se tu se encaixa mais no segundo bloco, tudo bem!

Não é falha, é só sinal de que a fase de coleta ainda não acabou

De onde vêm os exemplos rotulados: histórico, revisão humana e log do próprio LLM

Rótulo não brota do chão, né? haha

Na prática, ele vem de três lugares

Histórico

Muita empresa já tem decisão registrada em algum lugar: chamados que alguém encaminhou, lançamentos que alguém categorizou, tickets fechados com uma tag

Se você já tem automações com n8n na contabilidade separando documento por tipo, por exemplo, esse histórico pode virar base

Tome cuidado só com uma coisa: rótulo antigo segue o esquema antigo, então confira se as classes ainda batem com as de hoje

Revisão humana

É a fonte mais confiável e a mais cara

Alguém do time olha a entrada, olha a decisão e confirma ou corrige

Não precisa revisar tudo, a ideia é revisar uma amostra (já já explico o porquê)

Log do próprio LLM

Aqui que fica interessante

O estudo de Pangakis e Wolken, apresentado no NLP+CSS 2024, testou 14 tarefas de classificação

Resultado: classificadores supervisionados treinados com rótulos gerados pelo GPT-4 tiveram desempenho comparável aos treinados com rótulos humanos

E o resultado se mostrou razoavelmente robusto a ruído nos rótulos do LLM, legal né? 😀

Porém tem uma ressalva no mesmo estudo: os rótulos do LLM tenderam a ter recall maior e precisão menor

Que que isso quer dizer na prática?

O LLM tende a marcar mais casos como positivos do que deveria, pega bastante coisa mas erra mais no que marca

Por isso a revisão humana de amostras continua importante, ela é o filtro que corrige esse viés

E a distilação da OpenAI?

A OpenAI tem um fluxo organizado pra isso, chamado distilação

As saídas do modelo grande são guardadas com o parâmetro store: true na Chat Completions API e depois usadas pra ajustar um modelo menor

O mínimo é 10 completions armazenadas, mas o recomendado são centenas a milhares

Se liga: esse fluxo depende da plataforma de fine-tuning da OpenAI, que está sendo encerrada, e a disponibilidade está bem restrita (explico na seção sobre o fechamento do fine-tuning, mais abaixo)

Como saber se a sua base rotulada já é suficiente

Aqui é o coração do post

Em vez de perguntar "quantos exemplos rotulados preciso?", a pergunta certa é "como eu meço se a base que eu tenho já basta?"

E tem três testes pra isso

1. Evals primeiro

O guia de fine-tuning supervisionado da OpenAI coloca isso como regra: good evals first

O porquê é simples: sem eval, não dá pra saber se o modelo ajustado é melhor que o modelo base

Você treina, coloca no ar e… fica no achismo

Já vi muita gente pular essa etapa e depois não conseguir explicar se o modelo novo melhorou ou piorou 🙂

2. A regra dos 50

O mesmo guia diz que o mínimo aceito pra um fine-tuning é 10 exemplos

Mas a OpenAI costuma ver melhora a partir de 50 a 100 exemplos, e recomenda começar com 50 demonstrações bem feitas e avaliar o resultado

Daí vem um teste de viabilidade MUITO útil:

  • Se 50 bons exemplos melhoram o desempenho, vale adicionar mais
  • Se 50 exemplos não fazem diferença nenhuma, repense a tarefa ou o prompt antes de sair juntando dados de treino

Repara que não é "50 resolve tudo", é "50 te diz se vale continuar"

E o próprio guia lembra que o número certo varia muito conforme o caso de uso

3. Curva de aprendizado

O scikit-learn tem uma função pronta pra isso: sklearn.model_selection.learning_curve

Ela calcula scores de treino e de validação, com validação cruzada, pra conjuntos de treino de tamanhos diferentes

Ou seja, ela simula "e se eu tivesse menos dados?" várias vezes e te mostra a tendência

from sklearn.model_selection import learning_curve

# learning_curve devolve os scores de treino e de validação
# (com validação cruzada) para tamanhos diferentes de base

E como ler o resultado? A própria documentação do scikit-learn explica:

  • Se os scores de treino e de validação convergem pra um valor baixo, mais dados provavelmente não ajudam muito
  • Se o score de treino fica bem acima do de validação com poucos dados, adicionar amostras tende a melhorar a generalização

No primeiro caso, o problema não é falta de dado, é modelo ou tarefa mal definida

No segundo, aí sim: bora rotular mais!

Poucos exemplos por classe: o que o SetFit mostra

Se a ideia de juntar centenas de exemplos te assusta, se liga nisso

O SetFit é um framework open source mantido pela Hugging Face pra classificar texto com poucos exemplos e sem prompts

Como ele funciona?

Ele ajusta um Sentence Transformer com poucos exemplos rotulados (normalmente 8 ou 16 por classe) e depois treina uma cabeça classificadora em cima dos embeddings

Que embeddings? São representações numéricas do texto, o jeito do modelo "entender" o significado de cada frase

No dataset Customer Reviews (CR), de sentimento, o SetFit com apenas 8 exemplos rotulados por classe ficou competitivo com um RoBERTa Large ajustado no conjunto de treino completo de 3 mil exemplos

8 contra 3 mil, não é absurdo? haha

Claro, isso é um dataset específico de sentimento, não é garantia pro seu caso

Mas mostra que a barreira de entrada pra sair do prompt pode ser bem mais baixa do que parece, principalmente em classificação de texto com classes bem definidas

Fine-tuning na OpenAI está fechando: o que muda no seu plano

Agora a parte que muita gente ainda não viu

A OpenAI está encerrando a plataforma self-serve de fine-tuning, e o cronograma é esse:

7 de maio de 2026: saiu o aviso oficial, e desde essa data organizações que nunca tinham feito fine-tuning não conseguem mais criar jobs

2 de julho de 2026: também ficam de fora as organizações que não rodaram inferência em um modelo ajustado nos 60 dias anteriores

6 de janeiro de 2027: prazo final pra clientes ativos criarem novos jobs

Então, resumindo: se tu nunca fez fine-tuning na OpenAI, a porta já está fechada pra você

Se já fez e segue usando modelo ajustado, ainda dá pra criar jobs, mas só até 6 de janeiro de 2027

Os modelos já ajustados seguem disponíveis pra inferência até o modelo base ser descontinuado

As fontes são o anúncio na comunidade da OpenAI e a página de deprecations da própria OpenAI

E o que isso muda pra você?

Os números do guia da OpenAI (mínimo de 10, melhora a partir de 50 a 100, começar com 50) continuam úteis como referência de tamanho de base

A lógica de "testa com 50 e vê se melhora" vale pra qualquer modelo

Porém, se você está começando agora, o caminho de treino tende a ser um classificador próprio (como o SetFit) e não o fine-tuning self-serve da OpenAI

Que, pra quem nunca usou, já está fechado

O que fazer enquanto a base rotulada não existe

Tema novo, zero volume, nada de histórico

Acontece mto, principalmente em produto recém lançado

O plano é tratar o prompt como coletor desde o primeiro dia:

  1. Mantenha o prompt em produção. Ele resolve o problema hoje e gera dados pra amanhã. O erro comum aqui é ficar esperando ter base pra lançar, quando é justamente o lançamento que cria a base
  2. Registre entrada e decisão do LLM. Cada chamada vira um par entrada/rótulo candidato. Tome cuidado: se você não guarda a entrada original junto da decisão, o log perde quase todo o valor pra treino
  3. Revise uma amostra por humano. Lembra do estudo de Pangakis e Wolken? Rótulo de LLM tende a precisão menor, e a revisão é o que corrige esse viés. O erro comum é confiar 100% no log sem nunca olhar
  4. Monte o eval antes de qualquer treino. Sem ele, você não vai saber se o modelo treinado superou o prompt. É a mesma lógica de entregar o material certo pro agente: sem referência clara do que é "bom", não tem como medir o resultado
  5. Meça em marcos. Quando chegar nos primeiros 50 exemplos bons, aplique a regra dos 50. Depois, rode a curva de aprendizado conforme a base cresce pra ver se mais dados ainda ajudam

Tudo isso é barato de começar e não depende de nenhuma plataforma específica 🙂

Conclusão: o número certo é o que a sua curva mostra

Recapitulando: não existe um número fixo de exemplos rotulados pra trocar o prompt por um modelo treinado

Existe teste

Enquanto o esquema de classes muda, o LLM se justifica e o prompt funciona como coletor de dados

Os rótulos podem vir do histórico, da revisão humana ou do próprio log do LLM, que segundo a pesquisa dá resultado comparável a rótulo humano, desde que você revise amostras

Pra saber se a base basta, use eval primeiro, a regra dos 50 e a curva de aprendizado

E com o fine-tuning self-serve da OpenAI fechando, olhar pra classificadores próprios como o SetFit faz cada vez mais sentido

O próximo passo concreto é esse: monte o eval e comece a guardar as decisões do prompt HOJE

Quando tiver os primeiros 50 exemplos bons, reavalie

Até o próximo post! 😀

Perguntas frequentes

Quantos exemplos rotulados por classe o SetFit precisa pra funcionar bem?

O SetFit, framework open source mantido pela Hugging Face, normalmente usa 8 ou 16 exemplos rotulados por classe

No dataset Customer Reviews (CR), de sentimento, o SetFit com apenas 8 exemplos por classe ficou competitivo com um RoBERTa Large ajustado no conjunto de treino completo de 3 mil exemplos

Ou seja, pouco exemplo bem escolhido pode render mais do que muito exemplo jogado no treino sem critério

Ainda dá pra criar um job de fine-tuning novo na OpenAI hoje?

Depende do seu histórico com a plataforma

O anúncio de encerramento da self-serve de fine-tuning saiu em 7 de maio de 2026, e desde essa data organizações que nunca tinham feito fine-tuning não conseguem mais criar jobs

Desde 2 de julho de 2026, também ficou bloqueado pra quem não rodou inferência em um modelo ajustado nos 60 dias anteriores

Clientes ativos têm até 6 de janeiro de 2027 pra criar novos jobs, e os modelos já ajustados continuam disponíveis pra inferência até o modelo base ser descontinuado

Rótulo gerado por LLM serve pra treinar um classificador supervisionado?

Serve, e tem estudo mostrando isso

Pangakis e Wolken, no NLP+CSS 2024, testaram 14 tarefas de classificação e viram desempenho comparável entre classificadores treinados com rótulos do GPT-4 e com rótulos humanos

O resultado também se mostrou razoavelmente robusto a ruído nos rótulos do LLM

A ressalva é que esses rótulos tendem a recall maior e precisão menor, então vale revisar uma amostra com gente de verdade

Qual a diferença entre o mínimo de exemplos pra fine-tuning e pra distilação na OpenAI?

São números diferentes pra fluxos diferentes

No fine-tuning supervisionado comum, o mínimo aceito é 10 exemplos, mas a melhora costuma aparecer a partir de 50 a 100

Na distilação, as saídas do modelo grande são guardadas com store: true na Chat Completions API, e o mínimo também é 10 completions armazenadas, mas o recomendado são centenas a milhares

Como usar a learning_curve do scikit-learn pra decidir se preciso de mais exemplos rotulados?

A função sklearn.model_selection.learning_curve calcula scores de treino e validação, com validação cruzada, pra conjuntos de treino de tamanhos diferentes

Se os scores de treino e validação convergem pra um valor baixo, mais dados provavelmente não ajudam muito

Se o score de treino fica bem acima do de validação com poucos dados, adicionar amostras tende a melhorar a generalização



Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 30min

Blog | Mais populares