Tree of Thoughts(ツリーオブソーツ)
LLMが複数の推論経路を木構造で探索し、最適解を選択するフレームワーク。Chain of Thoughtを拡張し、分岐・評価・バックトラックを可能にする。
Tree of Thoughts(ToT)とは
Tree of Thoughts(ToT)は、大規模言語モデル(LLM)の推論能力を大幅に向上させるフレームワークで、2023年にPrinceton大学とGoogle DeepMindの研究者(Yao et al.)が提案した。従来のChain of Thought(CoT)が単一の線形な推論チェーンを生成するのに対し、ToTは複数の「思考候補」を木構造で展開し、それぞれを評価・選択・バックトラックできる仕組みを持つ。
基本アーキテクチャ
ToTは4つの主要コンポーネントで構成される。
思考分解(Thought Decomposition): 問題を解決するための「思考ステップ」を定義する。各ステップは数語から数段落まで様々な粒度で設定できる。
思考生成(Thought Generation): 各ノード(現在の状態)から複数の次の思考候補を生成する。サンプリングまたはプロポーザル法で生成する。
状態評価(State Evaluation): 各思考候補の有望度をLLM自身または外部評価器で採点する。「この状態から目標達成は可能か?」をスコアリングする。
探索アルゴリズム(Search Algorithm): BFS(幅優先探索)やDFS(深さ優先探索)で木を探索し、最有望なパスを追跡する。
Chain of Thoughtとの比較
Chain of Thought(CoT)は線形構造でバックトラック不可、評価なし、一般推論に向く。Tree of Thoughts(ToT)は木構造でバックトラック可能、状態評価あり、探索問題に向く。Game of 24(4つの数字で24を作る計算パズル)の実験では、Chain of Thoughtの正解率4%に対し、ToT(BFS)は74%を達成。単純な推論チェーンでは解けない組み合わせ探索問題でToTが圧倒的に優れる。
実装パターン
ToTの中核はBFS/DFSで木を探索するループ。各ノードで「次の思考候補をk個生成 → 各候補をスコアリング → 上位n件を次のレベルへ」を繰り返す。LangChainはlangchain_experimental.totモジュールでToTを実験的機能として提供している。
強みと弱み
強み: 複雑な探索問題に対して劇的に精度向上。中間思考の評価でエラーを早期に除去。バックトラックにより局所最適解を回避。
弱み: トークン消費がCoTの数倍〜数十倍に増加。推論速度が大幅に低下。評価関数の設計が問題依存で難しい。
応用事例
コードデバッグ: 複数の修正候補を並列に生成し、テストパスを評価基準として選択。数学的証明: 補題の組み合わせを木探索で発見。戦略的意思決定: ゲームAIや最適化問題でのプランニング。
今後の発展
ToTはGraph of Thoughts(GoT)に拡張され、木構造から一般グラフ構造(ループ・マージ可能)へと進化した。また、モンテカルロ木探索(MCTS)と組み合わせた手法も登場し、LLMエージェントの長期プランニングに活用されている。