华为诺亚的盘古Agent来了,让智能体学会结构化推理

有结构化推理和先验知识,智能体变得更加通用了。

自 AI 诞生以来,开发能够解决和适应复杂工作的多任务智能体(Agent)一直是个重要的目标。

AI 智能体对于许多应用至关重要,研究者通常用强化学习方法通过环境交互来培养智能体的决策技能。基于模型和无模型的深度强化学习方法都已取得了广为人们所知的成就,例如 AlphaZero、改进的排序和乘法算法、无人机竞速以及聚变反应堆中的等离子体控制。这些成功涉及一个标准的强化学习管道,智能体在其中学习我们所说的外在功能 ------ 一种直接与外界交互的策略,即响应环境刺激以最大化奖励信号。该函数通常是参数化神经网络,根据环境观察生成动作。

经典的强化学习方法使用单个映射函数来定义策略 π,但在复杂的环境中通常被证明是不够的,这与通用智能体在多个随机环境中交互、适应和学习的目标相矛盾。

在强化学习中引入的先验通常是特定于任务的,并且需要广泛的工程和领域专业知识。为了泛化,最近的研究已转向将大型语言模型(LLM)集成到智能体框架中,如 AutoGen、AutoGPT 和 AgentVerse 等工作。

近日,来自华为诺亚方舟实验室、伦敦大学学院(UCL)、牛津大学等机构的研究者提出了盘古智能体框架(Pangu-Agent)尝试来解决 AI 智能体面临的挑战。该研究作者包括伦敦大学学院计算机系教授汪军。

论文链接:arxiv.org/abs/2312.14...

该工作在两个关键方面区别于先前的框架:i)将智能体的内部思维过程形式化为结构化推理的形式;ii)展示了通过监督学习和强化学习来微调智能体的方法。

标准强化学习侧重于直接学习从感知中输出行动的策略。虽然人们习惯于通过深度网络架构参数化策略,但作者认为,当通过基础模型策略跨任务扩展智能体时,标准 RL 管道中缺乏固有推理结构可能会成为一个重大瓶颈,因为梯度无法为所有深度网络提供足够的监督。

盘古 Agent 框架展示了结构化推理如何帮助强化学习克服这些挑战,利用大规模基础模型提供先验知识并实现跨广泛领域的泛化能力。

据介绍,该工作的主要贡献包括:

  1. 证明了结构化推理在智能体框架中的重要性,盘古 Agent 的通用性足以有效涵盖现有智能体框架的任务范围。作为一个元智能体框架,它可以利用内部函数调用的顺序进行调整或微调,或者将决策委托给底层 LLM。使用者也可以轻松扩展智能体的功能,并组合或重用许多已经实现的方法。

  2. 作者在七个 LLM 和六个不同领域上进行了评估。该评估可用于告知研究人员如何初始化其智能体以及如何收集微调步骤的数据。

  3. 研究证明了框架的监督微调(SFT)和强化学习微调(RLFT)的影响。通过结构化推理,该工作成功实现了基于拒绝采样的 SFT 管道,大幅提高了 LLM 在 ALFWorld 领域的表现,成功率从 27% 增加到 82%。尽管 SFT 的好处已趋于稳定,但通过 RL 可以实现进一步增强,将 BabyAI 任务的成功率提高到 88%,甚至从 28% 提高到 91%。此外,跨领域实验显示通过 RL 管道训练的单个 LLM 能够同时在 ALFWorld (82%) 和 BabyAI(18 项任务中平均 58.7%)领域实现高性能。

这些发现凸显了结构化推理在基于大模型的智能体训练方面存在不小潜力。

表 1:盘古 Agent 与最近一些大模型智能体的比较。

图 2:三个内在函数的可视化,展示了该工作提出的范式在提高代理的模块化和灵活性方面的重要性。用户可以重新定义和重新配置内在函数,例如 µ1 (・) 以 LLM 作为输入来产生想法,或 µ2 (・) 利用工具来帮助改进推理。新智能体还支持嵌套这些内在函数来构建更通用的模块,以完成复杂且具有挑战性的决策任务。

Pangu-Agent 的范式

为了引入结构化推理,我们假设一系列内在函数 µ(・) 作用于并转换智能体的内部记忆。引入这些内在函数可以将典型的强化学习目标重新表述为支持多个「思考」步骤的目标。因此,典型的 RL 目标旨在找到一个以观察 o→ 的历史为条件的策略 π,以最大化回报 R,即 maxπ(・) R (π(・|o→)) 可以使用嵌套集重写(参见图 . 2) 内函数 µ→ (・) 为:

作者强调需要将这些函数与外部函数分开定义、学习和使用,这样用户就可以重新定义任何被认为对其任务有帮助的任意嵌套。我们可以根据方程重写盘古智能体的优化问题。更详细的形式为:

其中 rt 是时间步 t 的奖励,取决于环境观察 ot 和行动 at。此外,γ ∈ [0, 1) 是一个折扣因子,指定奖励随时间折扣的程度。外部函数仍然充当与外界交互的执行器,而那些额外分层的内部函数旨在封装系统架构师认为有益的任何内部推理过程。

有关 Pangu-Agent 的框架结构,内在函数是对代理的内存状态进行操作的一系列函数。内在函数对于塑造智能体的内部状态至关重要,并且可以影响其决策过程。通过利用这些功能,智能体可以根据观察历史和先前的知识调整其记忆状态,从而做出更明智且适合上下文的决策。

外部函数的目的是从语言模型中引发环境交互。与对智能体的内存状态进行操作的内部函数不同,外部函数通过生成要执行的动作来直接与环境交互。

盘古 Agent 公式的灵活性意味着可以分层创建许多复合方法。此外应该指出的是,该工作在盘古 Agent 代码库中提供的这些复合方法的实现并不总是原始算法的忠实再现,因为它们需要特定的任务细节。

受到最近搜索增强的 LLM 研究的启发,盘古 Agent 框架集成了三种树搜索算法 -- 广度优先 / 深度优先搜索 (BFS/DFS) 和 蒙特卡洛树搜索(MCTS),以提高 LLM 的生成和决策能力的规划能力。具体来说,该框架利用 LLM 作为策略、模型和价值函数。通过与这个基于 LLM 的模拟环境交互,我们就可以构建一个 rollout 树,该树将使用树搜索算法进一步修剪,以实现更好的操作 / 生成效果。

盘古 Agent 兼容一系列任务,例如 ALFWorld、GSM8K、HotpotQA、WebShop 等。它的交互界面与 OpenAI Gym 类似,是一种开放式设计。

最后,该框架包含一个模板系统来为 LLM 生成输入提示词(Prompt),使用模板增强了提示制作的灵活性。

评估

最后,研究者对 Pangu-Agent 支持的各种方法进行了广泛评估。

首先,他们考虑用一阶嵌套法和复合法来评估 Pangu-Agent 的结构推理能力(图 3);然后,使用监督学习和 RL 在三种不同的环境中评估 Pangu-Agent 的微调能力。结果表明,就 Agent 取得的收益而言,复合方法往往优于一阶嵌套方法。研究者表示,SFT 和 RLFT 可以让 Agent 实现专业化,并进一步提高其在 ALFWorld 和 BabyAI 任务中的收益。在整个评估过程中,研究者使用了多种 LLM,如 GPT、Llama 2、OpenChat、Vicuna 和 Mistral 进行测试。

结构化推理评估

通过对内在函数(Intrinsic Functions)的内置支持,可以评估推理结构中的不同设计选择对 AI 智能体性能的影响。

首先在表 2 中,研究者评估了一阶嵌套,即只通过观察环境和对环境执行的操作来修改智能体记忆的设置。在文献中,这些方法被简单地称为不同的提示方法,例如:少样本提示法 (FS)、少样本思维链 (FS-CoT) 、零样本思维链(ZS-CoT)。这些方法的详细介绍见附录 A.1。

需要注意的是,由于 LLM 文本生成的非确定性,不同的运行所获得的回报可能会有很大差异。为了考虑这些差异,研究者将任务 - 方法 - LLM 的每种组合运行三次,并报告平均标准偏差。但是,一阶嵌套也有局限性,因为它们可能难以充分利用 LLM 的能力。正如此前所述,智能体需要能够处理语言模型的输出、重新查看其答案、更改其记忆,甚至使用工具。这里所说的复合方法是指在决定最终行动之前可能需要多个思考步骤的方法。

表 3 列出了四种复合方法的结果:具有自一致性的 FS-CoT(FS-CoTSC)、具有可选独立思考步骤的 FS-CoT(如 React )、具有映射步骤的 FS-CoT(如 66)、SwiftSage 和 Least-to-Most(另见附录 A.2)。所有这些方法都在每个环境时间步使用了多个固有函数步,缩略语的简要说明可参见表 7。

研究者观察到,结构相似但提示内容不同的方法为智能体带来的收益却大相径庭,这说明了精心设计提示的重要性。同样值得注意的是,不同的方法在某些 LLM 中比在其他 LLM 中效果更好,例如 React 在 OpenChat-3.2 中的平均表现比 FS 差,而 React 和 FS 在 GPT-3.5 中的平均收益表现类似。

值得注意的是,在所有 LLM 中,FS 在 GSM8K 中的性能比 Direct 差很多。这并不奇怪,因为 FS 只向 LLM 提供最终答案。因此,LLM 的目的是回答问题,而不需要生成中间步骤。然而,在 Direct 中,即使没有明确要求,LLM 也会生成中间步骤,因为互联网上类似的小学水平问题就是这样呈现的,而这些问题很可能就包含在这些 LLM 的训练集中。在将 ZS-CoT 与 FS 进行比较时,也能得出类似的结论。

这一点在较小的 LLM 中尤为明显,研究者推测,如果在提示中添加「逐步思考」(think step-by-step)的引语,模型就更有可能生成能够正确解决当前问题的推理步骤。

在 HumanEval 任务中,研究者观察到 GPT-3.5 与其他模型的收益率差距明显大于其他任务。这可能是由于 HumanEval 是一项编码任务,需要 LLM 提供结构良好的响应。然而,较小的开源 LLM 更容易出现这些结构性错误,从而导致任务失败并得到 0 的返回值。

妨碍 LLM 性能的另一个因素是有限的上下文长度。在 WebShop 等涉及相对较大观测值的任务中,提示的长度需要截断,以保持在允许的上下文长度范围内。因此,LLM 在这项任务中的表现会受到很大影响,特别是在 Reflect 等方法中,提示中还会包含额外的信息。这也解释了为什么 Reflect 方法在 WebShop 中的表现往往不如其他方法。

在某些情况下,FS-CoT-SC 可以提高 LLM 的收益,尤其是在 GSM8K 中。但是,这需要付出额外的代价,即需要多次提示 LLM(本实验中为 5 次)以执行 SC 操作选择。在 HumanEval 等任务中,答案包含较长的文本答案,可能会有多个答案产生正确的结果,研究者发现无法应用 SC。这是因为 LLM 不会生成与之前相同的答案,而 SC 操作选择器无法选择最常见的答案。

外在函数评估:微调

上述结果表明,虽然 LLM 在实现各种任务的回报率方面表现出色,但在实现 100% 成功率方面仍有很大的改进空间。随后,研究者探讨了 SFT 和 RLFT 如何帮助 Pangu-Agent 提高成功率。

他们提出了两种不同的流程:一种是由 multi-turn 轨迹生成和 SFT 组成的 Bootstrap SFT (BSFT),另一种是由轨迹生成、SFT 和 RLFT 组成的三步流程。在执行 SFT 时,专家轨迹演示始终使用 OpenChat-3.5 LLM 收集,该 LLM 配备了 Pangu-Agent 框架的结构化推理能力。研究者使用 OpenChat-3.5 LLM 执行 BSFT,而 SFT-RLFT 管道则应用于 Llama 2-7B LLM,并考虑了两种不同的评估范式:为每个任务微调不同的 LLM,以及在多个任务中微调一个 LLM(例如多任务微调)。

One Model per Domain

BSFT:第一个实验展示了 Pangu-Agent 框架提供的固有函数和微调函数的结合。首先从一系列不同的提示方法中收集数据,特别是 ZS-CoT、FS-CoT、FS-CoT-React 和 FS-CoT-Reflect。收集完数据后,运行一个拒绝采样步骤,丢弃失败的轨迹,只保留在折扣回报方面表现最好的轨迹。然后可以在该数据集上执行 SFT 步骤,以进一步提高该方法的性能。表 4 中 「1-step SFT」一栏列出了经过单一 SFT 步骤训练后的模型结果。

如表 4 ,经过一轮拒绝采样后,可以在 ALFWorld 中取得很好的性能,同时保持模型在行动前产生想法的能力。

SFT-RLFT: 尽管如此,对这些固有函数生成的完整轨迹进行微调的计算成本很高,而且很快就会达到收益递减的地步。研究者建议使用 RL 在各种任务中实现更高的性能。

如表 5 ,研究者首先对成功演示进行 SFT 微调,然后再进行 RL 微调,成功率的提高幅度最大。对于像 ALFWorld 这样的复杂领域,用于轨迹生成的 SFT 步骤和固有函数(FS-CoT)至关重要。这说明了 Pangu-Agent 框架的重要性,在该框架中,可以从固有函数和微调中获益。

更多研究细节,可参考原论文。

相关推荐
三花AI2 天前
好家伙,OpenAI 第一的位置屁股还没坐热呢,谷歌 Gemini 就重夺竞技场榜首了
资讯
蚝油菜花11 天前
今日 AI 简报|百度推出检索增强的文生图技术、开源表格处理大模型、蛋白质结构预测、3D 生成、短视频生成、PDF 翻译工具
人工智能·开源·资讯
蚝油菜花1 个月前
王炸!Anthropic 推出全新模型 Claude 3.5 Haiku,首发支持计算机使用功能!
人工智能·llm·资讯
三花AI1 个月前
Playground V3:图形设计模型的文字处理新标杆
开源·资讯
万界星空科技1 个月前
万界星空科技MES系统与各大系统的集成
产品·运营·资讯
战场小包3 个月前
OpenAI动荡,将走向何方、GPT5或许将近、毒舌AI轻松破防网友、最新版 GPT-4o AI 模型得满分 | AGI掘金视界周刊第 4 期
人工智能·资讯
字节跳动开源4 个月前
字节跳动开源多云多集群管理引擎 KubeAdmiral v1.0.0 发布!
开源·github·资讯
战场小包4 个月前
AI视界周刊第 2 期:里程碑 Llama 3.1 开源、AI训AI,越训越傻、AI 搜索重燃战火
人工智能·资讯
栩栩云生4 个月前
[240726] Mistral AI 发布新一代旗舰模型 | Node.js 合并 TypeScript 文件执行提案
typescript·node.js·资讯
赵侠客4 个月前
使用Hutool要注意了!升级到6.0后你调用的所有方法都将报错
java·后端·资讯