24年6月来自马里兰大学的论文“The Prompt Report: A Systematic Survey of Prompting Techniques”。
生成式人工智能 (GenAI) 系统正越来越多地应用于工业和研究环境的各个领域。开发人员和最终用户通过使用提示或提示工程与这些系统进行交互。虽然提示是一个广泛且研究程度很高的概念,但由于该领域较新,存在着术语上的矛盾以及对提示构成理解不足。
本文汇总提示技术分类并分析其使用情况,建立了对提示的结构化理解。提供包含 33 个词汇术语的综合词汇表、58 种纯文本提示技术的分类法和 40 种其他模态技术。还对自然语言前缀提示的全部文献进行元分析。
如图所示:提示领域内的类别是相互关联的。讨论 7 个核心类别。
提示是生成式AI模型的输入,用于指导其输出(Meskó, 2023; White et al., 2023; Heston & Khun, 2023; Hadi et al., 2023; Brown et al., 2020)。提示可以由文本、图像、声音或其他媒体组成。提示的一些示例包括:“为一家会计事务所的营销活动写一个三段落电子邮件”,一张桌子的照片,附有文字“描述桌子上的所有东西”,或者一段在线会议的录音,指示“总结这个”。
提示模板。提示通常通过提示模板构建(Shin et al., 2020b)。提示模板是一个函数,其中包含一个或多个变量,这些变量被一些媒体(通常是文本)替换创建一个提示。然后,这个提示可以被视为模板的一个实例。
提示的组成部分。最常用的组成部分,包括:
指令(directive)。这是提示的核心意图,有时简单地称为“意图”。指令也可以是隐含的。
示例(example)。也称为范例或样本,作为演示指导GenAI完成任务。
输出格式。通常希望GenAI以某种特定格式输出信息,例如CSV或Markdown格式(Xia et al., 2024)。
风格指令。是一种输出格式化,用于在样式上而不是结构上修改输出。
角色。也称为人格(Schmidt et al., 2023; Wang et al., 2023l),可以改善写作和文本风格。
附加信息。附加信息有时被称为“上下文”。
提示论文中的术语正在快速发展。目前,存在许多未被充分理解的定义(例如提示、提示工程)和相互冲突的定义(例如角色提示与人格提示)。缺乏一致的词汇表妨碍了社区清晰描述所使用的各种提示技术的能力。如图所示是本文的提示术语:提示、提示模版、提示工程和微调等。
提示。提示是向生成式人工智能提供提示,从而生成响应的过程。例如,发送一段文本或上传一张图片的操作即构成提示。
提示链。提示链(活动:提示链)由两个或多个提示模板依次使用所组成。第一个提示模板生成的提示输出用于参数化第二个模板,依此类推,直到所有模板用完(Wu et al., 2022)。
提示技术。提示技术描述如何构建提示、提示链或多个提示动态序列。提示技术可能包括条件或分支逻辑、并行性或跨多个提示的其他架构选项。
提示工程。提示工程修改或更改所使用的提示技术来开发提示的迭代过程。
如图所示:提示工程流程包括三个重复步骤:1) 对数据集进行推理 2) 评估性能和 3) 修改提示模板。提取器用于从 LLM 输出中提取最终响应(例如“这个短语是积极的”→“积极的”)。
提示工程技术。提示工程技术是一种迭代提示改进提示的策略。
范例。范例是任务完成的示例,在提示中展示给模型(Brown et al., 2020)。
如图是本文数据采取的基于文本的提示技术:上下文学习(ICL)、零样本、少样本、思维生成(思维链)、集成、自我批评和分解。
存在许多基于文本的提示技术。然而,只有一小部分在研究和工业中被广泛使用。
用于自动优化提示的提示工程技术包括以下:
- 元提示是提示 LLM 生成或改进提示或提示模板的过程(Reynolds & McDonell,2021;Zhou,2022b;Ye,2023)。
- AutoPrompt(Shin,2020b)使用冻结的 LLM 以及包含一些“触发token”的提示模板,其值在训练时通过反向传播更新。这是软提示的一个版本。
- 自动提示工程师 (APE)(Zhou,2022b)使用一组示例来生成零样本指令提示。它生成多个可能的提示,对它们进行评分,然后创建最佳提示的变型(例如通过使用提示释义)。它会重复这个过程,直到达到一些期望值。
- 无梯度指令提示搜索 (GrIPS) (Prasad,2023) 与 APE 类似,但使用一组更复杂的操作,包括删除、添加、交换和释义,以创建起始提示的变型。
- 文本梯度的提示优化 (ProTeGi) (Pryzant,2023) 是一种独特的提示工程方法,可通过多步过程改进提示模板。首先,它将一批输入传递通过模板,然后将输出、基本事实和提示传递到另一个批评原提示的提示中。它根据这些批评生成新提示,然后使用强盗算法 (Gabillon,2011) 选择一个。ProTeGi 展示了对 APE 和 GRIPS 等方法的改进。
- RLPrompt (Deng,2022) 使用冻结的 LLM 并添加未冻结的模块。它使用此 LLM 生成提示模板,在数据集上对模板进行评分,并用 Soft Q-Learning 更新未冻结的模块(Guo,2022)。有趣的是,该方法经常选择语法混乱的文本作为最佳提示模板。
- 对话-包含的基于-策略-梯度离散提示优化 (DP2O)(Li ,2023b)可能是最复杂的提示工程技术,涉及强化学习、自定义提示评分函数和 LLM 对话以构建提示。
答案工程是一个迭代过程,即开发或选择从 LLM 输出中提取精确答案的算法。答案工程有三个设计决策,即答案空间的选择、答案形状和答案提取器,如图所示。(Liu 2023b)将前两个定义为答案工程的必要组成部分,这里附加了第三个。答案工程不同于提示工程,但关系极为密切;这些过程通常是同时进行的。
目前,使用英语文本提示 GenAI 是主要的交互方法。使用其他语言或通过不同模态进行提示通常需要特殊技术才能实现相当的性能。
最先进的 GenAI 通常主要使用英语数据集进行训练,导致除英语以外的其他语言(尤其是资源匮乏的语言)的输出质量存在明显差异(Bang,2023;Jiao,2023;Hendy,2023;Shi,2022)。因此,出现了各种多语言提示技术,试图提高非英语环境中的模型性能。包括COT,ICL,上下文范例选择,提示模版语言选择和机器翻译的提示。如图是多语言提示技术类别:
随着 GenAI 模型的发展超越基于文本的领域,新的提示技术应运而生。这些多模态提示技术通常不仅仅是基于文本提示技术的应用,而是由不同模态实现的全新想法。如图所示是多模态提示技术类别:图像、语音、分割、视频和3D等。
添加对外部工具(智体)的访问以及复杂的评估算法来判断 LLM 输出的有效性。
随着 LLM 能力的快速提升(Zhang,2023c),公司(Adept,2023)和研究人员(Karpas,2022)探索了如何让它们利用外部系统。这是由于 LLM 在数学计算、推理和事实性等领域的缺陷所致。这推动了提示技术的重大创新;这些系统通常由提示和提示链驱动,这些提示和提示链经过精心设计,允许类似智体的行为。
工具使用是 GenAI 智体的一个关键组件。符号(例如计算器、代码解释器)和神经(例如单独的 LLM)外部工具都是常用的。工具有时可能被称为专家(Karpas,2022)或模块。
编写和执行代码是智体的一个重要能力。比如TaskWeaver(Qiao,2023),将用户请求转换为代码,但也可以使用用户定义的插件。
一些智体被设计为通过与玩具环境交互来解决问题(Brockman,2016;Towers,2023)。这些基于观察的智体会接收插入到其提示中的观察结果,比如ReAct。
在 GenAI 智体的背景下,RAG 是一种从外部源检索信息并将其插入提示的范例。这可以提高知识密集型任务的性能(Lewis,2021)。当检索本身用作外部工具时,RAG 系统被视为智体。比如Verify-and-Edit (Zhao et al., 2023a) 通过生成多个思维链,选择一些进行编辑,提高自洽性。
总结一下,提到的智体技术分类如下:
评估是一个重要任务。LLM 具有提取和推理信息以及理解用户意图的潜力,这使它们成为评估者的有力竞争者。例如,根据提示中定义的一些指标,可以提示 LLM 评估论文甚至以前 LLM 输出的质量。
构建强大评估器框架的四个组成部分包括:提示技术、评估的输出格式、评估流程的框架以及设计决策。如图所示:
提示涉及的一些因素:
- 安全
- 对齐
随着提示的使用范围不断扩大,围绕它的威胁形势也随之扩大。与非神经和预提示安全威胁相比,这些威胁极其多样化,而且特别难以防御。提示黑客攻击,即使用提示来利用 LLM 的手段,由此产生的危险以及描述潜在的防御措施,如图所示:
确保 LLM 与下游任务中的用户需求保持一致对于成功部署至关重要。模型可能会输出有害内容、产生不一致的响应或显示偏见,所有这些都会使部署它们变得更加困难。为了帮助降低这些风险,可以精心设计提示,以从 LLM 中引出危害较小的输出。提示对齐问题以及潜在的解决方案,如图所示:
关于基准,通过两种方式分析不同技术的经验表现:通过正式的基准评估,以及通过详细说明在具有挑战性的现实问题上进行提示工程的过程。
可以在一项广泛的研究中对提示技术进行正式评估,该研究比较数百个模型和基准中的数百种提示技术。选择一组提示技术,并在广泛使用的基准 MMLU(Hendrycks,2021)上运行它们。在 2,800 个 MMLU 问题的代表性子集上运行(每个类别的问题占 20%)。并在所有实验中使用 gpt-3.5-turbo。
提示工程正成为一门艺术,许多人已经开始专业地实践,但文献中还没有关于这一过程的详细指导。针对一个困难的现实问题提供了一个带注释的提示工程案例研究。它提供了一个说明,说明经验丰富的提示工程师如何处理这样的任务,以及从中吸取的教训。