Pular para o conteúdo
Categoria: Desenvolvendo com IA14 min de leitura

Chain-of-Thought: fazendo a IA pensar passo a passo

Por Schematize Blog ·

Aprenda a técnica Chain-of-Thought que faz o modelo raciocinar em etapas, por que ela funciona, quando usar zero-shot ou few-shot, como combinar com self-consistency e onde ela atrapalha.

Quando você pede a um modelo de linguagem para resolver um problema de matemática ou uma lógica de várias etapas, é comum receber uma resposta errada dita com total confiança. A técnica de Chain-of-Thought (CoT), ou "cadeia de pensamento", muda isso ao instruir o modelo a expor o raciocínio passo a passo antes de concluir. Neste artigo você vai entender por que isso funciona, como aplicar na prática, quando vale a pena e quando, na verdade, atrapalha.

O que é Chain-of-Thought

Chain-of-Thought é uma técnica de prompting em que você incentiva o modelo a gerar uma sequência de passos intermediários de raciocínio antes de dar a resposta final. Em vez de pular direto para o resultado, o modelo "pensa em voz alta", decompondo o problema em partes menores.

A ideia foi formalizada por Wei e colegas (2022), que mostraram que simplesmente fornecer exemplos com raciocínio explícito faz modelos grandes resolverem tarefas que antes erravam de forma sistemática. O ganho aparece principalmente em problemas de aritmética, raciocínio simbólico e bom senso (commonsense).

Para entender por que isso é relevante, vale lembrar como esses sistemas funcionam por dentro. Se você ainda tem dúvidas sobre os fundamentos, comece por O que é um LLM (Large Language Model)?, porque o CoT explora justamente a forma como o modelo gera texto token a token.

Uma analogia simples

Imagine pedir a alguém para multiplicar 47 por 89 de cabeça e responder imediatamente. A chance de erro é alta. Agora dê papel e caneta: a pessoa quebra a conta em passos (47 × 80, 47 × 9, soma) e acerta com facilidade. O Chain-of-Thought é o papel e a caneta do modelo: ele transforma uma resposta "de cabeça" em um cálculo desenvolvido, com cada etapa visível e verificável.

Por que pular etapas leva a erros

Um LLM gera a resposta prevendo o próximo token com base nos anteriores. Quando você pede só o resultado final de um problema complexo, o modelo precisa "comprimir" todo o raciocínio em uma única passagem de geração, sem espaço para desenvolver os passos.

Isso causa dois problemas:

    Ao escrever o raciocínio, o modelo aloca mais tokens — e, portanto, mais computação — ao problema, e cada passo serve de contexto para o seguinte.

    Tokens como "tempo de pensar"

    Vale aprofundar a primeira razão, porque ela é contraintuitiva. Um Transformer faz uma quantidade fixa de computação por token gerado. Se a resposta sai em um único token ("30"), todo o raciocínio teve de caber naquele único passo de processamento. Ao gerar uma cadeia de raciocínio, o modelo cria uma sequência de tokens intermediários, e cada um deles carrega mais um "ciclo" de computação. Em outras palavras, escrever o raciocínio dá ao modelo literalmente mais tempo de processamento para chegar à resposta. Não é o texto em si que importa, e sim a computação extra que ele viabiliza.

    Por que os erros ficam auditáveis

    O segundo benefício é tão valioso quanto o primeiro, mas costuma ser subestimado: a auditabilidade. Quando o modelo só devolve "30", você não tem como saber se ele somou certo ou chegou ao número por sorte. Quando ele mostra "23 − 8 = 15; 15 + 15 = 30", qualquer pessoa — ou outro programa — consegue conferir cada passo e localizar exatamente onde um eventual erro entrou. Em aplicações sérias, essa rastreabilidade é o que permite confiar (com verificação) na saída do modelo, em vez de aceitá-la às cegas. É também o que torna possível construir verificadores automáticos que checam a coerência da cadeia.

    Como aplicar na prática

    A forma mais simples de ativar o Chain-of-Thought é incluir uma instrução explícita no prompt. A expressão clássica do paper de Wei e colegas (2022) é "vamos pensar passo a passo".

    Pergunta: Uma loja tinha 23 maçãs. Vendeu 8 pela manhã e
    recebeu mais 15 à tarde. Quantas maçãs tem agora?
    
    Pense passo a passo antes de responder.

    Com essa instrução, em vez de só "30", o modelo tende a produzir algo como:

    Passo 1: A loja começou com 23 maçãs.
    Passo 2: Vendeu 8 -> 23 - 8 = 15.
    Passo 3: Recebeu 15 -> 15 + 15 = 30.
    Resposta: 30 maçãs.

    Esse hábito de ser explícito sobre o que você quer é o coração de todo bom prompt. Vale revisar Prompt engineering para código: como pedir o que você precisa, porque as mesmas regras de clareza valem para CoT.

    Estruturando a saída para uso programático

    Em aplicações reais, você quase sempre precisa extrair a resposta final do meio do raciocínio. Para isso, peça um formato delimitado e previsível:

    Resolva o problema abaixo.
    
    Primeiro, escreva seu raciocínio sob o título "Raciocínio:".
    Depois, em uma linha separada, escreva apenas a resposta final
    sob o título "Resposta:".
    
    Problema: {problema}

    Com um separador claro como Resposta:, seu código pode cortar a string nesse marcador e capturar só o resultado, descartando o raciocínio (ou guardando-o em log para auditoria). Sem essa estrutura, você acaba escrevendo parsers frágeis que quebram quando o modelo varia o formato.

    Zero-shot vs. few-shot CoT

    Existem duas formas principais de eliciar a cadeia de pensamento:

      O few-shot costuma dar resultados mais consistentes em tarefas difíceis, porque o modelo imita a estrutura dos exemplos. O zero-shot é mais barato e rápido de escrever, ideal para prototipagem.

      Exemplo:
      Pergunta: Tenho 3 caixas com 4 ovos cada. Quantos ovos no total?
      Raciocínio: 3 caixas x 4 ovos = 12 ovos.
      Resposta: 12.
      
      Agora resolva:
      Pergunta: Tenho 5 sacolas com 6 laranjas cada. Quantas laranjas?
      Raciocínio:

      Quando escolher cada um

      Use zero-shot CoT quando: você está prototipando, o orçamento de tokens é apertado, ou a tarefa é razoavelmente simples e só precisa de um empurrão para o modelo não pular etapas.

      Prefira few-shot CoT quando: a tarefa tem um formato de raciocínio específico que você quer ensinar (por exemplo, um método de cálculo da sua empresa), os resultados zero-shot estão inconsistentes, ou você precisa que a saída siga uma estrutura rígida. O custo é maior — cada exemplo ocupa espaço no contexto e em cada chamada —, mas a consistência compensa em tarefas críticas. A qualidade dos exemplos importa mais que a quantidade: dois ou três exemplos bem escolhidos costumam bastar.

      Onde o CoT brilha (e onde não ajuda)

      O Chain-of-Thought traz ganho real quando a tarefa exige múltiplas etapas de inferência:

        Por outro lado, em tarefas triviais o CoT pode ser contraproducente: adiciona latência, consome tokens e às vezes introduz divagações. Pedir raciocínio passo a passo para "qual a capital da França?" só desperdiça recurso. A regra prática: use CoT quando a resposta exigir mais de um salto de raciocínio.

        O custo escondido: latência e tokens

        Vale quantificar o trade-off. Uma resposta com CoT pode gerar de 5 a 20 vezes mais tokens que a resposta direta. Isso impacta três coisas: o custo (você paga por tokens gerados), a latência (mais tokens demoram mais para sair) e, em produtos com streaming, a experiência do usuário, que espera mais para ver a conclusão. Por isso muitas aplicações escondem o raciocínio do usuário final e mostram só a resposta — preservando o ganho de qualidade sem expor a "lentidão" do pensamento.

        CoT e a engenharia de contexto

        O Chain-of-Thought não vive isolado. Ele é uma peça dentro de um conjunto maior de decisões sobre o que entra na janela de contexto do modelo: instruções, exemplos, dados recuperados e o próprio histórico do raciocínio.

        Essa visão mais ampla é tratada em Engenharia de contexto: o novo prompt engineering, que mostra como organizar tudo o que o modelo "vê". Pensar no CoT como parte do contexto ajuda a decidir quanto espaço dedicar ao raciocínio versus a outras informações.

        Uma técnica complementar é a self-consistency: você gera várias cadeias de raciocínio diferentes para a mesma pergunta e escolhe a resposta mais frequente. Isso reduz o impacto de um caminho de raciocínio que deu errado.

        Self-consistency em detalhe

        A self-consistency, proposta por Wang e colegas (2023), parte de uma observação simples: para um problema com resposta única, existem muitos caminhos de raciocínio válidos que levam a ela, mas os caminhos errados tendem a errar de formas diferentes entre si. Então, se você gerar, digamos, dez cadeias de raciocínio com temperatura alta (para introduzir variação) e fizer uma "votação" sobre a resposta final, a resposta correta tende a ser a mais votada.

        1. Gere 10 respostas com CoT, usando temperature ~0.7.
        2. Extraia a resposta final de cada uma.
        3. Conte a frequência de cada resposta.
        4. Devolva a resposta mais frequente (voto majoritário).

        O custo é dez vezes maior, então a self-consistency se justifica em tarefas de alto valor onde o erro sai caro — não no fluxo cotidiano. É um exemplo clássico de trocar computação por confiabilidade.

        Do raciocínio à ação: o caminho para agentes

        O CoT trata de raciocinar, mas modelos modernos também precisam agir — consultar uma API, rodar uma busca, ler um arquivo. É aí que entra uma evolução natural da ideia.

        O trabalho de Yao e colegas (2023) propôs o padrão ReAct, que intercala passos de raciocínio (reasoning) com passos de ação (acting). Em vez de só pensar, o modelo decide pensar, executar uma ferramenta, observar o resultado e pensar de novo. Esse ciclo é a base de boa parte dos agentes atuais, e você encontra a explicação detalhada em O padrão ReAct: raciocínio e ação em agentes de IA.

        A ligação é direta: o Chain-of-Thought é o "R" do ReAct. Dominar a cadeia de pensamento é pré-requisito para construir agentes que tomam decisões confiáveis.

        CoT e os modelos de raciocínio

        Vale notar uma evolução recente. Uma geração de modelos passou a ser treinada especificamente para raciocinar antes de responder, produzindo internamente uma longa cadeia de pensamento sem que você precise pedir. Nesses modelos, o CoT deixa de ser uma técnica de prompt e vira um comportamento embutido. Mesmo assim, entender o princípio continua essencial: ajuda a saber quando um problema se beneficia de raciocínio explícito, como estruturar a tarefa para facilitá-lo e como interpretar o que o modelo produz.

        Variações e técnicas relacionadas

        O Chain-of-Thought abriu uma família de técnicas que valem o seu conhecimento, porque cada uma resolve uma limitação específica:

          Não é preciso dominar todas de uma vez. O importante é entender o princípio comum: dar ao modelo mais estrutura e mais computação para problemas que não cabem em uma única passagem de geração.

          Um exemplo prático de aplicação real

          Suponha um classificador de tickets de suporte que precisa decidir a prioridade de um chamado. Sem CoT, o modelo "chuta" um rótulo. Com CoT estruturado, a decisão fica auditável:

          Classifique a prioridade do ticket abaixo (baixa, média, alta, crítica).
          
          Raciocine assim, em ordem:
          1. Há perda de dados ou indisponibilidade total? (se sim → crítica)
          2. Quantos usuários são afetados?
          3. Existe contorno (workaround) disponível?
          4. Conclua a prioridade com base nos itens acima.
          
          Ticket: "O login está fora para todos os clientes desde as 9h."
          
          Raciocínio:

          Repare que o prompt impõe a estrutura do raciocínio. Isso reduz a variância das decisões e gera um rastro que um humano pode revisar — valioso quando a classificação tem consequências reais.

          Depurando um CoT que falha

          Nem sempre o Chain-of-Thought resolve de primeira. Quando o modelo continua errando mesmo com raciocínio explícito, vale diagnosticar onde a cadeia quebra:

            A lição é tratar o prompt como código: observe o comportamento, forme uma hipótese sobre a causa, faça uma mudança por vez e meça o efeito.

            Boas práticas ao usar Chain-of-Thought

            Para extrair o máximo da técnica sem cair em armadilhas:

              Perguntas frequentes

              CoT garante respostas corretas? Não. Ele aumenta significativamente a taxa de acerto em tarefas de múltiplas etapas, mas o modelo ainda pode errar — e às vezes apresenta um raciocínio coerente que leva a uma conclusão errada. Trate o CoT como uma melhoria estatística, não uma garantia.

              Posso usar CoT com qualquer modelo? O benefício foi observado principalmente em modelos grandes. Em modelos pequenos, pedir raciocínio passo a passo pode ajudar pouco ou até atrapalhar, pois eles têm menos capacidade de manter coerência ao longo da cadeia.

              CoT aumenta o custo? Sim, porque gera muito mais tokens. Avalie se o ganho de qualidade compensa o custo e a latência extras no seu caso específico.

              Qual a diferença entre CoT e self-consistency? CoT gera uma única cadeia de raciocínio. Self-consistency gera várias cadeias e escolhe a resposta mais frequente, trocando mais computação por mais confiabilidade.

              Conclusão

              Chain-of-Thought é uma das técnicas mais simples e eficazes de prompting: ao pedir que o modelo exponha o raciocínio passo a passo, você dá a ele mais espaço de computação e torna os erros visíveis e auditáveis. Funciona especialmente bem em tarefas de várias etapas, pode ser aplicado em modo zero-shot ou few-shot e serve de base para padrões mais avançados como ReAct e self-consistency. Use com critério: reserve o raciocínio explícito para problemas que realmente exigem múltiplos saltos de inferência, estruture a saída para extração fácil, fique atento ao custo em tokens e meça o ganho no seu contexto antes de adotá-lo em todo lugar.

              Referências

                Leituras relacionadas

                Nenhum comentário ainda

                Seja o primeiro a comentar.

                Deixe seu comentário

                Entre com sua conta Canverly para comentar. Você pode usar a mesma conta em qualquer site da rede.

                Entrar com Canverly