ReAct は、Yao らが ReAct:言語モデルにおける推論と行動の相乗効果 で提案したプロンプティング手法であり、エージェントの行動空間を、通常のタスク固有の行動に加えて、自由形式の思考からなる「言語空間」で拡張する。思考はそれ自体では外部環境に作用せず、観測のフィードバックも生まない。その代わりに、現在のコンテキストから有用な情報を組み立て(目標の分解、進捗の追跡、例外への注意など)、コンテキストを更新して後の推論や行動を支える。この手法は、凍結された大規模言語モデルに少数の文脈内の例を与えてプロンプトすることで適用される。各例は、思考、行動、環境の観測からなる人間が書いた軌跡であり、追加のモデル訓練は一切必要としない。

用法

この手法は、タスクごとに 1 セットずつ文脈内の例を手で書くことで適用される。著者らは自分たちの例を、GPT-3 のプロンプティングコードの MIT ライセンスのリポジトリとして公開している。タスクごとに 1 つのノートブックがあり、小さな Wikipedia 環境が検索と参照の行動を提供する。そのリポジトリは、対象とする 4 つのタスク以外に ReAct を適用したい読者に対し、自らのプロンプトではなく LangChain のゼロショット ReAct エージェントを案内している。

この手法がモデルをまたいでどこまで通用するかについては、2 つの文書で読み方が異なる。論文の付録は 2 つのタスクで PaLM-540B と GPT-3(text-davinci-002)を比較し、どちらでも GPT-3 が上回ったとして、それを ReAct プロンプティングが異なる大規模言語モデルにわたって有効である証拠と読んでいる。リポジトリの表は 4 つのタスクを扱い、GPT-3 が 2 つで上回り、残る 2 つで下回っており、リポジトリはそれを 2 つのモデルがそれぞれ異なるタスクを得意とすると要約している。

適用される場面

提案論文は、ReAct を行動空間と推論の必要性がそれぞれ異なるタスクに適用している。知識集約型のタスク(マルチホップの質問応答、事実検証)では、思考と行動のステップを密に交互させ、単純な Wikipedia の検索・参照インターフェースとやり取りして裏付けとなる情報を取得する。対話的な意思決定タスク(テキストベースの家庭環境シミュレーションとオンラインショッピング環境)では、思考を軌跡の中で最も役立つ箇所にだけ、よりまばらに現れるようにし、いつ思考しいつ行動するかは言語モデル自身が決める。論文によれば、ReAct は行動のみのベースラインを一貫して上回った。推論のみの chain-of-thought に対しては、事実検証では上回ったがマルチホップの質問応答ではわずかに下回り、この 2 つのタスクにおける論文の最良の結果は、ReAct 単独ではなく ReAct と self-consistency 推論を組み合わせたものから得られた。また、先行する「Inner Monologue」手法をモデルにした、密で外部からトリガーされる思考を用いるアブレーションは、家庭環境シミュレーションのタスクにおいて、ReAct のよりまばらで柔軟な思考パターンを下回ったと報告している。論文自身が述べる限界は、行動空間が大きいタスクではうまく学習するためにより多くのデモンストレーションが必要となり、それが文脈内プロンプティングの入力長の上限を超えうることである。

論文にはさらに、プロンプティングの設定を超えてこの手法がどう使われるかに関わる 2 つの結果があり、著者らは自身の Google Research のブログ記事でその両方を改めて述べている。1 つ目は、先ほど挙げた限界に対するファインチューニングという答えである。ReAct でプロンプトした PaLM-540B モデルが生成した成功した軌跡を使って、より小さな PaLM-8B と PaLM-62B のモデルをファインチューニングする。これにより推論のトレースを大規模に手作業でアノテーションすることを避けられ、ReAct はファインチューニング下で最も性能の高い手法だったと報告されている。2 つ目は、人間が軌跡に介入できることである。エージェントの思考のうち 2 つを編集する、すなわち幻覚を起こしている思考を 1 つ削除し、ヒントを 1 つ追加するだけで、その後の振る舞いが変わり、本来は失敗していた家庭環境シミュレーションのタスクを完了できた。著者らはこれを、編集が必要な思考がわずかで済むという事実によって実用的になる、人間と機械の協働の一形態として提示している。

関連用語

ReAct:言語モデルにおける推論と行動の相乗効果