Técnicas

Prompting de cadeia de pensamento e autoconsistência

O prompting de cadeia de pensamento pede ao modelo que raciocine passo a passo antes de responder. Quando ajuda, quando os modelos de raciocínio o tornam desnecessário e a autoconsistência.

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

O prompting de cadeia de pensamento (CoT, de “chain-of-thought”) pede a um modelo que escreva seu raciocínio antes de dar uma resposta final. A ideia foi descrita por Wei e colegas no Google em 2022, que mostraram que exemplos resolvidos com passos intermediários melhoravam os resultados em problemas de aritmética e lógica.

Por que escrever os passos ajuda

Um modelo de linguagem produz um token por vez, condicionado a tudo o que veio antes. Se precisa responder de imediato, a resposta é prevista sem nenhum trabalho intermediário. Se primeiro escreve os passos, eles passam a fazer parte do contexto a partir do qual a resposta é prevista. Raciocinar na página é memória de trabalho.

Cadeia de pensamento zero-shot

A forma mais simples acrescenta uma instrução para raciocinar primeiro.

A warehouse ships 240 orders a day. 15% need gift wrap, which adds
4 minutes each. How many staff hours a day does gift wrap take?

Work through the problem step by step, then give the final answer
on its own line as "Answer: <number> hours".

Dois detalhes importam. Peça o raciocínio antes da resposta e dê à resposta um marcador fixo para que seu código a encontre.

Cadeia de pensamento few-shot

Aqui os exemplos mostram o raciocínio além do resultado, e o modelo imita o método.

Q: A plan costs $12 a month or $120 a year. How much does the yearly
plan save over 2 years?
Reasoning: Monthly for 2 years is 12 x 24 = $288. Yearly for 2 years
is 120 x 2 = $240. The difference is 288 - 240 = $48.
Answer: $48

Q: {{question}}
Reasoning:

Use quando a tarefa tiver um procedimento específico que você quer ver seguido.

Raciocínio estruturado

Para respostas que um código vai ler, separe o pensamento do resultado com tags ou campos.

Think through the eligibility rules inside <reasoning> tags.
Then give the decision inside <decision> tags as "approve" or "reject".

Em JSON, coloque o campo de raciocínio antes do campo de veredicto. Os campos são gerados em ordem, então um raciocínio que vem depois do veredicto não pode influenciá-lo. Veja os prompts de saída estruturada.

Os modelos de raciocínio mudam o conselho

Muitos modelos atuais raciocinam internamente antes de responder, muitas vezes sob uma configuração chamada thinking, reasoning effort ou extended thinking. Para esses modelos:

  • Não acrescente “pense passo a passo”. Eles já fazem isso, e a instrução pode alongar a saída sem melhorá-la.
  • Descreva o objetivo e as restrições e deixe o modelo escolher a abordagem.
  • Use o controle do provedor para definir quanto raciocínio gastar, em vez da redação do prompt.
  • Ainda peça uma breve justificativa na saída quando uma pessoa precisar conferir a resposta.

A cadeia de pensamento explícita continua útil com modelos menores e mais rápidos que não raciocinam internamente, e sempre que você precisar do raciocínio visível na resposta.

Quando a cadeia de pensamento ajuda e quando não

Tarefa Ajuda?
Aritmética ou lógica de vários passos Sim
Decisões com várias regras a aplicar Sim
Depuração: achar a causa a partir dos sintomas Sim
Classificação ou extração simples Raramente; acrescenta custo
Escrita criativa Não
Consulta de um fato em um texto fornecido Não

O custo é real: o raciocínio são tokens de saída, geralmente mais caros que os de entrada, e acrescentam latência.

Uma ressalva sobre explicações

O raciocínio escrito é um relato plausível, não um rastro garantido de como a resposta foi produzida. Um modelo pode chegar a uma conclusão e escrever uma justificativa que soa correta. Trate o raciocínio como algo a verificar, especialmente quando uma decisão afeta pessoas.

Autoconsistência

A autoconsistência, descrita por Wang e colegas em 2022, se baseia na cadeia de pensamento. Execute várias vezes o mesmo prompt de raciocínio com amostragem ativada, para que os caminhos difiram, e fique com a resposta final mais comum.

  1. Envie o prompt de CoT N vezes, por exemplo 5, com temperatura acima de zero.
  2. Extraia a resposta final de cada retorno.
  3. Retorne a resposta que aparece com mais frequência.

Caminhos de raciocínio diferentes cometem erros diferentes, mas os caminhos corretos tendem a concordar. A votação filtra o deslize ocasional.

Use quando o problema tiver uma resposta correta que possa ser comparada exatamente (um número, um rótulo, um sim ou não) e a precisão valer N vezes o custo.

Dispense quando as respostas forem texto livre que não pode ser votado, ou quando uma única chamada já for confiável. Se os votos se dividirem igualmente, trate isso como sinal de que a pergunta é ambígua ou o prompt está subespecificado.

Do raciocínio aos pipelines

Quando os passos de um problema são conhecidos de antemão, não peça a um prompt que raciocine por todos. Dê a cada passo o seu próprio prompt. Isso é encadeamento de prompts. Quando os passos dependem de informação que o modelo precisa buscar, combine raciocínio com ferramentas: isso é o prompting ReAct.

Verifique o prompt primeiro

O raciocínio não conserta uma pergunta obscura. Um prompt de CoT com objetivo vago ou regras conflitantes raciocina com cuidado rumo à resposta errada. Passe-o pelo analisador de prompts do PromptFlowEngine antes de gastar tokens com raciocínio.