Pense na última vez em que você tentou ensinar algo a alguém e as palavras não bastaram. Você explicava como dobrar um guardanapo, como cumprimentar numa reunião, como acertar o tom de um e-mail, e a outra pessoa continuava sem entender. Até que você fez uma coisa simples: "olha, assim". Fez uma vez na frente dela e, de repente, ficou claro. Isso, transposto para um prompt, é o que é o few-shot prompting: ensinar a IA com dois ou três exemplos em vez de uma instrução longa.
A palavra "shot" aqui significa "exemplo", "demonstração". Quando você não dá nenhum e só descreve a tarefa, isso é zero-shot (zero exemplos). Quando você dá alguns exemplos resolvidos antes de pedir o seu, isso é few-shot (poucos exemplos). Você não mudou o modelo, não o retreinou: apenas colocou amostras dentro da mesma mensagem.
01 · a ideiaMostrar em vez de explicar
Há tarefas fáceis de descrever e tarefas fáceis de mostrar. "Traduza isto para o inglês" se descreve em três palavras e funciona sem exemplos. Mas "classifique estes comentários com o meu critério, não o seu" é quase impossível de explicar no abstrato. Onde termina o "neutro" e começa o "irritado"? Você sabe quando vê, mas não sabe dizer. É aí que mostrar vence.
Com o few-shot, em vez de redigir um regulamento, você cola exemplos já resolvidos por você. O modelo olha o padrão (o que entra, o que sai, em que formato) e continua a série com o seu caso novo. Ele não está "aprendendo" no sentido de guardar algo para amanhã: está reconhecendo o padrão que você colocou na frente dele e completando-o. Por isso às vezes se chama aprendizado em contexto: o aprendizado acontece dentro do prompt e é esquecido ao terminar.
Um exemplo bem escolhido vale mais do que um parágrafo de instruções.
02 · a práticaComo se monta um prompt few-shot
A receita é mais simples do que parece. Um prompt few-shot tem três partes: uma instrução breve, alguns pares de exemplo (entrada → saída) e, no final, a sua entrada nova sem resolver, para que o modelo a complete. Veja este molde para classificar o tom de mensagens de clientes:
Classifique o tom de cada mensagem como reclamação, dúvida ou agradecimento.
"Até que horas vocês atendem hoje?" → dúvida
"Faz três dias que espero e ninguém responde" → reclamação
"Obrigado, tudo chegou perfeito" → agradecimento
"Cobraram duas vezes o mesmo pedido" → ______
O modelo vê três exemplos com a mesma forma e, ao chegar no quarto, completa "reclamação" com toda naturalidade. Não é preciso explicar o que é uma reclamação: ele deduziu do padrão. E algo igualmente valioso: ele aprendeu o seu formato de saída. Você pediu uma única palavra em minúscula, e é isso que ele vai devolver, não um parágrafo explicando a decisão.
Esse controle do formato é, na prática, a razão mais comum para usar o few-shot. Se você vai processar a resposta com um programa (colocá-la numa tabela, num JSON, numa planilha), precisa que ela sempre saia com a mesma cara. Descrever o formato com palavras é frágil; mostrar três saídas idênticas o fixa muito melhor.
A ideia ganhou fama em 2020 com um trabalho de Tom Brown e sua equipe, cujo título diz tudo: Language Models are Few-Shot Learners [1]. Ali mostraram que um modelo suficientemente grande, com apenas algumas demonstrações no prompt, resolvia tarefas para as quais não havia sido especificamente treinado. Não se ajustavam pesos nem se retreinava nada: bastavam os exemplos dentro da mensagem. Essa descoberta é a que você usa sem pensar toda vez que cola um par de amostras antes da sua pergunta.
03 · o critérioQuando dar exemplos e quando não
Few-shot nem sempre é melhor. Tem um custo real: cada exemplo que você cola ocupa tokens, ou seja, entra na conta que se paga e no limite de contexto do modelo. Três exemplos curtos não pesam; vinte exemplos longos, sim. Então a pergunta não é "coloco exemplos?", mas "esta tarefa precisa deles?".
A tabela abaixo resume quando costuma valer a pena e quando você está gastando demais.
| Situação | Melhor abordagem | Por quê |
|---|---|---|
| Tarefa comum e bem nomeada (traduzir, resumir) | Zero-shot | O modelo já a viu mil vezes no treinamento; o exemplo sobra. |
| Formato de saída estrito (JSON, uma palavra, tabela) | Few-shot | Os exemplos fixam a forma exata melhor do que descrevê-la. |
| Critério próprio e difuso ("meu" tom, "minha" categoria) | Few-shot | Você mostra seu critério com casos; não é preciso explicá-lo no abstrato. |
| Casos-limite ou ambíguos que você quer resolver "assim" | Few-shot | Um exemplo do caso raro diz o que fazer quando houver dúvida. |
| Contexto muito limitado ou custo apertado | Zero-shot | Cada exemplo gasta tokens; se a tarefa é simples, não compensa. |
Fonte: síntese a partir do guia da OpenAI sobre estratégias de prompting [2] e do guia aberto OpenAI Cookbook / Prompt Engineering Guide [3].
Dois conselhos de bom senso ao escolher os exemplos. Primeiro, que sejam representativos: se seus casos reais incluem mensagens com erros de digitação, coloque uma com erros; caso contrário, o modelo se surpreende quando aparecer. Segundo, cuide do equilíbrio: se os quatro exemplos que você pôs são "reclamação", o modelo pode pegar o vício de responder "reclamação" a tudo. Varie as categorias e, se a ordem importa, misture-as.
Os exemplos não são decoração do prompt: são a parte que ensina.
Há um caso em que o few-shot fica especialmente potente, e é quando você o combina com o raciocínio passo a passo. Se seus exemplos mostram não só a resposta final, mas também o raciocínio que leva a ela, o modelo aprende a raciocinar dessa forma antes de responder. Mas isso já é outra técnica que merece a sua própria entrada.
Por enquanto, fique com o essencial: quando explicar for difícil, mostre. Cole dois ou três exemplos resolvidos por você, deixe o seu em branco no final e deixe o modelo continuar o padrão. É a forma mais humana de ensinar uma máquina: a mesma com que um dia alguém ensinou você, dizendo simplesmente "olha, assim".
Fuentes
- Brown, T. et al. (2020). Language Models are Few-Shot Learners. Advances in Neural Information Processing Systems (NeurIPS) 33. arXiv:2005.14165. (Introduz o aprendizado em contexto com poucos exemplos.)
- OpenAI. Prompt engineering: Strategy: Provide examples. OpenAI Platform Documentation. platform.openai.com/docs/guides/prompt-engineering.
- DAIR.AI. Few-Shot Prompting. Prompt Engineering Guide. promptingguide.ai/techniques/fewshot.