1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

言語によるフィードバック

現在の自律型AIエージェント開発において非常に大きな影響を与えた研究内容として、「言語によるフィードバックによって AI を強化する」手法があります。

Reflexionと呼ばれる方法で以下の論文で提案されています。この記事ではこの論文の内容を詳しく説明します。

それ以前の手法の課題

AI モデルは同じ間違いを繰り返しやすいという課題があります。
何度指示しても修正が反映されなかったり、数回やり取りしたらいくつか前の指示を反映していない、など体験したことがあると思います。

そして、AI が行動に失敗した際、従来の強化学習の手法では、AIのパラメーター(重み)自体を膨大なデータと計算コストをかけてファインチューニングする必要がありました。これは時間もお金もかかりすぎ、という課題がありました。

Reflexion の仕組み

そこで、モデルの重みを更新せず、言語によるフィードバック自己反省(Self-Reflection) を用いて、エージェントを賢くする新しいフレームワークが提案されました。

具体的には以下のようなフローで進行します。

image.png
論文より

この流れを解説します。

1. Actor (LM) の行動と環境からのフィードバック

データの流れ:Actor (LM) → Action → Environment → Obs / Reward

  • まず主役であるエージェントの Actorが行動を起こし、それを外部の Environment(プログラムの実行環境など)に送ります
  • 環境はそれに対して、現在の状況やスコア(Obs / Reward:Observation/報酬)をエージェントに送り返します

例えば、コーディングをして、その後実行してエラーが出たかどうかを確かめるような作業です。

2. Trajectory(短期記憶)への蓄積

データの流れ:Obs / Reward → Trajectory (short-term memory)

  • 環境から戻ってきた情報(現在の状況や結果)は、Trajectory という短期記憶のボックスに格納されます
  • ここでは「今回の試行で、どんな手順を踏んできたか」という現行のリアルタイムな履歴が保存されます

3. Evaluator (LM) による評価

データの流れ:TrajectoryEvaluator (LM) → Internal feedback

  • 短期記憶に溜まった現在の行動履歴を見て、Evaluator (LM) が「この結果は正しいか、どこで間違えたか」を評価します
  • 評価結果は内部フィードバック(Internal feedback)として、上の自己反省コンポーネントへ送られます

4. Self-reflection (LM) による「反省文」の生成

ここが重要なパートです。

データの流れ:External feedback + Internal feedback → Self-reflection (LM) → Reflective text

  • Self-reflection (LM) は、以下の2つのフィードバックを同時に受け取ります
    • 環境から直接戻ってきたエラー文などの外部フィードバック(External feedback)
    • Evaluatorが分析した内部フィードバック(Internal feedback)
  • これらを組み合わせてして、「なるほど、〇〇のせいで失敗したんだな。次は△△を変えよう」という具体的な反省文を生成します

ちなみに、外部フィードバックと内部フィードバックのイメージは以下です。

  • 外部フィードバック
Failed to compile. ./src/Login.js Line 12:7: 'auth' is not defined. no-undef
  • 内部フィードバック
コード自体は正常に動作し、テストもパスしています。しかし、コンポーネントが1つのファイルに1000行以上書かれており、可読性が著しく低いです。関数を機能ごとに分割することを推奨します

5. Experience(長期記憶)への保存と次への活用

データの流れ:Reflective text → Experience (long-term memory) → Actor (LM)

  • 生成された反省文は、Experience という長期記憶のボックスに蓄積されます
  • 短期記憶が1回の試行ごとにリセットされるのに対し、この長期記憶は次の試行(エピソード)へ引き継がれます
  • 次のターン(再挑戦)が始まると、Actor (LM) は以下の2つを同時にインプットとして読み込みます
    • Trajectory(短期記憶):いま直面している現在の状況
    • Experience(長期記憶):過去の失敗から得た「反省文」

これにより、Actor はモデルの重みを更新することなく、プロンプト(コンテキスト)の力だけで過去の失敗を学習し、より洗練された次の Action を生み出すことができるようになります。

性能面での評価

意思決定、言語推論、コード生成などの分野で実験を行ったところ、Reflextion を導入したほうが概ね高いスコアを出しました。

image.png
論文より

ちなみに MBPP は Mostly Basic Python Problems で Python プログラミング能力を測定・評価するために使われる代表的なAIベンチマークです。
MBPP(RS)は For Rust という意味です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?