Self-Refine Prompting — 自我提炼提示

From Systems analysis wiki
Jump to navigation Jump to search

Self-Refine自我提炼自我修正)是提示工程领域的一种方法,它允许大型语言模型 (LLM)根据自身的反馈来迭代式地改进其生成的回答[1]。这一想法由阿曼·马丹(Aman Madaan)领导的一组研究人员于2023年提出,其基础是观察到语言模型与人类相似,并非总能一次性生成最佳结果。

在该方法中,同一个 LLM 依次扮演三个角色:

  1. 生成器 (Generator): 针对请求创建初始的草稿回答。
  2. 批判器 (Feedback): 评估自己的回答并提供建设性的反馈。
  3. 精炼者 (Refiner): 利用此反馈来创建改进版的回答。

这个“生成 → 反馈 → 改进”的迭代循环可以重复多次,直到达到要求的质量或满足停止条件。

重要的是,Self-Refine 不需要额外的模型训练、微调或外部数据——整个过程完全通过推理阶段(inference)的提示词来控制[1]

实现机制

Self-Refine 方法通过一系列精心设计的提示词来实现,这些提示词引导模型的行为。

  1. 初始生成。模型接收原始提示词并生成草稿回答。
  2. 创建反馈。模型接收指令,分析其先前的回答并指出其中的缺陷。例如,它可能会指出回答不够详细或包含逻辑错误。最终结果是包含具体意见和建议的文本反馈。
  3. 迭代改进。模型将原始请求、其初步回答以及生成的反馈作为新的提示词输入。基于这些信息,它会创建一个改进版的回答。

这个“批判→修正”的两步循环可以执行多次。每次新迭代的上下文中都包含之前的回答版本和评论,这有助于模型避免重复错误[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]
  • 计算成本: 与单次生成相比,该方法需要多次调用 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]