Solicitação com cadeia de pensamento
Obtenha um raciocínio passo a passo.
Solicitação com cadeia de pensamento é uma aula grátis de AI Prompt Engineering no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Prompt Engineering, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Prompt Engineering inclui 4 aulas no total.
Raciocínio como Orçamento de Tokens
A cadeia de raciocínio (CoT) na solicitação induz etapas intermediárias de raciocínio antes do answer final. A ideia central é que os transformadores executam uma quantidade fixa de computação por token; portanto, permitir que o modelo gere tokens de raciocínio efetivamente lhe concede mais computação sequencial para chegar ao answer.
Forçar uma resposta imediata limita a computação disponível para um problema difícil; a CoT remove esse limite distribuindo a computação pelos tokens gerados.
# Direct: model must compute everything before the first token
DIRECT = 'Q: ' + q + '\nA:'
# CoT: model can use tokens as scratch space
COT = 'Q: ' + q + '\nA: Let us reason step by step.'CoT sem Exemplos
A famosa frase-gatilho «Vamos pensar passo a passo» (Kojima et al., 2022) induz o raciocínio com nenhum exemplo. Isso funciona porque os modelos ajustados por instruções internalizaram o padrão segundo o qual essa frase precede uma solução desenvolvida.
A CoT sem exemplos é barata e surpreendentemente eficaz, mas sua qualidade de raciocínio é menos controlável do que a CoT com poucos exemplos e exemplos cuidadosamente selecionados.
def zero_shot_cot(question):
stage1 = llm('Q: ' + question + '\nA: Let us think step by step.')
# Extract the final answer in a second, constrained call
stage2 = llm(stage1 + '\nTherefore, the final answer is:')
return parse_answer(stage2)CoT com Poucos Exemplos
A CoT com poucos exemplos (Wei et al., 2022) fornece exemplos que incluem a cadeia de raciocínio, não apenas a resposta. Isso ensina tanto como raciocinar quanto o formato desejado, produzindo cadeias mais confiáveis e consistentes do que a abordagem sem exemplos.
Selecione exemplos cujo estilo, nível de detalhamento e extensão do raciocínio correspondam ao que deseja que seja reproduzido. Um raciocínio inconsistente nos exemplos produz cadeias inconsistentes.
FS_COT = (
'Q: Roger has 5 balls, buys 2 cans of 3. How many balls?\n'
'A: 5 + 2*3 = 5 + 6 = 11. The answer is 11.\n\n'
'Q: ' + question + '\nA:'
)Separando o Raciocínio do answer
Torne sempre o answer final extraível por máquina: encerre a cadeia com um marcador fixo (por exemplo, answer: X ou um campo JSON). Analisar cadeias de formato livre é uma abordagem frágil.
Em produtos voltados aos usuários, será possível ocultar a cadeia e exibir apenas o answer analisado, mantendo o raciocínio como um bloco de notas interno.
import re
def extract(chain):
m = re.search(r'[Tt]he answer is\s*(.+?)[.\n]', chain)
if not m:
raise ValueError('no answer marker found')
return m.group(1).strip()A Fidelidade Não é Garantida
Uma ressalva crítica: a cadeia verbalizada pode não refletir a computação real do modelo. Estudos mostram que os modelos podem produzir um raciocínio plausível que racionaliza posteriormente um answer determinado por vieses ocultos (por exemplo, a posição de uma opção).
Não trate a CoT como uma explicação fiel ou uma trilha de auditoria. Ela melhora a acurácia em muitas tarefas, mas não é uma janela para o mecanismo real do modelo.
# Faithfulness probe: perturb an irrelevant cue (e.g., always make
# option A correct in the few-shot). If the chain still 'justifies'
# choosing A, the stated reasoning is unfaithful to the real cause.Configurações de Decodificação para CoT
Para uma única cadeia determinística, uma temperatura baixa reduz a variância. No entanto, a CoT combina-se muito bem com a amostragem: em uma temperatura moderada, será possível gerar várias cadeias diversificadas e agregá-las (tema abordado em autoconsistência).
Evite a decodificação gulosa quando pretender amostrar vários caminhos; a abordagem gulosa elimina a diversidade e impede a agregação.
single = llm(COT, temperature=0.0) # one stable chain
paths = [llm(COT, temperature=0.7) for _ in range(10)] # diverseRaciocínio Estruturado e Tabular
Para problemas complexos, imponha estrutura à cadeia: etapas numeradas, uma tabela de estados ou uma divisão entre planejar e executar. A estrutura reduz etapas puladas e torna o estado intermediário verificável.
As abordagens auxiliadas por programas vão além, gerando código executável como raciocínio e transferindo a aritmética para um interpretador, eliminando toda uma classe de erros de computação.
PAL = (
'Solve by writing Python. Q: ' + q + '\n'
'A:\ndef solve():\n'
' # the model writes code here, then we exec() it\n'
)
# Offload arithmetic to a deterministic interpreterComprimento, Custo e Latência
A CoT multiplica os tokens de saída, aumentando o custo e a latência. Para itens fáceis, essa sobrecarga não traz benefícios; para itens difíceis, ela é essencial. Um padrão pragmático é o raciocínio adaptive: acione a CoT apenas quando uma estimativa barata de dificuldade ou um answer direto de baixa confiança justificar isso.
Em modelos de raciocínio com pensamento integrado, controle um orçamento de esforço de raciocínio em vez de solicitar a cadeia diretamente.
def adaptive(question):
direct = llm('Q: ' + question + '\nA (answer only):', temperature=0)
if confidence(direct) > 0.85:
return direct
return zero_shot_cot(question) # escalate to reasoning only if neededCoT em Modelos Nativos de Raciocínio
Os modelos modernos de raciocínio realizam automaticamente uma deliberação interna prolongada. Preenchê-los com instruções detalhadas como «Vamos pensar passo a passo» pode ser redundante ou até contraproducente, interferindo no processo de raciocínio para o qual foram treinados.
Para esses modelos, prefira enunciados concisos da tarefa e requisitos explícitos de formato do answer, e ajuste o parâmetro de esforço de raciocínio em vez de criar cadeias manualmente.
# Reasoning-native model: let it think, just constrain the output
resp = reasoning_model(
prompt=question,
reasoning_effort='medium',
output_format='Final answer on the last line as: ANSWER=<x>'
)Quando CoT sai pela culatra
CoT pode prejudicar tarefas em que a deliberação se sobrepõe à intuição correta, em tarefas simples de reconhecimento de padrões ou quando a verbalização introduz erros que o modelo não cometeria implicitamente. Ela também amplia a superfície de ataque para injeções de comandos dentro de cadeias longas.
Avalie CoT em comparação com respostas diretas para cada tarefa; nunca presuma que instruções de raciocínio sejam universalmente benéficas.
def should_use_cot(task_acc_cot, task_acc_direct, cot_cost_mult):
gain = task_acc_cot - task_acc_direct
# Only adopt CoT if accuracy gain justifies the token multiplier
return gain > MIN_GAIN and gain / cot_cost_mult > MIN_EFFICIENCYColocando CoT em produção
CoT em produção: selecione exemplos consistentes (ou dependa do raciocínio nativo do modelo), imponha um marcador de resposta que possa ser interpretado automaticamente, amostre várias cadeias para itens difíceis, valide a aritmética por meio da execução de código sempre que possível e condicione o raciocínio a uma estimativa de dificuldade para controlar os custos.
Registre as cadeias para análise offline, mas nunca as exponha como explicações de referência.
def production_solve(q):
if easy(q):
return extract(llm(DIRECT_PROMPT.format(q=q), temperature=0))
chains = [llm(FS_COT.format(q=q), temperature=0.7) for _ in range(8)]
return majority_vote([extract(c) for c in chains])Verificação rápida
Analise por que CoT ajuda e em que situações não ajuda.
Resumo
Principais conclusões:
- CoT troca tokens adicionais por computação serial adicional; ajuda em tarefas com várias etapas, não em tarefas triviais.
- CoT sem exemplos usa uma frase de acionamento; CoT com poucas amostras fornece exemplos consistentes de raciocínio.
- Encerre sempre com um marcador de resposta que possa ser extraído automaticamente; as cadeias não são explicações fiéis.
- Amostre várias cadeias para itens difíceis, delegue a aritmética ao código e condicione CoT à dificuldade.
- Em modelos nativos de raciocínio, prefira instruções concisas com um orçamento de esforço de raciocínio a instruções verbosas sobre cadeias.
Perguntas Frequentes
A aula “Solicitação com cadeia de pensamento” é grátis?
Sim — o texto completo de “Solicitação com cadeia de pensamento” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Prompt Engineering, atualize para CoddyKit PRO. O curso de AI Prompt Engineering inclui 4 aulas no total.
O que vou aprender em “Solicitação com cadeia de pensamento”?
Obtenha um raciocínio passo a passo. Você pratica AI Prompt Engineering com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Prompt Engineering?
Nenhuma experiência prévia é necessária. AI Prompt Engineering no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Solicitação com cadeia de pensamento”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Prompt Engineering?
Sim. Cada aula de AI Prompt Engineering inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Solicitação com cadeia de pensamento
- Amostragem de autoconsistência
- Exploração em árvore de pensamentos
- Quando as solicitações de raciocínio ajudam