ReAct Prompting — ReActプロンプティング
ReAct(Reason + Actの略、日本語訳:「思考し、行動せよ」)は、大規模言語モデル(LLM)が、外部環境と相互作用する言語的な推論(思考)と行動を交互に行うことで、複雑なタスクを解決できるようにするためのプロンプト設計のパラダイムです[1]。この手法は2022年にGoogle Researchとプリンストン大学の研究者らによって提案され、知的エージェントの開発における基本的なアプローチとなりました。
ReActの主要な革新は、Chain-of-Thought(CoT)のような技術に特徴的な論理的推論と、情報検索やAPIとの対話といった外部アクションの実行を組み合わせた点にあります。これにより、モデルは動的に計画を修正し、事実を確認し、しばしば古かったり不完全だったりする自身の知識の限界を克服することができます[2]。
背景と開発経緯
ReActが登場する以前、LLMを使用して複雑なタスクを解決するための主要なアプローチは2つありましたが、それらは分断されていました:
- 思考の連鎖 (Chain-of-Thought, CoT): モデルはタスクを解決するために段階的な論理的推論を生成しますが、これは「情報の真空状態」で行われ、もっぱら内部知識に依存します。このため、事実誤認や「ハルシネーション」が頻繁に発生します[1]。
- 行動計画 (Act-Only): モデルは外部環境と対話するための一連の行動を生成しますが(例えばテキストベースのゲームなど)、明確な高レベルの計画がありません。このようなシステムはエラー処理が苦手で、予期せぬ事態に直面した際に戦略を適応させることができません。
ReActは、これら両アプローチの長所を相乗的に組み合わせるために開発されました。モデルが推論するだけでなく、その推論を外部世界の事実に基づいてグラウンディングし、得られたフィードバックに基づいて行動を適応させることを可能にします。
動作メカニズム:「思考—行動—観察」サイクル
ReActは、3つの主要な要素を含む反復サイクルで動作します。モデルは、Thought、Action、Observationのステップから構成される軌跡を逐次的に生成します。
プロンプトの構造例:
質問:交流電流で知られる発明家が生まれた都市は、どの首都ですか?
Thought 1: 交流電流を発明した人物を特定する必要がある。次に、その人物の出生地を見つけ、その都市が首都であるかどうかを確認する。
Action 1: Search[交流電流 発明家]
Observation 1: 交流電流(AC)はニコラ・テスラによって開発され、推進された。
Thought 2: 次に、ニコラ・テスラがどこで生まれたかを知る必要がある。
Action 2: Search[ニコラ・テスラ 出生地]
Observation 2: ニコラ・テスラはオーストリア帝国(現在のクロアチア)のスミリャン村で生まれた。
Thought 3: スミリャンは首都ではない。したがって、この質問にはこの形式では明確な答えがない。しかし、テスラは長年米国で生活し、研究を行った。彼が主要な発見をした国の首都を意図しているのかもしれない。これはより複雑な問題だ。私は出生地に基づいた事実を述べるべきだ。彼の出生地は首都ではない。
Final Answer: 交流電流に関連する発明家であるニコラ・テスラは、首都ではないスミリャン(クロアチア)で生まれた。
Thought - 思考
モデルは、タスクを分析し、サブタスクに分解し、行動計画を策定・修正し、現状を評価する内部的な推論を生成します。このステップは外部環境に影響を与えませんが、内部的な計画立案の役割を果たします。
Action - 行動
推論に基づいて、モデルは利用可能なツールの一つにアクセスして外部のアクションを実行します。アクションの例:
- Search [クエリ] — 知識ベース(例:ウィキペディア)で情報を検索する。
- Click [要素] — ウェブページをナビゲートする。
- API_call [パラメータ] — 外部APIを呼び出す。
Observation - 観察
システムまたは外部ツールがアクションを実行し、その結果(観察)を返します。これはテキストの断片、APIの応答、またはエラーメッセージなどです。モデルはこの観察を利用して次の思考を形成し、フィードバックループを完成させます[2]。
実験結果と有効性
ReActの考案者たちは、幅広いタスクでこの手法をテストし、CoTやAct-Onlyアプローチに対する優位性を実証しました。
| ベンチマーク | タスク | ReAct (成功率/精度) | Chain-of-Thought (成功率/精度) | Act-Only (成功率/精度) |
|---|---|---|---|---|
| FEVER | ファクトチェック | 87.6% | 82.8% | 70.1% |
| HotpotQA | 複数ホップを要する質問 | 31.8% | 36.3% | 17.0% |
| ALFWorld | テキストベースゲーム(計画) | 71% | 10% | 13% |
| WebShop | ウェブナビゲーション | 40% | - | 30.1% |
- ファクトチェック(FEVER)を必要とするタスクでは、ReActは情報を検証できるため、CoTを大幅に上回ります。
- 対話的な計画(ALFWorld, WebShop)タスクでは、ReActは変化する環境に適応できるため、絶大な優位性を示します。
- 純粋な推論(HotpotQA)タスクでは、CoTが同等かそれ以上の結果を示すことがあります。しかし、ハイブリッドアプローチのReAct+CoTは最高のパフォーマンスを示し、HotpotQAで35%を達成しました[1]。
批判と限界
その有効性にもかかわらず、ReActにはいくつかの限界と脆弱性があります。
- 脆弱性 (Brittleness): 後の研究で、ReActの成功は、推論と行動の真の相乗効果というよりは、プロンプト内の例と現在のタスクとの間の構文的な類似性に関連している可能性が示されました。モデルは、推論のセマンティクスを完全に理解することなく、`Thought-Action-Observation`のテンプレートに従っているだけかもしれません[3]。
- 計算コスト: 各ReActサイクルは、少なくとも1回のLLM呼び出しと1回の外部ツールへのアクセスを必要とするため、標準的なプロンプティングと比較して処理が遅く、コストがかかります。
- ツールへの依存: エージェントの有効性は、利用可能なツールの品質と信頼性に直接依存します。APIからの不正確またはノイズの多い応答は、モデルの推論を誤った方向に導く可能性があります。
意義と今後の発展
ReActはAIの発展における重要なマイルストーンとなり、生成システムからエージェントシステムへの移行を象徴しています。これは、以下のような現代的なエージェント構築フレームワークの概念的および実践的な基盤を築きました:
- LangChain
- LlamaIndex
- AutoGen
ReActのアイデアは、Reflexion(失敗後に自己反省のサイクルを追加)やTree of Thoughts (ToT)(複数の推論パスを並行して探索)といった、より複雑な推論アーキテクチャの出発点となりました。
外部リンク
- ReActプロジェクト公式サイト
- Learn PromptingガイドにおけるReActの解説
- Google Research (2022). ReAct: Synergizing Reasoning and Acting in Language Models (blog post). Google Research Blog.
参考文献
- Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
- Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
- Shinn, N. et al. (2023). Reflexion: Language Agents with Verbal Reinforcement Learning. arXiv:2303.11366.
- Verma, V. et al. (2024). On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models. arXiv:2405.13966.
- Yao, S. et al. (2022). WebShop: Towards Scalable Real-World Web Interaction with Grounded Language Agents. arXiv:2207.01206.
- Shridhar, M. et al. (2020). ALFWorld: Aligning Text and Embodied Environments for Interactive Learning. arXiv:2010.03768.
- Qin, L. et al. (2023). AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Collaboration. arXiv:2308.08155.
- Thorne, J. et al. (2018). FEVER: A Large-Scale Dataset for Fact Extraction and Verification. arXiv:1803.05355.
- Yang, Z. et al. (2018). HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering. arXiv:1809.09600.
脚注
- ↑ 1.0 1.1 1.2 1.3 Yao, S., Zhao, J., Yu, D., et al. (2022). «ReAct: Synergizing Reasoning and Acting in Language Models». arXiv preprint arXiv:2210.03629. [1]
- ↑ 2.0 2.1 «ReAct: Synergizing Reasoning and Acting in Language Models». Google Research Blog. [2]
- ↑ Verma, V., et al. (2024). «On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models». arXiv preprint arXiv:2405.13966. [3]