O Few-Shot Prompting (ou Engenharia de Prompt com Poucos Exemplos) é uma das técnicas mais simples e diretas para orientar o comportamento de uma LLM.
Em termos simples, consiste em fornecer no próprio prompt alguns exemplos de entrada e saída esperada (os chamados “shots”) antes de fazer a pergunta real.
A Escala de “Shots” na Engenharia de Prompt
Para entender o Few-Shot, vale compará-lo com as outras abordagens de instrução:
- Zero-Shot Prompting (0 Exemplos): Você pede para a IA realizar a tarefa apenas com instruções diretas, sem nenhum exemplo.
- Prompt: “Classifique o sentimento do texto: ‘O produto chegou atrasado, mas o suporte resolveu rapidamente”.
- Saída/Resposta da LLM: “Neutro / Misto”.
- One-Shot Prompting (1 Exemplo): Você dá um único exemplo de referência para guiar o formato ou o tom de resposta.
- Prompt:
- Texto: “O atendimento foi terrível.” Sentimento: Negativo;
- Texto: “O produto chegou atrasado, mas o suporte resolveu rapidamente.” Sentimento:
- Prompt:
- Few-Shot Prompting (2 a 5 Exemplos): Você fornece um pequeno conjunto de exemplos padronizados (geralmente entre 2 e 5) para que o modelo identifique o padrão por In-Context Learning (Aprendizado no Contexto).
Exemplo Prático: Formatação Rígida de Saída
Imagine que você quer extrair entidades de um texto e formatá-las em um padrão sintático muito específico.
Prompt Few-Shot enviado ao modelo:
Extraia o produto e o valor dos itens abaixo seguindo estritamente o padrão especificado.
Entrada: “Comprei uma mesa de escritório por 450 reais e valeu cada centavo”
Saída:
[PRODUTO: Mesa de Escritório] | [VALOR: R$ 450,00]Entrada: “O plano anual do software custou 1200 dólares na promoção”
Saída:
[PRODUTO: Plano Anual do Software] | [VALOR: US$ 1200,00]Entrada: “Paguei cerca de 80 reais na capa de proteção do notebook”
Saída:
[PRODUTO: Capa de Proteção do Notebook] | [VALOR: R$ 80,00]Entrada: “Adquiri a licença do compilador C++ por 300 euros no mês passado”
Saída:
O modelo usará a sua janela de atenção para alinhar as saídas e responderá instantaneamente no formato exato:
[PRODUTO: Licença do Compilador C++] | [VALOR: € 300,00]
Por que o Few-Shot Prompting Funciona?
Sob o ponto de vista das redes neurais, o Few-Shot não altera nenhum parâmetro interno do modelo. Em vez disso, ele aproveita o Mecanismo de Atenção:
- Ativação de Padrões Semânticos: Os exemplos agem como “âncoras” na janela de contexto. O mecanismo de autoatenção calcula a relação entre os exemplos e a nova entrada, ativando caminhos de probabilidade mais específicos no vocabulário de saída.
- Demonstração do Esquema (Schema): É muito mais fácil para uma LLM inferir regras complexas vendo instâncias resolvidas do que lendo descrições abstratas de regras em texto corrido.
- Calibragem do Tom e Estrutura: Ele estabelece limites claros de extensão da resposta, vocabulário permitido e estilo linguístico.
Evolução: Chain-of-Thought (CoT) Few-Shot
Uma variação avançada do Few-Shot é a introdução do Raciocínio em Cadeia (Chain-of-Thought) nos próprios exemplos.
Se você der exemplos onde a saída não é apenas a resposta final, mas o passo a passo do raciocínio lógico, a LLM passará a replicar essa estrutura de raciocínio antes de responder à pergunta final, aumentando drasticamente a taxa de acerto em problemas de lógica, matemática e programação.
Exemplo de Few-Shot CoT:
Pergunta: A cantina da universidade tinha 23 sanduíches. Vendeu 18 no almoço e preparou mais 15 à tarde. Quantos sanduíches há agora?
Raciocínio: Começamos com 23. Vender 18 significa subtrair: 23 – 18 = 5. Preparar mais 15 significa somar: 5 + 15 = 20.
Resposta: 20.
Pergunta: Um servidor tinha 12 instâncias ativas. 4 foram encerradas por inatividade e o autoscaling subiu o dobro do número restante. Quantas instâncias estão ativas?
Raciocínio: … (O modelo seguirá o mesmo padrão de resolução explícita)
Boas Práticas e Cuidados
- Ordem e Viés dos Exemplos: LLMs são sensíveis à ordem dos exemplos fornecidos. Se todos os seus exemplos pertencerem a apenas uma classe (ex: todos exemplos de sentimento “Positivo”), o modelo tenderá a ser enviesado para essa classe no teste real.
- Consistência de Formatação: Mantenha os delimitadores e rótulos (
Entrada:,Saída:,->, etc.) 100% idênticos em todos os shots. - Custo em Tokens: Como os exemplos ocupam espaço na Janela de Contexto, adicionar muitos shots aumenta o consumo de tokens de entrada em cada requisição à API.