Lagent & AgentLego 智能体应用搭建——笔记
- 一、智能体简介
- 1.1、为什么要有智能体
- 1.1.1、幻觉问题
- 1.1.2、时效性
- 1.1.3、可靠性
- 1.2、智能体的含义
- 1.3、智能体的组成
- 1.3.1、大脑
- 1.3.2、感知
- 1.3.3、动作
- 1.4、智能体范式
- 1.4.1、AutoGPT
- 1.4.2、Rewoo
- 1.4.3、ReAct
- 二、Lagent 和 AgentLego
- 2.1、Lagent 简介
- 2.2、AgentLego 简介
- 2.3、两者的关系
详细视频:Lagent & AgentLego 智能体应用搭建
一、智能体简介
1.1、为什么要有智能体
主要因为随着大语言模型的快速发展,即使如 GPT-4 这样的大模型,在某些场景下也会出现不能满足实际需求的情况,有诸多的局限性。
1.1.1、幻觉问题
如果大模型对于提问的问题所设计的知识不清楚,模型可能会生成虚假信息,与现实严重不符或脱节。
1.1.2、时效性
因为大模型的训练数据往往都是截止在某一个时间点,并不能随着时间流逝而同步更新,如果没有类似于 RAG 这种技术,那么模型训就无法反映最新趋势和信息。
1.1.3、可靠性
当面对较为复杂的任务时,大模型可能频发错误输出现象,影响信任度。
1.2、智能体的含义
根据 Barbara Hayes-Roth 在 An architecture for adaptive intelligent systems 论文中所说,一个智能体应当满足以下三个条件:
- 可以感知环境中的动态条件
(perception of dynamic conditions in the environment) - 能采取动作影响环境
(action to affect conditions in the environment) - 能运用推理能力理解信息、解决问题、产生推断、决定动作
(reasoning to interpret perceptions, solve problems, draw inferences, and determine actions)
1.3、智能体的组成
1.3.1、大脑
作为控制器,承担记忆、思考和决策任务。接受来自感知模块的信息,并采取相应动作。
1.3.2、感知
对外部环境的多模态信息进行感知和处理。包括但不限于图像、音频、视频、传感器等。
1.3.3、动作
利用并执行工具以影响环境。工具可能包括文本的检索、调用相关 API、操控机械臂等。
1.4、智能体范式
1.4.1、AutoGPT
AutoGPT 是一种自动化文本生成模型 ,它是基于 GPT 的改进版,通过自动搜索算法来优化 GPT 的超参数,从而提高其在各种任务上的表现。
AutoGPT 通过 Zero-shot learning 理解人类给它设定的角色和目标,再通过 多任务学习 ( Multi-task Learning, MTL ) 将人类设定的目标进行任务拆解成各个子任务,期间以 Few-shot learning 的方式生成提示,最后利用 Meta-learning 评估任务是否达标。
1.4.2、Rewoo
可以阅读原论文 ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models
以往大模型调用外部工具的流程是:获取响应,根据响应进行下一步操作。虽然简单易行,但通常会导致巨大的计算量,因为假如一个问题没法一次性解决,最后模型的输入就是随着询问次数增加而倍增的。
在本文中作者提出了将这些步骤都独立开来,也就是假设一个问题没法一次性解决,需要调用 k 次外部工具时,首先利用一个 planner 安排好 k 次独立的询问,利用 worker 对着 k 次询问分别进行查询,最后将 planner 设计好的独立询问、从worker得到的对于每一个询问的查询结果以及一些 prompt 信息输入给 solver,由 solver 给出最终的结果。
感觉可以理解为一个空间换空间的思路,就是通过增加模型参数,换取更多的外部信息辅助LM进行回复
1.4.3、ReAct
原论文为 ReAct: Synergizing Reasoning and Acting in Language Models
想快速了解含义的,可以参考这篇文章 ReAct论文解读:LLM ReAct范式,在大语言模型中结合推理和动作
我们知道在大语言模型(LLM),通过思维链(chain-of-thought)机制进行适当的提示后,这些 LLM 展示了出色的能力。它们能执行各种任务,如算术计算、常识推理和符号问题解决。然而,这种思维链受限于模型内部表示的依赖,更严重的后果是限制了其基于现实世界数据主动探索、推理或更新知识的能力。
相反地,一些最新的研究在交互式场景中应用了预训练的语言模型的推理与行动能力,例如基于文本的游戏、网页导航和机器人技术。这些研究主要专注于通过语言模型的内部知识将文本上下文转化为可行动的步骤。然而,这些方法缺乏对高层次目标的抽象思考能力,或维护用于长期任务的工作记忆。
ReACT,即 Reason + Action 的新范式融合了推理和行动的优点,能够让语言模型以交错方式生成语言推理轨迹和文本行动。动作会影响外部环境,从而返回观察反馈。与此不同,推理轨迹不会影响外部环境。相反,它们会通过在上下文中进行推理并用有用的信息更新它,从而影响模型的内部状态。这些内部状态被用来更新模型的预测算法,以支持未来的推理和行动。
二、Lagent 和 AgentLego
2.1、Lagent 简介
Lagent 是一个轻量级开源智能体框架,旨在让用户可以高效地构建基于大语言模型的智能体。它支持多种智能体范式,如 AutoGPT、ReWoo、ReAct。同时,它也支持多种工具 ,如谷歌搜索、Python解释器等。
下图为 Lagent 的基本流程。
2.2、AgentLego 简介
AgentLego 是一个提供了多种开源工具 API 的多模态工具包,旨在像是乐高积木一样,让用户可以快速简便地拓展自定义工具,从而组装出自己的智能体。通过 AgentLego 算法库,不仅可以直接使用多种工具,也可以利用这些工具,在相关智能体框架(如 Lagent,Transformers Agent 等)的帮助下,快速构建可以增强大语言模型能力的智能体。
AgentLego 的宣传图如下。