Tipos de prompts

Prompting zero-shot, one-shot e few-shot

Prompting zero-shot, one-shot e few-shot explicado. Quando os exemplos ajudam, quantos usar, como escolhê-los e os erros que os fazem sair pela culatra.

Traduzido do original em inglês. Código, prompts e saídas de modelos são mantidos em inglês.

O “shot” nesses termos é um exemplo. Um prompt zero-shot não tem nenhum, um one-shot tem um e um few-shot tem vários. Escolher entre eles é uma troca entre o tamanho do prompt e a precisão com que você consegue fixar a saída.

Prompting zero-shot

Um prompt zero-shot dá instruções e a entrada, nada mais.

Classify the support ticket as billing, bug, or feature request.
Return only the label.

<ticket>
{{ticket}}
</ticket>

Os modelos modernos resolvem uma ampla gama de tarefas assim. Zero-shot é o padrão certo porque é o mais curto, o mais barato e o mais fácil de manter. Recorra a exemplos apenas depois que instruções claras não produzirem o que você quer.

Prompting one-shot

Um prompt one-shot acrescenta um único exemplo. Um exemplo é muito bom para fixar o formato da resposta e fraco para ensinar um julgamento.

Write a changelog entry for the commit below.

Example:
Commit: "fix: retry webhook delivery on 5xx"
Entry: "Fixed: webhooks are now retried when your server returns a 5xx error."

Commit: "{{commit_message}}"
Entry:

O risco é a imitação excessiva. Com um só exemplo, o modelo pode copiar o tamanho, a palavra inicial ou o assunto.

Prompting few-shot

Um prompt few-shot fornece vários exemplos, tipicamente de dois a cinco, para que o modelo infira o padrão pelo que eles têm em comum.

Rate the urgency of each message as low, medium, or high.

Message: "The export button is slightly misaligned." -> low
Message: "Checkout fails for all customers since 09:00." -> high
Message: "Can you add dark mode at some point?" -> low
Message: "Invoices for March show the wrong tax rate." -> medium
Message: "{{message}}" ->

O prompting few-shot é mais útil quando:

  • As categorias têm limites difusos, difíceis de descrever com regras.
  • Você precisa de uma voz, estilo ou nível de detalhe específicos.
  • A saída tem um formato próprio que o modelo viu pouco.

Como escolher bons exemplos

Cubra a variedade. Inclua cada rótulo ou caso pelo menos uma vez. Se todos os exemplos forem “high”, o modelo tende a “high”.

Inclua os casos difíceis. Um exemplo de caso óbvio ensina pouco. Os casos limítrofes, como a mensagem sobre a taxa de imposto acima, definem onde fica a linha.

Varie a superfície. Use comprimentos, assuntos e redações diferentes, para que o único ponto em comum entre os exemplos seja o padrão que importa.

Mantenha o formato idêntico. Mesmos delimitadores, mesma ordem, mesmo espaçamento em todos os exemplos. A formatação inconsistente é, ela mesma, um padrão, e o modelo vai captá-la.

Use dados reais. Exemplos tirados de entradas reais correspondem à distribuição que o prompt enfrentará.

Quantos exemplos

Comece com dois ou três. Acrescente mais só se um teste mostrar que a saída melhora. Cada exemplo custa tokens a cada chamada, então um prompt de dez exemplos executado um milhão de vezes é um item real na fatura. Para conjuntos longos de exemplos que nunca mudam, o cache de prompts do provedor reduz esse custo. Veja a otimização de tokens.

Quando os exemplos saem pela culatra

  • Efeitos de ordem. Os modelos podem dar mais peso aos últimos exemplos. Se os resultados tendem ao último rótulo, embaralhe os exemplos.
  • Desequilíbrio de rótulos. Três exemplos positivos e um negativo enviesam a saída para o positivo.
  • Vazamento de conteúdo. O modelo reutiliza nomes ou fatos dos exemplos na resposta. Diga que os exemplos servem só para o formato, ou use conteúdo claramente fictício.
  • Exemplos que contradizem as instruções. Se as regras dizem “uma frase” e um exemplo tem duas, o exemplo costuma prevalecer.

Zero-shot ou few-shot: uma regra de decisão

Situação Comece com
Tarefa comum, regras claras Zero-shot
O formato de saída vive mudando One-shot, ou um esquema
Os rótulos dependem de julgamento Few-shot
É preciso um estilo de escrita específico Few-shot
Problema de muito raciocínio Zero-shot com uma técnica de raciocínio

Para formatos rígidos, um esquema é mais confiável do que exemplos. Veja os prompts de saída estruturada. Em tarefas de raciocínio, exemplos só da resposta ajudam menos do que mostrar o raciocínio, que é a ideia por trás do prompting de cadeia de pensamento.

Separando os exemplos da entrada

Envolva os exemplos e a entrada real em delimitadores distintos para que o modelo não os confunda e para que o texto do usuário não se passe por um exemplo.

<examples>
...
</examples>

<input>
{{message}}
</input>

O analisador de prompts do PromptFlowEngine sinaliza variáveis de template sem delimitação, o erro mais comum em templates few-shot.