浙大发布Agent学习框架,13B 模型达到 ChatGPT 水平!

2024-02-01 05:52

本文主要是介绍浙大发布Agent学习框架,13B 模型达到 ChatGPT 水平!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2023 年下半年,AI Agent 正式开启「大模型下半场」

图片

自“人工智能”这门学科创立之初,一种可以“观察世界”-“思考推理”-“做出行动”-“反思学习”的人造代理就是构建通用人工智能的终极目标之一。而基于大模型的 AI Agent 借助大模型强大的推理判断能力,为 AI Agent 的发展开启了一扇新的大门。

以 LangChain 的底层思想 ReACT 为例,大模型 Agent 在与外部环境互动时,经历“思考”-“行动”-“观察”三个步骤,通过将“行动”与“推理”结合,赋予大模型解决实际问题的能力

图片

但是,半年过去,直接使用类似 GPT-4 等闭源模型通过 Prompt 的方式构建 Agent 的思路尽管成绩斐然,但是不可避免的我们对这类 Agent 的掌控性往往并不高,一些结果不具有可解释性甚至不可复现。因此,一些工作开始在开源模型的基础上使用轨迹数据对模型进行微调,以使得 Agent 具备更强的解决问题的能力。

然而,微调这种思路面对着两大挑战,首先,微调需要数据,数据不可能完全由人工生成,那么不可避免的 Agent 进行规划所需的“思考轨迹”的数据依然依赖于闭源模型生成。其次,使用单一的一个语言模型,是否足够强大以使得其可以从数据中完整的学习出任务所需的一切规划能力也是一个 Agent 设计者与开发者不得不被考虑的问题

图片

基于此,来自浙江大学的团队 2024 年开年,创新了大模型 Agent 学习框架,提出了 AUTOACT,在不依赖大规模的标注数据和来自闭源模型合成的轨迹数据的基础上,通过分工策略生成能完成任务的子代理组,在与众多 Agent 的对比中表现出了相当不错的性能。当使用 Llama-2-13b 模型时,其表现甚至能够与 GPT-3.5-Turbo 相当!

论文题目:

AUTOACT: Automatic Agent Learning from Scratch via Self-Planning

论文链接:https://arxiv.org/pdf/2401.05268.pdf

AUTOACT 框架

首先,让我们来宏观的看一下 AUTOACT 的框架。AUTOACT 只需要关于目标任务的相关信息以及一个大模型 Agent (论文中称为 Meta-Agent)即可启动,如下图所示,Meta-Agent 首先进行“Self-Instruct”对任务数据进行扩充,并添加到其任务数据库之中,接下来,借助可用的工具库,Meta-Agent 可以自动挑选所用的工具,合成相关的轨迹数据,并通过“Self-Differentiation”进行自我分化,构建“规划”,“工具”,“反思”三个子智能体使用数据集中的数据进行微调学习,最终在三个子智能体的“合作”下,解决相关任务

图片

在这个框架之下,Meta-Agent 作为 AUTOACT 的中心,主要负责在分化子智能体前的一切“准备工作”,并且同时,Meta-Agent 也是分化的子智能体的基础模型。整个 Meta-Agent 可以使用任何一个开源模型进行初始化,而在论文中作者主要使用了 Llama-2 模型。

在初始时刻,任务数据库 D 被设置为仅仅包含任务描述中的示例 C,以 C 作为“种子”,在 Self-Instruct 阶段 Meta-Agent 通过 Few-shot 的方式生成新的“问题-答案”对,并添加到数据库 D 中,Few-shot 的示例数据由 D 中随机采样,依次重复知道数据库中数据量满足任务所需即停止。其 Few-shot 的 Prompt 为:

图片

在通过 Self-Instruct 搭建起数据集后,Meta-Agent 接下来完成“工具选择”与“轨迹合成”两步,其中工具选择用于从工具库中挑选完成任务所需的工具,其 Prompt 为:

图片

可以看到,在选择过程中,Meta-Agent 将为接下来分化的三个子 Agent 分别选择其所用的工具。在挑选好工具后,在不依赖闭源模型的情况下,论文使用 Zero-shot 的方式使得 Meta-Agent 基于数据集合成模型的思考轨迹数据,遵循 ReACT 的“思考”-“行动”-“观察”模式生成轨迹数据,从而辅助分化子智能体进行微调

图片

在合成轨迹数据之后,Meta-Agent 在 AUTOACT 中将进行自我分化,分化为“规划”,“工具”,“反思”三个子智能体,其中规划智能体  完成任务分解并决策在每次循环中调用哪个工具,工具智能体  用于生成调用工具的相关参数,反思智能体  通过考虑所有历史轨迹进行整体反思。在轨迹数据集的基础上,通过如下输入数据对使用 LoRA 对每个子智能体进行微调:

其中, 表明“思考”输出, 表示动作名称, 表示动作相关参数。 与   表示反思过程中的思考与行动。 分别表示任务综合信息,工具集以及历史信息。

由于进行了分化,因此在完成任务中,AUTOACT 需要子智能体之间的“配合”才能完成任务。首先任务信息进入规划智能体进行任务分解,返回所需工具名称 ,随后工具智能体被激活生成工具参数  并传输到特定的工具,返回工具的使用结果作为观测,在规划智能体与工具智能体进行互动给出任务结果后,反思智能体被激活,如果反思结表明认可任务结果,则结束任务,如果不认可则结合反思进行进入下一轮循环

图片

实验结果

论文实验主要在 HotpotQA 与 ScienceQA 两个问答数据集中进行,整体 AUTOACT 使用 Llama-2 作为 Meta-Agent,并与思维链 CoT,ReAct,Reflexion,Chameleon,FIREACT,BOLAA 以及 GPT-3.5Turbo 进行对比,结果如下:

图片

可以看出,AUTOACT 方法在 Llama-2 13B 和 70B 基础下训练出的 Agent 全线优于其他所有直接提示方法、CoT 与 Agent 方法。13B 的模型做到了与 GPT-3.5 Turbo 性能相差不多,而 70B 模型甚至超越了 GPT-3.5-Turbo,在 HotpotQA 实现了 3.77% 的提升,在 ScienceQA 上实现了 6.33% 的提升

而进一步与基于闭源模型数据的微调模型 FIREACT 进行对比,尽管 FIREACT 使用了 GPT-4,但是在 70B 基础上的 AUTOACT 在 HotpotQA 上提升了 5.77%,在 ScienceQA 上提升了 6.67%。值得注意的是这一结果是建立在 AUTOACT 完全没有使用任何强大的闭源模型进行辅助的基础之上的

此外,作者还对 HotpotQA 中由 AUTOACT 生成的轨迹数据对比其他 Agnet 方法进行了人工评估,五位 NLP 专家从规划轮数、思维逻辑正确性、动作类型、动作参数与整体连贯性等方面综合评估,结果如下:

图片

此外,案例研究的实验也说明,AUTOACT 用自分化的模式将规划与行动解耦,可以有效的提升 Agent 能力:

图片

一点总结

图灵奖,也是诺贝尔经济学奖得主,人工智能的先驱人物,也是现代管理学的奠基人之一的 Herbert  Simon 提出的有限理性原则:

由于人类目标的模糊性,其知识和信息的不完备性以及其推理判断能力的局限性,人类决策不可能简单地归结为某种目标函数优化的完美数学形式。

但是,除了有限理性以外,Simon 也认为:

精确的社会分工和明确的个人任务可以弥补个人处理和利用信息能力的有限性。

从这一点出发,面对复杂的任务,寻求使用一个单一智能体(哪怕是最强的 GPT-4)去解决任务之中的方方面面似乎都有一些强人所难。而这篇论文正是从这一点出发,将单一智能体的任务分解为三个子智能体分别优化,依赖精心设计的“分工模式”与“合作机制”,使得“三个臭皮匠,顶一个诸葛亮”

此外,AUTOACT 完全不需要闭源模型辅助进行开源 Agent 微调的方法也将为基于开源模型的自动 Agent 学习打好基础铺平道路。在 AUTOACT 的基础上,也期待未来多智能体模式的基于开源模型的 AI Agent 可以不断百花齐放百家争鸣吧!

这篇关于浙大发布Agent学习框架,13B 模型达到 ChatGPT 水平!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666256

相关文章

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Maven 依赖发布与仓库治理的过程解析

《Maven依赖发布与仓库治理的过程解析》:本文主要介绍Maven依赖发布与仓库治理的过程解析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录Maven 依赖发布与仓库治理引言第一章:distributionManagement配置的工程化实践1

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component