Reflexion 框架 | 提示词工程(4)
自我反思提示框架
- 自我反思提示框架:提升AI模型性能的深度分析
- 1、引言
- 2、自我反思提示框架的概念
- 3、自我反思与ReAct框架的关系
- 4、自我反思提示框架的工作原理
- 5、自我反思提示框架的应用
- 5.1、在代码生成中的应用
- 5.2、在问答系统中的应用
- 6、自我反思提示框架的提示词示例
- 7、结合 ReAct 框架的提示词
- 8、结论
自我反思提示框架:提升AI模型性能的深度分析
1、引言
在提示工程领域,自我反思提示框架代表了一种先进的技术方法,通过引导AI模型对自己的推理过程和输出进行评估和改进,从而显著提升模型的性能和准确性。本报告将深入探讨自我反思提示框架的概念、技术原理、应用场景以及具体的提示词示例,帮助读者全面理解这一前沿技术。
2、自我反思提示框架的概念
自我反思提示框架(self-reflection):一种通过语言反馈来强化基于语言的智能体的框架。根据Shinn等人(2023)的研究,“自我反思是一种’口头’强化的新范例”。这种框架的核心在于引入自我评估、自我反思和记忆组件,使模型能够通过反思自己的行为和输出来持续改进性能。
Reflexion 框架是一个典型的自我反思框架,它通过动态记忆和自我反思能力来提升智能体的推理技能。它具有标准的 RL 设置,其中奖励模型提供简单的二进制奖励,动作空间遵循ReAct 中的设置。
3、自我反思与ReAct框架的关系
自我反思框架是对 ReAct 框架的扩展。ReAct 框架提供了一个基本的推理和行动框架,而自我反思框架通过增加自我评估和记忆组件,进一步增强了模型的智能水平。具体来说,反思通过引入自我评估、自我反思和记忆组件扩展了 ReAct 框架。
这种扩展使模型能够:
- 评估自己的推理过程
- 反思自己的决策
- 记忆和学习过去的体验
4、自我反思提示框架的工作原理
自我反思提示框架的工作原理基于模型生成输出,然后通过提示词引导模型对自己的输出进行评估和反思,最终根据反思结果生成改进的输出。以编写代码为例,AI模型首先会根据给定的任务生成一段代码。然后,模型会被提示对自己的代码进行反思,检查代码的正确性、风格和效率,并给出建设性的批评。
具体来说,模型会执行以下步骤:
- 生成初始输出
- 评估初始输出
- 反思评估结果
- 生成改进的最终输出
5、自我反思提示框架的应用
自我反思提示框架在多种场景中都有应用,包括代码生成、问答系统、推理任务等。实验结果表明,反思代理在AlfWorld决策任务、HotPotQA推理问题和HumanEval中的Python编程等方面表现出色。
5.1、在代码生成中的应用
在代码生成场景中,模型首先生成代码,然后被提示反思代码的正确性、风格和效率。这种反思过程帮助模型生成更高质量、更高效的代码。
5.2、在问答系统中的应用
在问答系统中,模型生成答案后,会被提示反思答案的准确性、完整性以及是否有更好的表达方式。这种反思过程显著提高了问答系统的性能和准确性。
6、自我反思提示框架的提示词示例
以下是一些自我反思提示框架的提示词示例,这些示例可以帮助引导模型进行自我评估和反思:
评估当前答案:
请评估你对以下问题的答案:“[问题]”。你认为这个答案准确吗?为什么?
识别推理中的错误:
请回顾你对以下问题的推理过程:“[问题]”。你认为哪里可能出错了?
学习经验教训:
从你对以下问题的解答中,你学到了什么经验教训?这些经验教训如何帮助你更好地解决类似问题?
应用先前的经验:
请回忆你之前解决类似问题的经验,并思考如何将这些经验应用到当前问题中。
生成反思标记:
请生成一个反思标记,以评估以下陈述的准确性:“[陈述]”。反思标记可以是"准确"、“部分准确"或"不准确”。
检查代码质量:
请检查你生成的代码,评估其正确性、风格和效率,并提供改进建议。
验证事实准确性:
请验证你的回答中的事实是否准确,并提供引用支持。
评估推理过程:
请评估你的推理过程是否合理,是否有更好的推理路径。
生成改进建议:
请基于你的自我评估,提供改进建议,使你的输出更加准确和全面。
7、结合 ReAct 框架的提示词
提示词:
请使用交替进行的“思考(Thought)、行动(Action)、观察(Observation)"三个步骤,最后进行”自我反思(Reflexion)“步骤来系统地解决回答任务。
思考:基于当前获得的信息进行推理,明确下一步行动的目标。
行动:每一步行动必须是以下三种之一:
1、Search[实体]:在互联网上搜索精确实体,返回该实体相关页面的首段文字。如果该实体不存在,则返回与其相似的候选实体。
2、Lookup[关键词]:在上一次成功的 Search 操作返回的段落中,查找包含该关键词的下一句。
3、Finish[答案]:得出明确答案后使用此操作,返回答案并终止任务。
观察:记录前一步行动的结果。
反思:检查内容是否准确,推导路径是否合理。如果发现错误、重复或低效,可以总结问题并重新规划策略。
你可以进行多轮推理和检索,但必须严格按照上述格式进行操作,尤其是每一步“行动”只能使用上述三种类型之一。
示例:
问题:科罗拉多造山带东部区域延伸到的区域的海拔范围是多少?
思考 1:我需要搜索“科罗拉多造山带”,获取它的概况,特别是东部延伸区域的信息。
行动 1:Search[科罗拉多造山带]
观察 1:科罗拉多造山带是科罗拉多及其周边地区造山运动的一段。
思考 2:这里没有提到东部延伸区域的具体信息,我需要继续查找“东部区域”。
行动 2:Lookup[东部区域]
观察 2:(结果 1 / 1)东部区域延伸至高平原,称为中原造山带。
思考 3:我已经知道东部区域是高平原,我需要查找高平原的海拔范围。
观察 3:高平原的海拔高度从 1800 到 7000 英尺。
思考 4:我已经得到了答案,可以结束任务。
行动 4:Finish[1800 到 7000 英尺]
反思 1:以上内容是否准确?推导路径是否合理?如不合理,提供改进建议,使输出更加准确和全面。
(示例结束)
现在请回答以下问题:问题:{}
例子:
问题:中国的重庆的面积大,还是广西的面积大,它们之间的面积相差多少
DeepSeek:
ChatGPT:
DeepSeek的v3 API:
8、结论
自我反思提示框架代表了提示工程领域的一个重要发展方向,通过引导AI模型进行自我评估和反思,显著提高了模型的推理能力和输出质量。这种方法不仅增强了模型的适应性和鲁棒性,还减少了对大量外部反馈的依赖,降低了训练成本。