Graph of Thoughts (PT)
Graph-of-Thoughts (GoT) — é um conceito na área de trabalho com grandes modelos de linguagem (LLM, Large Language Models), que propõe a representação do processo de raciocínio de um modelo como um grafo arbitrário de "pensamentos" interconectados (passos intermediários da solução)[1]. Esta abordagem foi proposta por um grupo de pesquisadores liderado por Maciej Besta da ETH Zurich e publicada em 2024 na conferência AAAI[2]. O objetivo do Graph-of-Thoughts é expandir as capacidades da engenharia de prompts (prompt engineering) para além dos esquemas existentes, como Chain-of-Thought (cadeia de pensamentos) e Tree-of-Thoughts (árvore de pensamentos)[1]. Diferentemente deles, a abordagem GoT permite que qualquer fragmento de raciocínio gerado pelo modelo (um pensamento) se refira a qualquer outro, formando uma rede de ideias em vez de uma estrutura estritamente linear ou arbórea[3]. Isso, segundo os autores, reflete com mais precisão a natureza complexa e não linear do pensamento humano e potencialmente aproxima o mecanismo de raciocínio dos LLMs do funcionamento do cérebro humano (com suas conexões neurais recorrentes)[1][1].
Graph-of-Thoughts é um framework de prompting (método de formulação de prompts), ou seja, não exige treinamento adicional ou ajuste fino (fine-tuning) do modelo em si — em vez disso, ele organiza o diálogo com o LLM de uma maneira específica, guiando o modelo através de uma série de passos-"pensamentos" conectados em um esquema de grafo[1]. Essa estrutura permite combinar e reutilizar diferentes ramos de raciocínio: por exemplo, o modelo pode considerar várias hipóteses ou partes de um problema em paralelo e, em seguida, unir as mais bem-sucedidas em uma única solução[1]. Em um estilo enciclopédico, o Graph-of-Thoughts pode ser definido como uma generalização das estratégias anteriores de raciocínio estruturado com LLMs, oferecendo máxima flexibilidade na organização dos processos de pensamento dentro de uma única consulta complexa[1].
Pré-requisitos: Chain-of-Thought e Tree-of-Thoughts
A abordagem fundamental é o Chain-of-Thought (CoT) – "cadeia de pensamentos". No método CoT, o usuário é incentivado a incluir no prompt para o modelo não apenas a declaração do problema, mas também os passos intermediários do raciocínio que levam à resposta[1]. Pesquisas mostraram que essa forma de apresentar o material melhora significativamente a capacidade dos LLMs de resolver tarefas complexas, como problemas matemáticos ou quebra-cabeças lógicos, e isso sem alterar os parâmetros do próprio modelo[1]. Na prática, o CoT incentiva o modelo a decompor um problema complexo em etapas mais simples, imitando um fluxo de pensamento sequencial.
Uma evolução dessa ideia foi a técnica de Self-Consistency: em vez de uma única cadeia de pensamentos, várias cadeias independentes são geradas, e a mais convincente delas é selecionada[1]. Isso permite que o modelo considere diferentes abordagens para a solução e reduz o risco de obter uma resposta errada ao seguir uma única linha de raciocínio incorreta. No entanto, mesmo múltiplas cadeias CoT não oferecem a possibilidade de "unir ideias": cada cadeia é tratada isoladamente, e o modelo apenas escolhe a melhor, sem combinar seus conteúdos.
Para superar essa limitação, foi proposto o esquema Tree-of-Thoughts (ToT) – "árvore de pensamentos"[1]. No ToT, o processo de raciocínio é organizado como uma árvore: em cada ponto, o modelo pode gerar várias opções para o desenvolvimento do pensamento (ramificações), após as quais esses estados intermediários são avaliados e os mais promissores são selecionados para aprofundamento[1]. Usando a busca em árvore (por exemplo, busca em largura — BFS, ou busca em profundidade – DFS) e a capacidade de retroceder aos nós e desenvolver outro ramo, o Tree-of-Thoughts oferece ao modelo de linguagem um mecanismo mais poderoso para resolver problemas complexos do que o CoT linear[1]. Novas possibilidades surgem, como retrocesso e revisão: se um ramo leva a um beco sem saída, é possível retornar a um nó anterior e tentar um caminho diferente[1]. Essa metodologia provou sua eficácia na resolução de problemas lógicos e de busca, onde a exploração de variantes e o planejamento desempenham um papel importante.
No entanto, a árvore de pensamentos também impõe restrições rígidas: cada pensamento (nó da árvore) pertence a apenas um ramo, a interação ocorre apenas entre nós pais e filhos, e diferentes ramos não podem se fundir ou trocar informações[3]. Em outras palavras, a troca cruzada de ideias (cross-pollination) entre diferentes hipóteses dentro de uma única solução é dificultada: os ramos da árvore se desenvolvem de forma independente e se unem apenas na raiz, quando a melhor cadeia de raciocínio é selecionada[3]. No pensamento criativo ou analítico real, no entanto, uma pessoa frequentemente retorna a uma ideia considerada anteriormente e a combina com outro ramo de raciocínio. Esse entrelaçamento de pensamentos vai além da estrutura de uma árvore[1].
Essas observações levaram os pesquisadores à ideia de uma estrutura mais flexível – um grafo, onde as conexões entre os pensamentos não são limitadas e podem formar uma rede complexa. Como observado em uma revisão analítica de 2024, o surgimento de cadeias, árvores e grafos de pensamentos reflete o surgimento de uma nova classe de métodos capazes de aprimorar significativamente as capacidades dos LLMs por meio da estruturação explícita do processo de raciocínio[4]. Em particular, prompts estruturados permitiram melhorar significativamente os resultados dos LLMs em muitas áreas — desde a resolução de problemas matemáticos e quebra-cabeças lógicos até o planejamento e até mesmo a escrita criativa[4]. Foi nesse contexto geral que o esquema Graph-of-Thoughts surgiu como o próximo passo no desenvolvimento de métodos de prompting estruturado.
O Conceito de Graph-of-Thoughts: Estrutura de Grafo dos Pensamentos
O Graph-of-Thoughts propõe representar o processo de execução de tarefas por um modelo de linguagem como um grafo direcionado arbitrário. Formalmente, um grafo de pensamentos no GoT é um conjunto de vértices (pensamentos) e arestas (dependências entre pensamentos)[1]. O vértice do grafo é um pensamento individual do modelo – este termo se refere a qualquer unidade de conteúdo significativa, dependente do contexto da tarefa: pode ser uma afirmação, um passo da solução, um fragmento de texto, um parágrafo, um bloco de código, etc., formado pelo modelo em resposta a um prompt[1][1]. Uma aresta entre vértices significa que um pensamento foi usado para gerar outro — ou seja, o prompt indica explicitamente que o modelo deve se basear em um resultado anterior específico para obter um novo[1]. Assim, as arestas registram dependências: de quais dados obtidos anteriormente o passo atual do raciocínio depende.
A diferença mais importante do GoT em relação a estruturas mais simples é a possibilidade de agregação e fusão de pensamentos. Em um grafo, é permitido que um vértice (um novo pensamento) tenha múltiplos predecessores[1]. Isso corresponde a uma situação em que duas ou mais cadeias de raciocínio separadas são combinadas: o modelo recebe como entrada vários fragmentos gerados anteriormente e, com base neles, forma uma saída sintetizada[1]. Por exemplo, ao resolver um problema, o modelo pode considerar duas hipóteses em paralelo e, em seguida, criar um novo pensamento que combina os pontos positivos de ambas as hipóteses e elimina suas desvantagens[1][1]. Tais operações de agregação eram impossíveis dentro do esquema de árvore (onde cada nó tem apenas um pai), mas são naturalmente implementadas em um grafo[1]. Além da fusão de ideias, o grafo também permite a introdução de laços de feedback (feedback loops): em princípio, a estrutura do GoT não proíbe ciclos, o que significa que o modelo pode retornar um resultado a um estágio anterior do raciocínio para reprocessamento ou refinamento[1]. Os autores associam isso a uma analogia com as conexões recorrentes nas redes neurais do cérebro, onde a saída de um grupo de neurônios pode influenciar de volta as camadas anteriores, formando circuitos fechados de reflexão[1].
Na prática, a implementação do Graph-of-Thoughts requer uma organização especial do diálogo com o modelo. Os pesquisadores desenvolveram um framework de arquitetura modular para o GoT[1]. Ele distingue componentes para: (1) controle fino sobre os passos individuais (pensamentos) — um "controlador" gerencia a ordem e a lógica da geração de pensamentos; (2) formação dinâmica de prompts – para cada passo, um módulo especial forma um prompt com base no contexto atual e nos vértices selecionados do grafo (predecessores); (3) análise (parsing) e avaliação das respostas do modelo — os fragmentos recebidos do LLM são analisados e avaliados quanto à qualidade, utilidade ou conformidade com os critérios da tarefa[5]. A arquitetura do GoT permite, assim, construir um grafo de raciocínio de forma interativa: após cada passo, é tomada uma decisão sobre quais novos vértices adicionar, como conectá-los aos anteriores, e quais ramos continuar ou unir. Graças à sua modularidade, tal framework pode ser estendido com novos tipos de "transformações de pensamentos" (por exemplo, operações especiais com o grafo) e adaptado para diferentes modelos (os autores testaram com sucesso o GoT com LLMs das famílias GPT-3.5, GPT-4, LLAMA 2, entre outros)[1]. Uma propriedade importante é que o GoT não requer a alteração dos parâmetros do próprio modelo de linguagem — todas as melhorias são alcançadas através de uma construção mais inteligente de prompts e do processamento das respostas[1]. Isso significa que os poderosos LLMs existentes podem ser usados "como estão", com o Graph-of-Thoughts atuando como uma camada superior que gerencia seu funcionamento.
Deve-se notar que o termo Graph-of-Thought também apareceu em outro desenvolvimento independente, distinto da abordagem de Besta e colegas. Em 2023, Yao Yao e coautores propuseram uma metodologia para melhorar o raciocínio (reasoning) em LLMs através de um módulo adicional codificador de grafo de pensamentos, o que exigia o retreinamento do modelo[6]. Seu trabalho, intitulado «Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models», descreve uma arquitetura de duas etapas: primeiro, é gerado um grafo de afirmações intermediárias interconectadas; em seguida, ele é transformado por um codificador especial e integrado ao modelo através de um mecanismo de fusão controlada (gated fusion)[6]. Essa abordagem híbrida com treinamento demonstrou algum aumento na precisão em tarefas como o conjunto de dados multimodal ScienceQA, onde a precisão aumentou de 85,2% para 87,6% ao usar o modelo T5-base[6]. No entanto, essa abordagem, embora semelhante em nome, é fundamentalmente diferente: ela requer modificação do modelo (fine-tuning) e não é um esquema de engenharia de prompts. Os autores da abordagem GoT original (AAAI 2024) afirmam explicitamente que não consideram o modelo de Yao et al. em seu trabalho, pois se concentram em métodos que não atualizam os parâmetros do LLM[1]. Portanto, Graph-of-Thoughts, no contexto desta revisão, é especificamente um framework no nível de prompts, e não uma modificação da arquitetura da rede neural.
Aplicação e resultados
Os autores do GoT demonstraram suas vantagens em uma série de tarefas difíceis de resolver com um único prompt direto (input-output prompting) ou mesmo com uma cadeia de pensamentos. Uma característica dessas tarefas é que elas podem ser decompostas em várias partes (subtarefas), resolvidas separadamente, e depois ter seus resultados parciais sintetizados em uma resposta completa[1]. Entre os exemplos considerados estão: ordenação de uma lista não ordenada, contagem de palavras-chave em um texto (por exemplo, para resumir um documento), execução de operações com conjuntos (união, interseção de listas, etc.), e fusão de documentos de texto (combinação de informações de várias fontes)[1]. Em todos esses casos, o Graph-of-Thoughts permite decompor a tarefa de forma natural. Por exemplo, para a ordenação, a lista é dividida em partes, cada parte é ordenada separadamente como um ramo de pensamentos independente, e depois os resultados são combinados (imitando um algoritmo como o merge sort); ou, na análise de textos, o modelo pode extrair informações de diferentes documentos em paralelo e, em seguida, consolidá-las.
Resultados experimentais confirmam a eficácia do esquema GoT. De acordo com o relatório de Besta e colegas, na tarefa de ordenação, o grafo de pensamentos permitiu um aumento significativo na qualidade da solução em comparação com abordagens anteriores[1]. A precisão da ordenação usando GoT foi 70% maior do que com uma simples cadeia de pensamentos (CoT) e 62% maior do que com a árvore de pensamentos (ToT)[1]. Ao mesmo tempo, o método reduz o custo de recursos computacionais: o número de chamadas ao modelo (e, consequentemente, o volume de tokens dos prompts) diminuiu em 31% em comparação com o Tree-of-Thoughts para a mesma tarefa[1]. Isso significa que a organização do raciocínio em grafo não apenas melhorou o resultado final, mas também tornou a solução mais econômica, evitando cálculos redundantes através da combinação inteligente de conclusões intermediárias. Ganhos semelhantes foram obtidos em outras tarefas de teste, especialmente aquelas que exigem a agregação de informações heterogêneas. Os pesquisadores observam que o GoT é mais eficaz especificamente para tarefas compostas, que consistem em vários elementos: «Graph-of-Thoughts é particularmente adequado para tarefas que se decompõem naturalmente em subtarefas menores, que podem ser resolvidas separadamente com a subsequente combinação dos resultados»[1]. Em tais casos, o grafo de pensamentos é capaz de abranger todos os aspectos do problema e sintetizar uma solução mais completa do que ao seguir uma única linha de raciocínio.
Para uma compreensão mais sutil de por que uma forma de construir um prompt é melhor que outra, o trabalho de 2024 propõe uma métrica especial – o "volume de um pensamento" (volume of a thought)[1]. O volume é definido para cada pensamento individual (vértice do grafo) como o número de outros pensamentos dos quais ele pode ser alcançado seguindo as arestas direcionadas (em termos simples, a quantos passos intermediários ele deve sua informação)[1]. Em uma Chain-of-Thought, qualquer pensamento se baseia em apenas um predecessor, então seu volume é 1 (uma cadeia linear). Em uma árvore de pensamentos, o volume pode ser maior, mas ainda é limitado pela estrutura de um ramo individual. Em um grafo, no entanto, graças à agregação, um único vértice pode acumular a contribuição de muitos outros — seu "volume" é significativamente maior[1]. Foi demonstrado que o GoT permite que as conclusões finais se baseiem em um volume consideravelmente maior de pensamentos anteriores, unindo seus conteúdos. Este fato reflete uma cobertura mais profunda do espaço de soluções e serve como uma explicação quantitativa das vantagens do raciocínio em grafo sobre esquemas mais simples.
Comparação e importância
Atualmente, o Graph-of-Thoughts representa a forma mais generalizada de prompting estruturado para LLMs. Em tabelas de comparação de diferentes esquemas (CoT, CoT com autocoerência, ToT e GoT), é destacado que apenas o GoT suporta uma topologia arbitrária do processo de pensamento[1]. Ele incorpora as capacidades de todas as abordagens anteriores: pode funcionar como uma única cadeia, como uma árvore com ramificações, e como uma combinação de múltiplas cadeias, se isso for adequado para resolver a tarefa[1]. O ponto principal é que não há restrições rígidas na conexão entre os passos, o que teoricamente torna o espaço de possíveis estratégias de raciocínio o mais amplo possível[1].
É importante entender que a flexibilidade do GoT vem ao custo de uma maior complexidade de controle. A implementação de um grafo de pensamentos requer um algoritmo orquestrador externo que decidirá quando e quais pensamentos gerar, quais selecionar ou combinar, quando parar o processo e fornecer uma resposta. Em um CoT simples, tais decisões não são necessárias — o modelo gera por si só um raciocínio linear até o fim. No ToT, parte do controle recai sobre o algoritmo de busca em árvore (por exemplo, a escolha do nó a ser expandido). No GoT, o grau de liberdade é maior, e a eficácia do método depende da qualidade das heurísticas que avaliam os resultados intermediários e da construção correta dos prompts em cada passo[1]. Assim, o Graph-of-Thoughts pode ser visto não apenas como um formato de prompt, mas como uma estrutura de raciocínio imposta ao processo de interação com um LLM — uma espécie de plano dinâmico segundo o qual o modelo resolve a tarefa, enquanto o usuário (ou um programa controlador) dirige esse processo.
O surgimento do Graph-of-Thoughts reflete o esforço para tornar o trabalho dos grandes modelos de linguagem mais interpretável e controlável. Ao definir explicitamente a estrutura da solução, os pesquisadores não apenas alcançam uma melhor qualidade, mas também ganham a capacidade de analisar como o modelo chegou a uma determinada conclusão. Isso aproxima as abordagens em PLN dos métodos clássicos de busca algorítmica e planejamento, mas agora a execução dos passos é delegada a um modelo de rede neural. Vários especialistas consideram os prompts estruturados (cadeias, árvores, grafos de pensamentos) uma direção promissora, capaz de superar as limitações da "caixa-preta" em modelos profundos e aumentar a confiabilidade de seu desempenho em tarefas complexas[4][4].
A metodologia Graph-of-Thoughts continua a se desenvolver ativamente. O código e exemplos para a implementação do GoT foram disponibilizados publicamente pelos autores[1], permitindo que a comunidade experimentasse a nova abordagem. Extensões também estão surgindo: por exemplo, versões multimodais do grafo de pensamentos, que combinam texto com imagens e outros tipos de dados[3][3], bem como tentativas de integrar as ideias do GoT diretamente na arquitetura dos modelos (como no trabalho mencionado de Yao et al., 2023). Em 2025, foi publicada uma revisão-taxonomia detalhada dos métodos Chain-of-Thought, Tree-of-Thoughts e Graph-of-Thoughts, sistematizando o conhecimento acumulado и descrevendo os fundamentos teóricos de tais abordagens[4][4]. Tudo isso indica um grande interesse da comunidade científica no gerenciamento estruturado do pensamento dos LLMs. O Graph-of-Thoughts já se estabeleceu como uma ferramenta eficaz para resolver problemas complexos e provavelmente se tornará a base para futuras inovações na área de soluções de IA que combinam o poder dos grandes modelos de linguagem com a transparência e a lógica dos algoritmos clássicos.
Links
- Artigo original «Graph of Thoughts: Solving Elaborate Problems with Large Language Models» no arXiv
- Versão em HTML do artigo original
- Revisão «Demystifying Chains, Trees, and Graphs of Thoughts» no arXiv
- Artigo «Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models» no arXiv
- Multimodal Graph-of-Thoughts — artigo da Deepgram
- LLMs Graph of Thoughts Framework — artigo no Medium
Literatura
- Besta, M. et al. (2024). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
- Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
- Yao, Y. et al. (2023). Beyond Chain-of-Thought: Effective Graph-of-Thought Reasoning in Language Models. arXiv:2305.16582.
- Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
- Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
- Wei, J. et al. (2024). Demystifying Chains, Trees, and Graphs of Thoughts. arXiv:2401.14295.
- Huang, S. et al. (2023). Language Is Not All You Need: Aligning Perception with Language Models (Kosmos-1). arXiv:2302.14045.
- Mitra, C. et al. (2024). Compositional Chain-of-Thought Prompting for Large Multimodal Models. In CVPR 2024. PDF.
- Zheng, G. et al. (2023). DDCoT: Duty-Distinct Chain-of-Thought Prompting for Multimodal Reasoning in Language Models. arXiv:2310.16436.
- Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. arXiv:2304.08467.
Notas
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.40 1.41 1.42 1.43 Besta, Maciej et al. «Graph of Thoughts: Solving Elaborate Problems with Large Language Models». ar5iv.labs.arxiv.org. [1]
- ↑ Besta, Maciej et al. «Graph of Thoughts: Solving Elaborate Problems with Large Language Models». arXiv. [2]
- ↑ 3.0 3.1 3.2 3.3 3.4 Grygiel, Jacek. «Multimodal Graph-of-Thoughts: How Text, Images, and Graphs Lead to Better Reasoning». Deepgram. [3]
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 Wei, Jason et al. «Demystifying Chains, Trees, and Graphs of Thoughts». arXiv. [4]
- ↑ Wo, Jacek. «LLMs Graph of Thoughts Framework. Case study». Medium. [5]
- ↑ 6.0 6.1 6.2 Yao, Yuqing et al. «Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models». arXiv. [6]