Minstrel自动生成结构化提示,让AI为AI写提示词的多代理提示生成框架

news2024/9/30 12:14:41

在人工智能快速发展的今天,如何有效利用大型语言模型(LLMs)成为了一个普遍关注的话题。这是9月份的一篇论文,提出了LangGPT结构化提示框架和Minstrel多代理提示生成系统,为非AI专家使用LLMs提供了强大支持。

对于非人工智能专家来说,构建高质量的提示以充分利用LLMs的能力仍然是一个巨大的挑战。现有的提示工程研究主要集中在总结设计技巧和设计自动优化方法上,但这些方法往往缺乏系统性的设计,导致学习成本高昂,且不利于提示的迭代更新。

为了解决这些问题,论文的作者提出了LangGPT,一个结构化的提示设计框架,以及Minstrel,一个基于多代理协作的结构化提示生成工具。研究的主要目的包括:

  1. 提高提示的泛化能力和可重用性,降低提示设计的学习成本。
  2. 通过多代理协作自动生成高质量的结构化提示。
  3. 验证结构化提示在指导LLMs执行任务时的优越性。

LangGPT: 结构化提示设计框架

整体双层结构

LangGPT借鉴了面向对象编程语言的设计思想,提出了一个双层结构的提示设计框架:

  1. 模块(Modules):类似于编程语言中的类,每个模块代表对LLMs的一个方面的要求。
  2. 元素(Elements):类似于编程语言中的函数和属性,代表对LLMs的直接具体指令的内容。

模块设计

LangGPT定义了以下基本模块:

  • 角色(Role):提示的名称和为LLMs设置的角色。
  • 配置文件(Profile):包含提示的基本信息,如作者、版本、描述、语言等。
  • 约束(Constraints):LLMs在生成响应时不能违反的禁令和必须满足的要求。
  • 目标(Goals):用户想要达到的最终目标。
  • 初始化(Initialization):通知LLMs开始对话的标志。
  • 示例(Examples):给LLMs提供输入-输出对作为学习实例。
  • 工作流程(Workflow):指导LLMs执行任务的过程。
  • 技能(Skills):激活LLMs与任务相关的知识和能力。
  • 建议(Suggestion):为LLMs在执行任务时遇到的分支情况提供建议和行为规划。
  • 背景(Background):LLMs执行任务时必须具备的上下文信息和记忆。
  • 风格(Style):规定LLMs响应的风格、语气和情感特征。
  • 输出格式(Output format):指定LLMs响应的格式。
  • 命令(Command):防止基于LLMs的助手局限于单一行为。

元素设计

LangGPT设计了三种基本元素类型:

  1. 模拟赋值的模板:The ⟨PROPERTY⟩ is ⟨VALUE⟩.
  2. 指定输入信息、任务和输出的模板(输入和输出可选)
  3. 模拟函数的形式:For the given ⟨PROPERTY⟩ of ⟨VALUE⟩, please execute the following actions: ⟨ACTIONS⟩; Return the ⟨RESULT⟩

论文中提供了一个示例表格,展示了不同模块中基本元素的示例:

Minstrel: 基于多代理协调的结构化提示生成

Minstrel是一个通过多个生成代理协作来生成结构化提示的工具。它引入了工作组的概念,将提示生成任务分解为低耦合且灵活的子任务。

工作组设计

Minstrel包含三个主要的工作组:

  1. 分析组(Analysis Group,A):负责分析用户需求、反馈和测试结果。
  2. 设计组(Design Group,D):负责生成不同模块的主要内容。
  3. 测试组(Test Group,T):对生成的结构化提示进行系统测试。

论文中提供了一个图表,展示了Minstrel的整体框架:

代理设计

每个工作组中包含不同的代理:

  • 分析组(A):- 分析器A(m):分析用户的任务需求并激活相应的模块设计代理。- 反思器A®:总结测试反馈和用户反馈,并将其反馈给相应的模块设计代理。
  • 设计组(D):- 包含多个对应LangGPT模块的专门代理,如D(cons.)负责生成约束内容,D(bkgd.)负责生成背景内容等。
  • 测试组(T):- 模拟器T(s):按照生成的提示充当助手。- 提问者T(q):与模拟器进行对话,产生测试对话。- 评论员T©:评估助手的表现,并能相互辩论。

多代理协作与反思机制

Minstrel的工作流程包括设计和反思两个主要阶段:

  1. 设计阶段:Sa = Am(t), M[k] = D(k)(t) for k in Sa,其中Sa表示模块激活状态,M表示存储生成的LangGPT模块内容的列表。
  2. 反思阶段:Ct = T(c)(T(s)(∑M), T(q)(t)), Sr = A(r)(Ct + Cu), M[k] = M[k] + Am(Sr),其中Ct表示测试组得出的评论,Cu表示用户的评论,Sr表示基于评论生成的模块激活状态。

通过这种设计,Minstrel能够不断优化生成的提示,以更好地满足用户需求和任务要求。

实验设置

为了验证LangGPT和Minstrel的有效性,论文作者进行了一系列实验。以下是实验设置的主要内容:

大型语言模型选择

  • Minstrel使用的模型:GPT-4-turbo
  • 用于评估提示效果的模型:- Gemma-2-9b-it- Qwen2-7B-Instruct- Meta-Llama-3.1-8B-Instruct- Mistral-7B-Instruct-v0.2- GPT-4o-mini- Claude3-haiku

评估任务

为了全面评估提示的质量,作者选择了以下任务:

  1. EQ-Bench:情感智能基准测试
  2. GPQA:研究生级别的问答任务
  3. GSM8k:数学问题求解
  4. IFEval:指令遵循评估
  5. TruthfulQA:真实性问答任务

这些任务涵盖了LLMs常用的多个领域,包括专业知识问答、数学问题、指令遵循和虚假信息检测。

基线方法

作者设计了基于COSTAR和CRISPE原则的基线提示,用于与LangGPT和Minstrel生成的结构化提示进行比较。

主要结果和分析

LLMs性能比较

论文中提供了一个详细的表格,展示了不同提示方法对各种LLMs在不同任务上的性能影响:

从这个表格中可以观察到以下主要结果:

  1. LangGPT提示(无论是手动编写还是由Minstrel生成)在大多数情况下都能显著提升LLMs的性能。
  2. Minstrel自动生成的提示在某些任务上甚至超过了人类专家手动编写的LangGPT提示。
  3. 不同模型和任务对提示的敏感度有所不同,特别是在困难的GPQA任务上表现明显。

模型规模对提示效果的影响

为了进一步研究模型规模对提示效果的影响,作者邀请普通用户为不同规模的Qwen1.5模型设计提示,并在Open LLM Leaderboard的任务上进行测试。结果如下图所示:

这些结果揭示了以下insights:

  1. LangGPT提示对较大规模的模型有更显著的性能提升。
  2. 对于较小规模的模型(如0.5B参数的Qwen),结构化提示可能反而会降低性能。
  3. 在某些任务上(如ARC-Challenge和MMLU),LangGPT提示的效果特别明显。

易用性评估

为了评估LangGPT和Minstrel的易用性,作者在其在线社区中进行了用户调查。主要结果包括:

  1. 89.66%的用户给出了3分或更高的评分(5分制),表明用户认可LangGPT的易用性。
  2. LangGPT的整体满意度得分为8.55分(满分10分)。

这些结果证明了LangGPT框架对非AI专家也具有很好的可用性。

案例研究

为了直观地展示结构化提示的效果,论文作者提供了一个具体案例。他们指导LLMs扮演一个奉承者的角色,分别使用LangGPT提示、CRISPE提示和仅指令提示。结果如下图所示:

这个案例研究揭示了以下几点:

  1. 使用仅指令提示和CRISPE提示的ChatGPT没有明确的角色特征,回应主要是对用户输入的简单重复。
  2. 使用LangGPT提示的ChatGPT表现出更丰富的角色特征,能够从多个角度表达赞美,展现出更高的语言能力和创造性。

总结

通过这些实验和分析,论文作者得出以下主要结论:

  1. LangGPT作为一个结构化的提示设计框架,具有良好的系统性和可重用性,易于学习和使用。
  2. Minstrel能够通过多代理协作自动生成高质量的结构化提示,在某些情况下甚至超过人类专家的表现。
  3. 结构化提示(无论是Minstrel生成还是手动编写)在指导LLMs执行任务时表现更好,特别是对于较大规模的模型。

然而,研究也发现了一些局限性,特别是结构化提示对低性能LLMs的适应性较差。因此作者提出了未来的研究方向:

  1. 进一步优化提示设计,特别是针对低性能LLMs的优化。
  2. 探索如何更好地平衡提示的复杂性和模型的能力,以适应不同规模和能力的LLMs。
  3. 研究如何自动调整提示的复杂度,以适应不同的任务和模型组合。

总的来说,这项研究为提示工程领域提供了新的思路和工具,有望推动大型语言模型在更广泛的应用场景中的有效使用。

论文链接:

https://avoid.overfit.cn/post/8645e12d18e84e26a54d603d9ce38840

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

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

相关文章

PHP人才机遇桥梁招聘求职全能系统小程序源码

人才机遇桥梁 —— 招聘求职全能系统全解析 💼🚀 🌉 搭建人才与机遇的桥梁 在这个竞争激烈的职场环境中,找到一份心仪的工作或招募到合适的人才,往往不是一件容易的事。但幸运的是,我们有了“人才机遇桥梁…

Hello-Java-Sec靶场搭建

安装环境:宝塔Linux面板 1.将靶场克隆到本地 git clone https://github.com/j3ers3/Hello-Java-Sec 2.安装maven yum install maven (kali:apt install maven) 3.安装成功后 mvn -v验证⼀下 4. 配置数据库连接,数据…

SysML图例-悬架作动器(Suspension Aactuator)

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>>

【Android】获取备案所需的公钥以及签名MD5值

目录 重要前提 获取签名MD5值 获取公钥 重要前提 生成jks文件以及gradle配置应用该文件。具体步骤请参考我这篇文章:【Android】配置Gradle打包apk的环境_generate signed bundle or apk-CSDN博客 你只需要从头看到该文章的配置build.gradle(app&…

【议题征集 】上海站 nMeetup 将于十月份开启!

上海,作为我国的经济和金融中心,正迅速发展成为全球领先的科技创新城市。这座城市不仅拥有深厚的文化底蕴,还积极拥抱数字化转型,推动着数据库和人工智能基础设施的快速发展。第三站 nMeetup 我们将走进上海,本次活动由…

面向未来的设计:数字化转型时代的企业架构与建模革新

在数字化转型浪潮席卷全球的今天,企业架构(Enterprise Architecture, EA)与建模技术正成为引领未来业务发展的核心工具。企业如何设计面向未来的架构,不仅关乎技术的部署,更直接影响业务的战略定位和市场竞争力。《面向…

【PCL】Ubuntu22.04 安装 PCL 库

文章目录 前言一、更新系统软件包二、安装依赖项三、下载 PCL 源码四、编译和安装 PCL五、测试安装成功1、 pcd_write.cpp2、CMakeLists.txt3、build 前言 PCL(Point Cloud Library)是一个开源的大型项目,专注于2D/3D图像和点云处理。PCL为点…

创客匠人第二期“老蒋面对面”交流会圆满收官!

磅礴的大雨浇不灭奋斗的激情。9月24日,创客匠人第二期老蒋面对面—“创客匠人让知识变现不走弯路”内部大会在集美隆重举行。 本次内部大会旨在传递公司战略精神,深度探讨公司品牌传播的价值、方向和策略。这不仅是一次内部的交流与分享,更是…

详解 JDBC和连接池

目录 一.JDBC概述 1.介绍 2.好处 3.JDBC API 二.数据库连接 1.前置工作 2.方法一 3.方法二 4.方法三 5.方法四 6.方式五(配置文件) 三.ResultSet(结果集) 1.介绍 2.代码演示 3.底层原理 四.预处理 1.SQL注入 2.PreparedStatement 接口 …

一个很好的例子说明均值平滑滤波器有旁瓣泄漏效应

禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》P89

【C/C++】错题记录(二)

题目一 题目二 x是int型,当x被赋值为1.2浮点型时,x实际赋值为1,所以4.8/5.0由于/是整除,结果为小于1的小数,所以y被赋值为0。 题目三 题目四 题目五 题目六 在这段代码中,定义了一个联合体union X&#xf…

创建Vue项目的时出现:无法加载文件 E:\software\node\node_global\vue.ps1,因为在此系统上禁止运行脚本

创建Vue项目的时出现的问题:出现:无法加载文件 E:\software\node\node_global\vue.ps1,因为在此系统上禁止运行脚本 解决方法: .PowerShelll的执行政策阻止了该操作,用 get-ExecutionPolicy 查看执行策略的状态为受限 输入Set-ExecutionPo…

中关村环球时尚产业联盟 东晟时尚产业创新中心成立

2024年9月6日,中关村环球时尚产业联盟与东晟时尚创新科技(北京)有限公司于中关村科技园东城园举行了隆重的战略合作签约仪式。 中关村科技园东城园领导发表了致辞,并表示东城区作为首都北京的核心区域,拥有深厚的历史…

书生大模型实战训练营 第三期 入门岛

1.Linux 任务一 完成SSH连接与端口映射并运行hello_world.py vscode自带的端口设置功能很方便 2.Python 任务一 实现wordcount函数 任务二 vscode 单步调试

Android开发 使用platform.pk8和platform.x509.pem文件生成platform.jks文件

文章目录 Android开发 使用platform.pk8和platform.x509.pem文件生成platform.jks文件环境准备使用OpenSSL工具进行格式转换1.将platform.pk8转换为PEM格式:2.使用platform.pem和platform.x509.pem生成PKCS#12格式的PFX文件(platform.p12)&am…

k8s部署考试系统

一、配置nfs 二、配置前端 1.部署deployment清单 2.补充: 3.访问测试pod 三、后端 1.在pes目录中找到docker文件,创建镜像 从nfs服务器上复制一个pes/java/目录到一个有docker环境的主机(master)上生成java镜像 [rootnfs ~]# scp -r pes/java root192…

废品回收小程序/环保垃圾回收/收二手垃圾小程序/分类资源回收系统/独立版系统源码

>>>系统简述: 1.以微信小程序为基础进行开发,体验好,操作方便 2.从用户下单到回收员接单,在到回收站接收,在到代理全流程通过手机端管理 3.支持废品分类下单,并支持分类数据统计 4.独创回收员多个…

mysql—半同步模式

mysql的并行复制 在172.25.254.20(slave)主机上 默认情况下slave中使用的是sql单线程回放 在master中时多用户读写,如果使用sql单线程回放那么会造成组从延迟严重 开启MySQL的多线程回放可以解决上述问题 mysql> show processlist; 在配置文件中进行编辑 [root…

LVS+keepalived整合负载均衡配置

准备三台服务器;负载均衡服务器192.168.45.136,后端机器1,92.168.45.135,后端机器2,192.168.45.138 在两台后端机器上安装nginx服务,yum install -y nginx,并且启动nginx服务,systemctl start …

【Linux学习】【Ubuntu入门】2-1 Linux系统下运行C语言输出hello word

1.双击打开VMware软件,点击开启此虚拟机后,等待点击头像输入密码进入 2.“CtrlAltt”调出命令行终端,输入命令sudo apt-get install vim安装vim,输入命令sudo apt-get install gcc安装gcc 3.输入命令vi hello.c进入C语言编写环境&…