北邮、美团联合提出反思微调AgentRefine:微调的也能让Agent模型学会反思?

©PaperWeekly 原创 · 作者 | 洪文滔、傅大源

单位 | 北京邮电大学硕士生

研究方向 | 自然语言处理

概述

背景 
基于大语言模型(LLMs)的智能体(agent)已经被证实其能像人类一样执行复杂任务。其能利用大型语言模型的强大能力来感知环境、做出决策并采取行动,已成为解决复杂现实世界问题的有效方案。
动机 
我们首先观察到,现有的智能体训练语料库在训练内(Held-in)评估集上表现出了令人满意的结果,但在训练外(Held-out)评估集上却未能很好地泛化。
这些智能体微调工作面临严重的格式错误,并且常常长时间陷入同样的错误中。它们无法从经验中学习,只能记住现有的观察-行动关系。基于这一洞察,我们提出了一种新颖的 AgentRefine 框架用于智能体微调策略。其核心思想是让模型通过轨迹中的观察学习纠正其错误。
效果
通过使用我们合成的数据在 Llama3 和 Mistral-v0.3 上执行微调,我们在五个智能体评估任务上的实验表明,AgentRefine 在多样化智能体任务的泛化能力上显著超越了最先进的智能体微调工作。它在面对扰动时也具有更好的鲁棒性,并且能够在推理时生成多样化的思维。

我们的研究结果建立了智能体泛化与自我修正之间的关联,并为未来的研究提供了一个新范式。

论文题目:

AgentRefine: Enhancing Agent Generalization through Refinement Tuning

论文地址:

https://arxiv.org/abs/2501.01702

代码地址:

https://github.com/Fu-Dayuan/AgentRefine

项目主页:

https://agentrefine.github.io/


方法

数据构建

受到桌面角色扮演游戏(TRPG)的启发,AgentRefine 数据的构建过程可以分为三个部分:脚本生成、轨迹生成和验证,如图 4 所示。
脚本生成要求大型语言模型根据角色生成包含环境、任务和可用动作的脚本。在轨迹生成阶段,LLM 需要同时扮演主持人(DM)和玩家的角色,以生成包含错误的多轮智能体数据,并根据脚本进行精炼。验证将对脚本和轨迹进行验证,指出 LLM 在给定角色中所犯的错误,LLM 将根据验证者的反馈重新生成脚本/轨迹。

脚本生成

我们首先从多样化的人物中抽取一个人物 ,并提示大型语言模型基于 生成一个包含环境、任务和可用动作的脚本。环境将包括可能在互动中出现的位置、物品和玩家信息。
在生成环境后,LLM 将生成一个清晰具体的任务。最后,LLM 将生成一系列可用的动作。对于每个动作,我们要求 LLM 生成一个动作名称、验证代码和有效参数。
轨迹生成

给定一个脚本,LLM 可以在一次调用中模拟 DM 与玩家之间的多回合互动。具体而言,DM 的回合分为三个阶段:思考、观察和评估。

在思考阶段,我们要求 LLM 评估玩家的状态和迄今为止已知的信息,并分析玩家可以根据上一个动作获得的观察结果。观察阶段将提供玩家可以获得的观察结果,而在评估阶段,DM 将评估玩家最后的动作是否包含参数错误、逻辑错误和位置错误。玩家的回合类似于 ReAct,要求 LLM 通过思考分析当前状态,然后提出一个行动。

验证
验证器将检查脚本和轨迹。在脚本部分,为了确保动作名称的有效性,我们对动作名称应用验证代码,仅在所有动作通过验证时保存脚本。在轨迹部分,如果生成的轨迹存在:
1. 在某个回合 处存在 JSON 格式错误;
2. 在最后一个回合 处任务未完成;
3. 在玩家的回合 时,其动作无法与任何验证代码及对应参数匹配,而且 DM 在回合 中未提供参数错误,我们将保存所有之前的回合,直到 ,并提示 LLM 继续生成。如果 DM 评估任务已完成但轨迹中的错误修正回合数少于两个,我们将提供所有回合给 LLM,并要求其从头开始重新生成轨迹。
生成设置
我们使用 gpt-4o-2024-05-13 生成脚本和轨迹。我们将保存所有能够通过验证的轨迹,这些轨迹在 4 次 LLM 调用中生成(包括脚本生成和轨迹生成)。
我们主要采用 1-shot 轨迹示例方法进行轨迹生成,并在脚本生成中采用 3-shot 脚本示例,以帮助 LLM 遵循格式并提供多样化的结果。我们使用 deepseek-v2.5 作为开源 LLM 来生成脚本和轨迹。

Refinement Tuning

在生成完整轨迹后,我们将轨迹转换为 Refinement Tuning数据集 ,具体而言,用户回合是 DM 的观察,而助手回合是玩家的思维和行动,以 ReAct 格式表示。
为了防止 LLM 生成的错误回合干扰,我们改变了损失函 如方程 1 所示,其  给定数据  的总回合数 别是第  回合的思维、行动和观察。如  正确的, ,否则 

实验

实验设置
我们在大多数实验中使用 LLaMA3-base 系列模型。对于 mistral,我们使用 mistral-v0.3。我们应用了原始的 llama3(或 mistral)的多轮聊天模板。我们使用 LLaMA-Factory 来训练我们的模型。
我们选择了 5 个任务:SciWorld、Alfworld、BabyAI、PDDL 和 Jericho,它们都在测试模型的决策能力。我们使用 AgentBoard 框架进行实验,该框架可以确定智能体是否完成了所有任务(成功率)以及智能体是否到达了关键节点(进展率)。
对于闭源模型,我们选择 gpt-4o-2024-05-13 和 gpt-4o-mini-2024-07-18。对于开源模型,我们选择 Meta-Llama-3-8B-Instruct、MetaLlama-3-70B-Instruct 和 Mistral-7B-Instruct-v0.3。
对于微调模式,我们选择 Agent-FLAN、AgentGym 和 AgentGen 作为基线。它们都试图解决智能体泛化问题。Agent-FLAN 的训练集包括 Alfworld。AgentGym 的训练集包括 Alfworld、BabyAI 和 SciWorld。这些数据集将被视为相应方法的 Held-in 测试任务。

主要结果

表一显示了 AgentRefine 与其他方法的性能比较。我们用下划线标识每种方法的 held-in 指标。可以观察到,与其他工作相比,我们的方法在 held-out 任务中显示出显著优势。

例如,在 Sciworld 成功率上领先 Agent-FLAN 13.3%。值得注意的是,在某些任务中,AgentRefine 甚至可以达到 GPT-4o 系列的性能。这证明了 AgentRefine 强大的泛化能力。

为了进一步研究 Refinement Tuning 的有效性,我们进行了相关的消融实验。表 2 显示,在屏蔽 Refinement Tuning 后,模型在 5 个任务上的表现显著下降。例如,Sciworld 的性能下降约 43%,在某种程度上反映了 Refinement Tuning 的必要性。

从表 2 中,我们可以观察到,在没有精炼轨迹的数据上训练的模型在所有任务中经历了类似幅度的性能下降。 

在我们提出的 Refinement Tuning 中,我们对错误的回合标记的损失进行 mask,以防止模型学习不正确的思维过程。为了验证这一过程是否必要,我们在相同的数据上训练一个学习所有助手回合标记的模型。表 2 显示,学习错误标记的模型导致非常不利的后果,Sciworld的性能几乎下降了75%。

分析

鲁棒性分析

我们在一个 held-in 任务上进行数据扰动实验。具体而言,我们选择 Alfworld,它属于 AgentGym 和 Agent-FLAN 的 held-in 类别。我们在 Alfworld 中进行了 5 种扰动:

扰动 1:将指令中的 [clean、cool、heat] {obj} with {recep} 更改为 [clean、cool、heat] {obj} using {recep}。

扰动 2:将指令中的 go to {recep} 更改为 move to {recep}。

扰动 3:将指令中的 take {obj} from {recep} 更改为 from {recep} take {obj}。

扰动 4:删除指令中物品名称和物品编号之间的所有空格。

扰动 5:移除训练集中的所有 IND 数据并重新训练模型。我们还更改了 Agentboard 的环境接口以适应这些变化。

先前的工作在 held-in 任务上进行了广泛的训练,但在 held-out 任务上表现不佳。一个可能的原因是模型仅仅记住了观察和训练数据中行为之间的键值对。而不是学习根据任务和观察推断正确的行动。

通过表 3 我们可以观察到,简单的数据扰动导致原始保持任务的性能显著下降。例如,在平均分数下,AgentGym 的成功率下降了 25.6%,而 Agent-FLAN 的性能下降更为严重,达到了 30.4%。它们的标准差接近 20%。

相比之下,我们的 AgentRefine 在平均值上增加了 3.7%,且标准差较低,为 3.73%,这表明它学习了决策能力,而不仅仅是简单的记忆。

案例分析

图 9 展示了 Agent-FLAN 和 AgentRefine 在 Jericho 和 Sciworld 中的示例。这些案例表明,Refinement Tuning 可以增强模型思维的多样性和质量,这有助于提高模型的探索广度和效率,并避免在新环境中总是陷入循环。 

在 Jericho, Agent-FLAN 错误地认为它不在牢房中,并试图前往牢房。在失败后,它选择检查有效动作。尽管检查有效动作是一个正确的选择,但 Agent-FLAN 不会根据返回的结果纠正其错误决策,而是重复“前往牢房并检查有效动作”的错误循环。

相比之下,AgentRefine 在意识到其行动未能实现目标时,会尝试各种新方法,而不是无休止地重复之前尝试过的错误行动。 

在 Sciworld 中,Agent-FLAN 忽略了目标中的提示,即叉子在卧室,并选择在厨房搜索。此外,Agent-FLAN 在记住 Alfworld 数据集后,试图输出只能在 Alfworld 中找到的位置(抽屉、台面以及动作格式 go to {place}),这些在 SciWorld 中并不存在。

相反,AgentRefine 能够清楚地找到温度计,并决定去卧室寻找叉子。在去卧室失败后,它决定根据几轮观察去走廊。在思考 6 中,尽管 AgentRefine 错误地认为它无法到达卧室,但其判断表明它可以利用短期记忆(来自第 2 轮)修正其决策。

当观察 6 提供关于卧室的清晰信息时,AgentRefine 能够纠正其在思考 6 中的错误决策并到达卧室。这表明,AgentRefine 在结果上的改善并不是由于记忆训练数据中的先前知识,而是其有效利用和整合短期记忆中多个关键信息的能力,以纠正历史决策中的错误。

推理任务

图 8 展示了推理任务 HotpotQA 的结果。结果表明,AgentRefine 在 HotpotQA 的 EM 和 F1 指标上优于其他方法。这证明了 AgentRefine 在推理问题上的泛化能力依然有效。

GPT-4 判断的可靠性

图 10 显示了 GPT-4 与人类判断的比较。我们随机抽取了 50 条生成轨迹。在每条轨迹中,我们随机抽取了 1 个正确回合和 1 个错误回合。我们要求人类标注者标记回合的正确性。

结果表明,在 GPT-4 标记为正确的回合中,94% 与人类判断一致,而在 GPT-4 标记为错误的回合中,82% 与人类判断一致。这表明 GPT-4 的判断是可靠的。
开源模型合成轨迹
表 5 展示了我们使用 Deepseek-v2.5 合成的 4000 个训练轨迹训练后的结果。结果表明与使用 GPT-4 进行数据合成的 Agent FLAN 相比,使用开源模型 DeepSeek-v2.5 合成的 AgentRefine 数据在执行任务方面具有显著优势。
这说明了 AgentRefine 的有效性。同时也反映出早在 2024 年 9 月 Deepseek 的模型就可以接受复杂指令合成出带有反思步骤的轨迹。

总结

在这项工作中,我们通过 agent tuning 研究开源大型语言模型的通用 agent 能力。目前的工作在 held-in 的评估集上表现良好,但由于对几个手动 agent 环境的过拟合,未能在 held-out 上进行泛化。
我们提出了 AgentRefine 方法,使模型能够根据环境反馈纠正其错误。实验表明,AgentRefine 在多样化智能体基准测试的泛化能力方面显著优于最先进的智能体微调工作。

我们的分析表明,Refinement Tuning 增强了智能体能力的健壮性,而智能体环境和思维的多样性进一步提升了性能。我们希望为未来的智能体研究提供新的见解。


(文:PaperWeekly)

欢迎分享

发表评论