CMAT:提升小型语言模型的多智能体协作调优框架

news2024/11/15 6:49:45

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

大模型(LLMs)已经成为自然语言处理(NLP)的基石。然而,这些模型的有效运行仍然在很大程度上依赖于人为输入来准确引导对话流程。为了解决这一问题,来自华东交通大学的梁雪晨、广东工业大学的陶美玲、多伦多大学的史天宇以及北京Genfun.ai的谢一婷共同提出了一种创新的框架——协作多智能体调优(CMAT)。

方法

CMAT框架采用了先进的监督式微调技术,例如低秩适应(LoRA)和提示调优(PTuning),利用预训练的数据集如AgentBench,并结合了交互式环境参与和记忆更新来进一步优化模型性能。在 CMAT 框架中(图2),用户给助手分配任务,助手根据短期和长期记忆生成 SQL 命令:短期记忆提供来自轨迹历史的即时上下文,而自反输出存储为长期记忆。检查者在环境中执行 SQL 命令前验证其正确性。

在多智能体系统中,参与者(Actor)通过大模型在行为生成中起着至关重要的作用。参与者响应环境状态的观察来生成文本和动作,同时使用反思来评估和调整其行为。在传统的强化学习(RL)框架中,参与者根据特定策略决定行动,并接收有关环境当前状态的信息。在CMAT框架中,参与者模型利用了链式思考(Chain of Thought)和ReAct等方法,增强了传统文本生成模型,使其能够深入到行为生成的不同方面。

算法1 CMAT框架描述了初始化过程、任务分配、行动执行、检查器验证、策略更新和检查器策略更新等步骤。通过这个循环,系统不仅确认了正确的行动,而且还包括根据检查器的反馈更新策略π,创建了一个持续的学习和调整循环。每一次迭代都旨在通过实践和反思优化助手的决策策略,提高任务执行的效率和准确性。

长期记忆对大模型至关重要,它不仅是数据的存储库,更是一个整合的知识管理系统,让模型能长期保留和访问关键信息。研究显示,利用心理语言学中的链式思考(CoT)策略,能显著提升模型解决问题的能力。特别是,先进行CoT再生成答案,比先有答案再构建CoT,能更有效地提高答案的正确率,表明了生成顺序的重要性。

短期记忆则关注即时信息处理,对大模型快速适应变化至关重要,它通过实时反馈机制,使模型能迅速调整策略以应对新情况。

大模型正逐渐采用自我反思机制来优化决策。CMAT框架通过模拟计算与认知的协作,让模型通过反思过去的行动来优化策略。在这一过程中,助手执行任务,检查器验证结果,基于反馈不断调整策略,形成一个持续的学习和调整循环。

综合长期和短期记忆的优势,大模型能更有效地模拟人类的认知过程,提供更自然的交互体验,为AI的未来研究和优化模型性能提供了新的方向。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加下方微信或评论留言,即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory。关注享粉丝福利,限时免费CSDN听直播后的录播讲解。
 

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验

研究团队对智能代理在六个关键领域进行了严格的测试,以确保它们能够应对多样化的实际挑战。这些领域包括将大模型无缝集成到操作系统(OS)中,强调安全性和用户交互;使用SQL进行真实的数据库(DB)操作;在模拟电子商务平台WebShop(WS)上执行任务;构建和使用知识图谱(KG)以增强语义理解;使用M2W数据集进行复杂的网络任务,这是首个用于开发遵循语言指令的通用网络代理的数据集;以及在基于文本的ALFWorld(ALF)中应用抽象推理和视觉任务。

研究中所使用的数据集是通过自行收集的方法精心构建的,旨在提供一个丰富多样的测试环境,全面评估深度学习模型在各种任务中的性能。数据集的构建包括数据收集、筛选、增强和知识蒸馏等关键过程。通过详细的筛选和处理,研究团队确保了数据集的准确性和一致性,只保留了与测试目标直接相关的高质量样本。面对数据不平衡和样本不足的问题,研究团队采用了数据增强和知识蒸馏技术,从大量收集的数据中提取最有价值的信息,构建了一个高效且精炼的测试数据集。

研究团队对TinyAgent-1.8B和CodeLlama系列模型(CodeLlama7B和CodeLlama13B)进行了全面的性能评估,旨在探索它们在多任务检查方面的能力,包括但不限于代码修正、操作系统配置、数据库查询优化和WS。实验结果表明(表1),TinyAgent-1.8B在跨任务性能评估中显示出显著的优势,与CodeLlama系列模型相比。这种性能不仅在代码修正任务中显著,而且在其他检查任务如操作系统配置、数据库查询优化和WS管理中也非常突出。这些发现突出了TinyAgent-1.8B不仅具有高效的代码分析能力,而且广泛适用于其他复杂系统的检查和优化。

在研究的基线部分,选择了Qwen-1.8B和CodeLlama-7B作为关键基准,以评估TinyAgent系列的性能,排除了CMAT框架的影响。

表2中的结果显示了本微调方法的有效性,特别是对于TinyAgent模型。Tinyagent-1.8B在KG任务中表现出显著的性能,与GPT-3.5等先进模型相当。Tinyagent-7B也展示了它的优势,特别是在DB任务中,它超越了其基础模型(CodeLlama-7B),并提供了与GPT-4竞争的分数。这些发现表明,TinyAgent模型有能力在某些方面匹配甚至超越具有更大参数的模型。另外CMAT框架的潜力被突出显示,它增强了小规模模型的能力,使TinyAgent模型能够与GPT-4等先进模型的性能紧密竞争。

在测试框架的错误分析中,模型在DB任务中面临的常见挑战,如在理解用户请求、执行操作和行动前问题分析方面的困难。许多模型只是对特定指令做出"OK"的回应,而没有执行实际的SQL操作,这表明在将用户请求转化为数据库操作方面存在差距。模型经常提供表面的确认,而没有提供精确的执行或深入的问题分析,未能满足用户的期望。相比之下,TinyAgent系列在理解和将用户请求转化为实际SQL操作方面表现出色,有效地理解和执行任务。它提供清晰的响应,并遵循用户指定的SQL格式,全面满足用户期望。另外TinyAgent在行动前的问题分析和反思表明了其先进的问题解决技能和对问题的深刻理解。

表3展示了对TinyAgent-7B模型的消融研究,描绘了特定于代理的指令和一般指令对任务性能的影响。复合模型TinyAgent-7B在WS和DB任务中表现出最高的效率,这表明它在处理复杂的电子商务交互和数据库管理方面的能力。仅代理变体的性能有所下降,这表明尽管任务特定指令至关重要,但它们对于KG等任务的广度并不完全足够。仅一般模型的性能在所有任务中都显著降低,在KG和ALF中完全无法执行,突出了特定于代理的指令的不可或缺性。这些数据强调了整合特定于代理和一般指令的必要性,以提高AI模型在多样化任务领域的多功能性和有效性。

图1展示了Llama-2-7b和TinyAgent-7b在数据库案例中的比较研究。在具有反射机制的数据库任务中,Llama-2-7b在反思后仍然会犯错误,而TinyAgent-7b在反思第一次失败的尝试后调整了其操作。没有反射机制时,TinyAgent-7b重复相同的操作并最终未能完成任务。这表明了TinyAgent-7b在反思和调整策略方面的优势。

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

项目链接:GitHub - heimy2000/CMAT

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

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

相关文章

comfyui中报错 Cmd(‘git‘) failed due to: exit code(128) 如何解决

🎈背景 comfyui今天在安装插件的过程中,发现有个插件第一次安装失败后,再次安装就开始报错了,提示: ComfyUI-Inpaint-CropAndStitch install failed: Bad Request 截图如下: 看下后台的报错: …

Html css水平居中+垂直居中+水平垂直居中的方法总结

1. Html css水平居中垂直居中水平垂直居中的方法总结 1.1. Html 元素 1.1.1.元素宽高特点 (1)块级元素(如div):独占一行,不和其他元素在一起,可以设置宽和高;当没设置宽和高时&am…

宝塔面板FTP连接时“服务器发回了不可路由的地址。使用服务器地址代替。”

参考 https://blog.csdn.net/neizhiwang/article/details/106628899 错误描述 我得服务器是腾讯,然后使用宝塔建了个HTML网站,寻思用ftp上传,结果报错: 状态: 连接建立,等待欢迎消息... 状态: 初始化 TLS 中... 状…

go多线程

1、简单使用(这个执行完成,如果进程执行比较久,这里不会等待它们结束) package mainimport "time"func main() {go func() {println("Hello, World!")}()time.Sleep(1 * time.Second) }2、wg.Add(数量)使用&…

nginx服务介绍

nginx 安装使用配置静态web服务器 Nginx是一个高性能的Web服务器和反向代理服务器,它最初是为了处理大量并发连接而设计的。Nginx还可以用作负载均衡器、邮件代理服务器和HTTP缓存。它以其轻量级、稳定性和高吞吐量而闻名,广泛用于大型网站和应用中 Ngin…

2024ICPC网络赛1: C. Permutation Counting 4

题意&#xff1a; 给定 n n n个区间 [ L i , R i ] [L_i,R_i] [Li​,Ri​]设集合 A { { p i } ∣ p i 为排列&#xff0c; L i < p i < R i } A\{ \{ p_i\} | p_i为排列&#xff0c;Li<p_i<R_i\} A{{pi​}∣pi​为排列&#xff0c;Li<pi​<Ri​}&#xff…

图解Redis 01 | 初识Redis

什么是 Redis&#xff1f; Redis 是一种基于内存的数据库&#xff0c;所有的数据读写操作都在内存中完成&#xff0c;因此读写速度非常快。它被广泛应用于缓存、消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务需求&#xff0c;如 String、Hash、List、…

Vscode 中新手小白使用 Open With Live Server 的坑

背景 最近在家学习尝试前端项目打包的一些事项&#xff0c;既然是打包&#xff0c;那么肯定就会涉及到对打包后文件的访问&#xff0c;以直观的查看打包后的效果 那么肯定就会使用到 Vscode 中 Open With LIve Server 这个功能了&#xff0c;首先这个是一个叫 Live Server 的…

18、Python如何读写csv文件

先简单介绍一下 csv 格式的文件是什么意思。先看一下百度百科怎么说的。 逗号分隔值&#xff08;Comma-Separated Values&#xff0c;CSV&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&…

企业绿色信贷水平研究:全国与分省份数据分析(2005-2021年)

企业绿色信贷水平指的是企业在信贷活动中&#xff0c;根据环保和产业政策&#xff0c;对环保企业进行扶持&#xff0c;对污染企业进行资金遏制的能力。 2005-2021年 上市企业绿色信贷水平全国、分省份数据&#xff08;原始数据和计算方法&#xff09;https://download.csdn.ne…

鸿蒙读书笔记2:《鸿蒙操作系统设计原理与架构》

2. OS基础平台部件化 &#xff08;1&#xff09;内核层 内核层包括内核部件和HDF驱动框架部件。当前已提供LiteOS-M、 LiteOS-A、Linux和UniProton这4种内核部件&#xff0c;未来还可增加更多类 型的内核部件。LiteOS、Linux内核部件可以按需部署在不同设备之 上&#xff0c;内…

腾讯百度阿里华为常见算法面试题TOP100(3):链表、栈、特殊技巧

之前总结过字节跳动TOP50算法面试题&#xff1a; 字节跳动常见算法面试题top50整理_沉迷单车的追风少年-CSDN博客_字节算法面试题 链表 160.相交链表 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) …

29 线性表 · 队列

目录 一、概念与结构 &#xff08;一&#xff09;概念 1、队列 2、入队列 3、出队列 &#xff08;二&#xff09;底层结构 二、队列的实现 三、队列的算法题 &#xff08;一&#xff09;用队列实现栈 &#xff08;二&#xff09;用栈实现队列 &#xff08;三&#xf…

基于AG32 的USB转以太网方案

如何通过USB转以太网标准模块&#xff1f; AG32支持USB FSOTG和以太网MAC&#xff0c;并且提供了标准例程&#xff0c;包括网络Lwip和USB的开发例程&#xff0c;上层应用调tinyUSB的接口即可。 以下是AG32VF407VG的引脚定义&#xff0c;支持USB外设。 LQFP-100Pin nameAG32VFx…

简单了解Maven与安装

Maven 1.Maven 简介 Maven 是 Apache 软件基金会&#xff08;国外组织&#xff0c;专门维护开源项目&#xff09;的一个开源项目, 是一个优秀的项目构建工具, 它用来帮助开发者管理项目中的 jar, 以及 jar 之间的依赖关系(在A.jar文件中用到了B.jar)、 完成项目的编译&am…

圆环加载效果

效果预览 代码实现 from PyQt5.QtCore import QSize, pyqtProperty, QTimer, Qt, QThread, pyqtSignal from PyQt5.QtGui import QColor, QPainter from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton, QVBoxLayout, QLabel, QGridLayoutclass Cir…

Rust使用Actix-web和SeaORM库开发WebAPI通过Swagger UI查看接口文档

本文将介绍Rust语言使用Actix-web和SeaORM库&#xff0c;数据库使用PostgreSQL&#xff0c;开发增删改查项目&#xff0c;同时可以通过Swagger UI查看接口文档和查看标准Rust文档 开始项目 首先创建新项目&#xff0c;名称为rusty_crab_api cargo new rusty_crab_apiCargo.t…

Nuxt Kit 中的页面和路由管理

title: Nuxt Kit 中的页面和路由管理 date: 2024/9/17 updated: 2024/9/17 author: cmdragon excerpt: 摘要:本文介绍了Nuxt Kit中页面和路由管理的高级功能,包括extendPages自定义页面路由、extendRouteRules定义复杂路由逻辑及addRouteMiddleware注册路由中间件。通过这…

Html css样式总结

1.Html css样式总结 1.1. 定位position 布局是html中非常重要的一部分&#xff0c;而定位在页面布局中也是使用频率很高的方法&#xff0c;本章节为定位在布局中的使用技巧和注意事项。   position定位有4个属性&#xff0c;分别是static(默认&#xff09;&#xff0c;absol…

第四天旅游线路预览——从换乘中心到白哈巴村

第四天&#xff1a;从贾登峪到喀纳斯风景区入口&#xff0c;晚上住宿贾登峪&#xff1b; 换乘中心有4 路车&#xff0c;喀纳斯③号车&#xff0c;去白哈巴村&#xff0c;路程时长约40分钟&#xff1b; 将上面的的行程安排进行动态展示&#xff0c;具体步骤见”Google earth st…