图源:《A Survey on Large Language Model based Autonomous Agents》 有反馈计划:
上面的计划模块不涉及任何反馈,这使得实现长期计划(长期规划)以解决复杂的任务具有挑战性。为了应对这一挑战,可以利用一种机制,该机制使模型可以根据过去的动作和观察结果迭代地反映和完善执行计划,目的是纠正和改善过去的错误,有助于提高最终结果的质量。这在复杂的现实世界环境和任务中尤其重要,在这些环境和错误是完成任务关键的关键的情况下。这种反思或批评机制的两种流行方法包括ReAct(Reson-Action)和Reflexion。 2. 工具(Tools):
智能体(Agent)可以通过调用函数或API获取模型权重和数据库中不存在的信息。常见的Agent工具包括网络检索工具、文件读写工具、API调用工具。例如,让Agent使用Google Search API,以及调用聚合数据来获取常见的天气信息和股票数据等。也可以通过访问高德API来获取位置,调用SD的API来实现图像生成。 3. 执行(Action):
智能体按照计划,根据记忆,利用工具进行操作,并作用于所处环境(Environment)。 4. 记忆(Memory):
短期记忆:所有的上下文学习都看成是利用模型的短期记忆来学习,常见的提示词工程都属于短期记忆,包括某些设定,AI人设,输出格式,说话预期等。通过短期记忆,我们可以让AI能在当前会话(Session)中生成我们想要的回答,例如我们让Agent扮演某个角色,然后使用某种格式进行输出。
下面就是一个例子:
补充知识:智能体相关算法
前述我们已经提到了大模型是智能体的大脑,大模型的辅助技术有微调(Fine-Tuning)、提示工程(Prompt Engineering)、检索增强生成(RAG)等。还有几个技术名词我们略作介绍,一是保持文章完整性,二是我们可以对这些名词熟悉一下,有个直观印象。 一、思维链(CoT,Chain of Thoughts)
前文AI|大模型入门(三):提示工程已经介绍。 二、分步骤思考(Zero-shot-CoT)
前文AI|大模型入门(三):提示工程已经介绍。 三、思维树(ToT,Tree of Thoughts)
传统的语言模型在规划和决策过程中存在局限性,而"思维树"通过同时考虑多个潜在的可行计划,并利用价值反馈机制进行决策,扩展了现有的规划方法。此外,该方法还引入了自我反思机制,使语言模型能够评估自身生成的候选项的可行性。与其他相关工作相比,"思维树"方法更加灵活,可以处理具有挑战性的任务,如创意写作,并提供了更高水平的问题解决能力。
图源:《Tree of Thoughts: Deliberate Problem Solving with Large Language Models》 四、ReAct
ReAct算法来源于论文“ReAct:Synergizing Reasoning and Acting in Language Models”,发表在2023年的ICLR会议上。ReAct算法的核心是通过交替进行Reasoning和Acting的方式帮助智能体更好地应对和解决复杂问题。相较于一般的Reasoning方法,能够根据当前的场景进行分析,做出更具有针对性的行动,并且提供了更好的可解释性和更高的容错度。
ReAct通过一系列推理(Reson)和行动(Action)使大模型通过有逻辑的一系列步骤(重复多次)来解决复杂任务:思想、动作和观察。ReAct以观测形式从环境中接收反馈。其他类型的反馈也包括人类和模型反馈。下图显示了一个ReAct的示例以及问题执行时回答的不同步骤:
图源:《ReAct:Synergizing Reasoning and Acting in Language Models》 五、Reflection
reflexion是一个新的框架,通过自然语言反馈来增强Agents的功能。Reflexion在HumanEval编码基准上实现了91%准确率,超过了之前最先进的GPT-4的80%。
Reflection基于ReAct方法,提出增加一个LLM的代理器,从之前的错误中反思,在规划序列中重定向未来的决策,从而可以避免人类训练员需要作为中间人参与。这种设定在AlfWorld和HotPotQA基准测试中展示了学习曲线,其性能明显优于基础ReAct代理。
Reflexion应用性很强,可以提高决策和知识密集型任务的试错性能,只需要依赖一个二元的奖励模型。它应用在更复杂任务中,可以帮助智能体学会新想法,探索更大不可见的状态空间,并通过在过去环境中的经验形成更准确的行动规划。
图源:《Reflexion: Language Agents with Verbal Reinforcement Learning》
Takeaways