24年8月来自香港大学和微软的论文“AGENTGEN: Enhancing Planning Abilities for Large Language Model based Agent via Environment and Task Generation”。
基于大语言模型 (LLM) 智体已引起广泛关注,并且越来越受欢迎。此外,规划能力是基于 LLM 智体的一个关键组成部分,涉及与环境的交互并执行操作以完成规划任务,这通常需要从初始状态实现期望的目标。本文研究通过指令调整(称为智体训练)来增强基于 LLM 智体的规划能力。
最近对智体训练的研究表明,利用专家级轨迹数据(动作-观测对的序列)进行指令调整 LLM 可有效增强其规划能力。然而,现有工作主要侧重于从手动设计的规划任务和环境中合成轨迹。创建这些环境和任务的劳动密集性,阻碍了为智体训练生成足够多样化和广泛的轨迹。为了解决这一限制,本文探讨从易到难的多样化环境和逐步规划任务的自动合成。为此,引入一个框架 AGENTGEN,该框架首先利用 LLM 生成环境,然后生成以这些环境为条件的规划任务。
具体来说,为了提高环境多样性,用由各种域特定文本段组成的灵感语料库,作为合成环境的上下文。此外,为了增加生成的规划任务难度多样性,提出了一种双向进化方法 BI-EVOL,该方法从更容易和更难的方向进化规划任务,合成具有更平滑难度曲线的任务集,从而更有效地增强 LLM 的学习过程。这些方法共同有助于生成用于指令调整的多样化轨迹数据。
基于 AGENTGEN,大大扩展了可用于智体训练的环境和规划任务的数量。从 AgentBoard 得出的评估结果表明,AGENTGEN 大大提高了 LLM 的规划能力,例如,经过 AGENTGEN 指令调整的 Llama-3 8B 在整体性能上超越了 GPT-3.5。而且在某些任务上,它甚至比GPT-4表现更好。
近年来,由于大语言模型(LLM)[40,41,37,60]的进步,基于LLM智体引起了人工智能界的广泛关注。一般来说,基于LLM的智体是指利用LLM感知环境、做出决策并执行操作来替代或帮助人们完成某些特定任务[75,63,77]。此外,规划通常被认为是基于LLM智体最重要的应用之一,例如机器人规划[52,44,17,61]、旅行规划[88,76]等。在本研究中,规划被概念化为在给定环境中识别一系列可执行操作以完成规划任务的系统过程,规划任务定义为从初始状态过渡到实现指定目标条件,同时考虑约束和可用资源[23,48]。
与使用 LLM 进行基于文本推理的传统方法(例如思维链 [72])不同,基于 LLM 智体通常涉及与环境的交互,根据环境信息以闭环方式调整输出。这些基于 LLM 智体现在增强记忆 [89, 30, 27, 82, 51, 86, 93, 59, 20]、工具使用 [9, 43, 50, 26, 49, 45] 和规划 [12, 5, 39, 38, 47, 2] 等功能,其整体效率显著提高。
规划可分为两类:开环规划,其中 LLM 在执行之前输出整个动作序列 [17, 61];闭环规划,其中基于 LLM 智体在执行前一个动作后根据实时环境交互来决定下一个动作 [53, 5, 57, 58, 28, 54, 19, 18]。
通过指令调整LLM来提高规划能力是一个重要的研究问题,称为智体训练。如图所示,与模仿学习 [21] 类似,典型的智体训练过程可分为三个阶段:(i)准备环境和规划任务;(ii)在这些规划任务上合成专家级轨迹(动作-观测对序列);例如,利用最先进的 LLM(例如 GPT-4 [41])作为智体,并根据奖励分数过滤轨迹 [84, 6];(iii)使用合成的轨迹数据对 LLM 进行指令调整。
最近,许多研究证明了通过智体训练增强 LLM 规划能力的有效性 [84, 83, 6, 66, 8, 85, 62, 55]。设计多样化的环境需要定义一系列丰富且实用的场景,而实现这些环境通常需要具有编程技能的人类专家的参与。此外,制定任务通常需要创建一个难度逐渐增加的任务集。由于这一限制,现有的智体训练研究通常仅使用少数环境进行数据合成。
考虑目标导向的确定性规划问题 [48],其正式定义为元组 P = (T, E),其中 P 表示规划,E 表示智体交互的环境,T 表示智体需要完成的任务。具体而言,环境 E 通常模拟一个世界,包含动作空间 A 和状态空间 S 的定义,以及转换函数 Γ: S×A → S。任务 T 进一步由元组 T=(G,I) 定义,其中 G 表示目标条件,I 表示智体的初始状态。初始状态 I 是状态空间 Si 的子集,用于指定智体的起始条件。目标 G 是状态空间 Sg 的子集,用于指定所需的结果或条件。具体而言,G 可以表示为 G = {s ∈ Sg | φ(s) = true}。这里,φ(s) 是一个布尔值函数,表示必须满足条件或命题,才能将状态 s 视为目标集的一部分。
规划问题可以用编程语言(例如 Python)或域特定语言(例如规划域定义语言 (PDDL) [36])来实现。例如,在基于 PDDL 的规划问题中,领域 PDDL 文件可以视为环境 E,定义状态(谓词)和动作,并用每个动作的先决条件和效果来指定转换函数。另一方面,问题 PDDL 文件可以看作任务 T。初始状态和目标条件通常都定义为谓词的组合。另一种广泛用于构建规划问题的编程语言是 Python。例如,在 OpenAI gym 中,规划问题将实现为 Python 类,其中转换函数实现为类的方法,通常命名为“step”或“update”函数。同时,目标 G 通常表示为指示任务目标的奖励函数,初始状态 I 在名为“reset”的方法中定义。
基于 LLM 的智体利用预训练的语言模型在定义的环境 E 中运行并完成给定的任务 T。给定环境 E,基于 LLM 的智体会感知其状态 S,并根据对输入的理解和处理采取行动 A。转换函数 Γ: S × A → S 保持一致,其中基于 LLM 智体通过自然语言处理生成适当的动作来确定下一个状态。目标 G 指导基于 LLM 智体选择可最大化奖励的动作。智体利用语言模型来解释任务要求并生成与实现指定目标一致的动作。本质上,基于 LLM 智体使用 LLM 形成策略 π: S → A,其中 π(s) 是基于 LLM 对任务的理解和处理在状态 s 下采取的动作。
生成规划任务的过程可以形式化为函数 f:I →(T,E),其中 I 是输入空间(例如,指令或提示),元组(T,E)是所有可能的规划任务和环境的空间。根据定义,可以将其表示为 f(i)=(Ti,Ei),i ∈ I,其中 Ti 是生成的规划任务,Ei 是给定输入 i 的生成的环境。按照两阶段方法可以进一步分解如下:i)环境生成:在第一阶段,根据输入指令 i 生成环境 Ei。这可以表示为 Ei = gE(i),其中 gE 是将指令 i 作为输入并生成环境 Ei 的环境生成函数。ii)任务生成:在第二阶段,根据第一阶段生成的环境 Ei 生成任务 Ti。这可以表示为:Ti = gT(i,Ei),其中gT是任务生成函数,它将原始指令 i 和生成的环境 Ei 作为输入来产生任务 Ti。
如图所示,本文提出一个复杂的环境生成框架,该框架围绕三个主要组件构建:(1)环境规范生成模块,其中 LLM 首先生成环境规范,通常包括环境的总体概述、状态空间和动作空间的描述以及转换函数的定义;(2)环境实现模块,根据环境规范生成相应的代码;(3)环境库,存储先前生成的高质量环境,作为综合环境数据集并提供生成新环境的上下文示例。
如图所示,根据生成的环境,提示 LLM 生成相应的规划任务。采用两阶段生成法 BI-EVOL 来创建难度各异的规划任务:首先用特定环境提示 LLM,使其能够以零样本方式生成一组初始规划任务;随后,调整这些任务,使其更简单或更具挑战性,形成一套全面的规划任务。
为了评估所提框架的有效性,用规划域定义语言 (PDDL)(一种广泛采用的规划编程语言)合成环境和规划任务。随后,以零样本方式评估其在各种未见过的规划任务中表现。为了验证 AGENTGEN 的有效性和通用性,评估的任务分为两个不同的组:i) 域内任务:使用 PDDL 实现的规划任务。ii) 域外任务:这些任务包括使用其他编程语言(例如 Python)开发的任务。
实验设置如下。
对于域内任务,选择四个广泛使用的基于 PDDL 规划任务:Blocksworld、Gripper、Tyreworld 和 Barman [35]。更明确地说,Blocksworld 要求智体通过移动blocks来实现目标配置,而 Gripper 涉及在不同房间之间移动目标。Tyreworld 模拟更换汽车轮胎,包括拆下瘪胎、更换备胎和安装新轮胎。 Barman 模拟调酒师调制鸡尾酒的任务,包括混合各种原料、使用调酒器和装饰饮料。
对于域外任务,选择两个具有挑战性的部分可观察规划任务:Alfworld [52] 和 BabyAI [10]。Alfworld 是一个旨在测试智体执行日常家务的能力的环境。而在 BabyAI 中,智体会在网格世界环境中解释和执行自然语言指令。
遵循 AgentBoard [35] 的环境和任务实现。对于评估任务的配置,采用仅动作提示 [80],将 LLM 智体的最大步长设置为 30。选择 LIMA [91] 作为生成环境的文本语料库 D,它利用各种数据处理技术来确保指令范围的多样性。对于环境生成和任务生成,用 GPT-4,将推理参数配置为温度为 0,top_p 值为 0.95。基于 AGENTGEN,总共生成 592 个环境。对于每个环境,生成十个无条件任务,然后用 BI-EVOL 将其演变为十个细化任务。为了生成用于训练的轨迹数据,用独立于域的规划器 FastDownward,以确保最佳轨迹数据。这个过程最终产生 7246 条轨迹。由于轨迹数据是结构化的,例如“pickup(o1)”,用 GPT-4 生成一个自然语言映射,例如“pick up object {arg1}”,将结构化动作转换为自然语言动作。
在训练过程中,用 Llama3-8B 4 作为基础模型。超参数配置如下:批处理大小为 64、10 个 epochs、上下文长度为 4096 个 tokens、无预热步骤。保留从 epoch 5 到 10 的检查点,随后在域内任务上进行评估。选择表现出最佳性能的模型对域外任务进行进一步评估。用八个 V100 GPU 集群进行所有实验。