stMind

about Tech, Computer vision and Machine learning

論文まとめ:ReAct: Synergizing Reasoning and Acting in Language Models

arxiv.org

Gemini2.5 Proをお供にして、論文をまとめていきます。

この論文はどんなもの?

言語モデルに『思考』(Reasoning)と『行動』(Acting)を交互に繰り返させることで、外部情報に基づいて賢く計画を立てながら、人間のようにタスクを解決させる新しい手法(ReAct)を提案したものです。

既存研究の課題

既存研究には2つの流れがありました。

  • 思考の連鎖 (CoT): LLMに思考プロセスを文章化させる「考える」研究。
  • 行動生成モデル: LLMに行動コマンドを生成させる「行動する」研究。

それぞれの課題は

  • CoTの課題: 外部情報にアクセスできず、事実と異なる情報(ハルシネーション)を生成してしまうこと。
  • 行動生成モデルの課題: 高度な計画立案が苦手で、複雑なタスクや予期せぬ事態に対応できないこと。

提案手法の概要と特徴

ReActは、LLMに「思考(Thought)」、「行動(Act)」、「観察(Observation)」のサイクルを繰り返させます。

  • 思考(Thought): タスクの分解、計画の立案、進捗の確認、例外処理など、次に行うべき行動を決定するための内的な言語推論を生成させます。
  • 行動(Act): 思考に基づいて、Wikipedia APIの検索や、ゲーム環境内のコマンド実行など、外部環境に働きかける具体的な行動を生成させます。
  • 観察(Observation): 行動の結果として外部環境から得られた情報(検索結果やゲームの状態変化など)をLLMにフィードバックします。

この「思考→行動→観察」のループを繰り返すことで、LLMは動的に計画を修正し、外部情報に基づいて推論を更新しながら、タスクを遂行します。

提案手法の具体的なアイデア

ReActの核心は、LLM(大規模言語モデル)の「行動の選択肢(アクションスペース)」を拡張するという、シンプルかつ強力なアイデアにあります。

  1. 「思考」を新しいアクションとして追加
    • 従来のAIの行動は、search[...] や go to... のように、外部環境を直接変化させるものだけでした。ReActはここに、「頭の中で考える(言葉にする)」という新しい行動(思考アクション)を追加します。この「思考」は外部環境を変えませんが、AI自身の次の行動方針を決定するための内部状態(文脈)を更新します。
  2. 複雑な問題の分解
    • この仕組みにより、「生の観測データから直接、最適な行動を予測する」という非常に困難な問題を、LLMが得意な2つのより簡単な問題に分解します。
      • ステップ1: 生の観測データから、次に何をすべきかという「思考テキスト」を生成する。
      • ステップ2: 生成した「思考テキスト」を手がかりに、具体的な行動を生成する。
  3. Few-shot Promptingによる実現
    • この一連の「思考→行動→観察」という複雑な振る舞いを、モデルを再学習させることなく、わずか数例の模範的な対話(プロンプト)をLLMに見せるだけで実現します。LLMは、そのパターンを模倣して、新しいタスクにも同様の思考と行動のサイクルを適用できるようになります。

ReActの具体的な「思考・行動・観察」サイクル

HotpotQAタスク

質問:Apple Remote以外に、それが元々操作対象だったプログラムを制御できるデバイスは何ですか?」

この複雑な質問に対し、ReActは以下のようにサイクルを実行します。

サイクル 1: タスクの分解と最初の情報収集

  • 思考 (Thought 1):

    "I need to search Apple Remote and find the program it was originally designed to interact with." (まず「Apple Remote」を検索して、それが元々どのプログラムを操作するために設計されたかを見つけよう。)

    • 役割: 複雑な質問を「①Apple Remoteの操作対象プログラムを見つける」→「②そのプログラムを操作できる他のデバイスを見つける」という2つのサブタスクに分解し、最初の行動計画を立てます。
  • 行動 (Act 1):

    Search[Apple Remote]

    • 役割: 思考に基づいて、Wikipedia APIを呼び出し、具体的な情報収集を開始します。
  • 観察 (Obs 1):

    "The Apple Remote is a remote control... originally designed to control the Front Row media center program."Apple Remoteはリモコンで...元々はFront Rowというメディアセンタープログラムを操作するために設計されました。)

    • 役割: 行動の結果得られた事実。これでサブタスク①が解決しました。

サイクル 2: 次の目標設定と情報収集

  • 思考 (Thought 2):

    "Apple Remote was originally designed to control the Front Row media center program. I need to search Front Row next and find what other device can control it."Apple Remoteの操作対象はFront Rowだった。次はFront Rowを検索して、それを操作できる他のデバイスを見つけよう。)

    • 役割: サイクル1の観察結果を解釈し、サブタスク②を実行するための具体的な行動計画を立てます。
  • 行動 (Act 2):

    Search[Front Row]

    • 役割: 新しい計画に基づき、次の情報収集を行います。
  • 観察 (Obs 2):

    "Could not find [Front Row]. Similar: ['Front Row (software)', ...]" ([Front Row]は見つかりませんでした。類似項目: ['Front Row (software)', ...])

    • 役割: 検索が失敗したという予期せぬ結果。

サイクル 3: エラーからの回復と計画修正

  • 思考 (Thought 3):

    "Front Row is not found. I need to search Front Row (software)." (Front Rowが見つからなかった。類似項目にあった「Front Row (software)」で検索し直す必要があるな。)

    • 役割: 予期せぬ観察結果(エラー)を認識し、それを乗り越えるための計画修正を行います。これがReActの強力な点です。
  • 行動 (Act 3):

    Search[Front Row (software)]

    • 役割: 修正した計画に基づいて行動を再実行します。
  • 観察 (Obs 3):

    "Front Row (software) is controlled by an Apple Remote or the keyboard function keys." (Front Row (software)は、Apple Remoteまたはキーボードのファンクションキーで操作されます。)

    • 役割: 最終的な答えを含む決定的な情報を入手しました。

サイクル 4: 最終的な答えの統合と出力

  • 思考 (Thought 4):

    "Front Row (software) is controlled by an Apple Remote or the keyboard function keys. So the answer is keyboard function keys." (Front Row (software)はApple Remoteかキーボードで操作できる。質問は「Apple Remote以外」だから、答えはキーボードのファンクションキーだ。)

    • 役割: これまでの全ての情報を統合し、質問の意図("Apple Remote以外")を考慮して、最終的な結論を導き出します。
  • 行動 (Act 4):

    Finish[keyboard function keys]

    • 役割: 結論を行動として出力し、タスクを完了します。

提案手法の有効性はどのように評価した?

多様な性質を持つ4つのベンチマークと、比較実験によって詳細に検証されています。

  • ベンチマーク
    • HotpotQA: 複数の文書をまたぐ推論が必要な質問応答。
    • FEVER: 提示された主張が事実かどうかを検証するタスク。
    • ALFWorld: テキストベースで指示された家事タスク(例:「ナイフを洗ってカウンターに置く」)をシミュレーション環境内で実行するゲーム。
    • WebShop: ECサイトを模した環境で、ユーザーの指示に合う商品を検索・購入するタスク。
  • 比較対象
    • Standard: 質問に直接回答するベースライン。
    • CoT (Reasoning-Only): 思考の連鎖のみで回答を導出。
    • Act-Only: 思考を挟まず、行動のみを連続して生成。
    • 専門エージェント: ALFWorldでは模倣学習ベースのBUTLER、WebShopでは模倣学習+強化学習ベースのエージェントと比較。これらは大量の専門データで学習されています。
  • 具体的な実験結果:
    • ALFWorldにおいて、ReActはタスク成功率71%を達成し、Act-Only (45%) や、10万以上のデータで学習した専門エージェントBUTLER (37%) を圧倒しました。
    • WebShopにおいても、ReActは成功率40%を達成し、Act-Only (30.1%) や専門エージェント (28.7%) を上回りました。
    • HotpotQAでは、CoTがしばしば事実と異なる情報(ハルシネーション)に基づいて誤答するのに対し(失敗の56%がハルシネーション)、ReActは外部情報で推論を補強するため、ハルシネーションによる失敗はほぼ0%でした。

有効性の評価により得られた結論は?

  1. 推論は行動の質を高める: ReActはAct-Onlyを一貫して上回っており、思考はより効果的な行動選択に不可欠であることが証明されました。

  2. ReActはCoTのハルシネーション問題を克服する: 質的分析(Table 2)から、CoTの失敗の主要因(56%)はハルシネーションであることが明らかになりました。一方、ReActは外部の事実に基づいて推論するため、ハルシネーションをほぼゼロに抑え、より信頼性が高いことが示されました。

  3. 内部知識と外部知識の相補性: CoTは柔軟な推論が得意で、ReActは事実に即した行動が得意という、両者にはトレードオフの関係があります。そして、この2つを組み合わせたハイブリッド戦略が、単独の手法よりも常に高い性能を発揮することから、内部知識と外部知識を相乗的に活用することが最適であると結論付けられました。

  4. ReActはデータ効率の良い学習スキルである: ファインチューニングの実験(Figure 3)では、単に答えを記憶させるStandardやCoTのファインチューニングよりも、Wikipediaを使って情報を探す」というスキルを学習させるReActやActのファインチューニングの方が、はるかに高い性能を示しました。これは、ReActが単なる知識の暗記ではなく、汎用的な問題解決スキルをモデルに与えることを示唆しています。

  5. ReActは専門エージェントを凌駕する: ALFWorldとWebShopの両方で、ReActはわずか数例のプロンプトだけで、膨大なデータで学習した専門エージェントの性能を大幅に上回りました。これは、ReActが非常にデータ効率が良く、高い汎化性能を持つことを証明しています。LLMの事前知識を「思考」で引き出すことが、大量のタスク特化データよりも強力である可能性を示唆しています。

  6. 「思考」はタスク成功に不可欠である: 全てのタスクで、ReActはAct-Onlyを圧倒しています。質的な分析から、Act-Onlyはタスクの目標を途中で見失ったり、サブゴールを正しく分解できなかったりすることが失敗の主な原因であることが分かりました。これは、長期的な行動計画が求められるタスクにおいて、思考による進捗管理と計画立案が決定的に重要であることを示しています。

  7. 高レベルで柔軟な「思考」こそが価値の源泉である: 単純な思考しかできないReAct-IMは、ReActよりも大幅に性能が劣りました。ReAct-IMは、常識を活用して探索場所を推測したり、サブゴール間の遷移を論理的に判断したりすることができないため、失敗することが多かったのです。この結果は、ReActの強みが単に思考を挟むことにあるのではなく、その思考が柔軟で高レベルな推論(常識の活用、戦略立案など)を含んでいることにあると結論付けています。

最後に

最近、エージェント研究に関する論文をいくつか見ていて、そこで参照されていたこともあり、精読をしてみました。 引用数も多く、LLMエージェント研究における重要な論文だと思いますので、この分野に興味のある方は読んでいただくと良いのではないかと思います。

react-lm.github.io

github.com