リフレクションとは
Reflection / 自己内省
LLMが自身の出力を振り返り、批判・評価したうえで応答を改善する反復的な手法
ひとことで言うと
AIが自分の出した答えを見直し、直しながら精度を上げていく方法。
概要
リフレクション(Reflection)とは、LLMやエージェントが一度生成した出力を、自ら(または別のLLM呼び出し)によって振り返り評価し、その評価結果をもとに出力を修正・改善する反復的な手法。 人間が文章を書いた後に見直して推敲するのと同様に、「生成 → 自己評価・批判 → 修正」というループを1回ないし複数回繰り返すことで、単発の生成だけでは得られにくい精度や品質の向上を狙う。 コード生成の自己テスト・修正や、複雑な推論タスクにおける誤りの検出・訂正等に応用される。 ただし自己評価もLLM自身の判断に依存するため、モデルが持つ弱点や誤りをリフレクションだけでは検出できない場合もあり、外部のテスト実行やツールによる客観的な検証と組み合わせるとより効果的とされる。
背景
LLMは一度の生成で誤りを含む出力をすることがある。 その出力自体を入力として与え直し「この出力に問題はないか」と問いかけると、誤りを検出・修正できることが確認されている。 リフレクションは、この自己評価・修正の能力を意図的にプロンプトやループとして組み込み、出力品質を高めるために考案された。
歴史
2023年: MadaanらがSelf-Refineとして、LLM自身にフィードバックと修正を反復させる手法を提案。 同年、ShinnらがReflexionとして、タスク失敗時の内省をテキストとして記憶し次の試行に活かすエージェント向けの手法を提案。
アーキテクチャ
生成役のLLM(Actor)が出力を生成し、評価役のLLM(Critic、同一モデルの別呼び出しの場合もある)がその出力を評価してフィードバックを生成する。 生成役はこのフィードバックを踏まえて出力を修正し、このサイクルを品質が十分と判断されるか規定の回数に達するまで繰り返す。
利点
- 単発の生成では気づけない誤りや改善点を、自己評価によって検出・修正できる場合がある
- 複雑な推論やコード生成タスクで、出力品質を段階的に高められる
欠点
- 生成と評価を繰り返す分、単発の生成より推論コストと時間がかかる
- 自己評価自体が誤っていると、かえって出力を悪化させる場合がある
比較
- Chain-of-Thought — Chain-of-Thoughtが単一の推論過程を段階的に言語化するのに対し、リフレクションは一度出した結論を事後的に見直す
- AIエージェント — リフレクションは、AIエージェントの試行錯誤を通じた自己改善を支える手法の1つ