Self-Refine Prompting — 自己修正プロンプティング

From Systems analysis wiki
Jump to navigation Jump to search

Self-Refine自己明確化または自己修正)は、プロンプトエンジニアリングの分野におけるアプローチであり、大規模言語モデル(LLM)が自身のフィードバックに基づいて生成された回答を反復的に改善することを可能にする手法です[1]。このアイデアは、2023年にアマン・マダーン(Aman Madaan)氏が率いる研究者グループによって提案され、人間と同様に、言語モデルも最初の試みで常に最良の結果を生成するわけではないという観察に基づいています。

この手法では、同一のLLMが連続して3つの役割を果たします:

  1. 生成者(Generator): リクエストに対する初期の草稿を作成する。
  2. 批評者(Feedback): 自身の回答を評価し、建設的なフィードバックを提供する。
  3. 編集者(Refiner): このフィードバックを用いて、改善されたバージョンの回答を作成する。

この「生成 → フィードバック → 改善」という反復サイクルは、要求される品質に達するか、停止条件が満たされるまで数回繰り返すことができます。

重要なのは、Self-Refineはモデルの追加学習、ファインチューニング、または外部データを必要とせず、プロセス全体が推論(inference)段階でプロンプトのみを通じて制御される点です[1]

実装メカニズム

Self-Refineメソッドは、モデルの振る舞いを誘導するために特別に設計された一連のプロンプトを通じて実装されます。

  1. 初期生成。モデルは元のプロンプトを受け取り、草稿となる回答を生成します。
  2. フィードバックの生成。モデルは、自身の直前の回答を分析し、その欠点を特定するよう指示を受けます。例えば、回答が十分に詳細でない、あるいは論理的な誤りを含んでいることを指摘する場合があります。その結果、具体的な指摘や推奨事項を含むテキスト形式のフィードバックが生成されます。
  3. 反復的な改善。モデルは、元のリクエスト、自身の初期回答、そして生成されたフィードバックを新しいプロンプトとして受け取ります。これに基づき、改善されたバージョンの回答を作成します。

この「批評 → 編集」という2段階のサイクルは、複数回実行することができます。各新しいイテレーションのコンテキストには、以前の回答バージョンとコメントが含まれ、これによりモデルは同じ誤りを繰り返すことを避けることができます[2]。モデルの振る舞いを制御するため、プロンプトに望ましいフィードバック形式や修正の例を含めるfew-shot prompting技術がしばしば使用されます。

有効性と応用

Self-Refineメソッドは、以下のような複数回の洗練を必要とする多くのタスクでその有効性を示しています:

  • 対話応答の生成。
  • 物語の創造的な続きの生成。
  • ステップバイステップの推論による数学問題の解決。
  • プログラムコードの最適化。

元の研究では、Self-Refineを用いて得られた回答は、人間による評価および自動評価指標において、単一ステップの生成と比較して平均で約20%高い評価を受けました[1]。この改善はGPT-4のような最新のモデルでも達成されており、強力なLLMでさえも、自身の誤りを修正するためにもう一段階の思考ステップが不足していることが多いことを示唆しています。

RCI(Recursive Criticism and Improvement)のような類似のアプローチも、コンピュータ操作や論理問題の解決といったインタラクティブなタスクで高い有効性を示しています。RCIを「思考の連鎖」(Chain-of-Thought)技術と組み合わせることで相乗効果が生まれ、組み込まれた自己検証ステップによってモデルが複雑な問題を解決する能力が著しく向上しました[3]

制約と現在の研究

有望な成功にもかかわらず、自己反復的な改善にはいくつかの制約があることが研究で示されています。

  • 自己バイアス(self-bias): モデルは自身の回答を公平に判断することが困難です。LLMは自身が生成したテキストを好意的に受け取り、十分に批判的に評価しない傾向があり、これが数回のイテレーション後に品質の停滞や悪化につながることがあります[4]
  • 過剰な自信: 自己修正のイテレーション回数が増えるにつれて、モデルは回答がより正確になっていない場合でも、その回答に対して過剰な自信を持つようになることが観察されています。これは、モデルの自信度と実際の正解率との間の不一致を示すExpected Calibration Error (ECE)指標の上昇につながります[5]
  • 計算コスト: この手法は、1つの最終的な回答を得るためにLLMに複数回アクセスする必要があるため、単一パスの生成と比較して遅延とコストが大幅に増加します。

現在の研究はこれらの問題の解決を目指しています。一つの方向性は、各イテレーションステップで自信度を較正するメカニズムを導入することです。もう一つは、より客観的な自己評価のために、外部の情報源やツール(例えば、コード実行、データ検索など)を活用することです[6]

他の技術との比較

  • Chain-of-Thought (CoT): CoTは、回答に至るまでの一連の線形的な推論を生成することに焦点を当てています。一方、Self-Refineは、すでに生成された回答(CoTを含む場合もある)を反復的に改善することに焦点を当てています。
  • Tree of Thoughts (ToT): ToTは、複数の並行した推論経路を木構造で探索しますが、Self-Refineは単一の経路を反復的に改善します。ToTは解空間を探索する技術であり、Self-Refineは特定の解を最適化する技術です。

外部リンク

参考文献

  • Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
  • Kim, G. et al. (2023). Language Models Can Solve Computer Tasks. arXiv:2303.17491.
  • Gou, Z. et al. (2023). CRITIC: Large Language Models Can Self-Correct with Tool-Interactive Critiquing. arXiv:2305.11738.
  • Huang, J. et al. (2023). Large Language Models Cannot Self-Correct Reasoning Yet. arXiv:2310.01798.
  • Pan, L. et al. (2023). Automatically Correcting Large Language Models: Surveying the Landscape of Diverse Self-Correction Strategies. arXiv:2308.03188.
  • Jiang, C. et al. (2024). Importance Weighting Can Help Large Language Models Self-Improve. arXiv:2408.09849.
  • Liang, X. et al. (2024). Internal Consistency and Self-Feedback in Large Language Models: A Survey. arXiv:2407.14507.
  • Zhu, D. et al. (2025). Beyond Accuracy: The Role of Calibration in Self-Improving Large Language Models. arXiv:2504.02902.
  • Hao, Q. et al. (2025). RL of Thoughts: Navigating LLM Reasoning with Inference-time Reinforcement Learning. arXiv:2505.14140.
  • Cui, Y. et al. (2023). Check Your Facts and Try Again: Improving Large Language Models by Reducing Hallucination. arXiv:2302.12813.
  • Wei, Z. et al. (2024). ReSearch: Iterative Self-Reflection for Better LLM Calibration. arXiv:2405.13022.

注釈

  1. 1.0 1.1 1.2 Madaan, Aman; et al. «Self-Refine: Iterative Refinement with Self-Feedback». arXiv. [1]
  2. «Self-Refine: Iterative Refinement with Self-Feedback». Официальный сайт проекта. [2]
  3. Kim, Geunwoo; et al. «Language Models can Solve Computer Tasks». arXiv. [3]
  4. Huang, Jie; et al. «Large Language Models Cannot Self-Correct Reasoning Yet». arXiv. [4]
  5. Zhu, D., et al. (2025). «Beyond Accuracy: The Role of Calibration in Self-Improving Large Language Models». arXiv. [5]
  6. «Beyond Accuracy: The Role of Calibration in Self-Improving Large Language Models». arXiv. [6]