🤖

【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)

  1. 入力 (Input)
    まず、入力が与えられます。
  2. 出力の生成
    言語モデル(M)を使用して最初の出力を生成します。
  3. フィードバックの取得
    生成された出力は、同じモデルMに渡され、その出力に対するフィードバックが生成されます。
  4. 出力の修正
    フィードバックが再びモデルMに渡され、以前に生成された出力が修正されます。
  5. 反復:
    ステップ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)

UPGRADE tech blog

Discussion