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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 在人工智能迅速发展的背景下,有效利用大型语言模型(LLMs)成为重要议题。9月发布的这篇论文提出了LangGPT结构化提示框架和Minstrel多代理提示生成系统,旨在帮助非AI专家更好地使用LLMs。LangGPT通过模块化设计提高提示的泛化能力和可重用性,Minstrel则通过多代理协作自动生成高质量提示。实验结果显示,这两种方法显著提升了LLMs的性能,特别是在大规模模型上效果显著。

在人工智能快速发展的今天,如何有效利用大型语言模型(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(r):总结测试反馈和用户反馈,并将其反馈给相应的模块设计代理。
  • 设计组(D):- 包含多个对应LangGPT模块的专门代理,如D(cons.)负责生成约束内容,D(bkgd.)负责生成背景内容等。
  • 测试组(T):- 模拟器T(s):按照生成的提示充当助手。- 提问者T(q):与模拟器进行对话,产生测试对话。- 评论员T(c):评估助手的表现,并能相互辩论。

多代理协作与反思机制

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/8645e12d18e84e26a54d603d9ce388400

目录
相关文章
|
24天前
|
人工智能 安全 决策智能
OpenAI推出实验性“Swarm”框架,引发关于AI驱动自动化的争论
OpenAI推出实验性“Swarm”框架,引发关于AI驱动自动化的争论
|
18天前
|
人工智能 API 决策智能
swarm Agent框架入门指南:构建与编排多智能体系统的利器 | AI应用开发
Swarm是OpenAI在2024年10月12日宣布开源的一个实验性质的多智能体编排框架。其核心目标是让智能体之间的协调和执行变得更轻量级、更容易控制和测试。Swarm框架的主要特性包括轻量化、易于使用和高度可定制性,非常适合处理大量独立的功能和指令。【10月更文挑战第15天】
126 6
|
26天前
|
人工智能 开发框架 Java
总计 30 万奖金,Spring AI Alibaba 应用框架挑战赛开赛
Spring AI Alibaba 应用框架挑战赛邀请广大开发者参与开源项目的共建,助力项目快速发展,掌握 AI 应用开发模式。大赛分为《支持 Spring AI Alibaba 应用可视化调试与追踪本地工具》和《基于 Flow 的 AI 编排机制设计与实现》两个赛道,总计 30 万奖金。
|
27天前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
近期,阿里云重磅发布了首款面向 Java 开发者的开源 AI 应用开发框架:Spring AI Alibaba(项目 Github 仓库地址:alibaba/spring-ai-alibaba),Spring AI Alibaba 项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。本文将详细介绍 Spring AI Alibaba 的核心特性,并通过「智能机票助手」的示例直观的展示 Spring AI Alibaba 开发 AI 应用的便利性。示例源
|
1月前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
阿里云开源 Spring AI Alibaba,旨在帮助 Java 开发者快速构建 AI 应用,共同构建物理新世界。
|
27天前
|
人工智能 自然语言处理 搜索推荐
【通义】AI视界|微软Copilot Studio推出新功能,帮助企业更便捷地构建和部署AI代理
本文介绍了近期科技领域的五大重要动态:马斯克旗下xAI发布首个API,苹果内部研究显示ChatGPT比Siri准确率高25%,微软Copilot Studio推出新功能,霍尼韦尔与谷歌合作引入Gemini AI,浑水创始人建议买入科技七巨头股票。更多资讯请访问【通义】。
|
1月前
|
数据采集 人工智能 自然语言处理
Python实时查询股票API的FinanceAgent框架构建股票(美股/A股/港股)AI Agent
金融领域Finance AI Agents方面的工作,发现很多行业需求和用户输入的 query都是和查询股价/行情/指数/财报汇总/金融理财建议相关。如果需要准确的 金融实时数据就不能只依赖LLM 来生成了。常规的方案包括 RAG (包括调用API )再把对应数据和prompt 一起拼接送给大模型来做文本生成。稳定的一些商业机构的金融数据API基本都是收费的,如果是以科研和demo性质有一些开放爬虫API可以使用。这里主要介绍一下 FinanceAgent,github地址 https://github.com/AI-Hub-Admin/FinanceAgent
|
1月前
|
人工智能 缓存 Java
深入解析Spring AI框架:在Java应用中实现智能化交互的关键
【10月更文挑战第12天】Spring AI 是 Spring 框架家族的新成员,旨在满足 Java 应用程序对人工智能集成的需求。它支持自然语言处理、图像识别等多种 AI 技术,并提供与云服务(如 OpenAI、Azure Cognitive Services)及本地模型的无缝集成。通过简单的配置和编码,开发者可轻松实现 AI 功能,同时应对模型切换、数据安全及性能优化等挑战。
|
1月前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 框架与编译器的作用
AI框架如PyTorch和TensorFlow提供丰富的API,简化神经网络模型的实现与训练,抽象硬件操作并自动管理内存。AI编译器将高级语言编写的模型转换为硬件可执行代码,通过多层次优化提升性能。这使得算法工程师可以专注于模型设计与创新,而无需关注底层计算细节。AI框架和编译器不仅提高开发效率,还能充分利用硬件资源,是推动AI系统性能提升的关键技术。访问昇腾社区官网或下载APP,获取更多AI学习资源和参与各类活动。
44 0
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
AI在医疗领域的应用及其挑战
【10月更文挑战第34天】本文将探讨人工智能(AI)在医疗领域的应用及其面临的挑战。我们将从AI技术的基本概念入手,然后详细介绍其在医疗领域的各种应用,如疾病诊断、药物研发、患者护理等。最后,我们将讨论AI在医疗领域面临的主要挑战,包括数据隐私、算法偏见、法规合规等问题。
12 1