logo

LLM 架构--Agent

wangzf / 2024-06-10


目录

Agent 简介

在科技发展的历史中,人类一直期望追求智能化的实现,由此的幻想早已先行, 有《机器人总动员》中的瓦力,有《终结者》中的 T-800,也有《最后的问题》中的模, 人们试图打造 一种可以自主完成预设目标的代理或实体,即智能体(AI Agents 或 Agents), 以协助人类完成各种各样繁琐的任务。多年来,智能体作为人工智能一个活跃的应用领域吸引人们不断地研究探索。

如今,大语言模型正蓬勃发展,日新月异。在智能体技术的实现上, 尤其是在基于大型语言模型(LLM)的智能体构建中,LLM 在智能体的智能化中扮演着至关重要的角色。 这些智能体能够通过整合 LLM规划记忆以及其他关键技术模块,执行复杂的任务。 在此框架中,LLM 充当核心处理单元或 “大脑”,负责管理和执行为特定任务或响应用户查询所需的一系列操作。

以一个新的例子来展示 LLM 智能体的潜力,设想我们需要设计一个系统来应对以下询问: 当前欧洲最受欢迎的电动汽车品牌是什么? 这个问题可直接由一个更新至最新数据的 LLM 给出答案。 若 LLM 缺乏即时数据,可以借助一个 RAG(检索增强生成)系统, 其中 LLM 可以访问最新的汽车销售数据或市场报告。现在,让我们考虑一个更为复杂的查询:

过去十年里,欧洲电动汽车市场的增长趋势如何,这对环境政策有何影响?能否提供这一时期内市场增长的图表?

仅依赖 LLM 来解答此类复杂问题是不够的。虽然结合 LLM 与外部知识库的 RAG 系统能提供某种帮助, 但要全面回答这个问题,还需要更进一步的操作。这是由于要解答这个问题,

一个可能的方案是开发一个能够访问最新的环境政策文献、市场报告以及公开数据库的 LLM 智能体, 以获取关于电动汽车市场增长及其环境影响的信息。此外,LLM 智能体还需配备 “数据分析” 工具, 这可以帮助智能体利用收集到的数据制作出直观的图表,从而清晰地展示过去十年欧洲电动汽车市场的增长趋势。 虽然这种智能体的高级功能目前还属于理想化设想,但它涉及多项重要的技术考量, 如制定解决方案的规划和可能的记忆模块,这有助于智能体追踪操作流程、监控和评估整体进展状态。

Agent 架构

基于 LLM 的智能体框架包括以下核心组件:

img

用户请求

智能体

在构建以大型语言模型(LLM)为核心的智能体系统中,LLM 是至关重要的,充当系统的主脑和多任务协调的核心。 这种智能体通过解析和执行基于提示模板的指令,这些模板不仅指导 LLM 具体操作,也详细定义了智能体的角色和人格, 包括背景、性格、社会环境及人口统计信息等。这种人格化的描述使得智能体能更精准地理解和执行任务。 为了优化这一过程,系统设计需要综合考虑几个关键方面:

规划

无反馈规划

规划模块是智能体理解问题并可靠寻找解决方案的关键,它通过分解为必要的步骤或子任务来回应用户请求。 任务分解的流行技术包括 **思维链(COT)**和 思维树(TOT),分别可以归类为 单路径推理多路径推理

img

首先,我们介绍 思维链(COT) 的方法,它通过分步骤细分复杂问题为一系列更小、更简单的任务, 旨在通过增加计算的测试时间来处理问题。这不仅使得大型任务易于管理,而且帮助我们理解模型如何逐步解决问题。

接下来,有研究者在此基础上提出了 思维树(TOT) 方法,通过在每个决策步骤探索多个可能的路径, 形成树状结构图。这种方法允许采用不同的搜索策略,如宽度优先或深度优先搜索,并利用分类器来评估每个可能性的有效性。

为了进行任务分解,可以通过不同的途径实现,包括直接利用 LLM 进行简单提示、采用针对特定任务的指令, 或者结合人类的直接输入。这些策略能够根据不同的需求,灵活调整任务的解决方案。 而另一种方法则是结合了经典规划器的 LLM(简称为LLM+P),该策略依赖外部规划器来进行长期规划。 这种方法首先将问题转化为 PDDL 格式,然后利用规划器生成解决方案,最终将这一解决方案转化回自然语言。 这适用于需要详细长期规划的场景,尽管依赖特定领域的 PDDL 和规划器,可能限制了其适用范围。

img

这些创新方法不仅展示了解决问题的多样性和灵活性,也为我们提供了深入理解 LLM 如何处理复杂任务的新视角。

有反馈规划

上述规划模块不涉及任何反馈,这使得实现解决复杂任务的长期规划变得具有挑战性。为了解决这一挑战, 可以利用一种机制,使模型能够根据过去的行动和观察反复思考和细化执行计划。目标是纠正并改进过去的错误, 这有助于提高最终结果的质量。这在复杂的现实世界环境和任务中尤其重要,其中试错是完成任务的关键。 这种反思或批评机制的两种流行方法包括 ReActReflexion

ReAct 方法提出通过结合特定任务的离散动作与语言描述,实现了在大规模语言模型(LLM)中融合推理与执行的能力。 离散动作允许 LLM 与其环境进行交互,如利用 Wikipedia 搜索 API,而语言描述部分则促进了 LLM 产生基于自然语言的推理路径。 这种策略不仅提高了 LLM 处理复杂问题的能力,还通过与外部环境的直接交互,增强了模型在真实世界应用中的适应性和灵活性。 此外,基于自然语言的推理路径增加了模型决策过程的可解释性,使用户能够更好地理解和校验模型行为。 ReAct 设计亦注重模型行动的透明度与控制性,旨在确保模型执行任务时的安全性与可靠性。 因此,ReAct 的开发为大规模语言模型的应用提供了新视角,其融合推理与执行的方法为解决复杂问题开辟了新途径。

img

Reflexion 是一个框架,旨在通过赋予智能体动态记忆和自我反思能力来提升其推理技巧。该方法采用标准的强化学习(RL)设置, 其中奖励模型提供简单的二元奖励,行动空间遵循 ReAct 中的设置,即通过语言增强特定任务的行动空间,以实现复杂的推理步骤。 每执行一次行动后,智能体会计算一个启发式评估,并根据自我反思的结果,可选择性地重置环境,以开始新的尝试。 启发式函数用于确定轨迹何时效率低下或包含幻觉应当停止。效率低下的规划指的是长时间未成功完成的轨迹。 幻觉定义为遭遇一系列连续相同的行动,这些行动导致在环境中观察到相同的结果。

img

记忆

记忆模块是智能体存储内部日志的关键组成部分,负责存储过去的思考、行动、观察以及与用户的互动。 它对于智能体的学习和决策过程至关重要。根据 LLM 智能体文献,记忆可分为两种主要类型: 短期记忆长期记忆,以及将这两种记忆结合的 混合记忆,旨在提高智能体的长期推理能力和经验积累。

在设计智能体的记忆模块时,需要根据任务需求选择合适的记忆格式, 如自然语言、嵌入向量、数据库或结构化列表等。 这些不同的格式对智能体的信息处理能力和任务执行效率有直接影响。

工具

工具使大型语言模型(LLM)能够通过外部环境(例如 Wikipedia 搜索 API、代码解释器和数学引擎)来获取信息或完成子任务。 这包括数据库、知识库和其他外部模型的使用,极大地扩展了 LLM 的能力。在我们最初的与汽车销量相关的查询中, 通过代码实现直观的图表是一个使用工具的例子,它执行代码并生成用户请求的必要图表信息。

LLM 以不同方式利用工具:

img

这些策略和工具的结合不仅增强了LLM与外部环境的交互能力, 也为处理更复杂、跨领域的任务提供了强大的支持,开启了智能体能力的新篇章。

Agent 的挑战

构建基于大型语言模型(LLM)的智能体是一个新兴领域,面临着众多挑战和限制。 以下是几个主要的挑战及可能的解决方案:

总的来说,基于 LLM 的智能体构建是一个复杂且多面的挑战,需要在多个方面进行创新和优化。 持续的研究和技术发展对于克服这些挑战至关重要。

参考