基于大语言模型的智能体(LLM-based Agent)受到了广泛关注,并越来越受欢迎。此外,规划能力是 LLM-based Agent 的重要组成部分,它涉及与环境的交互和执行行动以完成规划任务,这通常需要从初始状态实现预期目标。
本文研究通过 Instruction Tuning(即 Agent Training)来提高 LLM-based Agent 的规划能力。
最近关于 Agent Training 的研究表明,利用专家级轨迹数据(行动-观察对序列)对 LLM 进行 instruction tuning,可有效增强其规划能力。不过,现有的工作主要集中在从人工设计的规划任务和环境中合成轨迹。创建这些环境和任务需要耗费大量人力物力,因此无法生成足够丰富和广泛的轨迹用于智能体(Agent)训练。
为了解决这一局限性,本文探索了自动合成各种环境和从易到难的渐进式规划任务的方法。作者引入了一个名为 AgentGen 的框架,该框架首先利用 LLM 生成环境,后根据这些环境生成规划任务。具体来说,为了提高环境的多样性,作者建议使用由各种特定领域文本片段组成的灵感语料库作为合成环境的背景。
此外,为了增加生成的规划任务的难度多样性,作者提出了一种双向进化方法——BI-EVOL,它可以从较易和较难两个方向进化规划任务,合成难度曲线更平滑的任务集从而更有效地增强 LLM 的学习过程。
这些方法共同促进了用于指令调整的多样化轨迹数据的生成。
在 AgentGen 的基础上,作者极大地扩展了可用于智能体(Agent)培训的环境和规划任务的数量。
来自 AgentBoard 的评估结果表明,AgentGen 极大地增强了 LLM 的规划能力。例如,经过 AGENT- GEN 指令调整的 Llama-3.1-8B 在总体性能上优于 GPT-3.5。此外,经过 AgentGen 调整的 Llama-3.1-70B 模型在规划任务中取得了最先进的结果。
论文标题:
AgentGen: Enhancing Planning Abilities for Large Language Model based Agent via Environment and Task Generation
https://arxiv.org/pdf/2408.00764
背景
最近,由于大型语言模型(LLMs)的进步,基于 LLM 的人工智能智能体(Agent)受到了广泛关注。一般来说,基于 LLM 的智能体(Agent)指的是利用 LLM 来感知环境、做出决策和执行行动,以替代或帮助人们完成某些特定任务。
此外,规划通常被视为基于 LLM 的智能体(Agent)最重要的应用之一,例如
机器人规划、旅行规划等。在本研究中,规划被概念化为在给定环境中确定一连串可执行的行动以完成规划任务的系统过程,其定义是从初始状态过渡到实现指定目标条件的过程,同时考虑到约束条件和可用资源。
通过 instruction tuning LLM 来提高规划能力是一个重要的研究课题,被称为 “agent training”。如图 1,所示与模仿学习类似,典型的智能体(Agent)训练过程可分为三个阶段:
2. 在这些规划任务上合成专家级轨迹(行动-观察对序列)。例如,利用最先进的 LLM(如 GPT-4 )作为智能体(Agent),并根据奖励得分筛选轨迹;
最近,许多研究都证明了通过智能体(Agent)训练提高 LLMs 规划能力的有效性。尽管取得了成功,但这些研究的一个主要局限是,它们主要依赖于人工设计的环境和规划任务。
创建环境和规划任务的劳动密集性质阻碍了多样化和广泛轨迹数据的生成。更明确地说,设计多样化的环境需要定义一系列丰富实用的场景,而实施这些环境通常需要具备编程技能的人类专家的参与。
此外,制定任务通常需要创建一个难度逐步递增的任务集。由于这种限制,现有的 agent training 研究通常只使用少数几种环境进行数据合成。
方法
规划问题可以用 Python 等编程语言或规划域定义语言(PDDL)等特定领域语言来实现 [38]。在基于 PDDL 的规划问题中,领域 PDDL 文件可视为环境 E,它定义了状态(谓词)和行动,并使用每个行动的前提条件和效果指定了过渡函数。初始状态和目标条件通常都定义为谓词的组合。
另一种广泛使用的用于构建规划问题的编程语言是 Python。在 OpenAI gym
1
中,规划问题将以 Python 类的形式实现,其中过渡函数以类的方法实现,通常命名为 “step” 或 “update” 函数。同时,目标 G 通常表示为表示任务目标的奖励函数,而初始状态
I
在名为“重置”的方法中定义。
生成规划任务的过程可以形式化为一个函数
,其中
是输入空间(如指令或提示),元组
是所有可能的规划任务和环境的空间。根据第 2.1,节中的定义作者可以将其表示为
,其中
是针对给定输入
生成的规划任务,
是生成的环境。
i)环境生成(第 3.1 节):在第一阶段,作者根据输入指令
生成环境
。这可以表示为
,其中
是环境生成函数,它将指令
作为输入并生成环境
。
ii)任务生成在第二阶段
(§3.2)
,作者以第一阶段生成的环境
为条件,生成任务
。这可以表示为
,其中
是任务生成函数,它将原始指令
和生成的环境
作为输入来生成任务
。作者将在下一节详细介绍这两个阶段的实现。
2.2 环境生成
概述:
如图 2 ,所示作者提出了一个复杂的环境生成框架,该框架由三个主要部分组成:
1. 环境规范生成模块,由 LLM 首先生成环境规范(Environment Specification),通常包括环境概览、状态空间和动作空间描述以及转换函数
定义;
3. 环境库,存储以前生成的高质量环境,作为综合环境数据集,并为生成新提供上下文示例。下一段将对每个组件进行详细说明。
环境规范:
作者最初会提示 LLM 生成环境规范,其中通常包括环境的整体描述、具体操作及其相应的前提条件和效果,以及环境中的某些限制。环境说明将作为生成具体环境代码的基础。这种类似于思维链(Chain-of-Thought)的两阶段方法可以更好地帮助 LLM 创建高质量的环境。
对于生成环境规范,一种直接的方法是促使 LLM 生成随机环境。而由于 LLM 固有的归纳偏差,它们很难通过这种方式生成多样化的环境。因此,为了解决这个问题,
作者建立了一个灵感语料库
,其中包含足够多样化的文本片段,用来作为 LLM 生成环境规范的“灵感”。
更具体地说,在生成环境时,作者首先从
中抽取一个文本片段
,后提示 LLM 根据
生成相关环境。以图 2 中的例子为例,作者首先从
中采样一个文本段“如何用花生酱粉促进饮食?”,然后提示 LLM 生成一个相关的环境,在这个环境中,智能体(Agent)被定义为一名营养学家,其任务是创建一本新的健康食谱书,其中花生酱粉是主要成分。
这种方法极大地增强了生成环境的多样性,从而使 Agent Training 更具通用性。灵感语料库可以通过多种方式实现,例如使用像 Common Crawl 这样的大规模预训练语料库。
或者,也可以使用特定领域的语料库(如代码生成数据集)来生成特定领域的环境。本文使用 LIMA 作为灵感语料库,这是一个具有足够多样性的指令微调数据集。
环境实现:
以生成的环境规范为条件,生成相应的代码,即实现环境。这可以表述为一个典型的 LLM 代码生成问题。作者还引入了一种能够捕捉语法错误的验证工具,以便在代码生成过程中提供反馈,从而不断改进代码。
2.3 任务生成
概述:
如图 3 ,所示根据生成的环境,作者提示 LLM 生成相应的规划任务。作者采用两阶段生成方法 BI-EVOL,以创建难度各异的规划任务。
首先,作者向 LLM 提示一个特定的环境,使其能够以 zero-shot 的方式生成一组初始规划任务。随后,作者对这些任务进行调整,使其变得更简单或更具挑战性,从而形成一套完整的规划任务。
双向进化:
许多研究都提出了指令进化的建议,主要侧重于增加指令的难度。这种方法的有效性在很大程度上依赖于这样一种假设,即 LLM 天生就具有遵循简单指令的能力。
而根据一些研究结果 [37, 33],即使在简单的规划任务中,LLMs 的表现也往往很差。因此,作者提出了
BI-EVOL
,它引入了两个方向的进化:易进化和难进化。易进化通常涉及简化目标条件。
这样做的动机是,当智能体(Agent)表现不佳,无法直接从典型的困难目标中学习时,较简单的任务可以促进学习。反之,硬进化通常涉及使目标条件
更复杂,从而增加了智能体(Agent)完成任务所需的步骤数量。
实验
为了评估拟议框架的有效性,作者使用规划领域定义语言(PDDL)合成了环境和规划任务,这是一种广泛采用的规划编程语言。为了验证 AgentGen 的有效性和通用性,作者将评估的任务分为两组:i)域内任务:使用 PDDL 实现的规划任务:这些任务包括使用其他编程语言(如 Python)开发的任务。
3.1 实验设置
评估任务:
对于域内任务,作者选择了四个广泛使用的基于 PDDL 的规划任务:Blocksworld、Gripper
、Tyreworld 和 Barman 。
更明确地说,Blocksworld 要求智能体(Agent)通过移动积木来实现目标配置,而 Gripper 则涉及在不同房间之间移动物体。Tyreworld 模拟更换汽车轮胎,包括拆下爆胎、换上备用轮胎和安装新轮胎。Barman 模拟调酒师调制鸡尾酒的任务,包括混合各种配料、使用调酒器和装饰饮料。
对于域外任务,作者选择了三个具有挑战性的部分可观测规划任务:Alfworld 和 BabyAI,Jericho。Alfworld 是一个旨在测试智能体(Agent)执行日常家务能力的环境。在 BabyAI 中,智能体(Agent)在网格世界环境中解释并执行自语言指令。Jericho是一组基于文本的交互式小说游戏,玩家在游戏中发出文本指令来改变环境。
评估指标:
作者使用了两个评估指标来评估规划能力:成功率(success rate)和进展率(progress rate)。在每一轮交互过程中,作者都会分配一个进度率(用
表示)来衡量向目标状态
迈进的速度。