人工智能咨询培训老师叶梓 转载标明出处
大模型被用作现实中复杂任务的Agent时,它们的表现往往不如商业模型,如ChatGPT和GPT-4。这些任务要求LLMs作为中央控制器,负责规划、记忆和工具利用,这就需要精巧的提示方法和鲁棒性强的LLMs来实现。尽管已有多种提示方法被提出来完成特定的Agent任务,但目前缺乏关注于提升LLMs自身的Agent能力,却不损害它们通用能力方法的研究。
本文介绍了一种名为AgentTuning的方法,旨在增强LLMs的Agent能力,同时保持它们的通用能力。研究团队由来自清华大学及其合作者。他们构建了一个轻量级的指令调整数据集AgentInstruct,包含了高质量的交互轨迹。通过结合AgentInstruct和开源的通用领域指令,采用了混合指令调整策略。图1为AgentLM在不同任务上的性能表现,包括在内部任务(Held-in Tasks)和外部任务(Held-out Tasks)上的整体得分,以及与GPT-3.5、GPT-4等模型的比较。
方法
Agent任务通常要求模型能够理解环境、做出决策并执行动作,这对模型的交互能力提出了较高要求。为了记录模型在Agent任务中的交互过程,研究者定义了交互轨迹,用一系列用户输入(u_1, a_1, ..., u_n, a_n)来表示,其中u_i代表用户的输入,a_i代表模型的响应,而最终的奖励r(取值在0到1之间)则用来反映任务的完成情况。
AgentTuning方法的核心是构建AgentInstruct数据集,该数据集包含1866条经过验证的交互轨迹,涵盖了六种不同的Agent任务,如AlfWorld、WebShop、Mind2Web、知识图谱、操作系统和数据库操作。这些任务代表了现实中的多样化场景,并且是相对容易收集指令的场景。研究者采用了任务派生和自我指导的方法来构建这些任务的指令,使用了GPT-3.5和GPT-4模型来自动化这一过程,确保了方法的可扩展性。图2概述了AgentInstruct数据集的构建过程,包括指令生成、轨迹交互和轨迹过滤。同时展示了AgentTuning如何使用混合的指令数据对Llama 2系列模型进行微调,生成AgentLM。
在轨迹交互阶段,研究者利用GPT-4作为Agent进行了轨迹交互,采用了一次性评估方法来确保输出格式的严格性。在这一过程中,模型会根据当前指令和历史反馈形成思考,并采取行动。环境随后会提供反馈,包括可能的变化或新信息。这一循环会持续进行,直到模型完成任务或达到令牌限制。
为了确保数据质量,研究者对交互轨迹进行了严格的过滤,基于奖励自动选择高质量的轨迹。过滤策略的有效性通过在7B规模的模型上对过滤和未过滤轨迹进行微调得到了验证,结果表明,使用过滤轨迹训练的模型在内部和外部任务上的表现都显著优于使用未过滤轨迹训练的模型。
表1提供了AgentInstruct数据集的概览,包括不同代理任务的指令数、过滤后的轨迹数、平均过滤后轨迹回合数和过滤比例。表2展示了轨迹过滤的有效性,通过对比在过滤和未过滤轨迹上进行微调的模型性能。
在指令调整阶段,研究者采用了混合指令调整策略,结合了AgentInstruct数据集和通用领域的指令。通过调整AgentInstruct数据集和通用数据集的混合比例η,研究者发现,与仅在Agent任务上训练相比,混合训练在未见任务上的泛化性能更好。这表明通用能力在Agent任务的泛化中起着关键作用。
研究者选择了开放的Llama 2模型作为基础模型,并使用Megatron-LM进行了微调。微调过程中,研究者只计算模型输出的损失,并采用了不同的学习率和批量大小,以及AdamW优化器和余弦学习调度器。为了提高训练效率,研究者还采用了张量并行和流水线并行技术。
AgentTuning方法通过精心设计的AgentInstruct数据集和混合指令调整策略,成功地提升了LLMs在Agent任务上的能力,同时保持了其在其他通用任务上的性能。这一成果为开源LLMs在Agent任务上的应用提供了有力的支持。
想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。
加助理微信提供直播链接:amliy007,29.9元即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory,关注享粉丝福利,限时免费CSDN听直播后的录播讲解。
LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。
实验
研究者选择了六项held-in任务和六项held-out任务来全面评估模型在多样化、未见过的agent任务上的表现。这些任务包括日常家务、在线购物、网站导航、知识图谱检索、操作系统交互和数据库操作等。为了全面评估模型的通用能力,研究者还选择了四个广泛采用的任务,分别反映了模型的知识容量、数学能力、编码能力和人类偏好。
表4展示了AgentLM在不同规模(7B、13B、70B)上与Llama 2系列模型相比,在held-in和held-out任务中的显著提升,同时保持了在通用任务上的性能。特别是,在held-in任务上,AgentLM的性能提升尤为明显,而在held-out任务上的提升也达到了170%。这表明AgentLM具有作为通用agent的潜力。在一些任务上,AgentLM的13B和70B版本甚至超过了GPT-4。
为了深入分析错误,研究者选择了held-in集合中的三个任务(ALFWorld、WebShop、知识图谱)并使用基于规则的方法识别常见的错误类型,例如无效动作和重复生成。图3a展示了原始Llama 2模型在这些任务中表现出更多的基本错误,如重复或采取无效动作。相比之下,GPT-3.5和GPT-4的错误较少。然而,AgentLM显著减少了这些基本错误,表明AgentTuning有效地激活了模型的agent潜力。
表5展示了仅使用agent数据或通用数据进行训练时的性能。仅使用agent数据训练显著提高了held-in集的结果,但在未见过的agent和通用任务上的泛化能力较差。当整合通用数据时,AgentLM在held-in和held-out任务上的表现几乎达到了最佳。这说明了通用指令在模型泛化中的关键重要性。
图4通过案例研究,比较了Llama-2-70b-chat和AgentLM-70B在ALFWorld和知识图谱任务上的表现差异。在ALFWorld任务中,Llama-2-70b-chat重复相同的动作最终未能完成任务,而AgentLM-70B在失败后调整了其动作。在知识图谱任务中,Llama-2-70b-chat拒绝修正函数调用错误,而是要求用户实现函数。相比之下,AgentLM-70B提供了正确的函数调用。
通过这些实验,研究者证明了AgentTuning方法不仅提升了LLMs在特定Agent任务上的性能,而且通过混合指令调整策略,保持了模型在通用任务上的能力。这些发现为未来LLMs在更广泛的应用场景中的研究和开发提供了有价值的见解。
论文链接:https://arxiv.org/pdf/2310.12823
代码链接:https://github.com/THUDM/AgentTuning