antonio leandro

ia generativa

Self-Consistency Improves Chain of Thought Reasoning in Language Models

paper · Wang, Xuezhi, Wei, Jason, Schuurmans, Dale, Le, Quoc, Chi, Ed, Narang, Sharan, Chowdhery, Aakanksha, Zhou, Denny · · ~63 min de leitura do original

a tese

amostrar quarenta cadeias de raciocínio e ficar com a resposta que mais se repete bate decodificar uma cadeia só: +17,9 pontos no gsm8k, sem treinar, sem anotar, sem verificador

o que fica

  1. Caminhos de raciocínio errados discordam entre si, enquanto os certos convergem para a mesma resposta — é isso que faz o voto majoritário funcionar como verificador de graça.
  2. A probabilidade que o modelo atribui a cada cadeia quase não separa acerto de erro: ponderar o voto por ela dá 74,1 no GSM8K contra 74,4 do voto simples, e essa má calibração é a razão de trabalhos anteriores treinarem re-rankers.
  3. Beam search piora o resultado porque suprime diversidade, e diversidade é o insumo do método: na AQuA com UL2-20B, a acurácia do beam search cai de 23,6 para 10,2 conforme o número de beams cresce.
  4. O ganho escala com o modelo: +3 a 6 pontos absolutos no UL2-20B contra +17,9 no PaLM-540B e no code-davinci-002.
  5. A taxa de concordância entre os caminhos amostrados correlaciona com a acurácia, o que dá uma estimativa de confiança sem treinar nada.
  6. O método só se aplica quando a resposta final vem de um conjunto fixo — para texto aberto seria preciso antes definir o que significa duas gerações concordarem.

o problema

O chain-of-thought resolveu metade do problema: fez o modelo escrever os passos intermediários antes da resposta, e isso sozinho destravou aritmética e senso comum em modelos grandes. A outra metade ficou de pé. A decodificação continuava gulosa — um único caminho, montado token a token por escolha local. Se o modelo erra uma subtração no terceiro passo, não existe mecanismo de recuperação: o erro se propaga até “The answer is” e a resposta sai errada com uma justificativa impecável em volta.

A saída conhecida na época era cara. Cobbe et al. treinaram um verificador de 175 bilhões de parâmetros para ranquear soluções de um GPT-3 de 175 bilhões já ajustado com 7.500 exemplos. Thoppilan et al. coletaram anotação humana adicional para treinar um re-ranker. Ambos os caminhos exigem dado rotulado, treino extra e um modelo auxiliar por tarefa. A pergunta que este trabalho faz é se dá para extrair o mesmo sinal do próprio modelo, sem nada disso.

a ideia

Um problema que exige deliberação costuma admitir várias rotas até a mesma resposta certa. Uma rota errada, por outro lado, erra do seu jeito particular. Então: em vez de decodificar o caminho mais provável, amostre vários caminhos diferentes, jogue fora o raciocínio e conte as respostas. A que aparecer mais vezes vence.

O nome que os autores dão é self-ensemble, e a distinção importa. Um ensemble clássico treina modelos diferentes e agrega. Aqui é o mesmo modelo, o mesmo prompt, consultado várias vezes com temperatura. O raciocínio vira variável latente: ele existe para produzir a resposta e depois é marginalizado.

como funciona

Três passos. Primeiro, prompt few-shot com exemplares de chain-of-thought escritos à mão — os mesmos oito de Wei et al. para as tarefas aritméticas. Segundo, trocar greedy por amostragem: T = 0,5 com top-k = 40 para UL2-20B e LaMDA-137B, T = 0,7 com k = 40 para PaLM-540B, T = 0,7 sem truncamento para o GPT-3. Quarenta amostras por questão. Terceiro, um parser dependente da tarefa extrai o que vem depois de “The answer is” e o argmax da contagem devolve a resposta.

A tabela 1 do paper testa se vale ponderar o voto pela probabilidade da geração. A soma ponderada normalizada pelo comprimento chega a 74,1 no GSM8K; o voto simples, 74,4. Empate. A soma não normalizada cai para 59,9, e a média ponderada normalizada desaba para 22,1. Ou seja: a única variante que sobrevive é a mais burra.

Nos números principais, PaLM-540B vai de 56,5 para 74,4 no GSM8K, e code-davinci-002 de 60,1 para 78,0 — os dois +17,9. SVAMP +11,0, AQuA +12,2, StrategyQA +6,4, ARC-challenge +3,9. Também funciona com zero-shot CoT: 43,0 para 69,2 no PaLM.

o que isso custou

Quarenta forward passes completos por pergunta. Os próprios autores recomendam começar com 5 ou 10 caminhos, porque a curva satura rápido e a maior parte do ganho já está ali.

O método exige conjunto de respostas fixo. Aritmética, múltipla escolha e sim/não entram; geração aberta não, a menos que alguém defina uma métrica de concordância entre textos.

E o limite mais desconfortável: o raciocínio amostrado pode ser lixo mesmo quando a resposta está certa. No exemplo de StrategyQA da tabela 4, o modelo cita populações de Albany que não conferem e mesmo assim conclui corretamente. A cadeia não é explicação auditável — é andaime. Modelos pequenos ganham pouco (UL2-20B sai de 4,1 para 7,3 no GSM8K), e prompts que produzem cadeias curtas ganham quase nada: com raciocínio em forma de equação, LaMDA-137B vai de 5,0 para 6,5, porque cadeia curta não tem onde variar.

onde isso aparece hoje

Amostrar k respostas e votar virou linha de base padrão em avaliação de raciocínio. A generalização estrutural veio na Tree of Thoughts, que troca o conjunto plano de caminhos independentes por uma busca com ramificação e poda.

O eixo maior é outro: este é um dos primeiros resultados a mostrar que gastar compute na hora da inferência compra acurácia sem tocar nos pesos — ideia depois estudada de frente em Scaling LLM Test-Time Compute e materializada nos modelos que raciocinam longamente antes de responder, como o DeepSeek-R1. A própria seção de trabalhos futuros aponta para lá ao sugerir usar self-consistency para gerar dados de treino melhores e internalizar o ganho num único passe.

lido na íntegra por pipeline de llm, revisado por antonio leandro antes de publicar ·