赞
踩
反思的定义:LangChain博客的介绍说是一种用来提供Agent质量和成功率的prompt策略。
归根结底,核心还是prompt的设计。用额外的计算来获得更好的输出质量,这点有点像CoT和ToT的设计。但与之不同的是,CoT和ToT是和LLM单轮的交互,而Reflection一般是和LLM多轮的交互(封装在Agent框架当中),尽管看起来和人类的交互是单轮的。
组成结构:两个LLM分别扮演生成器(尝试直接响应用户的需求)和反射器(扮演老师的角色,对最初的反应提出批评)。
逻辑:通过两个LLM的多轮交互,得到一个比生成器最初的响应要好一些的响应给到人类,处在人类的角度,只接收了一次系统的回复。
当然,上图的流程因为不基于任何外部过程,最终结果可能不会比原始结果好得多。
以下是围绕这个的一点个人看法:
实际实现时,两个LLM可以用同一个大模型服务来替代,只需要给到不同的输入prompt即可,甚至说用一个system prompt也可以。
比如下面的例子,定义清楚 Thought、Action、Observation分别的含义,然后写清逻辑(repeat Thought/Action/Observation N times)即可。
from langchain import hub prompt = hub.pull("hwchase17/structured-chat-agent") print(prompt.messages[0].prompt.template) Respond to the human as helpfully and accurately as possible. You have access to the following tools: {tools} Use a json blob to specify a tool by providing an action key (tool name) and an action_input key (tool input). Valid "action" values: "Final Answer" or {tool_names} Provide only ONE action per $JSON_BLOB, as shown: `` {{ "action": $TOOL_NAME, "action_input": $INPUT }} `` Follow this format: Question: input question to answer Thought: consider previous and subsequent steps Action: `` $JSON_BLOB `` Observation: action result ... (repeat Thought/Action/Observation N times) Thought: I know what to respond Action: `` {{ "action": "Final Answer", "action_input": "Final response to human" }} Begin! Reminder to ALWAYS respond with a valid json blob of a single action. Use tools if necessary. Respond directly if appropriate. Format is Action:``$JSON_BLOB``then Observation
与上面的Simple Reflection最大的区别是,对每个响应的批评建立在外部数据的基础上。这里的外部数据,可以是Tool提供的,也可以是RAG引入的context等。如此看来,带有Tools的Agent可以算是Reflexion机制的实现。
如下图所示,step2当中Responder响应者的任务是 生成响应以及搜索查询形式或者其他形式的 操作。然后step3当中执行Tools得到结果(Observation)后,给到Revisor修订者来反思(Thought)当前状态。
这种方法有效利用外部Tools和反思来提供最终回应的质量。同时因为执行的轨迹较为固定,可能存在错误传递、影响最终结果。总体效果比Simple Reflection要优,是实现Agent的基本框架。
结合了 reflection/evaluation、search(蒙特卡洛树搜索) 来实现更好的任务性能。 比 ReAct、Reflexion、ToT更优。
我认为重点在于 蒙特卡洛树搜索的应用。其次是 它采用标准的强化学习(RL)任务框架,将RL代理、价值函数和优化器都替换为对一个大型语言模型(LLM)的调用。目的是帮助 Agent 适应并解决复杂任务,避免陷入重复的循环中。
搜索过程的4个步骤:
a.选择:根据下面第(2)步中累计的奖励来选择最佳的下一步行动。如果找到了解决方案或达到了最大搜索深度就做出回应,否则继续搜索。
b.展开并模拟:生成N个(在我们的案例中是5个)潜在的行动方案,并且并行执行它们。
c.反思+评估:观察这些行动的结果,并基于反思(可能还包括外部反馈)对决策进行打分。
d.反向传播:根据结果更新根路径的分数。
LATS的优点:LATS将其他代理架构的推理、规划和反思组件统一起来,如Reflexion、思维树(Tree of Thoughts)和计划执行代理(plan-and-execute agents)。LATS还来自于基于反思和环境反馈的反向传播,用于改进搜索过程。虽然它对奖励分数比较敏感,但通用算法可以灵活地应用于多种任务。
这块有点没看明白 ==! 后面看懂了再继续更新
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。