Agent 理论介绍

Agent 理论介绍

一句话介绍agent:一个能够自主完成给定任务的实体

广义的讲Agent可以是一段代码(比如完成计算任务),可以是自动驾驶汽车(完成自动驾驶功能),也可以是一只正在执行警情任务的警犬,可以是正在写代码的程序员,甚至可以是小米汽车工厂正在造车的员工们。可以发现这些agent都存在一些共性,比如都有任务task,都有动作action,还有环境environment。提到这些如果熟悉机器学习的话很容易会联想到强化学习,实际上强化学习里面也有agent的概念,而最早展示AI能力的AlphaGo就是强化学习能力的代表。

强化学习

强化学习实际就是利用奖惩机制完成某个任务的算法。以下面游戏为例子:

游戏要求给老鼠设计一条路线,保证老鼠迟到的蛋糕最多,条件是不会被猫吃掉而且步数不超过20步。强化学习首先让老鼠随机走一条路线,在这条路线中每走完一步都有一个奖惩系数,吃到蛋糕系数为正,被猫吃掉则为负,而每条路线之后都有一个奖励总和,这与吃到的蛋糕个数有关,经过多轮重复训练之后,老鼠就能找到一条奖励总和较高的路线,而当环境发生变化,也就是蛋糕和猫的位置发生了变化,老鼠能根据通过强化学习学到的模型作出较好的决策。
术语介绍
在强化学习中,由agent和environment组成,agent通过感知environment可以知道自己的状态state(吃到蛋糕了还是被猫吃了,之后根据自己的state以及选择的策略policy执行某个动作action,执行完某个动作之后会有一个reward,之后agent会进入一个新的state,重复上述过程直到达到结束条件。模型需要学习的就是这个policy,而优化目标最大化整个reward之和。
在大语言模型出来之前,强化学习算法是实现agent效果最好算法之一,比如还有迁移学习算法,元学习等等。那么这些算法有什么缺点呢:

  1. 不同场景之间agent的能力迁移较差,换句话说针对不同的环境场景需要不同训练数据来训练
  2. 与人交互性差,人工干预能力较差
  3. 模型效果不稳定
    大语言模型出现之后,Agent有哪些进展呢?。一句话概括就是大语言模型可以充当agent的大脑,也就是强化学习的策略policy,而且不需要学习。

LLM-based Agent核心组件

对于基于大语言模型的agent,它的核心组件有大脑brain,感知perception以及动作action。下面逐一进行介绍:

Perception:

这里的perception实际上就是agent的输入,这个输入可以是视频,图片或者文字,而这些输入可以由传感器获得,也可以人为获得然后输入例如截图,同样也可以将一个agent的输出传给另一个agent。agent接收到输入之后就需要利用LLM来进行逻辑推理得到输出。

Brain:LLMOps:

简单来讲,这里的brain就是大模型及其相关技术,包括开发,部署,维护等等。而对于agent而言,brain所起的作用就是决策推理的作用,也就是给一个输入能有一个合理的输出。对于传统的机器学习例如xgboost而言,当模型训练好了之后,直接把我们的输入给到模型,它就能给我们一个明确的输出,而对于大模型而言,由于模型训练是由大量以及各个方面的数据训练而成的,并非针对某一个具体的任务,当用于某个具体的任务的时候还需要进行模型适应下游任务。换句话说,当在某一任务下使用传统机器学习时,我们需要收集数据然后从头开始训练这个模型,而如果使用大模型来完成这个任务一般来说个人一般不会从头开始训练一个大模型,成本太大(使用 Tesla V100 云实例训练 OpenAI 的 GPT-3(具有 1750 亿个参数)需要 355 年和 460 万美元),我们一般要么使用开源大模型要么自费购买闭源大模型的api,然后使模型适应下游任务。
适应下游任务常用的有以下几种方法:

  1. Prompt Engineering:agent常用的方法,后面详细介绍
  2. Fine-tune:利用下游任务的数据重新训练大模型,成本比较高
  3. External data:类似建立知识向量壳库,避免幻觉出现,所谓幻觉就是模型生成的内容并非基于实际输入或现实情况,而是模型自身基于其学习到的知识和模式进行的一种“想象”或“创造”
  4. Embeddings:将大模型的输出作为中间层,在这个基础上后续进行其他操作
Prompt Engineering:提示工程

所谓提示工程其实就是一系列设计好的提示模板,只不过使用这些模板能让大模型的输出比较合理

前面说到大模型在agent充当的就是一个决策的角色,那么prompt engineering就是引导大模型进行逻辑推理得到合理的输出,现在常用的prompt模板方法有chain-of-thought(COT), chain-of-thought with self-consistency(COT-SC)以及tree-of-thoughts(TOT),如下图所示:
在这里插入图片描述

COT:

在这里插入图片描述
需要使用像右边这种带有推理过程的prompt进行few-shot训练
缺点:一旦出现错误就会沿着错误的标准运行,无法自我纠错

COT-SC

在这里插入图片描述
COT-SC的思想就是条条大路通罗马,采样不同的思维方法来推理,最后通过投票选出最终的答案,避免COT出现的错误推理。
常用的采样方法有top-p, top-k以及温度采样方法
缺点:只能回答一些具有精确答案的问题,对于开放性问题难以评估答案的好坏

TOT

在这里插入图片描述
TOT关键在于建立一个thought tree,建立这个tree需要一个thought生成器和thought评估器,而任务的解决方法使用BFS或者DFS算法,具体细节可见参考文献11

小结

上面介绍的这些提示工程方法的最终目的都是提高大模型的推理能力,那么对于agent而言有什么启示呢?简单来说就是通过设计一些巧妙的prompt模板可以指示LLM自主完成推理任务,以AutoGPT为例,这个项目规定了agent输入大模型的模板为:
在这里插入图片描述
大模型的输出模板为:
在这里插入图片描述
通过这样的prompt模板可以实现神奇的推理功能,至于为什么,论文也没有讲,只说了存在这么个现象。

Memory

前面我们提到为了保证LLM能够适应下游任务有一种方法就是External data,实际上这就是为LLM提供长期记忆。在agent中存在两种记忆:

  1. Short memory:短期记忆,也就是完成这一次任务的所有上下文,保留短期记忆能够保证LLM输出内容不至于天马行空,能够最大程度与任务相关
  2. Long memory:长期记忆,通过建立知识向量库,让LLM保持与时俱进的能力,实际上这也就是RAG技术,技术细节可见参考资料14
Action

LLM得到输出之后就需要agent将输出转化为action行动,一般来说这种action一般通过以下几种方式表现:

  1. 利用其他工具,例如计算器,
  2. 与其他的agent形成联动,这里就需要定义一个agent protocol,也就是agent之间的沟通语言
  3. 自定义action函数进行调用,例如读写文件功能
  4. 利用其他大模型,例如sd,这时候agent充当调度器,将任务分发给其他大模型实现,具体细节可见参考资料17
总结

在这里插入图片描述
一句话总结:将任务给到agent(文本形式),agent利用提示工程催使嵌入memory的LLM进行推理,并将推理结果利用tool执行action,将action后的结果重新作为输入的一部分,再次进行推理,反复重复这个过程直到任务完成。

LLM-based Agent 应用

Appagent:
该项目可以通过自主学习和模仿人类的点击和滑动手势,在手机上执行各种任务,这种操作和小爱同学人工助操作手机的区别在于小爱同学需要后端访问和函数调用,而agent则是通过类人操作,例如点击和滑动,换句话说小爱同学只能操控小米手机而不能操控苹果,华为等,而agent则是都能操控,具体可看参考资料16

参考资料

  1. 能否介绍一下强化学习(Reinforcement Learning),以及与监督学习的不同? - 知乎
  2. 什么是迁移学习 (Transfer Learning)?这个领域历史发展前景如何? - 知乎
  3. 一文通俗讲解什么是元学习(Meta-Learning) - 掘金
  4. 《综述:全新大语言模型驱动的Agent》——4.5万字详细解读复旦NLP和米哈游最新Agent Survey
  5. Intro to LLM Agents with Langchain: When RAG is Not Enough
  6. Multi-Agent System
  7. LLM-based Agents survey 基于大语言模型多智能代理简单综述及展望
  8. Understanding LLMOps: Large Language Model Operations
  9. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
  10. Self-Consistency Improves Chain of Thought Reasoning in Language Models
  11. Tree of Thoughts: Deliberate Problem Solving with Large Language Models
  12. 自然语言生成任务中的5种采样方法介绍和Pytorch代码实现-阿里云开发者社区
  13. Autogpt
  14. 大模型主流应用RAG的介绍——从架构到技术细节
  15. Agent Protocol Description - Agent Protocol
  16. GitHub - mnotgod96/AppAgent: AppAgent: Multimodal Agents as Smartphone Users, an LLM-based multimoda
  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 轨迹交叉理论Agent仿真是两个在计算机科学和人工智能领域中常被使用的概念。 轨迹交叉理论是指研究不同对象(如物体、车辆等)在运动过程中轨迹的交叉情况,主要用于交通流量预测、智能交通系统等方面。通过分析不同对象的运动规律和交通环境的影响,可以更好地理解交通系统中的运动规律和安全问题。 Agent仿真则是指使用计算机程序模拟不同实体(如人、机器人等)的行为和互动过程。通过模拟不同Agent的行为和环境交互,可以更好地理解复杂的现实世界问题,例如社会系统、生态系统等。 这两个概念在智能交通系统、机器人领域等方面有着广泛的应用,可以用来解决实际问题,优化设计和测试各种系统。 ### 回答2: 轨迹交叉理论是一种用于分析和预测交通运输系统中轨迹交叉的理论模型。在交通系统中,车辆和行人的运动轨迹交叉是一个常见的现象,也是造成交通事故和拥堵的主要原因之一。轨迹交叉理论基于对交通参与者的运动规律、行为特征和交通环境的分析,通过建立数学模型和仿真算法来模拟和预测轨迹交叉的概率和后果。 Agent仿真是一种以个体为基础,模拟和分析多个智能个体在特定环境中的行为和决策过程的方法。在Agent仿真中,每个个体被视为一个独立的Agent,拥有自己的属性、状态和行为规则。这些Agent之间可以相互通信、协作或竞争,通过模拟它们的决策过程和相互关系,可以预测和评估不同策略和政策对于整体系统行为的影响。 轨迹交叉理论Agent仿真可以结合应用于交通系统的研究和分析。通过将交通参与者建模为具有轨迹交叉行为的Agent,可以模拟和分析交通系统中不同个体之间的交互和协调过程。通过调整和优化Agent的决策规则和行为模式,可以提高交通系统的效率、安全性和可持续性。同时,利用轨迹交叉理论可以揭示和预测交通系统中可能出现的交叉情况,以及交叉对系统整体性能的影响。这两者的结合可以为交通规划、交通管控和交通管理等领域提供决策支持和政策制定的指导。 ### 回答3: 轨迹交叉理论是一种在Agent仿真中常用的理论和方法。Agent仿真是利用计算机来模拟和分析个体以及他们在特定环境中的行为和交互的过程。 轨迹交叉理论主要研究不同Agent之间轨迹的交叉情况。在仿真中,每个Agent都有自己的运动轨迹,并且根据特定的规则和环境条件,这些轨迹会与其他Agent的轨迹产生交叉。轨迹交叉理论旨在研究和分析这些交叉现象,以揭示不同Agent之间的干扰、冲突和协作情况。 轨迹交叉理论的应用可以广泛用于交通仿真、机器人导航、智能体路径规划等领域。例如,在交通仿真中,通过研究车辆轨迹的交叉情况,可以评估交通拥堵状况、优化交通流量以及改进交通管理策略。在机器人导航中,通过研究机器人轨迹的交叉情况,可以优化路径规划算法,使机器人能够更高效、安全地行走。 Agent仿真是实现轨迹交叉理论的重要工具。通过建立仿真模型,将现实世界中不同个体的特征、行为和环境等因素纳入考虑,可以模拟和预测不同情况下的轨迹交叉情况。仿真模型可以通过计算机的计算能力和图形显示能力,快速生成和展示大量的仿真数据,为轨迹交叉理论的研究提供了有力的支持。 总之,轨迹交叉理论Agent仿真相辅相成,共同为我们揭示了个体行为与交互的本质,并为研究和改进相关领域提供了强有力的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值