ReAct:言語モデルにおける推論と行動の相乗効果
ReAct (Yao et al., ICLR 2023) は、現在の多くの金融エージェントがデフォルトの構造として採用している「推論してから行動する」ループの背後にある論文です。これは一種のインフラのようなもので、誰もがすでに知っていることのように感じられたため、これまで後回しにしてきました。しかし、自律的な元帳への書き戻し(write-back)に時間を費やす中で、二次的な伝聞からではなく、その源泉にある失敗モードを理解したいと考えました。
論文の概要
Shunyu Yao、Jeffrey Zhao、Dian Yu、Nan Du、Izhak Shafran、Karthik Narasimhan、および Yuan Cao は、驚くほどシンプルなアイデアを提案しています。それは、言語モデルに「推論(Chain-of-Thought)」か「行動(ツールの呼び出し)」のどちらかを行わせるのではなく、両方を交互に流れるように実行させるというものです。軌跡(trajectory)の各ステップは、Thought(次に何をすべきかについての自由形式の推論)または Act/Obs ペア(アクションとその環境からの観察結果)のいずれかになります。この交互の配置は相乗的であり、推論がどのアクションを取るべきかを形作り、観察が推論を再形成するという主張です。
彼らは 4 つのベンチマークでこれをテストしました。HotpotQA と Fever(Wikipedia 検索 API をアクション空間として使用する知識集約型の QA と事実検証)、および ALFWorld と WebShop(多段階の意思決定を必要とする具現化およびシミュレートされた電子商取引環境)です。すべての実験では、わずか 1 つか 2 つのインコンテキスト例を用いたフューショットプロンプティングの下で、PaLM-540B と GPT-3 (text-davinci-002) が使用されました。
主要なアイデア
- ALFWorld において、ReAct はタスク成功率において模倣学習および強化学習のベースラインを絶対値で 34 ポイント上回りました。WebShop では、10 ポイントの向上が見られました。
- Fever(事実検証)において、ReAct は Chain-of-Thought を上回りました。HotpotQA(マルチホップ QA)では、実際には CoT が ReAct に勝利しています。論文はこれを隠すことなく直接認めています。
- 失敗例は 2 つのタイプに分けられます。推論エラー(モデルが保持している情報を誤って判断す る)と 検索エラー(情報の乏しい Wikipedia の結果がその後の推論チェーンを脱線させる)です。これらは質的に異なり、異なる対策を必要とします。
- フォーマット自体が解釈可能です。人間が Thought(思考)のトレースを読み、間違いを見つけ、1 行を編集することで修正できます。これは明示的に安全上の特性として挙げられています。
- 小規模なモデルを ReAct の軌跡でファインチューニングすることで、プロンプトを与えられた大規模なモデルを凌駕させることができます。これは、交互のフォーマットが単なるプロンプトのトリックではなく、学習可能であることを示唆しています。
何が有効で、何がそうでないか
インタラクティブな意思決定の結果(ALFWorld、WebShop)は、この論文の最も強力な部分です。純粋な模倣学習との差は、ハイパーパラメータの運によるものとは考えにくいほど大きいです。推論トレースは純粋に読みやすく、検索の失敗と推論の失敗を区別するエラー分析は誠実で有用です。
知識集約型 QA の結果はそれほど強くなく、論文もそれを自覚しています。HotpotQA で ReAct が CoT に敗北したことは重要なデータポイントです。モデル内部の知識を連鎖させることで答えに到達できる場合、ツール呼び出しの摩擦は実際にはマイナスに働きます。モデルが、わずかに関連があるだけの Wikipedia の一節を取得し、それに固執してしまい、頭の中だけで考えていた場合よりも悪い推論を生成してしまうことがあります。論文はこれを「検索による混乱(search-induced distraction)」と呼んでおり、これはアーキテクチャによって解決されるものではありません。エージェントの問題を装った検索品質の問題です。
また、論文がベンチマークから引き継いでいる根本的な評価の問題もあります。ALFWorld と WebShop はどちらも、現実世界のエージェントが必要とするものと比較して、アクション空間が比較的制限されています。ALFWorld での 34% の向上はゲーム内では印象的ですが、ALFWorld は固定された少数の語彙でアクションを行うシミュレートされた家庭環境です。そこから、オープンエンドな取引スキーマを持つ Beancount 元帳などへ一般化するには、この論文では正当化されていない推論の飛躍が必要です。
フューショットの設定は、強みであると同時に弱みでもあります。1 つか 2 つのインコンテキスト例で動作するのは印象的ですが、それは結果がどの例を選択するかに非常に敏感であることを意味します。論文の中に例の選択に関するアブレーション研究が見当たらなかったのは残念です。
金融 AI にとってなぜ重要か
自律的な Beancount エージェントにおける書き戻しの安全性に関する問題は、まさに ReAct が明らかにしている失敗の領域そのものです。エー ジェントが取引のカテゴリ分けの決定を推論しており、曖昧な元帳エントリ(Expenses:Food か Expenses:Entertainment のどちらにもマッピングできるようなもの)を取得した場合、ReAct パターンは、最初に取得したエントリが示唆する解釈にその後の推論を固定(アンカー)してしまいます。これは「検索による混乱」の金融版であり、より注意深くプロンプトを作成するだけでは解消されません。
解釈可能性に関する議論は、論文が意図した以上にここでは重要です。会計において、監査人は正しい答えだけを必要としているわけではありません。彼らが承認できる、追跡可能な推論の連鎖が必要なのです。ReAct の Thought トレースはその連鎖を提供します。また、人間が 1 つの Thought を編集することで軌跡を修正できるという観察は、仕訳エントリを元帳にコミットする前の、ヒューマン・イン・ザ・ループによるレビューステップに直接応用できます。
しかし、私が最も懸念している失敗モードは、長期的なタスクにおける累積誤差です。50 件の取引を処理する照合業務には、1 回の Wikipedia 検索よりも Thought が誤る機会がはるかに多くあります。ReAct は、エージェントが軌道から外れたことを検知するためのネイティブなメカニズムを提供しておらず、ただ進み続けます。Reflexion (Shinn et al., arXiv:2303.11366) は、言語的な自己評価ステップを追加することでこれに対処しており、ReAct + Reflexion は ReAct 単体と比較して、ALFWorld の 134 タスクのうち 130 タスクを完了しました。この差は、基本的な ReAct 構造の上に回復ループを追加することにどれほどの価値があるかを物語っています。
次に読むべきもの
- Reflexion: Language Agents with Verbal Reinforcement Learning (Shinn et al., 2023, arXiv:2303.11366) — ReAct エージェントがエピソードをまたいで戦略を修正できるようにする自己内省ステップを追加します。軌道中盤のエラーから回復する必要がある元帳エージェントにとって、最も直接的な拡張です。
- FireAct: Toward Language Agent Fine-tuning (Chen et al., 2023, arXiv:2310.05915) — 複数のツールにわたる ReAct 軌跡でモデルを特化してファインチューニングします。実際の元帳ツール呼び出しに関して Beancount 専用エージェントを訓練する際に関連します。
- Tree of Thoughts: Deliberate Problem Solving with Large Language Models (Yao et al., 2023, arXiv:2305.10601) — 単一のチェーンにコミットするのではなく、推論パス上の探索を検討します。最初の ReAct 軌跡が誤っており、体系的なバックトラックが必要な場合に重要となります。
