OpenAI、斯坦福大学提出Meta-Prompting,有效提升语言模型的性能

本文主要是介绍OpenAI、斯坦福大学提出Meta-Prompting,有效提升语言模型的性能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

为了研究如何提高语言模型的性能,使其更充分有效地输出对于提问的回答,来自斯坦福和 OpenAI 的学者强强联手,通过提出一种名为元提示(meta-prompting)的方法来深入探索。元提示通过让单个语言模型(如 GPT-4)充当中央控制器和多种专家角色,以实现对各种任务的准确和可靠回复。该方法结合了多个独立专家模型的优势和多样性,以便更好地解决复杂的任务和问题。

元提示的显著特点之一是其将复杂任务巧妙地分解为各个组件,然后汲取不同专业知识为每个组件提供支持,最终将各个专业领域的输出巧妙地整合在一起。让我们一起来看看究竟什么是元提示,而该方法又有着怎样的表现~

论文题目:
Meta-Prompting: Enhancing Language Models with Task-Agnostic Scaffolding

论文链接:
https://arxiv.org/abs/2401.12954


元提示(meta-prompting)的核心思想在于使用一个模型来协调和执行多个独立的提问,然后综合它们的回复以生成最终的答案。

从本质上讲,这种机制支持借助独立专业模型的能力和多样性,共同解决复杂任务或问题的集成方法。结合多个领域专业模型(即专家)的观点和结论,可能会产生更全面、强大和准确的解决方案。

▲图1 通过元提示增强 GPT-4 的有效性

举例来说,如果想通过应用元提示使 GPT-4 解决一个数学难题的话,通常可以采用三阶段的策略:

  1. Meta Model 的输入指令:首先请教专业的“高级数学家”将难题分解为简单步骤;

  2. Meta Model 输出:其次,将各步骤分配给专业领域的专家(比如让“程序员”来写代码);

  3. 专家输出:最后,协调专家之间的交流并综合他们的输出。

因此,通过一个高层次的提示,GPT-4 可以同时充当两种角色

  • Meta:管控过程的指挥者,扮演着任务的中枢,引导整个问题解决过程,提供指导和整体协调。

  • Expert:解决子任务的专家小组,通过多角度思考,为任务的提供各个专业领域的贡献。

在作者的设置下,专家只能由元模型调用。尽管在与新专家互动时,元模型可以选择综合各个专家的见解或共享一些文本给他们,但他们不能直接交互或沟通。这种限制是为了简化专家之间的交流,并将元模型置于操作的中心

图 2 是元提示对话的可视化示例。元提示的独特之处在于,它将决定使用哪些提示和执行哪些代码片段交由 LLM 自身判断

▲图2 元提示历史的示例

元提示

元提示(Meta-Prompting)是一种提高语言模型性能的方法,通过使用模型来协调和执行多个独立提问,待合成回复后生成最终的答案。这种方法原则上采用了集成方法,借鉴了多个专门模型(称为专家)的优势和多样性,以协同解决和处理具有多面性的任务或问题。

元提示的主要特点有:

  1. 使用模型协调和执行多个独立提问,然后合成它们的回复以生成最终答案。

  2. 元模型在整个过程中保持对整个历史和协调的全局视图。

  3. 动态选择上下文为专家提供新颖视角,同时元模型保留对整个过程的鸟瞰。

  4. 元提示可以启用单个黑盒模型充当中央控制器和各种专家小组,以生成更准确、可靠和连贯的回复。

▲算法1 元提示

如算法 1 所示,元提示主要包括以下步骤:

  1. 转换输入:使用转换函数  将原始提问放在合适的模板中,然后在 Meta Model 的初始指令中添加。

  2. 循环迭代:a) 提示 Meta Model:当前消息列表  指导 Meta Model 的下一个操作,要么直接回复提问,要么咨询特定领域的专家。b) 与领域专家模型互动:如果 Meta Model 没有返回结果,它可以调用任何专家并给予相应的指令,这些指令通过  从其输出中提取。此过程是隔离的,即每个专家只看到 Meta Model 选择与他们共享的内容,并根据这些内容作出回复。例如,如果问题涉及数学和历史,Meta Model 可能会咨询数学专家进行计算,并咨询历史专家提供历史背景。使用  模板提取专家的输出并附加上额外的指令。c) 返回最终回复:如果 Meta Model 的回复包含最终答案(通过特殊 token 突出显示),则使用  提取解决方案并返回。d) 错误处理:如果模型的回复  没有包含最终答案或没调用专家模型,则在消息列表  中附加错误消息。

  3. 实时代码执行:将 Python 专家引入到 meta-prompting 框架中,可以显著提高在算法挑战方面的表现。这使得立即验证和优化解决方案成为可能,大大提高了问题解决的效率和精确度。

通过这种方法,单一的黑盒语言模型可以充当中央控制器和多领域的不同专家角色,从而产生更准确、可靠和连贯的回复。

实验结果

本文实验要评估下述零样本提示任务的有效性:

  • 24 点游戏;

  • Three BIG-Bench Hard(BBH),即几何形状、多步算术和单词排序,以及一步将军的推理任务

  • Python 编程难题;

  • 多语言小学数学(MGSM),即 GSM8K 数据集的多语言版本

  • 莎士比亚十四行诗创作,这是作者创建的一个新任务。

有如下度量标准来衡量准确性:

  • 精确匹配(EM):严格。要求答案与真实标签完全相同。

  • 软匹配(SM):相对宽松。只要答案中存在真实标签即可,而不考虑其他文本内容。

  • 功能正确(FC):确定答案是否在功能上正确,即是否符合任务特定的约束。

在不同任务中应用不同的度量标准。例如,使用 EM 的任务包括几何形状、多步算术和一步将军;SM 度量标准用于解 MGSM 和单词排序;而 FC 则被用于 24 点游戏、Python 编程难题和莎士比亚十四行诗创作。

元提示的整体表现

实验结果如表 1 所示,元提示方法在各项任务中相相较于零样本提示方法取得卓越效果,元提示可以以任务无关的方式利用 Python 解释器,搭配使用时显著提高了准确性。在标准提示方面的表现提升了 17.1%,在专家(动态)提示方面提升了 17.3%,在多人物提示方面提升了 15.2%。

▲表1 不同任务中的综合比较

  • 在 24 点游戏挑战中,元提示方法相较于基本标准提示方法,准确性提高了超过 60%;在Python 编程难题中获得了约 15% 的增益;在创作十四行诗的任务中,准确性提升近 18%。这些任务对于启发式或迭代试错问题解决策略具有挑战性,而传统的单次提示方法无法胜任。元提示通过充分利用各种专家角色的集体智慧,迭代地推进解决方案发展,展现了更具动态和有效的问题解决能力。

  • 在创意写作任务中,尤其是在莎士比亚十四行诗创作中,元提示同样表现出色。

  • 在 MGSM 和几何形状等任务中,元提示相对于其他提示方法的优势较小,尤其是在几何形状任务中,性能仅略有增益。然而,在一步将军任务中,元提示甚至在没有用 Python 解释器的情况下也取得了 20.8% 的提升。

让多位专家合作

元提示框架成功在其策略性运用专业知识、自我协作和隐式验证循环。这一方法,尤其是多人物提示,鼓励多轮互动,促使不同专家角色共同参与问题解决。

本文的结构化方法体现了集体的多样化批判性思想家意见往往超过个别专家的见解通过在 Meta Model 的指导下利用一系列专业专家模型,每个模型从不同的专业角度贡献,从而实现了更准确和可靠的问题解决方案。

引入新颖视角

引入新颖视角对于缓解语言模型的重复错误和过于自信的表现具有关键作用。元提示与多人物提示存在着区别,它是通过重新评估问题引入新的专业视角。相较于元提示,新颖视角提供了发现新颖见解和之前未注意到的错误解决方案的机会

其中,专家的提示不包含整个历史记录,因此每一步都引入了新的视角,有效地找到解决方案的同时识别和纠正错误。

实时执行代码

对比实验结果,在引入 Python 专家进行代码生成和执行的元提示框架中,解决算法挑战的能力得到显著提高。这一提升主要归功于 Meta Model 能够使用 Python 专家基于自然语言指令生成和执行代码。实时执行代码使得可以即时验证和优化解决方案,极大地提高了解决问题的效率和准确度。

▲图4 Meta Model 在涉及 Python 解释器的实验中调用专家的分布

▲图5 Meta Model 在没有使用 Python 解释器的实验中调用专家的分布

然而,这种增强不只适用于 Python 编程难题这一任务,总体而言,与没有 Python 解释器的元提示相比,集成 Python 解释器平均使不同任务的性能额外提高了 11.5%。这凸显了代码生成和执行在提高元提示框架效果方面的关键作用,并展示了其在不同计算任务中的变革性影响

元提示框架的局限性

  1. 成本效益问题:其显著限制便是模型多次调用 GPT-4 API,导致产生了相当高的费用。

  2. 大规模上下文窗口的要求:元提示框架对大规模和相当大的上下文窗口有要求。它需要一个能够处理和保留大量文本信息的语言模型。

  3. 操作效率挑战:由于逐步处理的步骤,依赖于前面调用的结果,这个线性(顺序)性质带来操作效率上的挑战。限制了并行处理的可能性,从而影响系统的速度和效率。

  4. 封闭领域系统的限制:当前只在封闭领域系统中研究,未在更广泛的实际应用中测试。该框架的潜力在于整合外部资源,如 API、专门调优的模型、搜索引擎或计算工具,但这一方面带来的提升仍需进一步研究。

  5. 回复模式和信息管理问题:元模型在面对性能较差的任务时,其回复的措辞可能总在表达歉意,其根源可以追溯到元模型在训练中接受的指令数据。而且偶尔会忽略向专家传达必要信息。这凸显了改进信息管理的需要,以确保元模型与专家之间的沟通更加准确和完整

  6. 亟待开发的潜力:例如在同时调用多个专家或利用具有不同温度参数的单个专家,以更有效地综合他们的输出。希望在后续版本中,元模型能够在推进过程之前从其历史中受益,通过精简或总结信息来提高整个过程的相关性和效率。

总结

本文介绍了元提示这一技简单而强大的框架,可以以任务无关的方式增强语言模型的性能。这一方法的独特之处在于,它巧妙地利用语言模型兼具中央控制器和专家的双重角色,赋予传统模型动态和多功能能力。

实验结果表明,元提示方法在多种任务和数据集上的表现优于其他零样本提示技术。特别是与 Python 解释器相结合时,元提示框架显著提高了 GPT-4 在各种任务中的整体准确性和稳定性。

本文提出的元提示框架作为语言模型不断发展的一部分,有望博采众家之长,其独特的任务分解、多专业知识引入和输出整合方法,使其在解决各种问题时表现出灵活性和效果。然而,作者也明确指出了一些限制和挑战,如成本效益、可扩展性和操作效率等问题,这需要在未来的研究中进一步探讨和解决。

这篇关于OpenAI、斯坦福大学提出Meta-Prompting,有效提升语言模型的性能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G