🤖
プロンプトエンジニアリング - ReActに関して
背景
LLMマルチエージェントを使ったQAシステムのエージェント設計において、しばしば以下の課題が浮上します。
- ユーザーとエージェントの会話の履歴を参考にせず、ユーザーの単発の質問に対して回答してしまう
- 決め打ちのルールやフローに基づいて回答を行わせるため、急に話題が変わった質問や想定外の質問に弱い
- 計算を間違える
- ハルシネーション(それっぽい嘘)が発生する
- ユーザーからの不明瞭、もしくは抽象的な質問に対して、自身で何の情報が足りないか補えない
これらをどうにか解消できないか調べた結果、「ReAct」という手法にたどり着きました。
ReActとは
2022年に発表された論文「ReAct: Synergizing Reasoning and Acting in Language Models」で紹介されている「推論(Reasoning)」と「行動(Acting)」を交互に繰り返して、精度の良い回答を得る方法(プロンプトエンジニアリング)です。
以下実際のプロセスの流れです。
- 思考(Thought):LLMが問題について、次に何をすべきか考える
- 行動(Action):思考に基づいて、具体的な行動(情報検索、計算などのツール)を実行する
- 観察(Observation):行動の結果を観察し、新しい情報を得る
- 上記の1.-3.を繰り返す
ReActを利用することで、以下の恩恵が得られます。
- 複雑な問題を小さな問題に分解できる
- LLMの思考プロセスを明示するため、人が解釈しやすい
活用事例
こちらのサイトや書籍が参考になりました
所感
実際に試せていないので、試したら別で記事を書こうと思います。
他にもプロンプトエンジニアリング全般でいうと、以下のサイトに色々な手法がありました。
Discussion