专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
相关文章推荐
Linux就该这么学  ·  微信新功能升级:可一次性删除所有“单向好友” ·  18 小时前  
中科院物理所  ·  当天上的垃圾越来越多 ·  2 天前  
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

论文精读1:Agent-Pro

计算机视觉深度学习和自动驾驶  · 公众号  ·  · 2024-07-03 00:01

正文

Agent-Pro: Learning to Evolve via Policy-Level Reflection and Optimization(ACL2024,CCF A)

https://arxiv.org/abs/2402.17574

摘要: 大型语言模型(LLM)在多种任务中展示了强大的问题解决能力。 然而,大多数基于LLM的代理被设计为特定任务解决器,依赖复杂的提示工程,而不是能够通过交互学习和进化的代理。 这些任务解决器需要手工设计的提示来告知任务规则和调节LLM的行为,因此在处理复杂的动态场景(如大型互动游戏)时固有地存在局限性。 有鉴于此,我们提出了Agent-Pro: 一个具备 策略级反思和优化 功能的基于LLM的代理,能够从互动体验中学习大量专业知识,并逐步提升其行为策略。 具体而言,它涉及一个 动态信念生成 和反思过程以促进策略进化。 与行动级反思不同,Agent-Pro对过去的轨迹和信念进行迭代反思,微调其非理性信念以优化策略。 此外,采用 深度优先搜索 进行策略优化,确保策略收益的持续提升。 Agent-Pro在两个游戏中进行了评估: 二十一点 德州扑克 ,表现优于基础LLM和专门模型。 我们的结果表明,Agent-Pro能够在复杂和动态的场景中学习和进化,这对众多基于LLM的应用也有显著裨益。

图1给出了Agent-Pro的架构图,可以最后再看。

图1 Agent-Pro架构图
  • 痛点1:大部分基于大模型(LLM)的智能体(Agent)都需要根据特定任务设计复杂的提示(prompt),现实中的任务往往复杂得多,且存在 信息不完全现象
  • 痛点2:目前大多数LLM-based Agent都 不能从过去的经验中学习 ,也就无法self evolve。
  • 痛点3:现在能够进行 self evolve的Agent大多只是根据环境反馈 在Action层面进行evolve

为此作者提出了 Agent-Pro: a LLM-based Agent with P olicy-level R eflection and O ptimization,灵感来源于心理学,通过外部反馈,不直接调整Action,而是校准Action背后的感知(belief),包括自我感知(self-belief)和社会感知(world-belief),并通过完整的游戏案例(trajectory)以此在宏观上调整Agent对游戏的整体策略(policy)。

结合案例和源码,我们先从宏观上看一下作者在做什么事情,怎么实现Agent的自我学习的。以21点这个游戏为例(最好搜下规则,好理解),首先在prompt中告诉Agent游戏规则和游戏信息(自己的手牌和庄家亮出的牌),如图2所示。

图2 让Agent-Pro开始游戏的prompt设计

需要注意的是,如果还没进行案例的学习,那此时的policy(也就是图中的Behavioral Guideline和World Modeling 应当是空的 ,还没学出来),其他蓝色部分是填好的。注意看Output Format,Agent应当输出自己的 belief和Action,其实很像 ReAct风格 self-belief是Agent 对自己当前手牌和可能策略的认知 world-belief则是 对庄家亮出那张牌的认知、庄家游戏风格的认知、他可能采取策略的预判 等等。 Action就是Agent觉得自己下一步应该怎么做。实际输出案例可以看下图3,右边是Agent-Pro的反应,左边则是普通ReAct风格Agent。


图3 实际游戏案例

那么如何学习空着的 policy(Behavioral Guideline & World Modeling)?作者给出的方法并不是微调LLM参数,这样成本太高,而采用 上下文学习 的方法。之所以像图2那样设计prompt,实际上作者想用一个迭代的方法去不断优化LLM生成的policy。没错,policy是LLM自己生成的,步骤如下。

如图4,先给Agent游戏失败的案例(Game Record即整个游戏过程,Belief Sequences即游戏过程中每一步Agent的belief构成的列表,Final Result即游戏分数),让其输出反思结果,也就是作者提出的策略级反思,包括让Agent关注自己的belief是否正确、和行为一致,并想想为什么输了,原因是什么。

图4 让Agent-Pro进行策略级反思的prompt设计

然后根据反思结果生成policy,所用prompt如图5。

图5 让Agent-Pro生成policy的prompt设计

至此,经过学习,就可以把policy填到之前图2里的prompt中开始新游戏了,进行不断的迭代。

接下来看具体细节。

不难发现,作者不使用微调(没有权重更新),实际上 将问题转化成了让模型根据上下文生成最优的policy文本 。根据失败案例学习出 policy后,需要进一步对 policy进行 检验 。具体做法是,将新生成的policy替换图2中prompt的相应policy,重玩 同样的游戏 ,如果分数提高,就证明这个新生成的policy更好。否则,重新生成policy(注意LLM生成的文本每次是不一样的),如果重试三次仍未通过验证,则舍弃这个案例。







请到「今天看啥」查看全文