24年8月来自LG电子在加拿大多伦多AI实验室的论文“Can We Rely on LLM Agents to Draft Long-Horizon Plans? Let’s Take TravelPlanner as an Example”。
大语言模型 (LLM) 因其良好的泛化和涌现能力,使自主智体更接近通用人工智能 (AGI)。然而,对于基于 LLM 的智体如何表现、为什么它们可能会失败以及如何改进它们,尤其是在要求严格的现实世界规划任务中,还缺乏研究。
本文用一个现实的基准 TravelPlanner (Xie et al., 2024) 进行研究,其中智体必须满足多个约束才能生成准确的规划。利用这个基准来解决四个关键研究问题:(1) 在推理和规划方面,LLM 智体是否足够健壮以应对冗长和嘈杂的上下文?(2) 少量提示是否会对 LLM 智体在长上下文场景中的表现产生不利影响?(3) 能否依靠细化来改进规划,(4) 使用正反馈和负反馈对 LLM 进行微调能否带来进一步的改进?
综合实验表明,首先,尽管 LLM 能够处理大量参考信息和少样本,但它们往往无法关注长上下文的关键部分;其次,它们仍然难以分析长规划,无法提供准确的反馈以供改进;第三,提出反馈-觉察-微调 (FAFT),它利用正反馈和负反馈,从而比监督微调 (SFT) 有显著的提升。
LLM 在各种基准测试中都表现出了显著的推理和规划结果,例如 WebArena(Zhou,2023)、WebShop(Yao,2022a)、AgentBench(Liu,2023b)和 AgentGym(Xi,2024b),在这些基准测试中,它们充当智体,代表人类完成给定的任务。在这方面,社区考虑了开发基于 LLM 智体的两个主要方向:(1)提示 LLM 进行推理、规划和执行(Qin,2023;Wei,2022;Yao,2024;Wang,2022),以及(2)针对给定任务微调 LLM(Chen,2023b;Zeng,2023;Zhang,2024b;Chen,2024;Song,2024b)。尽管在每个方向上都有很好的贡献,但可以看出 LLM 在更复杂的场景中仍然存在不足。例如,TravelPlanner(Xie,2024)是一个基准,其中智体应该生成一个规划,该规划必须满足输入查询的多个约束。不过 GPT-4-Turbo(OpenAI,2023)的最终通过率只能达到 4.4%。这表明 LLM 智体无法处理长期推理和规划。
本文框架基于 TravelPlanner 构建,由五个主要组件组成:清理器、规划器、反馈生成器、细化器和评估模块(如图所示)。清理器为规划器提供干净的参考信息和少样本,以生成规划。然后,反馈生成器向细化器提供反馈,以在需要时改进规划。交互持续进行,直到满足预定义的设置。规划器是框架的核心,它可以基于 (1) 上下文学习 (ICL) 或 (2) 监督微调 (SFT),例如 FAFT。
在 TravelPlanner 的 Two-Staging 设置中,参考信息由上游工具智体收集,从相应的源文件中收集与交通、餐饮、景点和住宿相关的有效信息。原始基准还特别为 Sole Planning 设置创建有效的参考信息,其中重点是 Planner 智体。
清理器智体
由于参考信息庞大且冗长(即平均 10,000 个tokens),提出一个过滤智体 Scrubber,它可以从查询中推断出硬约束。有 5 个硬约束:房间规则、房间类型、菜系、预算和交通。让 Scrubber 根据查询预测精确的约束值,例如,从以下集合中预测一种或多种菜系偏好:{美式、中式、法式、印度式、意大利式、地中海式、墨西哥式}。在 Scrubber 内部,将整个训练集作为小样本示例注入到测试查询之上,以提高准确性。然后,在推理过程中,使用 Scrubber 智体,每个预测的硬约束都用于删除未用于生成最终规划的行(来自参考信息中的表格)。例如,如果预测的菜系偏好是意大利菜、地中海菜,那么任何不能提供这两种菜系的餐厅都会被删除。因此,删除后,参考信息的长度会变短。此外,从参考表中手动删除几个与最终规划任务无关的列,例如评级、电话号码和网站。这两项努力将长参考信息缩短约 60%。值得注意的是,规划智体在制定正确规划时仍有许多选择。例如,如果用户的旅行预算为 8,000 美元,在删除价格高于此限制的酒店后,规划智体仍有其他选择来推理和制定规划以满足预算和其他约束。
反馈生成器和细化器
一旦起草原始规划,就会以迭代的方式进行改进。为此,遵循以前的工作,即分别创建两个具有自然语言通信功能的智体。
反馈生成器负责生成细微的任务相关反馈,以解决多个约束。定制了一个提示,要求 LLM 针对常识性约束写出反馈。在说明中,提供约束列表及其描述。这里使用两个样本来帮助生成反馈。这些样本是从训练集中随机选择的。
细化智体根据反馈生成器收到的反馈改进生成的规划,获得更好的版本。
如图说明整个细化阶段。其反馈指出,第 1 天和第 2 天有一个重复的景点,并且住宿不满足最低住宿晚数要求。然后,细化器智体会将此草案规划细化为新规划,其中会替换第一天的景点以避免重复,并选择另一家允许住两晚的酒店。最后,根据系统评估,细化的规划满足所有常识性约束。
按照旅行规划,用自动评估指标来评估智体生成的规划是否满足(正确的)格式条件以及所有约束。TravelPlanner 的 Leaderboard 能够在线评估智体在验证集和测试集上的表现。用此排行榜来计算实验的验证集和测试集的数据。用不同的随机种子运行五次,并报告平均分数。
由于工作的重点是智体制定规划的能力,因此仅依赖 TravelPlanner 的 Sole Planning 设置。也就是说,所有全面且必要的信息(人工注释)都直接提供给规划智体。还考虑 Direct 规划(查询与详细说明任务和收集的相关信息指令一起直接输入到模型中)策略,因为它很简单,而且性能与其他推理技术,如 ZS-CoT(Wei,2022)、ReAct(Yao,2022b)和 Reflexion(Shinn,2024)处于相似的水平。
对于 Planner 智体,对 Llama3-8B 进行 3 个 epoch 的微调,SFT 和 FAFT 的批处理大小均为 4。用恒定的调度程序学习率 5 × 10−5,不进行预热,并且禁用训练样本打包,避免交叉污染。以 4 位量化训练模型。最大序列长度设置为 7000,允许训练的上下文覆盖所有样本。为了提高计算和内存效率,还使用了低秩自适应(LoRA),r = 16,alpha = 16。
TravelPlanner 数据集由训练集、验证集和测试集三部分组成,如下所示:
- 训练集由 45 个三元组(查询、参考和人工注释规划)组成。注释用作上下文学习或监督微调的演示。请注意,这些带注释的规划只是许多可行规划的一个子集。正如预期的那样,Oracle(即系统)会返回注释的反馈,其未提出任何问题。
- 验证集包含 180 对(查询-参考),没有注释规划。
- 测试集包含 1,000 个查询及其参考,没有任何带注释的规划。
对于给定的查询,智体需要制定一个(综合)规划,其中包括每天的交通、餐厅、景点和住宿。
使用训练集进行小样本提示和微调,因为它提供了带注释的规划。
下表是LLM智体的流行基准: