【AIエージェント】Planning の「反省と洗練」とは
この記事の概要
AIエージェントは、「Profile」「Memory」「Planning」「Action」から構成されます。
引用:A Survey on Large Language Model based Autonomous Agents (2023)
その内の「Planning(計画)」は、次の5つのカテゴリに分類できます。
- タスク分解
- マルチプラン選択
- 外部プランナー支援計画
- 反省と洗練
- 記憶拡張計画
この記事では、AIエージェントのPlanningのうち、「内省と洗練」について説明します。
復習:Planningとは
概要
AIエージェントの「計画」とは、目標達成のために一連の行動を構成・選択するプロセスです。
具体的には、タスクや目標に応じて、必要なステップを論理的・時系列的に整理し、エージェントがその通りに行動できるようにすることを指します。
なぜLLMベースのエージェントにPlanningが必要か?
- LLMは非常に強力な推論能力を持っていますが、そのままでは「複雑なタスクの段階的実行」には不向きです。
- 単発の出力だけでタスクを完了できない場面では、事前に「どんなステップで進めるか」を考えるPlanningが重要になります。
反省と洗練とは
反省(reflection)と洗練(refinement)のプロセスは、次の課題を解決することを目指します。
AIエージェントの課題
複雑な問題に対するハルシネーションの問題や不十分な推論能力、限られたフィードバックのために「思考ループ」に陥る可能性があります。
- ハルシネーションとは、LLMが非合理な計画を生成したり、タスクの指示に忠実でなかったり、複雑な指示に従えなかったりする現象のことです。これはLLMの根本的な欠点の1つで、存在しない情報を使ってしまうということもよくあります。
- 思考ループとは、エラーを繰り返して行き詰まってしまう状態のことです。
AIエージェントにおける役割
反省と洗練は、LLMエージェントにおける
耐障害性(fault tolerance)や誤り訂正能力
を高める役割を担います。
具体的な手法
具体的には、次のような手法などがあります。
-
Self-refine
「生成」「フィードバック」「洗練」という反復プロセスを利用します。
LLMは各計画生成後、その計画に対するフィードバックを自身で生成し、そのフィードバックに基づいて計画を調整します。 -
Reflexion
エージェントが実行した軌跡(計画と行動のシーケンス)を評価するための評価器を組み込んだ方法です。 -
CRITIC
LLMが生成した行動を検証するために、知識ベースや検索エンジンなどの外部ツールを使用します。
その後、LLMは外部から得られた知識を活用して自己修正を行い、事実誤認に基づくエラーを削減します。
論文紹介:SELF-REFINE: Iterative Refinement with Self-Feedback (2023)
はじめに
ここでは、「反省と洗練」の具体例である「Self-refine」の論文について紹介します。
論文の要点
- LLMが最初の出力で完璧な答えを出すわけではない点に注目します。
- Self‑Refineは、同じLLMが自分の出力にフィードバックし、改善を繰り返す手法です。
- 教師データやファインチューニング、強化学習が不要で、単一モデルで生成・フィードバック・改良を実現します。
- 7タスクで評価し、従来の方法よりも**約20%**性能向上しました。
Self-refineの仕組み
(引用:SELF-REFINE: Iterative Refinement with Self-Feedback, Fig1)
-
入力 (Input):
まず、入力が与えられます。 -
出力の生成:
言語モデル(M)を使用して最初の出力を生成します。 -
フィードバックの取得:
生成された出力は、同じモデルMに渡され、その出力に対するフィードバックが生成されます。 -
出力の修正:
フィードバックが再びモデルMに渡され、以前に生成された出力が修正されます。 -
反復:
ステップ1と2(フィードバックと修正)は、停止条件が満たされるまで繰り返されます。
このプロセス全体は、GPT-3.5のような単一の言語モデルMによって実行され、人間の介入を必要としません。これにより、LLMが最初の試行で最適な出力を生成できなかった場合でも、反復的な自己フィードバックと修正を通じて、より高品質な出力を得ることが可能であることを示しています。
具体例
(引用:SELF-REFINE: Iterative Refinement with Self-Feedback, Fig2)
上の図のように、最初に出力した回答((a)のResponse) に対して、同じLLM(M)を利用して(b)のようなフィードバックを生成します。
それを受けた同じLLM(M)は、(c)のように出力を作り直します。
まとめ
AIエージェントのコンポーネントの1つである「Planning」における、「反省と洗練」について説明しました。
AIエージェントの抱える、ハルシネーションや思考のループの課題を解決するために、同一LLMを使ってプランにフィードバックを与え、作り直させることで、計画を改善することができます。
また、「反省と洗練」の代表的な方法の1つである「Self-refine」についても解説しました。
参考
Understanding the planning of LLM agents: A survey (2024)
A Survey on the Memory Mechanism of Large Language Model based Agents (2024)
SELF-REFINE: Iterative Refinement with Self-Feedback (2023)
Discussion