在我们的工作群里,经常会有一位管理者来谐和每个人的工作并汇总工作成果。近日,斯坦福大学的 Mirac Suzgun 和 OpenAI 的 Adam Tauman Kalai 提出了一种新的 prompting 办法:meta-prompting。类似于工作群,这种办法也是应用一个居中谐和的指挥员(元模型)来谐和应用差别用途的 AI 和其它工具。
最新一代言语模型(尤其是 GPT-4、PaLM 和 LLaMa)已经成功拓展了自然言语处理和生成的边界。这些大规模模型可以解决许多差别恣意,从写莎士比亚风格的十四行诗到总结复杂的医疗报告和解决竞赛级的编程成绩。尽管这些模型可以解决多种多样的成绩,但它们并非总是正确的,有时候也会生成不准确、误导性或矛盾的相应结果。
随着这些模型的运行成本越来越低,人们自然会问:是否可以应用脚手架系统(scaffolding system)并应用多个言语模型查问来优化并且提高这些模型输入的准确度和稳健性。
斯坦福和 OpenAI 的这项研究提出了一种可用于提高言语模型的功能和性能的新技术,称为 meta-prompting。
论文标题:Meta-Prompting: Enhancing Language Models with Task-Agnostic Scaffolding
论文地址:https://arxiv.org/abs/2401.12954
项目地址:https://github.com/suzgunmirac/meta-prompting
这种技术涉及构建一个高层级的「元」 prompt,其作用是指示言语模型做到以下几点:
1. 将复杂的恣意或成绩分解成更小的容易解决的子恣意;
2. 应用适当且详细的自然言语指令将这些子恣意分配给专业的「大师」模型;
3. 监督这些大师模型之间的通信;
4. 通过这个过程应用其自己的批判性思维、推理和验证技能。
对于可应用 meta-prompting 有效调用的言语模型,当对其进行查问时,该模型的作用是作为指挥员(conductor)。它会输入一组消息历史(或者称为叙述(narrative)),其由多个大师模型的相应构成。这个言语模型首先会负责生成消息历史中的指挥员部分,这其中包括大师的选取以及为它们构建一定的指令。但是,同一个言语模型本身也会作为独立大师,其会基于专业知识以及指挥员为每条具体查问选取的信息生成输入。
这种办法可让单个统一的言语模型维持连贯一致的推理路线,同时还可以利用各种差别的大师角色。通过静态地为 prompting 选择上下文,这些大师能为该过程引入全新的视角,同时指挥员模型还能保持对完整历史的鸟瞰视角并维持谐和。
因此,这种办法能让单个黑箱言语模型既有效作为中心指挥员,同时又充当一系列差别大师,这样便可以得到更加准确、可靠和连贯一致的相应。
这里新提出的 meta-prompting 技术组合并扩展了近期研究提出的多种差别的 prompting 思想,包括高层级规划和决策、静态人设分配、多智能体辩论、自我调试和自我反思。
meta-prompting 的一个关键方面是其具有一个性质:不受具体恣意影响。
传统的脚手架办法需要针对每个恣意调整具体的指令或示例,而 meta-prompting 则差别,其在多种恣意和输入上都采用了同一套高层级指令。对怕麻烦的用户来说,这种通用性尤其有益,因为这样就不必为每个具体恣意提供详细的示例或具体指示了。
举个例子,对于「写一首关于自拍的莎士比亚式十四行诗」这样的一次性请求,用户无需补充高质量的新古典主义诗歌示例。
meta-prompting 办法能提供一种广泛、灵活的框架,而又不会影响其一定性或相关性,从而可以提高言语模型的实用性。此外,为了展现 meta-prompting 办法的通用性和整合能力,该团队还对其系统进行了增强,使其可以调用 Python 解释器。如此一来,该技术就能支持更加静态和全面的应用,从而进一步提高其有效处理多种恣意和查问的潜力。
图 2 展示了一个 meta-prompting 的会话流程示例。
其描绘了元模型(Meta Model,即指挥员模型)应用输入和来自多个差别的专业大师模型或代码执行的输入解读其自身输入的过程。这样的配置让 meta-prompting 成为了一个近乎通用的工具。其允许将多个言语模型的交互和计算聚合成单一且连贯的叙述。meta-prompting 的差别之处在于其让言语模型自己决定要应用哪些 prompt 或应用哪些代码段。
该团队应用 GPT-4 作为基础言语模型进行了全面的实行,比较了 meta-prompting 与其它无关恣意型脚手架办法。
实行发现,meta-prompting 不仅能提高整体性能,而且在多个差别恣意上也往往能实现新的最佳结果。其灵活性尤其值得称道:指挥员模型有能力调用大师模型(基本上就是其本身,只是指令不一样)执行多种差别的功能。这些功能可能包括点评之前的输入、为一定恣意选取一定 AI 人设、优化生成的内容、确保最终输入在实质和形式上都满足所需标准。
如图 1 所示,相比之前的多种办法,新办法的提高很明显。
meta-prompting
直觉知识和抽象概述。meta-prompting 的工作办法是应用一个模型来谐和和执行多个独立查问,然后将它们的相应综合起来,进而渲染得到一个最终相应。从原理上讲,该机制采用了一种集成办法,即借用独立专业模型的力量和多样性来协作解决和处理涉及多方面的恣意或成绩。
meta-prompting 策略的核心是其浅层的结构,其中应用一个单一模型(称为元模型)作为权威的主实体。
这种 prompting 结构类似于管弦乐队,其中指挥家的角色就由元模型充当,每位音乐演奏者都对应一个差别的一定领域的模型。正如指挥家可以让多种乐器谐和弹奏出和谐的旋律一样,元模型也可以将多个模型的解答和见解组合起来,为复杂的成绩或恣意给出准确且全面的解答。
从概念上讲,在这个框架内,一定领域的大师可以有多种多样的形式,比如针对一定恣意微调过的言语模型、用于处理一定类型查问的专用 API,甚至还可以是计算器这样的计算工具或用于执行代码的 Python 解释器等代码工具。这些功能各异的大师都在元模型的监督下接受指示和统一,无法直接相互互动或交流。
Algorithmic Procedure. 算法 1 给出了新提出的 meta-prompting 办法的伪代码。
简单总结一下,首先是对输入执行变换,使其符合适当的模板;然后执行以下循环:(a) 向元模型提交 prompt,(b) 如有需要,应用一定领域的大师模型,(c) 返回最终相应,(d) 处理错误。
需要指出,该团队在实行中采用的元模型和大师模型都是 GPT-4。它们的角色差异是由各自收到的指令确定的;其中元模型遵循图 3 提供的一组指令,而大师模型则遵从元模型在推理时间静态确定的指令。
实行设置
基准
该团队比较了 meta-prompting 与以下 prompting 办法的无关恣意型零样本式版本:
标准 prompting
零样本思维链 prompting
大师 prompting
多人设 prompting
数据集和恣意
该团队在实行中采用了多种恣意和数据集,它们需要多种差别能力,比如数学和算法推理、一定领域知识和文学创造力。这些数据集和恣意包括:
Game of 24:目标是应用四个给定数值(每个只能应用一次)构建一个结果为 24 的算术表达式。
三个 BIG-Bench Hard(BBH)恣意:Geometric Shapes、MultiStep Arithmetic Two 和 Word Sorting;另外还有一个直接从 BIG-Bench 套件获取的推理恣意 Checkmate-in-One。
Python Programming Puzzles(P3),即 Python 编程题,包含多个难度。
Multilingual Grade School Math,即多言语小学数学,这是 GSM8K 数据集的一个多言语版本,包含孟加拉语、日语和斯瓦希里语等言语。
Shakespearean Sonnet Writing,即莎士比亚式十四行诗写作,这是该团队创建的一个新恣意,目标是写出按「ABAB CDCD EFEF GG」严格押韵的十四行诗,其中应一词不差地包含所提供的三个词。
答案提取和评估协议
如图 3 所示,对于新提出的 meta-prompting 办法,系统指令会鼓励元模型以一定格式给出最终答案。
至于评估,则会根据恣意的性质和形式,采用以下三个指标之一:
Exact Match (EM),精确匹配
Soft Match (SM),软匹配
Functionally Correct (FC),功能正确性
模型和推理
该团队的主要实行都应用了 GPT-4(gpt-4-32k)。一些补充实行则应用了 GPT-3.5(gpt-35-turbo)。不管是 GPT-3.5 还是 GPT-4,都应用了以下指令进行微调。
在全部实行中,元模型应用的参数和系统指令都是一样的。温度值设置为 0,top-p 值设置为 0.95,最大 token 数为 1024。
主要结果和讨论
表 1 总结了实行结果,新提出的 meta-prompting 的优越性得到了体现。
观察这些办法在所有恣意上的总体性能,可以看到 meta-prompting 为准确度带来的显著提高,尤其是应用了 Python 解释器工具辅助时。
具体来说,meta-prompting 办法胜过标准 prompting 办法 17.1%,超过大师(静态) prompting 17.3%,也比多人设 prompting 优秀 15.2%。
另外从图 4 和 5 可以看到,相比于不应用 Python 解释器的 meta-prompting,整合 Python 解释器时,在差别恣意上的整体性能可获得 11.5% 的提高。
该团队还在论文中深入讨论了从实行中得到了关键见解,包括 meta-prompting 的性能优越性、零样本分解能力、错误检测、信息聚合和代码执行等。这里我们就不详细说明了,但 Fresh Eyes 这一概念倒是值得介绍一番。
Fresh Eyes 也就是用另一双眼睛看,这有助于缓解言语模型的一个众所周知的成绩:犯错时会一路错到底并且会表现出过度自信。
Fresh Eyes 是 meta-prompting 与多人设 prompting 的一大关键差异,并且实行结果也证明了其具有优势。在 meta-prompting 中,可以应用大师(或人设)来对成绩进行重新评估。这种办法有机会得到全新的见解,从而有望发现之前未被发现有误的解答。
基于认知心理学,Fresh Eyes 可以带来更具创造性的成绩求解和错误检测结果。
下面的例子展示了 Fresh Eyes 在实践中的好处。假设恣意是 Game of 24,提供的数值是 6、11、12 和 13,要求构建一个能让结果为 24 的算术表达式并且每个数只能用一次。其历史过程可能会是这样:
1. 元模型提议咨询解答数学成绩的大师模型和应用 Python 编程。它强调了对准确度和遵守约束条件的必要性,并建议如有需要可让另一个大师参与进来。
2. 一个大师给出了一个解答,而另一个大师则认为其不对,于是元模型建议写一个 Python 程序来寻找有效的解。
3. 咨询一个编程大师,让其写一个程序。
4. 另一个编程大师在脚本中发现了一个错误,然后对其进行修改并执行修改后的脚本。
5. 再咨询一个数学大师,让其验证该程序输入的解。
6. 验证完成后,由元模型将其输入作为最终答案。
这个示例展现了 meta-prompting 如何在每一步纳入新观点,这样不仅能找到解答,而且还能有效识别和纠正错误。
该团队最后讨论了一些与 meta-prompting 有关的其它成绩,包括对所应用的大师类型的分析、获得最终结果所需的对话轮数以及如何应对无解成绩等情况。详情请参阅原论文。