ReActとは?GPTにおけるReActという概念についてわかりやすく解説。

GPT関連で時々聞く、ReActとは何なのかについて、わかりやすく解説していきたいと思います。以下は論文です。

https://arxiv.org/abs/2210.03629

ReActについて理解するために、まず大まかな概念から始めて具体的な例を用いて説明します。

ReAct(REasoning and ACTing)は、言語モデル(LLM)を使用して思考(推論)と行動を同時に行うための新しい枠組みです。ReActの主な目的は、自然言語推論と意思決定のタスクを統合することで、より高度な言語理解と知識活用を可能にすることです。

従来のChain of Thought(CoT)アプローチでは、モデルは内部的な推論に頼っていました。つまり、モデルは質問に答えるために、訓練中に学習した情報を基に推論を行います。しかし、これには限界があり、事実を捻じ曲げたり誤った情報を伝播させる可能性があります。ReActはこれを改善し、モデルが外部の情報源(例えば、Wikipedia)にアクセスして情報を取得し、推論に活用できるようにします。

では、具体的な例を挙げてReActがどのように機能するのかを見てみましょう。

例えば、あなたがレストランのオーナーで、新しいメニューを作りたいと考えているとします。しかし、具体的なアイデアがないため、AIエージェント(ReActを採用したLLM)に「新しいイタリアンのメニューを提案してください」と頼んだとしましょう。

行動: LLMはまず、「イタリア料理についての基本情報」を検索します。これには、一般的な食材、調理法、伝統的なレシピなどが含まれるでしょう。

推論: 検索結果を基に、LLMは「イタリア料理はトマト、モッツァレラチーズ、オリーブオイルなどの食材をよく使用し、パスタやピザなどが代表的な料理である」という推論を行います。

行動: 次に、LLMは「ユニークなイタリア料理のレシピ」を検索します。これには、伝統的なレシピをベースにした新しいアイデアや、オリジナルのイタリア料理のレシピが含まれるでしょう。

推論: 検索結果を基に、LLMは「既存のイタリア料理に新しいフレーバーや食材を加えることで、ユニークな料理を作ることができる」という推論を行います。

行動: そして、LLMはこれらの情報を基に、新しいイタリアンメニューの提案を行います。例えば、「トマトとモッツァレラチーズを使用したクラシックなマルゲリータピザに、地元産の季節の野菜をトッピングとして加える」といった提案を行うでしょう。

この過程を通じて、ReActは推論と行動を繰り返し、必要な情報を検索し、それを基に新しい提案を生成します。このように、ReActはLLMによる問題解決と意思決定のプロセスを強化し、より実用的で高度なタスクを達成することを可能にします。

また、ReActの枠組みは、エージェントが与えられたコンテキストに基づいて行動を選択する一般的なタスク解決手法に組み込むことができます。つまり、エージェントの行動空間が言語空間に拡張され、その結果、エージェントは言語に基づいた意思決定や推論を行うことができます。これにより、エージェントはタスクの目標を分解したり、タスク解決に必要な知識を抽出したり、環境から重要な要素を取り出したり、進行状況を管理したり、例外処理を行ったりといったような、より高度なタスクを達成することが可能になります。

以上、ReActの概念と具体的な例を用いた説明でした。