AIエージェント活用実践編計画・分解・再試行 — Reasoning パターン

Reflection と Self-Critique

無料公開レッスン / 読了目安 5


学習のねらい

LLM(大規模言語モデル)の出力は、常に完璧とは限りません。特に複雑なタスクや曖昧な指示の場合、期待通りの結果が得られないことがあります。 人間が自分の仕事を見直して改善するように、LLM も自身の出力を評価し、改善する仕組みがあれば、より高品質な結果を得ることができます。

本レッスンでは、LLM が自身の出力を自己評価し、改善する手法である Reflection (リフレクション、自己反省)Self-Critique (セルフクリティーク、自己批評) について学びます。これは、Anthropic の6パターンで言うところの「Evaluator-Optimizer (評価者・最適化者)」パターンに相当します。

Reflection と Self-Critique の本質

Reflection と Self-Critique は、LLM が自身の生成した出力に対して、別の LLM 呼び出しを使って評価し、改善点を見つけ、それに基づいて出力を修正する プロセスです。

仕組みの例

  1. ドラフト生成: 最初の LLM 呼び出しで、タスクのドラフト(初稿)を生成します。
  2. 批評 (Critique): 別の LLM 呼び出し(または同じ LLM に別のプロンプトを与える)で、生成されたドラフトを評価し、改善点を指摘させます。「この文章の論理は破綻していませんか?」「指定された条件を満たしていますか?」といった質問を投げかけます。
  3. 改善 (Refine): 最初の LLM に、元のドラフトと批評の両方を入力し、それに基づいてドラフトを修正・改善させます。
  4. 反復: 必要であれば、この批評と改善のサイクルを複数回繰り返します。

このプロセスを通じて、LLM は自身のパフォーマンスを反復的に向上させることができます。

改善ループの停止条件

Reflection と Self-Critique は強力な手法ですが、無限に改善を繰り返すとコストが膨大になります。そのため、改善ループには適切な停止条件を設定することが重要です。

一般的な停止条件には以下のようなものがあります。

  • 最大反復回数: 事前に決められた回数(例: 3回、5回)まで改善を繰り返したら停止します。最もシンプルで確実な方法です。
  • 品質スコアの閾値: LLM が自身の出力を数値で評価するような仕組みを導入し、そのスコアが一定の閾値を超えたら停止します。
  • 変更の収束: 前回の改善と今回の改善で、出力に大きな変化がなくなった場合に停止します。これは、それ以上改善の余地が少ないと判断できるためです。
  • 人間による確認: 特定の段階で人間のレビューを挟み、人間が「これで十分」と判断したら停止します。

これらの停止条件を組み合わせることで、コストと品質のバランスを取りながら、効率的にシステムを運用できます。

コスト管理の重要性

Reflection と Self-Critique は、複数回の LLM 呼び出しを伴うため、通常の単一呼び出しよりもコストが高くなります。 特に、批評と改善のサイクルを繰り返すたびに、入力プロンプトと出力の両方でトークン消費が発生します。

コストを管理するためには、以下の点に注意しましょう。

  • 適切な停止条件の設定: 前述の通り、無駄な反復を避けることが重要です。
  • プロンプトの効率化: 批評や改善の指示を簡潔にし、不要な情報を削減することで、トークン消費を抑えます。
  • モデルの選択: 批評や簡単な改善には、より安価な小規模モデルを使用することも検討できます。
  • 出力の粒度: 批評を必要以上に詳細にしない、改善の指示もピンポイントにするなど、出力量を意識します。

まとめ

Reflection と Self-Critique は、LLM が自身の出力を評価し、改善を繰り返すことで、タスクの品質を向上させる強力な手法です。 しかし、複数回の LLM 呼び出しを伴うため、最大反復回数や品質スコアなどの適切な停止条件を設定し、コスト管理を意識しながら導入することが重要です。 これにより、LLM の持つ能力を最大限に引き出し、より信頼性の高い AI システムを構築できます。

参考リンク


Reflection と Self-Critique | AIエージェント活用実践編 第1章 - AI研修