Tree of Thoughts (Yao et al., 2023) lets a model explore multiple reasoning branches and backtrack from dead ends, but each branch in a tree can only split further or be discarded; branches cannot be recombined with each other. Besta et al., "Graph of Thoughts: Solving Elaborate Problems with Large Language Models," propose a structure that goes beyond this constraint. What does Graph of Thoughts add on top of the tree structure, and what capability does that addition unlock?
- It removes branching entirely and forces the model onto a single linear chain, trading the exploration benefits of Tree of Thoughts for a large reduction in the number of model calls needed
- It adds a fixed, hand-written decision tree of if-then rules external to the language model that decides which existing branch to keep, replacing the model's own judgment about branch quality
- It models the reasoning process as an arbitrary graph, where individual "thoughts" are vertices and dependencies between them are edges rather than being restricted to a single parent-to-child tree shape; this lets thoughts explored on separate branches be merged, aggregated, or fed back into each other through feedback loops, rather than only ever being extended or dropped
- It requires training a separate small classifier model to score each branch numerically, since the underlying language model in this framework is never asked to judge or compare its own branches
Why C? And why not the others?
Correct answer: C. It models the reasoning process as an arbitrary graph, where individual "thoughts" are vertices and dependencies between them are edges rather than being restricted to a single parent-to-child tree shape; this lets thoughts explored on separate branches be merged, aggregated, or fed back into each other through feedback loops, rather than only ever being extended or dropped
Graph of Thoughts generalizes the tree structure of Tree of Thoughts into an arbitrary graph, treating each unit of information the model generates as a vertex and each dependency between units as an edge, rather than restricting every unit to exactly one parent in a strict tree. Because a graph allows edges between any vertices, not just parent-to-child links, this structure lets the framework combine thoughts that were developed independently on separate branches into a single synergistic result, distill a whole network of thoughts down to its essence, or route a thought's output back into an earlier point in the graph as feedback, none of which a tree shape permits once branches have diverged. The option describing removal of branching for a linear chain is wrong because Graph of Thoughts adds structure beyond a tree, it does not simplify below one. The option describing a fixed external decision tree of if-then rules is wrong because the graph's vertices and edges represent the language model's own generated thoughts and their dependencies, not a hand-written rule set replacing the model's judgment. The option describing a separately trained classifier is wrong because the framework still relies on the language model itself to generate, evaluate, and combine thoughts within the graph.
Source: Besta, Blach, Kubicek, Gerstenberger, Podstawski, Gianinazzi, Gajda, Lehmann, Niewiadomski, Nyczyk & Hoefler, 'Graph of Thoughts: Solving Elaborate Problems with Large Language Models' (arXiv:2308.09687, 2023/2024)