Artigo AI·Inteligência Artificial·13 min de leitura

Few-Shot Prompting: Como Ensinar Padrões à IA com Exemplos

Em vez de explicar com palavras o que você quer, mostre exemplos. Few-shot prompting é a técnica mais confiável para garantir formato, estilo e consistência em saídas de LLMs. Veja a teoria, casos de uso, comparação com fine-tuning e os erros que sabotam o resultado.

Vitor Morais

Por Vitor Morais

Fundador do MochaLabz ·

🤖

Gere prompts otimizados em segundos

Templates com few-shot, role prompting e chain-of-thought para ChatGPT, Claude e Gemini.

Usar gerador de prompts →

Few-shot prompting é a técnica de incluir exemplos da tarefa no próprio prompt antes da query final. Apresentado no paper original do GPT-3 (Brown et al., 2020) e chamado também de in-context learning (ICL), é a forma mais confiável de garantir que um LLM produza saída no formato e estilo esperados — sem precisar treinar o modelo. Este guia cobre a teoria, a comparação com zero-shot e fine-tuning, casos de uso reais e os erros que sabotam o resultado.

O espectro: zero-shot, one-shot, few-shot

Os três termos descrevem quantos exemplos você inclui no prompt. Conforme aumenta o número, melhora a consistência da saída — até um ponto de retorno decrescente:

Zero-shot vs one-shot vs few-shot
CritérioQuantos exemplosQuando usar
Zero-shot0Tarefas que o modelo já domina (tradução simples, perguntas factuais)
One-shot1Definir formato específico, mostrar um caso protótipo
Few-shot2 a 10Garantir consistência, ensinar padrão custom, edge cases
Many-shot / Fine-tuning10+ ou treinamento realPadrões complexos em escala, milhares de chamadas
# ZERO-SHOT "Traduza para inglês: Olá mundo" # ONE-SHOT "Traduza para inglês: Entrada: Bom dia Saída: Good morning Entrada: Olá mundo Saída:" # FEW-SHOT (3 exemplos) "Classifique o sentimento: 'Produto incrível!' → positivo 'Atendimento péssimo' → negativo 'Chegou no prazo combinado' → neutro 'Adoro essa marca' →"

Por que exemplos funcionam melhor que instruções

LLMs aprenderam a partir de bilhões de exemplos durante o treinamento. Eles operam reconhecendo padrões, não interpretando regras abstratas. Quatro razões pelas quais mostrar é melhor que explicar:

  • Concretude: “tom profissional” é ambíguo; três textos profissionais são definição operacional clara.
  • Formato implícito: os exemplos comunicam estrutura (pares chave-valor, JSON, bullet, prosa) sem precisar descrever em meta-linguagem.
  • Edge cases: um exemplo “difícil” mostra ao modelo como tratar variações que regras textuais esqueceriam.
  • In-context learning: o mecanismo de atenção do transformer foi treinado para extrair padrões de sequências — exemplos no contexto ativam esse mecanismo diretamente.

Anatomia de um few-shot prompt eficaz

Quatro elementos compõem um prompt few-shot bem feito:

  1. Instrução curta inicial: 1–2 linhas que descrevem a tarefa.
  2. Exemplos consistentes: 3–5 pares entrada/saída no mesmo formato.
  3. Delimitador claro: setas (→), :::,---, separação por linhas em branco — qualquer padrão visual.
  4. Query final aberta: a entrada real seguida do delimitador, deixando o modelo completar.
Converta nome completo em e-mail corporativo (primeiro nome + último sobrenome em minúsculas): João Silva → joao.silva@empresa.com Maria Santos Oliveira → maria.oliveira@empresa.com Pedro de Souza → pedro.souza@empresa.com Ana Carolina Pereira →

Diversidade dos exemplos: a regra mais importante

Exemplos pouco diversos geram saída pouco diversa. Se todos os seus exemplos têm a mesma forma, o modelo vai assumir que todas as entradas devem ter — gerando erros silenciosos em variações:

# ❌ Exemplos sem diversidade "João" → "João da Silva" "Pedro" → "Pedro Santos" "Maria" → "Maria Oliveira" # Modelo aprende que todo nome precisa virar nome composto. # Nova entrada "Roberto" pode virar "Roberto Costa" inventado. # ✅ Exemplos diversos "João" → "João Silva" (1 nome → 2) "Mariana Costa" → "Mariana Costa" (já completo, mantém) "Pedro da Silva Neto" → "Pedro da Silva Neto" (longo, mantém) "Ana" → "Ana Pereira" (curto, completa) # Cobre: só primeiro nome, nome composto, nomes longos, # nomes curtos. Modelo aprende quando intervir e quando não.

Casos de uso poderosos

Classificação de intenção

Classifique a intenção do usuário: 'Como mudo minha senha?' → suporte 'Quanto custa o plano premium?' → vendas 'Seu app está fora do ar' → bug 'Adorei a nova feature' → feedback 'Quero cancelar minha conta' → retenção 'Onde vejo minhas faturas?' →

Extração estruturada (JSON)

Extraia dados em JSON: Texto: "João Silva, 32, SP, dev sênior" JSON: {"nome":"João Silva","idade":32,"uf":"SP","cargo":"dev sênior"} Texto: "Maria (28) - designer - RJ" JSON: {"nome":"Maria","idade":28,"uf":"RJ","cargo":"designer"} Texto: "Pedro Santos, 45 anos, analista em MG" JSON:

Tradução de tom / estilo

Reescreva mensagens de erro em tom informal e empático: 'Erro 500 - servidor indisponível' → 'Opa, nosso servidor deu uma soneca. Já estamos acordando ele!' 'Senha incorreta' → 'Hmm, essa senha não bateu. Quer tentar de novo?' 'Cartão recusado' →

Geração de variações de produto

Gere headline + descrição curta para anúncio: PRODUTO: Tênis de corrida Nike Pegasus HEADLINE: Conforto que vai com você DESCRIÇÃO: Amortecimento Air Zoom para 5km a 21km. Cabedal respirável. PRODUTO: Cadeira gamer ergonômica HEADLINE: Sente bem, jogue melhor DESCRIÇÃO: Apoio lombar ajustável, braços 4D, suporta até 150kg. PRODUTO: Fone de ouvido sem fio com cancelamento de ruído HEADLINE:

Few-shot + Chain-of-Thought: combinação poderosa

Para problemas que exigem raciocínio, mostre não só a resposta mas também o raciocínio que leva a ela. O modelo aprende o padrão de pensamento, não apenas o output:

Calcule o desconto final em compras com cupons: Problema: 'Produto R$100, desconto 20% + cupom adicional 10%' Raciocínio: 1. Aplica desconto de 20%: 100 - 20 = R$80 2. Aplica cupom de 10% sobre o valor já com desconto: 80 × 0,10 = R$8 3. Preço final: 80 - 8 = R$72 Resposta: R$72 Problema: 'Produto R$250, desconto 30% + frete grátis' Raciocínio: 1. Aplica desconto de 30%: 250 - 75 = R$175 2. Frete grátis não altera preço do produto 3. Preço final: R$175 Resposta: R$175 Problema: 'Produto R$80, desconto 15% + cashback 5%' Raciocínio:

Veja o guia completo em Chain-of-Thought prompting.

Few-shot vs fine-tuning vs RAG

As três abordagens cobrem necessidades diferentes:

Few-shot vs fine-tuning vs RAG
CritérioFew-shotFine-tuningRAG
O que fazExemplos no promptTreina o modelo com seus dadosRecupera contexto externo
Custo inicialZeroMédio a altoMédio (infra de busca)
Custo por chamadaAlto (exemplos consumem tokens)BaixoMédio (contexto extra)
LatênciaMaior (prompt longo)MenorMaior (busca + LLM)
Atualização de conhecimentoTrocar exemplosRe-treinarAtualizar a base
Quando usarPadrão de formato, < 1000 chamadas/diaPadrão complexo, escalaConhecimento factual externo

Quantos exemplos, na prática

Recomendação de número de exemplos por tipo de tarefa
CritérioExemplos recomendados
Transformação simples (formato A → B)1–2
Classificação (3–5 categorias)3–5 (1–2 por categoria)
Extração estruturada (JSON, tabela)3–5
Reescrita de tom / estilo3–5
Tarefa com variação ou edge cases5–10
Padrão muito específico, raro no treino8–15 (depois fine-tuning)
Geração criativa (story, poem)1–3 (mais engessa criatividade)

O custo escondido: tokens consumidos

Cada exemplo no prompt consome tokens — tanto no input quanto (indiretamente) limitando o espaço para a resposta. Em volume alto, isso vira custo significativo:

# Exemplo: 5 exemplos com média de 50 tokens cada # = 250 tokens fixos por chamada # Em 100 000 chamadas/mês: # 100 000 × 250 = 25 milhões de tokens só de exemplos # A US$ 5 / 1M tokens (input GPT-5): # US$ 125/mês só pelos exemplos repetidos # Solução em escala: prompt caching (Anthropic, OpenAI) # OU fine-tuning (zero exemplos por chamada)

Prompt caching reduz custo em escala

Anthropic e OpenAI suportam prompt caching: o mesmo prefixo (system prompt + exemplos) é cacheado e reutilizado sem cobrar input completo. Reduz custo em 50–90% para system prompts longos. Veja como economizar tokens.

Os 7 erros mais comuns em few-shot

Anti-padrões frequentes

  • Exemplos enviesados: só sentimentos positivos → modelo classifica tudo positivo.
  • Formato inconsistente entre exemplos: uns com aspas, outros sem; modelo fica confuso.
  • Exemplos ambíguos: se você teria dúvida, o modelo também tem.
  • Faltar edge case: nenhum exemplo cobre entrada vazia, valor null, formato alternativo.
  • Excesso de exemplos: 15 quando 4 bastariam. Custo sobe sem benefício.
  • Exemplos longos demais: cada exemplo ocupando 200 tokens engole o contexto disponível.
  • Ordem ruim: exemplos mais simples primeiro ajudam o modelo a calibrar antes do complexo.

Implementação prática com APIs

OpenAI (GPT-5)

import OpenAI from 'openai'; const openai = new OpenAI(); const FEW_SHOT_SYSTEM = `Você classifica intenções do usuário. Categorias possíveis: suporte, vendas, bug, feedback, retenção. Responda APENAS com a categoria, em minúsculas.`; const EXAMPLES = [ { user: 'Como mudo minha senha?', assistant: 'suporte' }, { user: 'Quanto custa o plano premium?', assistant: 'vendas' }, { user: 'Seu app está fora do ar', assistant: 'bug' }, { user: 'Adorei a nova feature', assistant: 'feedback' }, { user: 'Quero cancelar', assistant: 'retenção' }, ]; async function classify(query: string) { const messages = [ { role: 'system', content: FEW_SHOT_SYSTEM }, ...EXAMPLES.flatMap((ex) => [ { role: 'user', content: ex.user }, { role: 'assistant', content: ex.assistant }, ]), { role: 'user', content: query }, ]; const r = await openai.chat.completions.create({ model: 'gpt-5', messages, temperature: 0, }); return r.choices[0].message.content?.trim(); }

Anthropic (Claude)

import Anthropic from '@anthropic-ai/sdk'; const anthropic = new Anthropic(); const SYSTEM = "Você classifica intenções de usuário em uma das " + "categorias: suporte, vendas, bug, feedback, retenção. " + "Responda APENAS com a categoria."; async function classify(query: string) { const message = await anthropic.messages.create({ model: 'claude-opus-4-7', max_tokens: 50, system: SYSTEM, messages: [ { role: 'user', content: 'Como mudo minha senha?' }, { role: 'assistant', content: 'suporte' }, { role: 'user', content: 'Quanto custa o plano premium?' }, { role: 'assistant', content: 'vendas' }, { role: 'user', content: 'Seu app está fora do ar' }, { role: 'assistant', content: 'bug' }, { role: 'user', content: query }, ], }); return message.content[0].type === 'text' ? message.content[0].text.trim() : ''; }

Quando migrar para fine-tuning

Os sinais claros de que few-shot virou ineficiente:

  • Você precisa de mais de 10 exemplos para chegar à qualidade desejada.
  • O mesmo prompt é usado em escala (milhares por dia).
  • Latência importa e os exemplos engordam o input.
  • Custo dos exemplos repetidos virou linha relevante na fatura.
  • Você tem pelo menos 100–500 pares de treinamento de qualidade.

OpenAI, Anthropic e Google Gemini oferecem fine-tuning via API. Custo inicial é maior (treinar custa de US$ 8 a US$ 25 por milhão de tokens treinados) mas a economia operacional vale rápido em volume.

Checklist do few-shot prompt perfeito

  • ✅ Instrução curta inicial (1–2 linhas).
  • ✅ 3–5 exemplos no formato exato esperado.
  • ✅ Exemplos diversos, cobrindo variações reais.
  • ✅ Pelo menos 1 edge case incluído.
  • ✅ Delimitadores consistentes entre todos os exemplos.
  • ✅ Ordem do mais simples ao mais complexo.
  • ✅ Temperature baixa (0–0.3) para tarefas determinísticas.
  • ✅ Prompt caching ativado se em escala (Anthropic/OpenAI).
  • ✅ Migração planejada para fine-tuning quando virar gargalo.
  • ✅ Avaliação contínua de qualidade da saída em produção.

Perguntas frequentes

O que é few-shot prompting?+

Few-shot prompting é uma técnica de prompt engineering em que você inclui alguns exemplos da tarefa no próprio prompt antes de pedir a resposta. O modelo “aprende” o padrão pelos exemplos (sem nenhum treinamento real, só processamento contextual) e replica na resposta. É a forma mais confiável de garantir formato, estilo e consistência em saídas de LLMs.

Qual a diferença entre zero-shot, one-shot e few-shot?+

Zero-shot é só a instrução, sem exemplo: “Traduza para inglês: Olá mundo”. One-shot inclui um único exemplo antes da query real. Few-shot inclui múltiplos exemplos (geralmente 2 a 5). Conforme aumenta o número de exemplos, melhora a consistência da saída — até um ponto de retorno decrescente, geralmente entre 3 e 5 exemplos para tarefas comuns.

Quantos exemplos devo usar em few-shot?+

O sweet spot é entre 3 e 5 exemplos para a maioria dos casos. Menos pode ser insuficiente para o modelo captar o padrão; mais geralmente não traz ganho proporcional e consome tokens caros. Para tarefas com muita variação ou edge cases, suba para 5–10. Acima disso, considere fine-tuning — fica mais barato e consistente em escala.

Por que mostrar exemplos funciona melhor que explicar com palavras?+

LLMs foram treinados com bilhões de exemplos e operam reconhecendo padrões — não interpretando regras abstratas. “Use tom profissional” é vago e pode ser interpretado de muitas formas. Mostrar 3 textos profissionais é concreto: o modelo extrai o padrão pelas características comuns aos exemplos. É essencialmente in-context learning sem treinamento real.

Few-shot funciona em modelos pequenos?+

Sim, geralmente melhor que zero-shot mesmo em modelos pequenos. Diferente de Chain-of-Thought (que precisa de modelos grandes para emergir), few-shot é uma capacidade básica de qualquer LLM moderno. Em modelos < 7B, few-shot pode ser a única forma viável de obter consistência.

Posso combinar few-shot com Chain-of-Thought?+

Sim, e é uma das combinações mais poderosas. Mostre exemplos onde o raciocínio passo a passo está explícito antes da resposta final. O modelo aprende tanto o formato esperado quanto o estilo de raciocínio. É a forma mais robusta de prompting para problemas complexos. Veja o guia de chain-of-thought prompting para detalhes.

Quando migrar de few-shot para fine-tuning?+

Quando você precisa de mais de 10 exemplos para chegar à qualidade desejada, ou quando o mesmo padrão é usado milhares de vezes (escala). Fine-tuning tem custo inicial maior (treinar o modelo) mas economiza tokens por chamada (não precisa enviar exemplos toda vez), reduz latência e produz consistência superior. OpenAI, Anthropic e Google oferecem APIs de fine-tuning.

Few-shot com modelos de raciocínio (o3, Claude Thinking) vale a pena?+

Vale, especialmente para garantir formato de saída. Modelos de reasoning fazem chain-of-thought interno, mas continuam beneficiando-se de exemplos para definir estrutura, tom e padrão de output. O ganho relativo pode ser menor que em modelos clássicos, porque o reasoning interno cobre parte do que few-shot faria — mas ainda é prática recomendada quando a forma do output importa.

#few shot#prompting#ia#llm#in context learning#icl#chatgpt#claude#gemini#fine-tuning

Continue lendo