1、背景
大语言模型生成的答案具有随机性,如何尽可能地提升回答的质量是一个关键的问题。我们希望大模型能够像人类一样,具备自我反思的能力,从错误中学习,不断优化自身的行为和决策。
2、介绍
一项关于大模型“Reflection”机制的研究,揭示了这种自我进化能力的重要性。研究表明,通过引入不同的反思方式,可以显著提高大模型Agent的准确率,甚至可以将GPT-4 Agent的准确率从79%提升至97%。
Reflection机制,指的是AI系统能够对自身的行为、决策和结果进行反思的能力。这种反思并非简单的“重做一遍”,而是涉及到对错误原因的分析、对解决方法的探索、以及对未来行为的优化。
3、八种“反思”方式
1、“重来一次”:让AI知道自己错了,重新尝试一遍,类似于“再试一次”的简单策略。
2、“错哪儿了”:引导AI列出犯错的关键点,类似于“错误分析”的策略,帮助模型定位问题。
3、“下次注意”:引导AI给出一些通用的改进建议,类似于“经验总结”的策略,提供普适性的指导。
4、“为啥错了”:引导AI解释自己犯错的原因,类似于“深度反思”的策略,促进模型深入理解问题。
5、“怎么做对”:引导AI列出解决问题的步骤,类似于“步骤分解”的策略,指导模型如何正确解决问题。
6、“正确答案”:提供一步步的正确解答,类似于“直接指导”的策略,直接提供正确答案。
7、“全都要”: 同时使用上面所有反思方式,类似于“综合反思”的策略,提供全方位的反思。
8、“开卷考试”: 让AI可以看到全部信息,包括正确答案,类似于“上限测试”的策略,了解模型的潜力。
实验结果显示,通过“反思”机制,LLM智能体的解题能力得到了显著提升。无论是哪个LLM,只要进行了“反思”,其解题准确率都有所提高。这表明,“反思”机制对于提升LLM智能体的认知能力具有普遍适用性。其中,那些让AI解释原因、列步骤的反思方式,比那些简单给个建议的反思方式效果更好。这说明,深度反思能够更好地帮助LLM智能体理解问题、总结经验,从而实现更有效的学习。此外,研究人员还发现,“反思”对有些领域的问题(比如逻辑推理)提升更明显,说明这种能力可能更适合深度思考。
4、吴恩达的LLM反思方法
如果你写了一篇文章,老师通常会给你写一段评语,然后你根据这些评语来改进文章。这就是定性分析的一种形式(一种基于文字描述的改进方式)。LLM擅长进行语义分析,即具备反思能力。它能够对内容进行深度反思,并根据反思结果提出改进建议(文字描述方式的建议),从而实现迭代优化。下面将介绍吴恩达做的翻译反思的开源项目。
4.1、主流程
4.1.1、项目背景
本项目旨在将一种语言精确地翻译成另一种语言,确保信息传达的准确性与流畅性
1、初次翻译:首先,利用大语言模型(LLM)进行初步翻译,生成初步的译文。
2、反思与改进:随后,LLM会对初次翻译的结果进行深度反思,并输出详细的“改进建议”,指出译文中可以进一步优化的地方。
3、最终定稿:根据LLM提供的“改进建议”,再次进行思考与调整,最终输出更为精准、流畅的翻译结果。
所以整个流程设计三个提示词(对应上边的三步)
4.2、实战
假设一个场景:原始语言是中文,目标语言是英语,目标语言使用地是美国
4.2.1、第一次翻译
目标:直接给出我们的要求,让LLM输出我们要的结果。
提示词:
这是一次从{source_lang}到{target_lang}的翻译,请提供这段文本的{target_lang}翻译
除了翻译内容外,请勿提供任何解释或文本。
{source_lang}: {source_text}{target_lang}:
4.2.2、反思
目标:对第一次翻译的结果进行反思和思考,让LLM输出改进的建议
提示词:
你的任务是仔细阅读源文和从源语言{source_lang}翻译到目标语言{target_lang}的译文,然后给出建设性的批评和有益的建议,以改进译文翻译的最终风格和语调应与{country}地区日常口语中的{target_lang}风格相匹配。
源文本和初始翻译(由XML标签<SOURCE_TEXT></SOURCE_TEXT>和<TRANSLATION></TRANSLATION>分隔)如下所示:
<SOURCE_TEXT>
{source_text}
</SOURCE_TEXT>
<TRANSLATION>
{translation_1}
</TRANSLATION>
在撰写建议时,请注意是否有改进翻译的方法:
(1)准确性(通过纠正加法错误、误译、遗漏或未翻译的文本)
(2)流畅性(通过应用{target_lang}的语法、拼写和标点规则,并确保没有不必要的重复)
(3)风格(确保译文反映源文本的风格,并考虑任何文化背景)
(4)术语(确保术语使用一致,并反映源文本领域;并确保只使用与目标语言等效的习语)。
列出一些具体、有益且具有建设性的建议,以改进翻译工作。每条建议都应针对翻译中的一个具体部分。仅输出建议,其他内容一概不输出。
如果我们对一个改进有一些标准,可以替换提示词改进标准的这块描述,LLM就会输出更符合我们期待的“改进建议”。
4.2.3、改进
目标:基于第一步翻译的结果和第二步的改进建议,让LLM输出最终的翻译结果
提示词:
你的任务是仔细阅读,然后编辑从{source_lang}到{target_lang}的翻译,同时考虑列出专家建议和建设性批评。
源文本、初步翻译和专家语言学家建议分别由XML标签<SOURCE_TEXT></SOURCE_TEXT>、<TRANSLATION></TRANSLATION>和<EXPERT_SUGGESTIONS></EXPERT_SUGGESTIONS>分隔如下:
<SOURCE_TEXT>
{source_text}
</SOURCE_TEXT>
<TRANSLATION>
{translation_1}
</TRANSLATION>
<EXPERT_SUGGESTIONS>
{反射}
</EXPERT_SUGGESTIONS>
在编辑译文时,请充分考虑专家的建议。编辑译文时,请确保:
(1)准确性(通过纠正添加错误、误译、遗漏或未翻译的文本),
(2)流畅性(通过应用{target_lang}语法、拼写和标点规则,并确保没有不必要的重复)
(3)风格(确保译文体现源文的风格)
(4)术语(与上下文不匹配,使用不一致),或
(5)其他错误。
仅输出新翻译内容,其他内容一概不输出。