首页 > 其他分享 >如何提升大模型的Agent推理规划等能力?

如何提升大模型的Agent推理规划等能力?

时间:2024-04-23 14:47:26浏览次数:27  
标签:动作 模型 arxiv 代理 Agent https org pdf 推理

参考地址:https://mp.weixin.qq.com/s/0qkMbzlU9ks6DNS5MBiU8g

论文地址:

(1)cot:https://arxiv.org/pdf/2201.11903.pdf
(2)tot:https://arxiv.org/pdf/2305.10601.pdf
(3)react:https://arxiv.org/pdf/2210.03629.pdf
(4)reflexion:https://arxiv.org/pdf/2303.11366.pdf
(5)agent tuning:https://arxiv.org/pdf/2310.12823.pdf
(6)fireact:https://arxiv.org/pdf/2310.05915.pdf
(7)agentFlan:https://arxiv.org/pdf/2403.12881.pdf
(8)knowagent:https://arxiv.org/pdf/2403.03101.pdf
(9)autoact:https://arxiv.org/pdf/2401.05268.pdf
(10)Travel Plan:https://arxiv.org/pdf/2402.01622.pdf

特别说明:本文章仅作为个人笔记使用。

1、COT(思维链)

  将推理过程添加到Prompt中,能很大幅度的提升推理能力。

2、TOT(思维树)

  在Prompt工程中进行如下设置:

    假设三位不同的专家来回答这个问题。所有专家都写下他们思考这个问题的第一个步骤,然后与大家分享。然后,所有专家都写下他们思考的下一个步骤并分享。以此类推,直到所有专家写完他们思考的所有步骤。只要大家发现有专家的步骤出错了,就让这位专家离开。请问..

3、ReAct(Reason And Act)

  既思考又行动,这里的Reason就是指的思维链推理过程,Action指的是不同场景下采取的动作,跟环境紧密相关。

  Prompt流程:

    想法:...

    行动:...

    观察(重复多次):...

4、Reflexion:Verbal强化学习

  在ReAct的基础之上,专门增加一个Evaluator进行reward的打分,等价于强化学习中的环境奖励。使用交互轨迹和奖励进行综合反思。

5、AgentTuning:多任务微调Agent

  通过构建一个轻量级的指令调整数据集AgentInstruct,并采用混合指令调整策略,结合AgentInstruct和开源通用指令进行微调,从而在不损害LLMs的一般能力的情况下增强其代理能力。

6、FireACT:对话路径多样性

  也是通过微调的方式提升大模型的Agent的能力,只不过数据的形式有了些新的思考:不同思维框架如COT、React、Reflexion等的数据格式混合能提升多样性。

7、AgentFLAN:数据构造与预训练一致性

8、KnowAgent:动作知识库增强

  它通过结合明确的行动知识来解决LLMs在与环境交互时生成可执行行动的复杂推理任务中的不足,特别是在任务解决过程中规划轨迹的指导不足,导致规划幻觉问题。

  具体来说KNOWAGENT利用行动知识库来约束规划过程中的行动路径,通过将行动知识转换为文本,使模型能够更深入地理解和利用这些知识来创建行动轨迹。最后,通过知识型自学习阶段,使用模型迭代过程中开发的轨迹来不断改进其对行动知识的理解及其应用即迭代式SFT。

  总结来说也是一篇关于数据的工作,只不过,框架从多轮轨迹的优化增加到类似RAG的思路,将动作知识库转化为文本融入模型微调过程中去。

  什么是动作知识库?
    动作知识库(Action Knowledge Base, AKm)是KNOWAGENT框架中的一个关键组成部分,它定义了一组特定的动作(Ea)以及管理这些动作转换的规则(R)。这些动作和规则构成了一个结构化的知识体系,用于指导语言模型在执行任务时生成合理的行动轨迹。

  以下是一个简化的动作知识库案例,用于解释其结构和应用:
    (1)动作集合 (Ea):
      Search: 搜索相关信息或数据。
      Retrieve: 检索特定的信息或实体。
      Lookup: 在已知信息中查找特定关键词或数据。
      Finish: 完成任务并输出结果。
    (2)动作规则 (R):
      Rule 1 (Search -> Retrieve): 如果当前动作是Search,下一个合法的行动可以是Retrieve,表示在搜索后找到一个具体实体。
      Rule 2 (Search -> Lookup): 从Search动作可以转换到Lookup,表示在搜索过程中需要查找特定关键词。
      Rule 3 (Retrieve -> Finish): 如果Retrieve动作成功,可以接着执行Finish动作,表示检索到所需信息后完成任务。
      Rule 4 (Lookup -> Finish): 如果Lookup动作找到了所需答案,可以直接执行Finish动作结束任务。
  动作知识库应用案例:
    假设我们有一个多跳问答任务,需要回答“华盛顿特区最大的私立医院是儿童国家医疗中心还是MedStar华盛顿医院中心?”这个问题。
    Start: 初始状态,模型需要确定如何获取答案。
    Search: 模型执行Search动作,搜索“华盛顿特区私立医院”相关信息。
    Retrieve: 根据Search结果,模型执行Retrieve动作,找到“儿童国家医疗中心”和“MedStar华盛顿医院中心”的具体信息。
    Lookup: 模型在检索到的信息中执行Lookup动作,查找两个医院的规模比较。
    Finish: 一旦模型通过Lookup动作确定了哪个医院更大,就执行Finish动作,输出最终答案并结束任务。
  在这个案例中,动作知识库确保了模型在规划和执行任务时遵循逻辑和顺序,避免了不合理的行动序列,
  如直接从Search跳到Finish而忽略了中间的检索和查找步骤。通过这种方式,动作知识库有助于提高模型在复杂任务中的性能和准确性。

9、AutoAct:MultiAgent

  前面的这些工作,不同prompt框架,不同agent finetuning的方法,基本都是建立在一个模型完成所有的agent任务的目标去的。这篇论文则考虑到了多智能体的思路。并且给出了一个表格对比他所拥有的能力范围,自然是比较全面的选手,只不过Generality和Reflection都没那么值得去说,这里比较的重点应该是多智能体的提出。怎么进行多代理协作等应该比较被关注?

  数据和轨迹获取是指获取训练数据和轨迹的方法。计划代表了计划的方式,根据每个步骤的行动是由全局还是迭代决定的。多Agent表示该框架是否包含多个Agent。精细调整表示该方法是否是一个基于微调的Agent学习框架。通用性表示方法是否适用于各种任务。反射表示计划过程是否包含反射。

  多代理协作的一个具体案例可以通过以下步骤实现:
    (1)任务定义:
      假设我们有一个多跳问答任务(例如HotpotQA),其中问题需要通过多个步骤和推理来解答。例如,问题可能是:“在《傲慢与偏见》中,达西先生的庄园位于英格兰德比郡的什么地方?”答案应该是“彭伯里”。
    (2)自我规划:
      元代理(META-AGENT)首先通过自我指导(Self-Instruct)生成一组初始的问答对,这些问答对作为训练数据。然后,元代理利用工具库(Tool Library)中的信息自动选择适合的工具,比如搜索引擎、知识检索工具等。
    (3)规划轨迹合成:
      元代理使用选定的工具来自动生成规划轨迹,这些轨迹包含了一系列的思考(Thought)、行动(Action)和观察(Observation)记录。例如,元代理可能会生成一个轨迹,其中包含使用搜索引擎查找与“达西先生”和“彭伯里”相关的信息,然后从搜索结果中提取答案。
    (4)自我分化:
      根据合成的规划轨迹,元代理分化成三个子代理:
        计划代理(Plan-Agent)决定下一步的行动计划。
        工具代理(Tool-Agent)根据计划代理的指示调用搜索引擎,并提供必要的参数(如搜索查询)。
        反思代理(Reflect-Agent)评估行动的结果,并确定是否需要进一步的行动或已经找到了正确答案。
    (5)微调实现:
      对于每个子代理,使用特定的LoRA(Low-Rank Adaptation)模型进行微调。微调过程中,每个子代理都会针对其特定的任务和责任进行训练,以便更有效地执行其功能。例如,计划代理可能会被训练来更好地理解问题和上下文,以便制定有效的行动计划;工具代理可能会被训练来更准确地调用和使用外部工具;反思代理可能会被训练来更好地评估答案的正确性。
    (6)群体规划:
      在实际的推理过程中,这些子代理会协作完成任务。计划代理提出行动计划,工具代理执行计划中的工具调用,反思代理评估结果并提供反馈。这个协作过程可能需要多轮迭代,直到找到满意的答案。
  通过这种方式,AUTOACT框架能够实现多代理之间的有效协作,每个代理都在其专业领域内进行微调,以提高整体任务的执行效率和准确性。这种方法允许每个代理专注于其特定的任务,而不是将所有任务都放在一个单一的模型中处理,从而提高了系统的灵活性和可扩展性。
  本质上还是拆解任务,做更好的数据处理。

标签:动作,模型,arxiv,代理,Agent,https,org,pdf,推理
From: https://www.cnblogs.com/qq1035807396/p/18151070

相关文章

  • maixcam部署自定义模型
    maixcam部署yolov5s自定义模型本博客将向你展示零基础一步步的部署好自己的yolov5s模型(博主展示的是安全帽模型),训练就引用我自己之前写过的,已经训练好的可以跳过该部分,其中有部分不一样。获得自定义训练得到的yolov5sonnx模型准备自定义数据集(博主用的是VOC数据集)数据集......
  • 大模型评测指标汇总
    大模型评估指标1.基础评估指标参考klu.ai和Microsoft.com的评估指标列表如下:https://klu.ai/glossary/llm-evaluation类别度量描述用户参与度和效用指标访问访问LLM应用程序功能的用户数提交提交提示词的用户数响应LLM应用程序生成没有错......
  • 大语言模型(LLM)评价指标小汇总
    大语言模型(LLM)评价指标小汇总(也许会更新)from:https://zhuanlan.zhihu.com/p/641416694​目录总之就是接了个小项目,这些天统计了一些LLM评价指标,不算很全面,很多方法的具体操作都不是很熟悉,参考论文也没找全,大家就凑合着看:1.榜单、论文统计方法描述......
  • 倾斜摄影三维模型数据在立体裁剪应用分析
    倾斜摄影三维模型数据在立体裁剪应用分析 立体裁剪是一种将三维模型应用于摄影中的技术,可以在摄影过程中将虚拟的三维模型与现实场景进行合成,从而实现逼真的视觉效果。倾斜摄影是一种通过无人机或其他飞行器进行航拍的技术,可以获取到大范围的地理数据,包括地面的高程、建筑物的......
  • R语言用GARCH模型波动率建模和预测、回测风险价值 (VaR)分析股市收益率时间序列|附代
    原文链接:http://tecdat.cn/?p=26897最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出。风险价值(VaR)是金融风险管理中使用最广泛的市场风险度量,也被投资组合经理等从业者用来解释未来市场风险风险价值(VaR)VaR可以定义为资产在给定时间段内以概率θ......
  • Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据
    全文链接:https://tecdat.cn/?p=36004原文出处:拓端数据部落公众号随着大数据时代的来临,深度学习技术在各个领域中得到了广泛的应用。长短期记忆(LSTM)网络作为深度学习领域中的一种重要模型,因其对序列数据的强大处理能力,在自然语言处理、时间序列预测等领域中取得了显著的成果。然......
  • 拥抱 invokedynamic,在 Java agent 中驯服类加载器
    前言在开发项目的agent时,找了很多类隔离加载的解决方案,最终参照开源项目实现,采用了ElasticAPMJavaagent的方案。以下为本方案的核心说明文章。翻译正文ByteBuddy最棒的一点是,它允许您编写Javaagent,而无需手动处理字节代码。agent作者只需用纯Java编写要注入的代码,......
  • 模型评测-书生浦语大模型实战营学习笔记7&大语言模型10
    大语言模型学习-10.模型评测书生浦语大模型实战营学习笔记7视频教程特别像广告,所以这篇博客参考了很多其他内容给大家参考,主要是下面几个页面:https://zhuanlan.zhihu.com/p/641416694https://www.cnblogs.com/justLittleStar/p/17845341.htmlhttps://zhuanlan.zhihu.com/p/68......
  • AI视频分析技术的常用开源模型及TSINGSEE青犀AI视频识别分析能力介绍
    AI视频分析技术是指利用人工智能技术来对视频数据进行分析和处理的技术。开源模型是指可以免费获取和使用的代码模型,可以帮助开发人员快速构建和部署AI视频分析应用程序。以下是一些业内常用的用于AI视频分析技术的开源模型:OpenCV:OpenCV是一个用于计算机视觉和机器学习的开源计......
  • LED驱动程序改造-基于总线设备驱动模型
    目前我们基于LED驱动学习了两种编写Linux驱动程序的方法,分别是传统的方法和上下分层的基于面向对象的方法。其中基于上下分层的面向对象的驱动编写方法还可以进一步细化,把下层进行左右分离,针对使用同一芯片的不同开发板,可以抽象出一个针对芯片的GPIO引脚操作的文件,针对不同的开发......