AgentTuning:提升大型语言模型的通用Agent能力

news2024/11/13 10:14:12

人工智能咨询培训老师叶梓 转载标明出处

大模型被用作现实中复杂任务的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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2140596.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为的仓颉和ArkTS这两门语言有什么区别

先贴下官网: ArkTs官网 仓颉官网 ArkTS的官网介绍说,ArkTS是TypeScript的进一步强化版本,简单来说就是包含了TS的风格,但是做了一些改进。 了解TypeScript的朋友都应该知道,其实TypeScript就是JavaScript的改进版本&…

基于springboot 自习室预订系统 前后端分离

基于springboot 自习室预订系统 前后端分离 目 录 摘 要 I Abstract II 第1章 前 言 2 1.1 研究背景 3 1.2 研究现状 3 1.3 系统开发目标 3 第2章 系统开发环境 5 2.1 java技术 5 2.2 Mysql数据库 6 2.3 B/S结构 7 2.4 springboot框架 7 2.5 ECLIPSE 开发环境 7 …

Redis的配置与优化

目录 一、关系数据库与非关系型数据库 1.1、关系型数据库 1.2、非关系型数据库 1.3、关系型数据库和非关系型数据库区别 数据存储方式不同 扩展方式不同 对事务性的支持不同 1.4、非关系型数据库产生背景 二、Redis简介 2.1、Redis优点 2.2、Redis为什么这么快 三、…

CefSharp_Vue交互(Element UI)_WinFormWeb应用---设置应用透明度(含示例代码)

一、界面预览 1.1 设置透明(整个页面透明80%示例) 限制输入值:10-100(数字太小会不好看见) 1.2 vue标题栏 //注册类与js调用 (async function(

速通汇编(五)认识段地址与偏移地址,CS、IP寄存器和jmp指令,DS寄存器

一,地址的概念 通常所说的地址指的是某内存单元在整个机器内存中的物理地址,把整个机器内存比作一个酒店,内存单元就是这个酒店的各个房间,给这些房间编的门牌号,类比回来就是内存单元的物理地址 在第一篇介绍debug的…

Scratch植物大战僵尸【机器人vs外星人版本】

小虎鲸Scratch资源站-免费少儿编程Scratch作品源码,素材,教程分享网站! 简介 在这个教学案例中,我们将制作一个类似《植物大战僵尸》的Scratch游戏,主题为“机器人对抗外星人”。这个版本将采用创新的角色设计,机器人将保护地球免受外星人入…

SQL题目分析:打折日期交叉问题--计算品牌总优惠天数

在电商平台的数据分析中,处理品牌促销活动的日期交叉问题是一个挑战。本文将介绍几种高级SQL技巧,用于准确计算每个品牌的总优惠天数,即使在存在日期交叉的情况下。 问题背景 我们有一个促销活动表 shop_discount,记录了不同品牌…

算法:76.最小覆盖子串

题目 链接:leetcode链接 思路分析(滑动窗口) 还是老样子,连续问题,滑动窗口哈希表 令t用的hash表为hash1,s用的hash表为hash2 利用hash表统计窗口内的个字符出现的个数,与hash1进行比较 选…

SpringBoot 消息队列RabbitMQ在代码中声明 交换机 与 队列使用注解创建

创建Fanout交换机 Configuration public class FanoutConfig {Beanpublic FanoutExchange fanoutExchange(){return new FanoutExchange("csdn.fanout");//交换机名称} }创建队列 Beanpublic Queue fanoutQueue3(){return new Queue("csdn.queue");}绑定…

Nature Climate Change | 全球土壤微生物群落调控微生物呼吸对变暖的敏感性(Q10)

本文首发于“生态学者”微信公众号! 全球变暖将加速有机物分解,从而增加土壤中二氧化碳的释放,触发正的碳-气候反馈。这种反馈的大小在很大程度上取决于有机质分解的温度敏感性(Q10)。Q10仍然是围绕土壤碳排放到大气的预测的主要不确定性来源…

软考架构-层次架构风格

一、两层C/S架构 客户端和服务器都有处理功能。处理在表示层(客户端)和数据层(服务器)进行 二、三层C/S架构 将处理功能独立出来。表示层在客户机上,功能层在应用服务器上,数据层在数据库服务器上。 三…

玄机科技浪漫绘情缘:海神缘下,一吻定情

在史莱克学院那片璀璨星空的见证下,《斗罗大陆II绝世唐门》第65集“海神缘相亲大会”的浪漫序幕,温柔地触动了每一位观众的心弦。 本集中,霍雨浩与王冬之间那段跨越重重障碍、终得相守的浪漫告白,在玄机科技独特的审美视角、精细…

强化学习Reinforcement Learning|Q-Learning|SARSA|DQN以及改进算法

一、强化学习RL 强化学习是机器学习的一个重要的分支,是一种有效的工具,在文献中被广泛用于解决MDP问题。在一个强化学习过程中,一个智能体只能通过和它所处的环境互动学习最优策略。特别地,智能体首先观察自己当前的状态&#xf…

JVM 内存模型:堆、栈、方法区讲解

1. 引言 Java 虚拟机(JVM)的内存模型是 Java 程序运行时的基础之一。JVM 内存模型主要包括 堆、栈、和 方法区。它们各自有不同的作用和管理方式,并且影响着程序的性能和稳定性。为了更好地理解 JVM 的内存管理机制,我们将结合电…

数据结构——串的定义及存储结构

串的定义 串(string)——零个或多个任意字符组成的有限序列串是内容受限的线性表 串的几个术语 子串:串中任意几个连续字符组成的子序列称为该串的子串(真子串是指不包含自身的所有子串)主串:包含子串的串…

学习笔记(一)

前言 一、对象 1、由类建模而成,是消息、数据和行为的组合 2、可以接收和发送消息,并利用消息进行彼此的交互。消息要包含传送给对象接收的信息 3、类的实例化:把类转换为对象的过程叫类的实例化。 4、对象的特性 (1) 对象有状态&#…

架构师知识梳理(七):软件工程-工程管理与开发模型

软件工程概述 软件开发生命周期 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。软件开发时期:就是软件的设计与实现,可分成…

解决VSCode文件的中文GBK和UTF-8编码之间乱码问题

NOTE:近日笔者在使用VSCode编码环境的时候,出现了中文和UTF-8两者之间乱码的问题,特编写本片文章,以作学习记录。 1.需求 用VSCode打开外部的GBK2312编码文件,想在VSCode中统一以UTF-8编码查看(笔者推荐U…

作文网源码 范文论文网模板 带会员系统+支付接口+整站数据

织梦CMS仿某中国作文网源码,文章类网站源码数据采集,采集可能会失效哦,非常漂亮的模板程序。模板divcss设计,符合W3C标准,已做好SEO优化,收录爆增,排名好,模板清爽,漂亮。本站修复了…

Java | Leetcode Java题解之第405题数字转换为十六进制数

题目: 题解: class Solution {public String toHex(int num) {if (num 0) {return "0";}StringBuffer sb new StringBuffer();for (int i 7; i > 0; i --) {int val (num >> (4 * i)) & 0xf;if (sb.length() > 0 || val …