Graph of Thoughts — 思考のグラフ

From Systems analysis wiki
Jump to navigation Jump to search

Graph-of-Thoughts (GoT)は、大規模言語モデルLLM, Large Language Models)を扱う分野における概念であり、モデルの推論プロセスを相互に関連付けられた「思考」(解決の中間ステップ)からなる任意のグラフとして表現することを提案するものです[1]。このアプローチは、ETH Zurichのマチェイ・ベスタ(Maciej Besta)が率いる研究者グループによって提案され、2024年にAAAIカンファレンスで発表されました[2]。Graph-of-Thoughtsの目的は、プロンプトエンジニアリング(プロンプト開発)の可能性を、Chain-of-Thought(思考の連鎖)やTree-of-Thoughts(思考の木)といった既存の枠組みを超えて拡張することです[1]。これらとは異なり、GoTアプローチでは、モデルによって生成された任意の推論の断片(思考)が他のどの断片をも参照できるため、厳密に線形または木構造ではなく、アイデアのネットワークを形成します[3]。著者らによれば、これは人間の思考の複雑で非線形な性質をより正確に反映し、LLMの推論メカニズムを(再帰的な神経結合を持つ)人間の脳の働きに近づける可能性があるとされています[1][1]

Graph-of-Thoughtsはプロンプティングフレームワークであり、モデル自体の追加学習やファインチューニングを必要としません。その代わりに、LLMとの対話を特別な方法で編成し、グラフのスキーマに従って関連付けられた一連の「思考」ステップを通してモデルを誘導します[1]。このような構造により、異なる推論の枝を組み合わせたり再利用したりすることが可能になります。例えば、モデルは複数の仮説や課題の一部を並行して検討し、その後、最も成功したものを単一の解決策に統合することができます[1]。百科事典的なスタイルで言えば、Graph-of-Thoughtsは、LLMを用いた先行する構造化推論戦略の一般化として定義でき、単一の複雑なプロンプト内で思考プロセスを整理する上で最大限の柔軟性を提供します[1]

背景: Chain-of-Thought と Tree-of-Thoughts

Graph-of-Thoughtsメソッドは、言語モデルを扱う際に明確な推論構造を利用する、より初期のアプローチから発展しました。基本的なアプローチはChain-of-Thought (CoT)、つまり「思考の連鎖」です。CoTメソッドでは、ユーザーはモデルへのプロンプトに課題の条件だけでなく、答えに至るまでの中間的な推論ステップも含めることが推奨されます[1]。研究により、このような情報提示は、モデル自体のパラメータを変更することなく、LLMが数学的な問題や論理パズルのような複雑な課題を解決する能力を大幅に向上させることが示されています[1]。事実上、CoTはモデルに複雑な問題をより単純な段階にステップバイステップで分解させ、連続的な思考の流れを模倣させます。

このアイデアの発展形がSelf-Consistency(自己整合性)技術です。単一の思考の連鎖ではなく、複数の独立した連鎖を生成し、その中から最も説得力のあるものを選択します[1]。これにより、モデルは解決への異なるアプローチを検討でき、単一の誤った推論ラインに従うことによる誤答のリスクを低減します。しかし、多数のCoT連鎖であっても「アイデアを統合する」ことはできません。各連鎖は孤立して扱われ、モデルはそれらの内容を組み合わせることなく、最良のものを選択するだけです。

この制約を克服するために、Tree-of-Thoughts (ToT)、つまり「思考の木」という枠組みが提案されました[1]。ToTでは、推論プロセスが木構造として組織されます。各時点でモデルは思考を発展させるための複数の選択肢(分岐)を生成でき、その後、これらの中間状態が評価され、さらなる深化のために最も有望なものが選択されます[1]。木構造探索(例えば、幅優先探索(BFS)や深さ優先探索(DFS))と、ノードに戻って別の枝を展開する能力を利用することで、Tree-of-Thoughtsは言語モデルに線形的なCoTよりも強力な複雑課題解決メカニズムを提供します[1]バックトラッキングと見直しといった新たな可能性が生まれます。ある枝が行き止まりに至った場合、前のノードに戻って別の道を試すことができます[1]。この手法は、選択肢の探索と計画が大きな役割を果たす論理的および探索的な課題の解決において、その有効性が証明されています。

しかし、思考の木は厳しい制約も課します。各思考(木のノード)はただ一つの枝に属し、相互作用は親ノードと子ノードの間でのみ行われ、異なる枝が合流したり情報を交換したりすることはできません[3]。言い換えれば、単一の解決策の枠組み内で異なる仮説間のアイデアの交配(cross-pollination)は困難です。木の枝は独立して発展し、最良の推論連鎖が選択されるときに根元でのみ統合されます[3]。しかし、実際の創造的または分析的思考では、人間はしばしば以前に検討したアイデアに戻り、それを別の推論の枝と組み合わせます。このような思考の絡み合いは、木構造の範囲を超えています[1]

これらの観察から、研究者たちはより柔軟な構造、つまり思考間のつながりが制限されず、複雑なネットワークを形成できるグラフというアイデアに至りました。2024年の分析レビューで指摘されているように、思考の連鎖、木、グラフの出現は、推論プロセスを明示的に構造化することでLLMの能力を大幅に強化できる新しいクラスのメソッドの誕生を反映しています[4]。特に、構造化されたプロンプトは、数学的問題や論理パズルの解決から、計画、さらには創造的な執筆に至るまで、多くの分野でLLMの結果を著しく改善させました[4]。このような全体的な背景の中で、構造化プロンプティング手法の次のステップとしてGraph-of-Thoughtsの枠組みが登場したのです。

Graph-of-Thoughtsの概念: 思考のグラフ構造

Graph-of-Thoughtsは、言語モデルによるタスク実行の過程を任意の有向グラフとして表現することを提案します。形式的には、GoTにおける思考のグラフは、頂点(思考)と辺(思考間の依存関係)の集合です[1]。グラフの頂点は個々のモデルの思考を表します。この用語は、タスクの文脈に依存する任意の意味のある単位を指し、個別の主張、解決ステップ、テキストの一部、段落、コードブロックなど、プロンプトに応じてモデルが生成したものを指します[1][1]。頂点間の辺は、ある思考が別の思考を生成する際に使用されたことを意味します。つまり、プロンプト内で、新しい結果を得るために特定の先行する結果に依拠するよう明示的に指示されていることを示します[1]。このように、辺は依存関係を記録します。現在の推論ステップが、以前に得られたどのデータに依存しているかということです。

GoTがより単純な構造と最も異なる点は、思考の集約と統合が可能であることです。グラフでは、頂点(新しい思考)が複数の先行者を持つことが許されます[1]。これは、2つ以上の別々の推論連鎖が結合する状況に対応します。モデルは入力として複数の以前に生成された断片を一度に受け取り、それらに基づいて統合された出力を形成します[1]。例えば、問題を解決する際に、モデルは2つの仮説を並行して検討し、その後、両方の仮説の良い点を組み合わせ、欠点を解消する新しい思考を生成することができます[1][1]。このような集約操作は、木構造(各ノードの親は1つだけ)の枠組みでは不可能でしたが、グラフ構造では自然に実現されます[1]。アイデアの統合に加えて、グラフはフィードバックループの導入も可能にします。原理的に、GoTの構造はサイクルを禁止していないため、モデルはある結果を再処理や洗練のために、より早い推論段階に戻すことができます[1]。著者たちはこれを、脳のニューラルネットワークにおける再帰的結合との類推に関連付けており、そこではあるニューロン群の出力が前の層に逆向きに影響を与え、閉じた思考回路を形成します[1]

Graph-of-Thoughtsの実践的な実装には、モデルとの対話を特別に編成する必要があります。研究者たちはGoTのためのモジュール式アーキテクチャフレームワークを開発しました[1]。これには、(1) 個々のステップ(思考)を細かく制御するためのコンポーネント(「コントローラー」が思考の生成順序とロジックを管理)、(2) プロンプトを動的に生成するためのコンポーネント(各ステップで、特別なモジュールが現在の文脈と選択されたグラフの頂点(先行者)に基づいてプロンプトを生成)、(3) モデルの応答を解析し評価するためのコンポーネント(LLMから得られた断片が分析され、品質、有用性、またはタスクの基準への適合性が評価される)が含まれます[5]。したがって、GoTアーキテクチャは、対話的に推論グラフを構築することを可能にします。各ステップの後、どの新しい頂点を追加するか、それらを以前のものとどう結びつけるか、どの枝を続けるか、または結合するかが決定されます。モジュール性のおかげで、このようなフレームワークは新しいタイプの「思考変換」(例えば、グラフに対する特別な操作)で拡張したり、さまざまなモデル(著者たちはGPT-3.5、GPT-4、LLAMA 2などのLLMファミリーでGoTを成功裏にテストしました)に適応させたりすることができます[1]。重要な特性は、GoTが言語モデル自体のパラメータ変更を必要としないことです。すべての改善は、より賢明なプロンプトの構築と応答の処理によって達成されます[1]。これは、既存の強力なLLMを「そのまま」使用でき、Graph-of-Thoughtsがその動作を管理するアドオンとして機能することを意味します。

なお、Graph-of-Thoughtという用語は、ベスタらのアプローチとは異なる、別の独立した開発でも登場しています。2023年に、Yao Yaoらは、思考のグラフをエンコードする追加モジュールによってLLMの推論を改善する手法を提案しましたが、これにはモデルの追加学習が必要でした[6]。彼らの論文「Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models」では、2段階のアーキテクチャが記述されています。まず、相互に関連する中間的な主張のグラフが生成され、次にそれが特別なエンコーダーによって変換され、ゲート付き融合メカニズムを介してモデルに統合されます[6]。このような学習を伴うハイブリッドアプローチは、例えばマルチモーダルな質問データセットScienceQAにおいて、T5-baseモデルを使用した場合の精度が85.2%から87.6%に向上するなど、いくつかのタスクで精度の向上を示しました[6]。しかし、このアプローチは名称が似ているものの、モデルの変更(ファインチューニング)を必要とし、プロンプトエンジニアリングの枠組みではない点で根本的に異なります。オリジナルのGoTアプローチ(AAAI 2024)の著者たちは、LLMのパラメータを更新しない手法に焦点を当てているため、Yaoらのモデルは自分たちの研究では考慮していないと明言しています[1]。したがって、このレビューの文脈におけるGraph-of-Thoughtsは、ニューラルネットワークのアーキテクチャ変更ではなく、あくまでもプロンプトレベルのフレームワークです。

応用と結果

GoTの著者たちは、単一の直接的なプロンプト(入出力プロンプティング)や思考の連鎖だけでは解決が困難な一連のタスクにおいて、その利点を実証しました。このようなタスクの特徴は、複数の部分(サブタスク)に分解し、それらを別々に解決した後、部分的な結果から完全な答えを統合できる点にあります[1]。検討された例には、順序付けられていないリストのソート、テキスト内のキーワードのカウント(例えば、文書の要約のため)、集合演算(リストの和集合、積集合など)、およびテキスト文書の統合(複数の情報源からの情報の結合)が含まれます[1]。これらすべてのケースで、Graph-of-Thoughtsは自然な形でタスクの分解を可能にします。例えば、ソートの場合、リストは部分に分割され、各部分は独立した思考の枝として個別にソートされ、その後結果が統合されます(マージソートのようなアルゴリズムを模倣)。また、テキスト分析では、モデルは異なる文書から並行して情報を抽出し、その後それを一つにまとめることができます。

実験結果は、GoTスキームの有効性を裏付けています。ベスタらの報告によると、ソートタスクにおいて、思考のグラフは以前のアプローチと比較して解決の質を大幅に向上させました[1]。具体的には、GoTを使用したソートの精度は、単純な思考の連鎖(CoT)よりも70%高く、思考の木(ToT)よりも62%高いことがわかりました[1]。同時に、この方法は計算リソースのコストを削減します。モデルへの呼び出し回数(および、それに対応するトークン化されたプロンプトの量)は、同じタスクにおいてTree-of-Thoughtsと比較して31%減少しました[1]。これは、グラフ構造による推論の組織化が最終的な結果を改善しただけでなく、中間的な結論を巧みに組み合わせることで冗長な計算を避け、解決をより経済的にしたことを意味します。同様の利点は、特に異種情報を集約する必要がある他のテストタスクでも得られました。研究者たちは、GoTが特に複数の要素からなる複合的なタスクに最も効果的であると指摘しています。「Graph-of-Thoughtsは、より小さなサブタスクに自然に分解でき、それらを別々に解決してから結果を結合するタスクに特に適している」[1]。このような場合、思考のグラフは問題のすべての側面をカバーし、単一の推論ラインに従うよりも包括的な解決策を統合することができます。

あるプロンプト構築方法がなぜ他の方法より優れているのかをより深く理解するために、2024年の論文では「思考のボリューム」(volume of a thought)という特別な指標が提案されました[1]。ボリュームは、個々の思考(グラフの頂点)ごとに定義され、有向辺をたどってその思考に到達できる他の思考の数として計算されます(簡単に言えば、その情報がいくつの先行する中間ステップに由来するか)[1]。Chain-of-Thoughtでは、どの思考もただ一つの先行者に依存するため、そのボリュームは1です(線形連鎖)。思考の木ではボリュームは大きくなる可能性がありますが、それでも個々の枝の構造に制限されます。一方、グラフでは集約のおかげで、単一の頂点が多くの他の頂点からの貢献を蓄積でき、その「ボリューム」は著しく高くなります[1]。GoTは、最終的な結論がより多くの先行する思考のボリュームに基づいており、その内容を統合できることが示されています。この事実は、解決策空間をより深くカバーしていることを反映しており、グラフベースの推論がより単純なスキームに対して持つ利点の定量的な説明となります。

比較と意義

Graph-of-Thoughtsは、現在、LLMのための構造化プロンプティングの最も一般化された形式を表しています。さまざまなスキーム(CoT、自己整合性を持つCoT、ToT、GoT)を比較する表では、GoTだけが思考プロセスの任意のトポロジーをサポートしていることが強調されています[1]。GoTは、先行するすべてのアプローチの能力を内包しています。タスク解決に適していれば、単一の連鎖としても、分岐を持つ木としても、多数の連鎖の組み合わせとしても機能します[1]。重要なのは、ステップ間の接続に厳しい制約がないことであり、これにより理論的には可能な推論戦略の空間が最大限に広げられます[1]

GoTの柔軟性は、より複雑な制御を必要とするという代償を伴うことを理解することが重要です。思考のグラフを実装するには、いつ、どの思考を生成するか、どれを選択または組み合わせるか、いつプロセスを停止して答えを出すかを決定する外部のオーケストレーターアルゴリズムが必要です。単純なCoTでは、そのような決定は不要で、モデル自体が最後まで線形的な推論を生成します。ToTでは、制御の一部が木構造探索アルゴリズム(例えば、展開するノードの選択)に委ねられます。しかしGoTでは自由度が高く、メソッドの有効性は、中間結果を評価するヒューリスティックの質と、各ステップでプロンプトを正しく構築できるかにかかっています[1]。したがって、Graph-of-Thoughtsは単なるプロンプトの形式ではなく、LLMとの対話プロセスに課せられる推論の構造と見なすことができます。これは、モデルがタスクを解決するための動的な計画のようなものであり、ユーザー(またはコントローラープログラム)がそのプロセスを誘導します。

Graph-of-Thoughtsの登場は、大規模言語モデルの動作をより解釈可能で制御可能にしようとする動きを反映しています。解決策の構造を明示的に設定することで、研究者たちはより良い品質を達成するだけでなく、モデルがどのようにして特定の結論に至ったかを分析する機会も得ます。これにより、NLPのアプローチは古典的なアルゴリズム探索や計画手法に近づきますが、今やステップの実行はニューラルネットワークモデルに委ねられています。多くの専門家は、構造化プロンプト(思考の連鎖、木、グラフ)を、深層モデルにおける「ブラックボックス」の制約を克服し、複雑なタスクにおけるモデルの信頼性を向上させる有望な方向性と見ています[4][4]

Graph-of-Thoughtsの方法論は活発に開発が続けられています。著者たちはGoTを実装するためのコードと例をオープンソースとして公開しており[1]、これによりコミュニティが新しいアプローチを実験できるようになりました。拡張も登場しています。例えば、テキストと画像や他の種類のデータを組み合わせたマルチモーダル版の思考のグラフ[3][3]や、GoTのアイデアを直接モデルのアーキテクチャに統合しようとする試み(前述のYao et al., 2023の研究のように)などです。2024年には、Chain-of-Thought、Tree-of-Thoughts、Graph-of-Thoughtsの手法に関する詳細なレビュー兼タクソノミーが出版され、蓄積された知識を体系化し、これらのアプローチの理論的基礎を記述しました[4][4]。これらすべては、LLMの思考を構造的に制御することに対する科学コミュニティの大きな関心を示しています。Graph-of-Thoughtsは、すでに複雑なタスクを解決するための効果的なツールとして確立されており、大規模言語モデルの能力と古典的なアルゴリズムの透明性および論理性を組み合わせた、将来のAIソリューションにおけるさらなる革新の基盤となるでしょう。

リンク

参考文献

  • 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.

注釈

  1. 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]
  2. Besta, Maciej et al. «Graph of Thoughts: Solving Elaborate Problems with Large Language Models». arXiv. [2]
  3. 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. 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]
  5. Wo, Jacek. «LLMs Graph of Thoughts Framework. Case study». Medium. [5]
  6. 6.0 6.1 6.2 Yao, Yuqing et al. «Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models». arXiv. [6]