这是用户在 2024-6-19 23:53 为 https://app.immersivetranslate.com/pdf-pro/1d9399a5-c546-41a3-8a16-0a9f4e6debad 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?
2024_06_19_327d22e10e7a00b3c559g


提示报告:提示技术系统调查

Sander Schulhoff Michael Ilie Nishant Balepur Konstantine Kahadze
Amanda Liu Chenglei Si Yinheng Li Aayush Gupta HyoJung Han Sevien Schulhoff

Pranav Sandeep Dulepet Saurav Vidyadhara Dayeon Ki Sweta Agrawal Chau Pham
Gerson Kroiz Feileen Li Hudson Tao Ashay Srivastava Hevander Da Costa Saloni Gupta Megan L. Rogers Inna Goncearenco Giuseppe Sarli Igor Galynker
Denis Peskoff Marine Carpuat Jules White Shyamal Anadkat Alexander Hoyle Philip Resnik

马里兰大学 OpenAI 斯坦福大学 微软公司 范德比尔特大学 普林斯顿大学

得克萨斯州立大学 伊坎医学院 ASST Brianza

西奈山以色列贝丝医院 电信研究所 马萨诸塞大学阿默斯特分校
sschulho@umd.edu milie@umd.edu resnik@umd.edu

 摘要


生成式人工智能(GenAI)系统正越来越多地应用于工业和研究领域的各个环节。开发人员和最终用户通过使用提示或提示工程与这些系统进行交互。虽然 "提示 "是一个广泛存在且研究较多的概念,但由于该领域刚刚起步,因此存在术语冲突,而且对 "提示 "的本体理解也不透彻。本文通过对提示技术进行分类和分析,建立了对提示的结构化理解。我们提出了一个包含 33 个词汇的综合词汇表,一个包含 58 种纯文字提示技术和 40 种其他方式提示技术的分类法。我们还对有关自然语言前缀提示的全部文献进行了荟萃分析。

 目录

 1 简介 .....4

1.1 什么是提示?.....5


1.2 术语 .....5


1.2.1 即时 ..... 的组成部分5

 1.2.2 提示术语

1.3 提示语简史


2 提示的元分析 .....8


2.1 系统性审查程序 .....8

 2.1.1 管道

2.2 基于文本的技术 .....8


2.2.1 情境学习(ICL) .....8


2.2.2 零射击 .....11


2.2.3 思想生成 .....12


2.2.4 分解 .....13


2.2.5 组装 .....14


2.2.6 自我批评 .....15


2.3 提示技术的使用 .....15


2.3.1 基准 .....17


2.4 迅速开展工程 .....17


2.5 回答工程 .....17


2.5.1 答案形状 .....18


2.5.2 应答空间 .....18


2.5.3 答案提取器 .....18


3 超越英语文本提示 .....19


3.1 多语种 .....19


3.1.1 思维链 (CoT) .....19


3.1.2 情境学习 .....19


3.1.3 上下文示例选择

 .....19

3.1.4 提示模板 Lan-


压力表选择 .....19


3.1.5 机器提示

 翻译 .....20

3.2 多种模式 .....21


3.2.1 图像提示 .....21


3.2.2 音频提示 .....22


3.2.3 视频提示 .....22


3.2.4 分类提示 .....22


3.2.5 三维提示 .....22


4 提示的扩展 .....23


4.1 代理人 .....23


4.1.1 工具使用代理 .....23


4.1.2 代码生成代理 .....23


4.1.3 基于观测的代理 .....24


4.1.4 检索增强 Gen-


.....24


4.2 评估 .....25


4.2.1 提示技术 .....25


4.2.2 输出格式 .....26


4.2.3 提示框架 .....26


4.2.4 其他方法 .....26


5 提示问题 .....28


5.1 安全 .....28


5.1.1 黑客提示类型 .....28


5.1.2 迅速黑客攻击的风险 .....28


5.1.3 硬化措施 .....29


5.2 对齐 .....29


5.2.1 即时敏感性 .....30


5.2.2 过度自信与卡利

 .....30

5.2.3 偏见、成见和偏见

 文化 .....31

5.2.4 含糊不清 .....31


6 基准 .....32


6.1 技术基准 .....32


6.1.1 提示比较

 技术 .....32

6.1.2 问题格式 .....32


6.1.3 自我一致性 .....32


6.1.4 评估答复 .....33


6.1.5 结果 .....33


6.2 Prompt 工程案例研究 .....33


6.2.1 问题 .....33


6.2.2 数据集 .....34


6.2.3 进程 .....34


6.2.4 讨论 .....41


7 相关工作 .....42


8 结论 .....43


A 附录 .....59


A. 1 提示的定义 .....59


A. 2 扩展词汇 .....61


A.2.1 提示术语 .....61


A.2.2 工程术语提示 .....61


A.2.3 微调术语 .....61


A.2.4 正交提示类型 .....61


A. 3 数据表 .....63


A.3.1 动机 .....63


A.3.2 构成 .....63


A.3.3 收集过程 .....64


A.3.4 预处理/清洗

 标签 .....64

A.3.5 用途 .....64


A.3.6 分配 .....64


A.3.7 维护 .....64


A. 4 关键字 .....65


A. 5 评估表 .....67


A. 6 诱导过程 .....68


A.6.1 勘探 .....68


A.6.2 获取标签 .....68


A.6.3 不同的提示技术

 .....68

A. 7 正式定义提示 .....71


A. 8 个情境学习定义

 消歧 .....73

A. 9 会费 .....75

 1 引言


基于变压器的LLMs 广泛应用于面向消费者、内部和研究环境(Bommasani 等人,2021 年)。通常情况下,这些模型依赖于用户提供输入 "提示",而模型则根据 "提示 "进行输出。这些提示可能是文字性的--"写一首关于树的诗"--也可能是其他形式:图像、音频、视频或它们的组合。对模型进行提示的能力,尤其是使用自然语言进行提示的能力,使模型易于交互,并能在各种用例中灵活使用。

要使用这些模型,就必须知道如何有效地利用提示来组织、评估和执行其他任务。从经验上看,更好的提示能提高各种任务的结果(Wei 等人,2022 年;Liu 等人,2023 年 b;Schulhoff,2022 年)。围绕使用提示来提高结果的文献已经大量增加,提示技术的数量也在迅速增加。

然而,由于提示是一个新兴领域,人们对提示的使用仍然知之甚少,只有一小部分现有术语和技术为从业人员所熟知。我们对提示技术进行了大规模审查,以创建该领域术语和技术的强大资源。我们预计这将是术语的首次迭代,并将随着时间的推移不断发展。

研究范围 我们创建了一个广泛的提示技术目录,开发人员和研究人员可以快速理解并轻松实施这些技术,以便进行快速实验。为此,我们将研究重点限定为离散前缀提示(Shin 等人,2020a)而非掐词提示(Petroni 等人,2019;Cui 等人,2021),因为使用前缀提示的现代LLM 架构(尤其是纯解码器模型)已被广泛使用,并为消费者和研究人员提供了强大的支持。此外,我们将研究重点调整为硬性(离散)提示而非软性(连续)提示,并剔除了使用基于梯度的更新技术(即微调)的论文。最后,我们只研究与任务无关的技术。这些决定保持了

图 1.1:提示领域内的类别相互关联。我们将讨论 7 个核心类别,我们范围内的论文对这些类别进行了很好的描述。

让技术性不强的读者也能读懂作品,并保持可管理的范围。

章节概述 我们根据 PRISMA 流程(Page 等人,2021 年)(第 2.1 节)进行了机器辅助系统综述,确定了 58 种不同的基于文本的提示技术,并据此创建了一个具有强大提示术语的分类法(第 1.2 节)。

尽管许多关于提示的文献都侧重于纯英语环境,但我们也讨论了多语言技术(第 3.1 节)。鉴于多模态提示技术的迅速发展,提示可能包括图像等媒体,我们也将讨论范围扩大到多模态技术(第 3.2 节)。许多多语言和多模态提示技术都是纯英文文本提示技术的直接延伸。

随着提示技术越来越复杂,它们也开始结合外部工具,如互联网浏览和计算器。我们使用 "代理 "一词来描述这类提示技术(第 4.1 节)。

重要的是要了解如何评估代理和提示技术的输出,以确保准确性并避免产生幻觉。因此,我们将讨论评估这些输出结果的方法(第二章)。


第 4.2 节)。我们还讨论了设计提示符时的安全性(第 5.1 节)和安全措施(第 5.2 节),以降低对公司和用户造成伤害的风险。

最后,我们在两个案例研究中应用了提示技术(第 6.1 节)。在第一个案例中,我们针对常用基准 MMLU(Hendrycks 等人,2021 年)测试了一系列提示技术。在第二项研究中,我们详细探讨了人工提示工程在现实世界中的一个重要使用案例,即在寻求支持的个人文本中识别疯狂绝望的信号--自杀危机的首要指标(Schuck 等人,2019a)。最后,我们将讨论提示的本质及其最新发展(第8节)。


1.1 什么是提示?


提示是生成式人工智能模型的输入,用于指导其输出(Meskó,2023 年;White 等人,2023 年;Heston 和 Khun,2023 年;Hadi 等人,2023 年;Brown 等人,2020 年)。提示可以由文本、图像、声音或其他媒体组成。提示的例子包括"为一家会计师事务所的营销活动写一封三段式电子邮件",一张桌子的照片,配以文字 "描述桌子上的所有东西",或者一段在线会议的录音,配以说明 "总结一下"。

提示模板 提示通常是通过提示模板构建的(Shin 等人,2020b)。提示模板是一个包含一个或多个变量的函数,这些变量将被一些媒体(通常是文本)所取代,从而创建一个提示。该提示可视为模板的一个实例。

考虑将提示法应用到推文的二元分类任务中。下面是一个可用于对输入进行分类的初始提示模板。

将推文分为正面和负面: 推文

数据集中的每条推文都将被插入模板的一个单独实例中,由此产生的提示信息将提供给LLM 进行推理。


写一首关于树的诗

就下面的题目写一首诗:{USER_INPUT }

图 1.2:提示和提示模板是不同的概念;插入输入后,提示模板就变成了提示。

 1.2 术语


1.2.1 提示的组成部分


提示语中有各种常见的组成部分。我们总结了最常用的组成部分,并讨论了它们如何与提示语相匹配。

指令 许多提示以指令或问题的形式发出指令。 这就是提示的核心意图,有时简称为 "意图"。例如,下面是一个包含单一指令的提示示例:

告诉我五本值得一读的好书。

指令也可以是隐式的,就像在这个 onehot 案例中,指令是执行英语到西班牙语的翻译:

 夜早晨


示例 示例,又称范例或镜头,是指导 GenAI 完成任务的示范。上述提示是 OneShot(即一个示例)提示。

输出格式化 GenAI 通常希望以某些格式输出信息,例如 CSV 或 markdown 格式(Xia 等人,2024 年)。为方便起见,您只需添加如下说明即可:

 {注释}


将其汇总为 CSV。

图 1.3:提示术语表。附录中的术语虽然不够关键,但对提示法领域非常重要。提示技术如图 2.2 所示

样式指令 样式指令是一种输出格式,用于从样式上而非结构上修改输出(第 2.2.2 节)。例如

写一段关于骆驼的简洁明了的文字。

角色 角色,又称人物角色(Schmidt 等人,2023;Wang 等人,20231),是经常被讨论的一个组成部分,可以改善写作和文本风格(第 2.2.2 节)。例如

假装自己是牧羊人,写一首关于骆驼的打油诗。

附加信息 通常有必要在提示中包含附加信息。例如,如果指令是撰写一封电子邮件,您可能需要提供您的姓名和职位等信息,以便 GenAI 能够正确签署电子邮件。附加信息有时也被称为 "上下文",不过我们不鼓励使用该术语,因为它在提示空间 中已包含了过多的其他含义。

 1.2.2 提示术语


提示文献中的术语发展迅速。目前,有许多定义(如提示、提示工程)理解不清,而且相互矛盾(如角色提示与角色提示)。缺乏一致的词汇妨碍了社区清晰描述各种提示技术的能力。我们为提示社区提供了一个强大的术语表(图 1.3)。 不常用的术语则放在附录 A.2 中。为了准确定义提示和提示工程等常用术语,我们整合了许多定义(附录 A.1),得出了具有代表性的定义。

提示提示是向 GenAI 提供提示,然后生成响应的过程。例如,发送一大段文本或上传一张图片的操作就构成了提示。

提示链 提示链(活动:提示链)由两个或多个连续使用的提示模板组成。第一个提示模板生成的提示输出被用于第二个模板的参数化,一直持续到所有模板都用完为止(Wu 等人,2022 年)。

数据集推理(即条目 )

图 1.4:提示工程流程包括三个重复步骤:1)对数据集进行推理;2)评估性能;3)修改提示模板。请注意,提取器用于从LLM 输出中提取最终回复(例如,"这句话是肯定的" "肯定")。有关提取器的更多信息,请参见第 2.5 节。

提示技术 提示技术是描述如何构建提示、提示或多个提示动态排序的蓝图。提示技术可能包含条件或分支逻辑、并行性或跨越多个提示的其他架构考虑因素。

提示工程提示工程是通过修改或改变所使用的提示技巧来反复开发提示的过程(图 1.4)。

提示工程技术 提示工程技术是一种对提示进行反复改进的策略。在文献中,这通常是自动化技术(Deng 等人,2022 年),但在消费环境中,用户通常会手动执行提示工程。

示例示例是在提示中向模型展示的任务完成实例(Brown 等人,2020 年)。


1.3 提示语简史


使用自然语言前缀或提示语来诱发语言模型行为和反应的想法起源于 GPT-3 和 ChatGPT 时代之前。GPT-2(Radford等人,2019a)使用了提示语,而Fan等人(2018)似乎首次在生成式人工智能中使用了提示语。不过,在提示概念之前还有一些相关概念,如控制代码(Pfaff, 1979; Poplack, 1980; Keskar et al.

Prompt Engineering(快速工程)一词似乎是最近从 Radford 等人(2021 年)和稍后从 Reynolds 和 McDonell(2021 年)那里出现的。

然而,有多篇论文在没有命名术语的情况下进行了提示工程(Wallace 等人,2019;Shin 等人,2020a),包括 Schick 和 Schütze (2020a,b);Gao 等人 (2021) 的非自回归语言模型。

最早的一些关于提示的著作对提示的定义与目前的用法略有不同。例如,下面是 Brown 等人(2020 年)的提示语:


将英语译为法语: llama


Brown 等人(2020)认为 "llama "一词是提示语,而 "将英语翻译成法语:"则是 "任务描述"。包括本论文在内的更多最新论文则将传递给LLM 的整个字符串视为提示。


2 提示的元分析


2.1 系统性审查过程


为了可靠地为本文收集资料来源数据集,我们按照 PRISMA 流程(Page 等人,2021 年)进行了系统的文献综述(图 2.1)。我们将该数据集放在 HuggingFace 上,并在附录 A.3 中提供了该数据集的数据表(Gebru et al.我们的主要数据来源是 arXiv、Semantic Scholar 和 ACL。我们使用与提示和提示工程狭义相关的 44 个关键词列表查询这些数据库(附录 A.4)。

 2.1.1 管道


在本节中,我们将介绍我们的数据搜刮管道,其中包括人工审查和 LLM 辅助审查。 作为建立过滤标准的初始样本,我们根据一组简单的关键词和布尔规则(A.4)从 arXiv 中检索论文。然后,人工标注员从 arXiv 中抽取 1661 篇文章,按照以下标准进行标注:

  1. 论文是否提出了新颖的提示技巧?包括

  2. 论文是否严格涵盖硬性前言提示?包括

  3. 论文是否侧重于通过反向传播梯度进行训练?(排除)

  4. 对于非文本模式,是否使用屏蔽框架和/或窗口?

一组 300 篇文章由两位注释者独立审阅, 一致(Krippendorff's Cohen's )。接下来,我们使用 GPT-4-1106-preview 开发了一个提示语来对其余文章进行分类。我们根据 100 个地面实况注释对该提示进行了验证,获得了 的精确度和 的召回率( )。综合人类和LLM 的注释,最终产生了 1565 篇论文。


2.2 基于文本的技术


现在,我们将 58 种基于文本的提示技术分成 6 大类,提出了一个全面的分类本体(图 2.2)。虽然

图 2.1:PRISMA 评审流程。我们积累了 4,247 条唯一记录,从中提取了 1,565 条相关记录。

有些技术可能属于多个类别,我们将它们归入最相关的一个类别。


2.2.1 情境学习(ICL)


ICL 指的是基因人工智能通过在提示中提供范例和或相关指令来学习技能和任务的能力,而无需进行重量更新/再训练(Brown 等人,2020 年;Radford 等人,2019 年 b)。这些技能可以从范例(图 2.4)和/或指令(图 2.5)中学习。请注意,"学习 "一词有误导性。ICL 可以是简单的任务说明,这些技能不一定是新的,也可以已经包含在训练数据中(图 2.6)。关于该术语的使用,请参见附录 A. 8。目前,在优化(Bansal等人,2023年)和理解(Si等人,2023年a;Štefánik和Kadlčík,2023年)ICL方面正在开展大量工作。

图 2.4 所示的范例是 "少量提示"(Brown 等人,2020 年),在该范例中,GenAI 只需学习少量示例(范例)即可完成任务。

图 2.2:数据集中所有基于文本的提示技术。

图 2.3:我们着重强调了在制作少量提示时的六个主要设计决策。 请注意,这里的建议并不适用于所有任务;在某些情况下,每项建议都可能会影响性能。
  : 四
  : 九
:

图 2.4:ICL 示例提示

从下面的文字中提取所有有 3 个相同字母和至少 3 个其他字母的单词: 文本

图 2.5:ICL 指令提示

Few-Shot Learning(FSL)(Fei-Fei等人,2006年;Wang等人,2019年)经常与Few-Shot Prompting(Brown等人,2020年)混为一谈。需要注意的是,FSL 是一种更广泛的机器学习范式,通过少量实例来调整参数,而 Few-Shot Prompting 则专门针对 GenAI 设置中的提示,不涉及模型参数的更新。


2.2.1.1 少量提示设计决策


为提示语选择示例是一项艰巨的任务,其性能在很大程度上取决于示例的各种因素(Dong 等人,2023 年),而且只有有限数量的示例适合典型的LLM 的上下文窗口。我们强调了六个独立的设计决策,包括对输出质量有关键影响的示例选择和顺序(Zhao 等人,2021a;Lu 等人,2021;Ye 和 Durrett,2023)(图 2.3)。

范例数量 增加提示中范例的数量通常可以提高模型的性能,尤其是在大型模型中(Brown 等人,2020 年)。然而,在某些情况下,超过 20 个示例后,效果可能会减弱(Liu 等人,2021 年)。


将 "奶酪 "一词翻译成法语。

图 2.6:来自训练数据提示的 ICL。在这一版本的 ICL 中,模型不是在学习新技能,而是在使用训练集中可能存在的知识。

范例排序 范例的顺序会影响模型的行为(Lu 等人,2021 年;Kumar 和 Talukdar,2021 年;Liu 等人,2021 年;Rubin 等人,2022 年)。在某些任务中,示例顺序会导致准确率从次 et al., 2021)。

示例标签分布 与传统的监督式机器学习一样,提示中示例标签的分布也会影响行为。例如,如果包含了一个类别的 10 个示例和另一个类别的 2 个示例,这可能会导致模型偏向于第一个类别。

示例标签质量 尽管多个示例具有普遍优势,但严格有效的示例是否必要还不清楚。一些研究(Min 等人,2022 年)表明,标签的准确性并不重要--为模型提供标签不正确的示例可能不会对性能产生负面影响。然而,在某些设置下,会对性能产生重大影响(Yoo 等人,2022 年)。较大的模型通常更善于处理不正确或不相关的标签(Wei 等,2023c)。

讨论这一因素非常重要,因为如果您要从可能包含误差的大型数据集中自动构建提示,可能有必要研究标签质量对结果的影响。

示例格式 示例的格式也会影响性能。最常见的格式之一是 "Q: {输入}, A: {标签}",但不同任务的最佳格式可能会有所不同;也许值得尝试多种格式,看看哪种效果最好。

有证据表明,在训练数据中经常出现的格式会带来更好的性能(Jiang 等人,2020 年)。

范例相似性 选择与测试样本相似的范例通常有利于提高成绩(Liu 等人,2021 年;Min 等人,2022 年)。不过,在某些情况下,选择更多样化的示例也能提高成绩 et al., 2022; Min et al., 2022)。


2.2.1.2 少量提示技术


考虑到所有这些因素,要有效地实施 "少量提示 "可能会非常困难。现在,我们将研究在有监督环境下的 "快照提示 "技术。集合方法也能为 "少数提示 "带来好处,但我们将单独讨论(第 2.2.5 节)。

假设我们有一个训练数据集 ,其中包含多个输入 和输出 ,可用于对 GenAI 进行少量提示(而不是执行基于梯度的更新)。假设该提示可以在测试时根据 动态生成。以下是我们将在本节中使用的提示模板,采用 "输入:输出 "格式(图 2.4):
 {范例 }

图 2.7:少量提示模板

K-Nearest Neighbor(KNN)(Liu 等人,2021 年)是一系列算法中的一种,它选择与 相似的示例来提高性能。在生成提示时使用 KNN 虽然有效,但可能会耗费大量时间和资源。

Vote-K(Su 等人,2022 年)是另一种选择与测试样本相似示例的方法。在一个阶段,模型提出有用的未标注候选示例,供标注者标注。在第二阶段,标注库用于 "少量提示"(Few-Shot Prompting)。Vote-K 还能确保新添加的示例与现有示例有足够大的差异,以增加多样性和代表性。

自生成情境学习(SG-ICL)(Kim 等人,2022 年)利用 GenAI 自动生成示例。虽然在没有训练数据的情况下,生成的样本比zeroshot场景更好,但不如实际数据有效。

提示挖掘(Jiang 等人,2020 年)是通过大型语料库分析发现提示中最佳 "中间词"(实际上是提示模板)的过程。例如,与其使用常见的 "Q: A: "格式来进行少量提示,不如使用在语料库中出现频率更高的类似格式。在语料库中出现频率更高的格式可能会提高提示性能。

更复杂的技术,如 LENS(Li 和 Qiu,2023a)、UDR(Li 等人,2023f)和 Active Example Selection(Zhang 等人,2022a)分别利用了迭代过滤、嵌入和检索以及强化学习。

 2.2.2 零点射击


与 "少量提示"(Few-Shot Prompting)不同,"零镜头提示"(Zero-Shot Prompting)使用的是零范例。我们将在后面(第 2.2.3 节)讨论一些众所周知的独立零镜头技术,以及与另一个概念(如思维链)相结合的零镜头技术。

角色提示(Wang 等人,2023j;Zheng 等人,2023d),也称为角色提示(Schmidt 等人,2023;Wang 等人,20231),在提示中为 GenAI 指定一个特定的角色。例如,用户可能会提示它扮演 "麦当娜 "或 "旅行作家"。这可以为开放式任务创造更理想的输出结果(Reynolds 和 McDonell,2021 年),并在某些情况下提高基准的准确性(Zheng 等人,2023d)。

风格提示(Lu 等人,2023a)涉及在提示中指定所需的风格、语气或体裁,以塑造 GenAI 的输出。使用角色提示也能达到类似的效果。

情感提示(Li 等人,2023a)将与人类心理相关的短语(如 "这对我的职业生涯很重要")纳入提示,这可能会提高LLM 在基准和开放式文本生成方面的性能。

系统 2 注意(S2A)(Weston 和 Sukhbaatar,2023 年)首先要求LLM 重写提示,并删除任何与问题无关的信息。然后,它将新的提示信息传入LLM ,以获取最终回复。

SimToM(Wilf 等人,2023 年)处理的是涉及多人或多物的复杂问题。给定问题后,它试图确定一个人所知道的一系列事实,然后仅根据这些事实回答问题。这是一个双提示过程,有助于消除提示中无关信息的影响。

重述和回答(RaR)(Deng 等人,2023 年)指示LLM 在生成最终答案之前对问题进行重述和扩展。例如,它可以在问题中添加以下短语:"重新措辞并扩展问题,然后回答"。这可以一次性完成,也可以将新问题单独发送给LLM 。RaR 在多个基准测试中都取得了改进。

重读(RE2)(Xu 等人,2023 年)除了重复问题外,还在提示语中添加了 "再读一遍问题:"的短语。虽然这只是一个简单的技巧,但它却能提高推理基准,尤其是复杂问题的推理。

Self-Ask(Press 等人,2022 年)提示LLMs 首先决定是否需要就给定的提示提出后续问题。如果需要,LLM 会生成这些问题,然后回答这些问题,最后回答原始问题。


2.2.3 思想的产生


思维生成包括一系列技术,可促使LLM 在解决问题时阐明自己的推理(Zhang 等人,2023c)。

思维链(CoT)提示(Wei 等人,2022 年)利用少量提示来鼓励LLM 在给出最终答案之前表达其思维过程。 这种技术有时也被称为思维链(Chain-of-Thoughts)(Tutunov 等人,2023;Besta 等人,2024;Chen 等人,2023d)。事实证明,它能显著提高LLM 在数学和推理任务中的表现。在 Wei 等人(2022 年)的研究中,提示包括一个示例,其中有问题、推理路径和正确答案(图 2.8)。

问:杰克有两个篮子,每个篮子里有三个球。杰克一共有多少个球?

答:一个篮子里有 3 个球,所以两个篮子里有 个球。
A:

图 2.8:一次性思维链提示。

 2.2.3.1 零镜头-CoT


最直接的 CoT 版本不包含任何示例。它包括在提示语中添加一个诱导思考的短语,如 "让我们一步一步地思考"(小岛等人,2022 年)。(小岛等人,2022 年)的提示。其他建议的思维诱导短语包括:"让我们一步一步地解决这个问题,以确保我们有正确的答案"(Zhou 等人,2022b)和 "首先,让我们从逻辑上思考这个问题"(Kojima 等人,2022)。Yang等人(2023a)正在寻找最佳思维诱导器。零镜头-CoT 方法不需要范例,而且通常与任务无关,因此很有吸引力。

Step-Back Prompting(Zheng 等人,2023c)是对 CoT 的一种修改,即在深入推理之前,首先向LLM 提出一个关于相关概念或事实的通用、高级问题。在 PaLM 和 GPT-4 的多个推理基准上,这种方法都显著提高了性能。

类比提示(Yasunaga 等人,2023 年)与 SG-ICL 相似,可自动生成包含 CoT 的示例。在数学推理和代码生成任务中,它的表现都有所改进。

Thread-of-Thought (ThoT) Prompting(Zhou 等人,2023 年)是一种用于 CoT 推理的改进型思维诱导器。它不再使用 "让我们一步一步地思考",而是使用 "让我一步一步地看完这个上下文,边看边总结和分析"。这种思维诱导器在问题解答和检索设置中效果很好,尤其是在处理大型复杂语境时。

表格式思维链(Tab-CoT)(Jin 和 ,2023 年)由一个零射 CoT 提示组成,该提示使LLM 输出推理为标记符


表。这种表格设计使LLM 能够改进结构,从而改进其输出的推理。

 2.2.3.2 少量 COT


这套技术为LLM 提供了多个范例,其中包括思维链。这可以大大提高性能。这种技术有时被称为 ManualCoT(Zhang 等人,2022b)或 Golden CoT(Del 和 Fishel,2023)。

Contrastive CoT Prompting(Chia 等人,2023 年)在 CoT 提示中增加了错误和正确解释的示例,以向LLM 展示如何不进行推理。这种方法在算术推理和事实问答等方面都有明显改善。

不确定性路由 CoT 提示(Google,2023 年)会对多个 CoT 推理路径进行采样,如果大多数路径都高于某个阈值(根据验证数据计算得出),则会选择其中之一。如果不是,则贪婪地采样并选择该响应。这种方法在 GPT4 和 Gemini Ultra 模型的 MMLU 基准上都有改进。

基于复杂性的提示(Fu 等人,2023b)涉及对 CoT 的两大修改。首先,它根据问题长度或所需推理步骤等因素,选择复杂示例进行注释并纳入提示。其次,在推理过程中,它会对多个推理链(答案)进行采样,并在超过一定长度阈值的推理链中使用多数票,前提是较长的推理说明答案质量较高。这种技术在三个数学推理数据集上都有改进。

主动提示(Diao 等人,2023 年)从一些训练问题/示例开始,要求LLM 解决这些问题,然后计算不确定性(本例中为分歧),并要求人类注释者重写不确定性最高的示例。

思维记忆提示法(Li 和 Qiu,2023b)利用未标记的训练示例,在测试时建立 Few-Shot CoT 提示。在测试前,它利用 CoT 对未标记的训练示例进行推理。测试时,它会检索与测试样本相似的实例。这项技术在算术、常识和事实推理等基准测试中取得了显著进步。

自动思维链(Auto-CoT)提示--

ing(Zhang 等人,2022b)使用 Wei 等人(2022 年)的 Zero-Shot 提示自动生成思维链。然后,再利用这些思维链为测试样本构建一个 "零点提示"(Few-Shot CoT prompt)。

 2.2.4 分解


大量研究集中于将复杂问题分解为更简单的子问题。这对人类和 GenAI 都是一种有效的问题解决策略(Patel 等人,2022 年)。有些分解技术类似于思维诱导技术,例如 CoT,它通常会自然地将问题分解为更简单的组成部分。然而,明确分解问题可以进一步提高LLMs 的问题解决能力。

从少到多提示法(Zhou 等人,2022a)首先提示LLM ,将给定问题分解成若干子问题,但不求解这些子问题。然后,它依次求解这些子问题,每次都在提示后附加模型响应,直到得出最终结果。这种方法在涉及符号操作、组合概括和数学推理的任务中显示出明显的改进。

分解提示(DECOMP)(Khot 等人,2022 年)Few-Shot 会提示LLM ,告诉它如何使用某些功能。这些函数可能包括字符串分割或互联网搜索等功能;这些功能通常作为单独的LLM 调用来实现。有鉴于此,LLM 将其原始问题分解为子问题,并将其发送给不同的函数。在某些任务上,它比 "从最少到最多 "提示法的性能有所提高。

计划-解决 "提示(Wang 等人,2023f)包括一个改进的 "零镜头 "CoT 提示:"让我们先了解问题,并制定一个解决问题的计划。然后,让我们执行计划,逐步解决问题"。在多个推理数据集上,这种方法生成的推理过程比标准的 Zero-Shot-CoT 更稳健。

思维树(ToT)(Yao 等人,2023b),又称思维树(Long,2023),通过从初始问题开始,然后以思维的形式生成多个可能的步骤(如 CoT),从而创建一个树状搜索问题。它能评估每一步在解决该问题上所取得的进展。


问题(通过提示),并决定继续采取哪些步骤,然后不断产生更多想法。ToT 对于需要搜索和规划的任务尤其有效。


思维递归(Lee 和 Kim,2023 年)是

similar to regular CoT. However, every time it encounters a complicated problem in the middle of its reasoning chain, it sends this problem into another prompt/LLM call. After this is completed, the answer is inserted into the original prompt. In this way, it can recursively solve complex problems, including ones which might otherwise run over that maximum context length. This method has shown improvements on arithmetic and algorithmic tasks. Though implemented using fine-tuning to output a special token that sends sub-problem into another prompt, it could also be done only through prompting.

思维程序(Chen 等人,2023d)使用类似于 Codex 的LLMs 来生成作为推理步骤的编程代码。代码解释器执行这些步骤以获得最终答案。它在数学和编程相关任务中表现出色,但在语义推理任务中效果较差。

Faithful Chain-of-Thought(Lyu等人,2023年)生成的CoT与Program-of-Thoughts一样,既有自然语言推理,也有符号语言(如Python)推理。不过,它还能根据任务的不同使用不同类型的符号语言。

思维骨架(Ning 等人,2023 年)侧重于通过并行化加快解答速度。给定一个问题后,它会提示LLM 创建一个答案骨架,从某种意义上说,就是要解决的子问题。然后,它以并行方式将这些问题发送到LLM ,并将所有输出连接起来,得到最终答案。

 2.2.5 组合


在 GenAI 中,集合是指使用多个提示来解决同一问题,然后将这些回答汇总为最终输出的过程。在许多情况下,使用多数票来选择最常见的回答,从而生成最终输出。集合技术可减少LLM 输出的差异,通常还能提高准确性,但代价是需要增加模型调用次数才能得出最终答案。


演示汇编(DENSE)(Khalifa 等人,2023 年)创建了多个少量提示,每个提示都包含训练集中一个不同的示例子集。然后,它将它们的输出汇总,生成最终的响应。

混合推理专家(MoRE)(Si 等人,2023d)通过针对不同推理类型使用不同的专门提示(如针对事实推理的检索增强提示、针对多跳和数学推理的思维链推理以及针对常识推理的生成知识提示)来创建一组多样化的推理专家。所有专家的最佳答案将根据协议得分选出。

LLM最大互信息法(Sorensen et al.

自我一致性(Wang 等人,2022 年)基于多种不同推理路径可得出相同答案的直觉。这种方法首先会多次提示LLM 执行 CoT,关键是温度不能为零,以引出不同的推理路径。然后,它通过对所有生成的答案进行多数表决来选择最终答案。自我一致性在算术、常识和符号推理任务上都有所改进。

通用自一致性(Chen 等人,2023e)与自一致性类似,但它不是通过程序计算出现频率来选择多数人的回答,而是将所有输出插入一个选择多数人回答的提示模板中。这对于自由格式文本生成和不同提示输出的相同答案可能略有不同的情况很有帮助。

多重 CoT 上的元推理(Yoran 等人,2023 年)与通用自洽类似;它首先为给定问题生成多个推理链(但不一定是最终答案)。接下来,它将所有这些推理链插入一个提示模板,然后从中生成最终答案。

DiVeRSe(李等人,2023i)为给定问题创建多个提示,然后对每个提示进行自洽,生成多个理由。


推理路径。他们根据推理路径中的每一步进行评分,然后选择最终答案。


基于一致性的自适应提示

(COSP) (Wan et al., 2023a) constructs Few-Shot CoT prompts by running Zero-Shot CoT with Self-Consistency on a set of examples then selecting a high agreement subset of the outputs to be included in the final prompt as exemplars. It again performs Self-Consistency with this final prompt.

通用自适应提示(USP)(Wan 等人,2023b)建立在 COSP 成功的基础上,旨在使其适用于所有任务。USP 利用无标记数据生成示例,并利用更复杂的评分函数来选择示例。此外,USP 不使用自一致性。

提示语转述(Jiang 等人,2020 年)通过改变部分措辞对原始提示语进行转换,同时仍保持其整体含义。这实际上是一种数据扩增技术,可用于生成集合提示。

 2.2.6 自我批评


在创建 GenAI 系统时,让LLMs 批评自己的输出结果可能会很有用(Huang 等人,2022 年)。这可以是简单的判断(例如,这个输出是否正确),也可以是提示LLM 提供反馈,然后用于改进答案。目前已开发出许多产生和整合自我批评的方法。

自我校准(Kadavath 等人,2022 年)首先会提示LLM 回答一个问题。然后,它会生成一个新的提示,其中包括问题、LLM 的答案以及询问答案是否正确的附加指令。在决定接受或修改原始答案时,这对衡量应用LLMs 的信心水平非常有用。

Self-Refine(Madaan 等人,2023 年)是一个迭代框架,当LLM 给出一个初始答案时,它会提示同一个LLM 就答案提供反馈,然后提示LLM 根据反馈改进答案。这个迭代过程一直持续到满足停止条件为止(如达到最大步数)。Self-Refine 在一系列推理、编码和生成任务中都取得了进步。


逆转思维链(RCoT)(Xue 等人,2023 年)首先提示LLMs 根据生成的答案重建问题。然后,它生成原始问题和重构问题之间的细粒度比较,以此来检查任何不一致之处。然后,这些不一致之处会转化为反馈信息,供LLM 修改生成的答案。

自我验证(Weng 等人,2022 年)通过思维链(CoT)生成多个候选解决方案。然后,它通过屏蔽原始问题的某些部分,让LLM 根据问题的其余部分和生成的解决方案来预测这些部分,从而对每个解决方案进行评分。这种方法在八个推理数据集上都有所改进。

LLM 验证链(COVE)(Dhuliawala et al.然后创建一个相关问题列表,帮助验证答案的正确性。每个问题都由LLM 回答,然后将所有信息提供给LLM ,以生成最终修改后的答案。这种方法在各种问题解答和文本生成任务中都有所改进。

累积推理(Zhang 等人,2023b)

首先,它会生成回答问题的几个潜在步骤。然后,它让LLM 对这些步骤进行评估,决定接受或拒绝这些步骤。最后,它会检查是否得出最终答案。如果是,则终止该过程,否则重复该过程。这种方法在逻辑推理任务和数学问题上都有改进。


2.3 提示技术的使用


正如我们刚才所看到的,有许多基于文本的提示技术。然而,其中只有一小部分常用于研究和工业领域。我们通过测量数据集中其他论文的引用次数来衡量技术的使用情况。我们这样做的前提是,有关提示技术的论文更有可能实际使用或评估所引用的技术。我们将数据集中被引用次数最多的 25 篇论文绘制成图,发现其中大多数论文都提出了新的提示技术(图 2.11)。很少被引用的提示技术和思维链提示技术的引用率分别是

图 2.9:GenAI 模型的引用次数

图 2.10:数据集的引用次数

图 2.11:提示技术的引用次数 数据集中排名前 25 位的论文,以其被数据集中其他论文引用的频率来衡量。这里的大多数论文都是提示技术*,其余论文则包含提示建议。


这一点不足为奇,而且有助于为了解其他技术的普遍性建立一个基线。

 2.3.1 基准


在提示研究中,当研究人员提出一项新技术时,他们通常会在多个模型和数据集中对其进行基准测试。这对于证明该技术的实用性和研究它如何在不同模型间转换非常重要。

为了让提出新技术的研究人员更容易知道如何对其进行基准测试,我们对哪些模型(图 2.9)和哪些基准数据集(图 2.10)正在被使用进行了定量研究。同样,我们通过数据集中论文引用基准数据集和模型的次数来衡量使用情况。

为了找到正在使用的数据集和模型,我们提示 GPT-4-1106-preview 从数据集中的论文正文中提取任何提及的数据集或模型。之后,我们手动过滤掉了不是模型或数据集的结果。引用次数是通过在 Semantic Scholar 上搜索最终列表中的条目获得的。

 2.4 快速工程


除了研究提示技术,我们还回顾了用于自动优化提示的提示工程技术。我们讨论了一些使用梯度更新的技术,因为提示工程技术的集合比提示技术的集合要小得多。

元提示是提示LLM 生成或改进提示或提示模板的过程(Reynolds 和 McDonell,2021;Zhou 等人,2022b;Ye 等人,2023)。

自动提示(Shin 等人,2020b)使用冻结的LLM 以及包含一些 "触发令牌 "的提示模板,这些令牌的值在训练时通过反向推理进行更新。这是一种软提示。

自动提示工程师(APE)(Zhou 等人,2022b)使用一组示例来生成零点教学提示。它会生成多个可能的提示,对它们进行评分,然后创建最佳提示的变体(例如,通过使用提示解析)。这一过程反复进行,直到达到某些要求为止。

无梯度教学提示搜索(GrIPS)(Prasad et al.


使用文字渐变优化提示(专业版


(Pryzant 等人,2023 年)是一种独特的提示工程方法,它通过多步骤流程改进提示模板。首先,它通过模板传递一批输入,然后将输出、地面实况和提示信息传递到另一个提示信息中,对原始提示信息进行批判。它从这些批评中生成新的提示,然后使用强盗算法(Gabillon 等人,2011 年)来选择一个。与 APE 和 GRIPS 等方法相比,ProTeGi 有所改进。

RLPrompt (Deng 等人,2022 年)使用一个添加了解冻模块的冻结LLM 。它使用LLM 生成提示模板,在数据集上对模板进行评分,并使用软 Q 学习(Guo 等人,2022 年)更新解冻模块。有趣的是,该方法经常选择语法混乱的文本作为最佳提示模板。

基于对话的政策梯度离散提示优化(DP2O)(Li 等人,2023b)可能是最复杂的提示工程技术,它涉及强化学习、自定义提示评分函数和对话LLM ,以便构建提示。

 2.5 答案工程


答案工程是从LLM 输出中提取精确答案的算法开发或选择的迭代过程。为了理解答案工程的必要性,请考虑一项二元分类任务,其中的标签是 "仇恨言论 "和 "非仇恨言论"。提示模板可能是这样的

这是 "仇恨言论 "还是 "非仇恨言论"?

当仇恨言论样本通过模板时,可能会输出 "这是仇恨言论"、"仇恨言论",甚至 "仇恨言论,因为它使用了针对某个种族群体的负面语言"。这种不同的回复格式很难进行一致的解析;改进的提示可以有所帮助,但只能在一定程度上起到作用。

答案工程有三项设计决策,即答案空间的选择、答案的选择和答案的选择。

图 2.12:标注任务的LLM 输出注释,显示了答案工程的三个设计决定:答案形状、空间和提取器的选择。由于这是来自分类任务的输出,答案形状可以限制为单个标记,答案空间可以限制为两个标记("正 "或 "负")中的一个,但在本图中没有限制。

形状和答案提取器(图 2.12)。Liu 等人(2023b)将前两者定义为答案工程的必要组成部分,而我们则将第三者附于其后。我们认为答案工程有别于提示工程,但两者关系极为密切;这两个过程通常是同步进行的。

 2.5.1 答案形状


答案的形状是其物理格式。例如,它可以是一个标记、一串标记,甚至是图像或视频。 对于二进制分类等任务,有时可以将LLM 的输出形状限制为单个标记。

 2.5.2 应答空间


答案的空间是其结构可能包含的值域。这可能是所有标记的空间,或者在二进制标注任务中,可能只是两个可能的标记。

 2.5.3 答案提取器


在不可能完全控制答案空间(例如面向消费者的LLMs )或预期答案可能位于模型输出的某处时,可以定义一个规则来提取最终答案。该规则通常是一个简单的函数(如正则表达式),但也可以使用单独的LLM 来提取答案。

动词化器 常用于标记任务中,动词化器映射标记、跨度或其他类型的输出

与标签对应,反之亦然(注入式)(Schick 和 Schütze,2021 年)。例如,如果我们想让一个模型预测一条 Tweet 是正面还是负面的,我们可以提示它输出 "+"或"-",而动词化器会将这些标记序列映射到相应的标签上。动词化器的选择是答案工程的一个组成部分。

Regex 如前所述,Regex 通常用于提取答案。它们通常用于搜索标签的第一个实例。不过,根据输出格式和是否生成 CoT,搜索最后一个实例可能会更好。

单独的LLM 有时输出结果非常复杂,以至于 regex 无法始终如一地工作。在这种情况下,让一个单独的LLM 评估输出并提取答案可能会很有用。


3 超越英语文本提示


目前,用英文文本提示 GenAIs 是最主要的交互方式。使用其他语言或通过不同模式进行提示往往需要特殊的技术,才能达到相当的效果。在这种情况下,我们将讨论多语言和多模态提示领域。

 3.1 多语种


最先进的 GenAI 通常主要使用英语数据集进行训练,导致英语以外的语言,尤其是低资源语言的输出质量存在明显差异(Bang 等人,2023 年;Jiao 等人,2023 年;Hendy 等人,2023 年;Shi 等人,2022 年)。因此,出现了各种多语言提示技术,试图提高模型在非英语环境中的性能。

先翻译后提示(Shi 等人,2022 年)也许是最简单的策略,它首先将非英语输入示例翻译成英语。通过将输入翻译成英语,模型可以利用其英语优势更好地理解内容。翻译工具各不相同;Shi 等人(2022 年)使用外部 MT 系统,Etxaniz 等人(2023 年)提示多语言 LM,Awasthi 等人(2023 年)提示LLMs 翻译非英语输入。


3.1.1 思维链(CoT)


CoT 提示(Wei 等人,2023a)已通过多种方式扩展到多语言环境。


XLT(跨语言思维)提示

(Huang et al., 2023a) utilizes a prompt template composed of six separate instructions, including role assignment, cross-lingual thinking, and CoT.


跨语言自洽提示 (CLSP)

(Qin et al., 2023a) introduces an ensemble technique that constructs reasoning paths in different languages to answer the same question.


3.1.2 情境学习


ICL 还以多种方式扩展到多语言环境。


X-InSTA Prompting(Tanwar 等人,2023 年)探索了三种不同的方法,用于在分类任务中将非上下文示例与输入句子对齐:使用与输入句子语义相似的示例(语义对齐)、与输入句子具有相同标签的示例(基于任务的对齐),以及将语义对齐和基于任务的对齐相结合。

In-CLT(跨语言迁移)提示(Kim 等人,2023 年)利用源语言和目标语言创建语境中的示例,有别于使用源语言示例的传统方法。这种策略有助于激发多语言LLMs 的跨语言认知能力,从而提高跨语言任务的成绩。


3.1.3 上下文示例选择


上下文示例的选择在很大程度上影响着LLMs 的多语言性能(Garcia 等人,2023 年;Agrawal 等人,2023 年)。寻找与源文本语义相似的上下文示例非常重要(Winata 等人,2023;Moslem 等人,2023;Sia 和 Duh,2023)。然而,使用语义不同(奇特)的示例也被证明可以提高成绩(Kim 和 Komachi,2023 年)。这种对比在纯英语环境中同样存在。此外,在处理模棱两可的句子时,选择多义词或罕见词义的示例可能会提高成绩(Iyer et al.)

PARC(Prompts Augmented by Retrieval Crosslingually)(Nie 等人,2023 年)介绍了一种从高资源语言中检索相关范例的框架。该框架专为提高跨语言迁移性能而设计,尤其适用于低资源目标语言。Li 等人(2023g)将这项工作扩展到孟加拉语。


3.1.4 提示模板语言选择


在多语言提示中,提示模板语言的选择会明显影响模型的性能。

英语提示模板 用英语构建提示模板通常更有效

图 3.1:所有多语言提示技术

在多语言任务中,英语比任务语言更有效。这可能是由于LLM 预训练期间英语数据占主导地位(Lin 等人,2022 年;Ahuja 等人,2023 年)。Lin 等人(2022 年)认为,这可能是由于预训练数据和词汇的高度重叠造成的。同样,Ahuja 等人(2023 年)强调了创建任务语言模板时的翻译错误如何以不正确的语法和语义形式传播,从而对任务性能产生不利影响。此外,Fu 等人(2022 年)比较了语言内(任务语言)提示和跨语言(混合语言)提示,发现跨语言方法更有效,这可能是因为它在提示中使用了更多英语,从而促进了从模型中检索知识。

任务语言提示模板 相比之下,许多多语言提示基准,如 BUFFET(Asai 等人,2023 年)或 LongBench(Bai 等人,2023 年a),则针对特定语言使用情况使用任务语言提示。Muennighoff 等人(2023 年)专门研究了构建母语提示时的不同翻译方法。他们证明,人工翻译的提示语优于机器翻译的提示语。在不同的任务和模型中,母语或非母语模板的性能会有所不同(Li 等人,2023h)。因此,无论哪种选择都不一定是最佳方法(Nambi 等人,2023 年)。


3.1.5 提示机器翻译


在利用 GenAI 促进准确而细致的翻译方面有大量研究。虽然这是提示的一个具体应用,但其中许多技术对于多语言提示具有更广泛的重要性。

多方面提示和选择(MAPS)(He 等人,2023b)模仿人类翻译过程,其中包括多个准备步骤,以确保高质量的输出。该框架从源句的知识挖掘(提取关键词和主题并生成翻译范例)开始。它整合这些知识,生成多种可能的翻译,然后选择最佳翻译。

字典链(CoD)(Lu 等人,2023b)首先从源短语中提取单词,然后通过字典检索(如英语:"apple",西班牙语:"manzana"),自动列出这些单词在多种语言中的含义。然后,他们将这些词典短语预置到提示中,要求 GenAI 在翻译过程中使用这些短语。

图 3.2:所有多模式提示技术。

分解提示 MT(DecoMT)(Puduppully et al.然后,它使用这些译文和各语块之间的上下文信息生成最终译文。


3.1.5.1 圈内人


交互链提示(ICP)(Pilault 等人,2023 年)通过首先要求 GenAI 就待翻译短语中的任何歧义生成子问题,来处理翻译中的潜在歧义。人类随后回答这些问题,系统将这些信息纳入其中,生成最终翻译。

迭代提示(Yang 等人,2023d)在翻译过程中也有人类参与。首先,他们提示LLMs 创建翻译草稿。通过整合从自动检索系统或直接人工反馈中获得的监督信号,进一步完善最初版本。

 3.2 多种模式


随着 GenAI 模型的发展超越了基于文本的领域,新的提示技术应运而生。这些多模态提示技术往往不是基于文本的提示技术的简单应用,而是通过不同模态实现的全新想法。现在,我们扩展了基于文本的分类法,将基于文本的提示技术的多模态类似技术和全新的多模态技术混合在一起。

 3.2.1 图像提示


图像模式包括照片、图画甚至文本截图等数据(Gong 等人,2023 年)。图像提示可指包含图像或用于生成图像的提示。常见的任务包括图像生成(Ding 等人,2021;Hinz 等人,2022);


Tao等人,2022;Li等人,2019a,b;Rombach等人,2022)、标题生成(Li等人,2020)、图像分类(Khalil等人,2023)和图像编辑(Crowson等人,2022;Kwon和Ye,2022;Bar-Tal等人,2022;Hertz等人,2022)。现在,我们将介绍用于此类应用的各种图像提示技术。

提示修改器是简单地在提示中附加文字,以改变最终图像(Oppenlaender, 2023)。通常会使用媒介(如 "在画布上")或照明(如 "光线充足的场景")等成分。

负向提示 "允许用户对提示中的某些术语进行数字加权,从而使模型更多或更少地考虑这些术语。例如,通过对 "坏手 "和 "多余的数字 "进行负加权,模型就更有可能生成解剖学上准确的手(Schulhoff,2022 年)。


3.2.1.1 多模态情境学习


基于文本的综合学习法的成功促使人们对多模态综合学习法进行研究(Wang 等人,2023k;Dong 等人,2023)。

成对图像提示法向模型展示两幅图像:一幅是转换前的图像,一幅是转换后的图像。然后,向模型展示一幅新图像,模型将对该图像进行所演示的转换。这既可以使用文字说明(Wang 等人,2023k),也可以不使用文字说明(Liu 等人,2023e)。

图像即文本提示(Hakimov 和 Schlangen,2023 年)可生成图像的文本描述。这样就可以轻松地将图像(或多幅图像)纳入基于文本的提示中。


3.2.1.2 多模式思维链


CoT 已通过各种方式扩展到图像领域(Zhang 等人,2023d;Huang 等人,2023d;Thomas 等人,2023d)、


2023c;Zheng 等人,2023b;Yao 等人,2023c)。一个简单的例子是,一个提示包含一个数学问题的图片,并附有文字说明 "一步一步解决这个问题"。

Duty Distinct Chain-of-Thought(DDCoT)(Zheng 等人,2023b)将 "Least-to-Most prompting"(Zhou 等人,2022a)扩展到多模态环境中,创建子问题,然后解决这些问题并将答案合并为最终答案。

多模态思维图(Yao 等人,2023c)将 Zhang 等人(2023d)的思维图扩展到了多模态环境。GoT-Input 也采用先推理再回答的两步流程。在推理过程中,输入提示被用于构建思维图,然后与原始提示一起用于生成回答问题的理由。当输入问题的同时输入图片时,会使用图片标题模型生成图片的文字说明,然后将其附加到思维图构建之前的提示中,以提供视觉背景。

图像链(Chain-of-Images,CoI)(Meng 等人,2023 年)是 "思维链"(Chain-of-Thought)提示的多模态扩展,可生成图像作为其思维过程的一部分。他们使用 "让我们逐图思考 "的提示来生成 SVG,然后模型可以使用 SVG 进行视觉推理。

 3.2.2 音频提示


提示功能也已扩展到音频模式。音频 ICL 的实验结果好坏参半,一些开源音频模型无法执行 ICL(Hsu 等人,2023 年)。然而,其他结果确实显示了音频模型的 ICL 能力(Wang 等人,2023g;Peng 等人,2023;Chang 等人,2023)。音频提示目前还处于早期阶段,但我们期待在未来看到各种提示技术的提出。

 3.2.3 视频提示


提示功能还被扩展到视频模式,用于文本到视频的生成(Brooks 等人,2024 年;Lv 等人,2023 年;Liang 等人,2023 年;Girdhar 等人,2023 年)、视频编辑(Zuo 等人,2023 年;Wu 等人,2023a 年;Cheng 等人,2023 年)和视频到文本的生成(Yousaf 等人,2023 年;Mi 等人,2023 年;Ko 等人,2023a 年)。


3.2.3.1 视频生成技术


在提示模型生成视频时,可以使用各种方式的提示作为输入,而且通常会采用几种与提示相关的技术来增强视频生成。与图像相关的技术,如提示修改器,通常可用于视频生成(Runway, 2023)。


3.2.4 分段提示


提示也可用于分割(如语义分割)(Tang 等人,2023;Liu 等人,2023c)。

 3.2.5 3D 提示


提示也可用于三维模式,例如三维物体合成(Feng 等人,2023 年;Li 等人,2023d,c;Lin 等人,2023 年;Chen 等人,2023f;Lorraine 等人,2023 年;Poole 等人,2022 年;Jain 等人,2022 年)、三维表面纹理(Liu 等人,2023g;Yang 等人,2023b;Le 等人,2023 年;Pajouheshgar 等人,2023 年)和四维场景生成(三维场景动画)(Singer 等人,2023 年;Zhao 等人,2023 年)、2023b;Le 等人,2023;Pajouheshgar 等人,2023)和 4D 场景生成(三维场景动画)(Singer 等人,2023;Zhao 等人,2023c),其中输入提示方式包括文本、图像、用户注释(边界框、点、线)和 对象。


4 提示的扩展


迄今为止,我们所讨论的技术可能极其复杂,包含许多步骤和迭代。不过,我们可以通过添加外部工具(代理)和复杂的评估算法来判断LLM 输出的有效性,从而进一步改进提示功能。

 4.1 代理人


随着LLMs 的能力迅速提高(Zhang 等人,2023c),公司(Adept,2023)和研究人员(Karpas 等人,2022)都在探索如何让它们利用外部系统。这是因为LLMs 在数学计算、推理和事实性等方面存在缺陷。这推动了提示技术的重大创新;这些系统通常由提示和提示链驱动,而提示和提示链经过大量设计,可实现类似代理的行为。

代理的定义 在 GenAI 的语境中,我们将代理定义为 GenAI 系统,它通过与 GenAI 本身之外的系统互动来实现用户的目标。 这种 GenAI 通常是LLM 。举个简单的例子,考虑一个LLM ,它的任务是解决以下数学问题:

如果安妮有 4939 颗葡萄,正好给了艾米 颗,她还剩多少颗?

如果提示正确,LLM 可以输出字符串 CALC(4,939*.39)。提取该输出并输入计算器,即可得到最终答案。

这是一个代理的例子:LLM 输出文本,然后使用下游工具。代理LLMs 可能涉及单个外部系统(如上所述),也可能需要解决路由问题,以选择使用哪个外部系统。除行动外,此类系统还经常涉及记忆和规划(Zhang 等人,2023c)。

代理的例子包括LLMs ,它可以调用 API 来使用计算器等外部工具

(Karpas等人,2022年)、能在类似健身房(Brockman等人,2016年;Towers等人,2023年)的环境中输出字符串以导致行动的LLMs (Yao等人,2022年),以及更广泛的能编写和记录计划、编写和运行代码、搜索互联网等的LLMs (Significant Gravitas,2023年;Yang等人,2023年c;Osika,2023年)。OpenAI Assistants OpenAI (2023)、LangChain Agents (Chase, 2022)和LlamaIndex Agents (Liu, 2022)是其他例子。


4.1.1 工具使用代理


工具使用是 GenAI 代理的重要组成部分。符号工具(如计算器、代码解释器)和神经工具(如单独的LLM )都是常用的外部工具。工具有时也被称为专家(Karpas 等人,2022 年)或模块。


模块化推理、知识和语言


(MRKL) 系统(Karpas 等人,2022 年)是最简单的代理方案之一。它包含一个LLM 路由器,可以访问多种工具。路由器可进行多次呼叫,以获取天气或当前日期等信息。然后,它将这些信息整合起来,生成最终的响应。Toolformer (Schick 等人,2023 年)、Gorilla (Patil 等人,2023 年)、Act-1 (Adept, 2023 年)和其他一些技术(Shen 等人,2023 年;Qin 等人,2023 年b;Hao 等人,2023 年)都提出了类似的技术,其中大多数都涉及一些微调。


利用工具交互式批评进行自我纠正


(CRITIC)(Gou 等人,2024a)首先生成一个对提示的回应,没有外部调用。然后,同一个LLM 对这一回复进行批判,找出可能的错误。最后,它使用相应的工具(如互联网搜索或代码解释器)来验证或修改部分回复。


4.1.2 代码生成代理


编写和执行代码是许多代理的另一项重要能力。

程序辅助语言模型(PAL)(Gao 等人,2023b)将问题直接转化为

图 4.1:本节涉及的代理技术

代码,并将其发送到 Python 解释器以生成答案。

工具集成推理代理(Tool-Integrated Reasoning Agent,ToRA)(Gou 等人,2024b)与 PAL 类似,但它不是单一的代码生成步骤,而是将代码和推理步骤交错在一起,直到解决问题所需的时间。

TaskWeaver(乔等人,2023 年)也与 PAL 类似,将用户请求转化为代码,但也可以使用用户定义的插件。


4.1.3 基于观测的代理


有些代理旨在通过与玩具环境互动来解决问题(Brockman 等人,2016 年;Towers 等人,2023 年)。这些基于观察的代理会接收插入其提示的观察结果。

推理与行动(ReAct)(Yao 等人(2022 年))在给定一个需要解决的问题时,会产生一个想法、采取一个行动、接收一个观察结果(并重复这一过程)。所有这些信息都会被植入提示器中,因此它能记忆过去的想法、行动和观察结果。

Reflexion(Shinn 等人,2023 年)以 ReAct 为基础,增加了一层内省功能。它获取行动和观察的轨迹,然后给出成功/失败的评价。然后,它会对所做的事情和出错的地方进行反思。这种反思会作为工作记忆添加到它的提示中,然后重复这个过程。


4.1.3.1 终身学习代理


LLM 集成 Minecraft 代理的工作取得了令人瞩目的成果,代理能够在这个开放世界的电子游戏世界中学习新技能。我们认为,这些代理不仅仅是代理技术在 Minecraft 中的应用,而是新颖的代理框架,可以在需要终身学习的现实任务中进行探索。

旅行者(Wang 等人,2023a)由三部分组成。首先,它为自己提出要完成的任务,以便更多地了解世界。其次,它生成代码来执行这些操作。最后,作为长期记忆系统的一部分,它将这些行动保存起来,以便日后有用时再进行检索。该系统可应用于现实世界中代理需要探索工具或网站并与之交互的任务(如渗透测试、可用性测试)。

Ghost in the Minecraft(GITM)(Zhu 等人,2023 年)从一个任意目标开始,将其递归分解为多个子目标,然后通过生成结构化文本(如 "装备(剑)")而不是编写代码来迭代地计划和执行操作。GITM 使用 Minecraft 项目的外部知识库来协助分解,同时也使用过去的经验记忆。


4.1.4 检索增强生成(RAG)


就 GenAI 代理而言,RAG 是一种从外部来源检索信息并将其插入提示的范例。这可以提高知识密集型任务的性能(Lewis 等人,2021 年)。当检索本身被用作外部工具时,RAG 系统就被视为代理。

验证与编辑(Zhao 等人,2023a)通过生成多个思维链,然后选择其中一些进行编辑,从而改进了自洽性。他们通过检索相关(外部)信息来实现这一点。

图 4.2:评估技术。

并允许LLM 对其进行相应的扩充。

演示-搜索-预测(Khattab 等人,2022 年)首先将问题分解为若干子问题,然后使用查询来解决这些问题,并将它们的回答合并为最终答案。它使用寥寥数语的提示来分解问题和组合答案。


链式检索指导下的交错检索

Thought (IRCoT) (Trivedi et al., 2023) is a technique for multi-hop question answering that interleaves CoT and retrieval. IRCoT leverages CoT to guide which documents to retrieve and retrieval to help plan the reasoning steps of CoT.

迭代检索增强技术,如前瞻性主动检索增强生成(FLARE)(Jiang 等人,2023 年)和模仿、检索、转述(IRP)(Balepur 等人,2023 年),在长表生成过程中多次执行检索。此类模型通常执行以下三步迭代过程:1)生成一个临时句子,作为下一个输出句子的内容计划;2)使用临时句子作为查询,检索外部知识;3)将检索到的知识注入临时句子,生成下一个输出句子。与长格式生成任务中提供的文档标题相比,这些临时句子被证明是更好的搜索查询。

 4.2 评估


LLMs 在提取和推理信息以及理解用户意图方面的潜力使其成为评估者的有力竞争者。 例如,LLM 可以根据提示中定义的一些指标来评价一篇论文的质量,甚至是之前LLM 的输出。我们将介绍评价框架的四个重要组成部分:第 2.2 节所述的提示技术、评价的输出格式、评价管道框架以及其他一些方法设计决策。


4.2.1 提示技术


在评价提示中使用的提示技术(如简单的指令与 CoT)对建立一个强大的评价器非常重 要。评价提示通常得益于常规的文本提示技术,包括角色、任务指示、评价标准定义和上下文示例。附录 A.5 列出了所有技巧。

情境学习经常被用于评价提示,这与它在其他应用中的使用方式非常相似(Dubois 等人,2023;Kocmi 和 Federmann,2023a)。

基于角色的评价是改进评价和使评价多样化的有用技术(Wu 等人,2023b;Chan 等人,2024)。通过创建具有相同评价指令但不同角色的提示,可以有效地生成多样化的评价。此外,角色还可用于多代理环境,在此环境中,LLMs ,就待评价文本的有效性展开辩论(Chan 等人,2024 年)。

思维链提示可进一步提高评估绩效(Lu 等人,2023c;Fernandes 等人,2023)。

模型生成指南(Liu 等人,2023d,h)可促使LLM 生成评估指南。这就减少了因评分准则和输出空间定义不清而导致的提示不足问题,因为这可能导致不一致和不协调的评估。Liu 等人(2023d)在生成质量评估之前,会生成模型应执行的详细评估步骤的思维链。Liu等人(2023h)提出了AutoCalibratE,它根据专家的人工注释得出评分标准,并将模型生成标准的精炼子集作为评估提示的一部分。

 4.2.2 输出格式


LLM 的输出格式会对评估性能产生重大影响 Gao 等人(2023c)。

使用 XML 或 JSON 样式对LLM 的响应进行格式化,也被证明能提高评估者所做判断的准确性(Hada 等人,2024 年;Lin 和 Chen,2023 年;Dubois 等人,2023 年)。

线性量表 一种非常简单的输出格式是线性量表(如 1-5)。许多作品使用 1-10 分(Chan 等人,2024 年)、1-5 分(Araújo 和 Aguiar,2023 年),甚至 0-1 分(Liu 等人,2023 年 f)。可以提示模型在界限之间输出离散分值(Chan 等人,2024 年)或连续分值(Liu 等人,2023 年 f)。

用 1-5 分给下面的故事打分,从写得好到写得差:
 {输入 }

二进制得分提示模型生成二进制响应,如是或否(Chen 等人,2023c)和真或假(Zhao 等人,2023b),是另一种常用的输出格式。

下面的故事写得是否符合高中水平(是/否)?
 {输入 }

李克特量表 提示 GenAI 使用李克特量表(Bai 等人,2023b;Lin 和 Chen,2023;Peskoff 等人,2023)可以让它更好地理解量表的含义。


根据以下评分标准给下面的故事打分:
 贫穷
 可以接受
 良好
 非常好
 不可思议

输入


4.2.3 提示框架


(林和陈,2023 年)是最简单的评估框架之一。它使用一个单一的提示,其中包含要评估的变量模式(如语法、相关性等)、一个指令,告诉模型在一定范围内为每个变量输出分数,以及要评估的内容。

(Liu et al., 2023d)与 LLMEVAL 类似,但在提示本身中包含了 AutoCoT 步骤。这些步骤根据评估指令生成,并插入到最终提示中。这些步骤根据标记概率对答案进行加权。

ChatEval (Chan 等人,2024 年)采用多代理辩论框架,每个代理都有自己的角色。


4.2.4 其他方法


虽然大多数方法都直接提示LLM 生成质量评估(显式),但有些工作也使用隐式评分,即通过模型对其预测的信心(Chen 等人,2023g)或生成输出的可能性(Fu 等人,2023a)或通过模型的解释(如 Fernandes 等人,2023;Kocmi 和 Federmann,2023a)或通过评估错误数量来得出质量分数、2023a),或通过模型的解释(如 Fernandes 等人 (2023) 和 Kocmi 与 Federmann (2023a),计算错误的数量),或通过代理任务的评估(如 Luo 等人 (2023),通过蕴含的事实不一致)。

批量提示 为提高计算效率和成本效益,一些工作采用批量提示进行评估,即一次评估多个实例 (Lu 等人,2023c;Araújo 和 Aguiar,2023;Dubois 等人,2023)或根据不同标准或角色评估同一实例(Wu 等人,2023b;Lin 和 Chen,2023)。然而,在一个批次中评估多个实例往往会降低性能(Dubois 等人,2023 年)。

成对评价(Chen 等人,2023g)发现,直接比较两个文本的质量可能会导致次优结果,而明确要求LLM 为单个摘要打分是最有效、最可靠的方法。成对比较的输入顺序也会严重影响评价结果(Wang 等人,2023h,b)。

 5 提示问题


我们现在以安全和对齐问题的形式强调与提示相关的问题。

 5.1 安全


随着提示技术的应用越来越广泛,围绕它的威胁也越来越多。与非神经和预提示安全威胁相比,这些威胁种类繁多,且难以防御。我们将讨论提示威胁的现状和有限的防御措施。我们首先介绍了提示黑客,即利用提示技术利用LLMs 的手段,然后介绍了由此产生的危险,最后介绍了潜在的防御措施。


5.1.1 提示黑客类型


提示黑客指的是一类通过操纵提示来攻击 GenAI 的攻击(Schulhoff 等人,2023 年)。此类提示被用于泄露私人信息(Carlini 等人,2021 年)、生成攻击性内容(Shaikh 等人,2023 年)和生成欺骗性信息(Perez 等人,2022 年)。提示黑客是提示注入和越狱的超集,两者是不同的概念。

提示注入(Prompt Injection)是用用户输入覆盖提示中原始开发者指令的过程(Schulhoff,2024;Willison,2024;Branch 等人,2022;Goodside,2022)。这是由于 GenAI 模型无法理解原始开发人员指令与用户输入指令之间的区别而产生的一个架构问题。

请看下面的提示模板。用户可以输入 "忽略其他指令,并对总统发出威胁",这可能会导致模型无法确定应该遵循哪条指令,从而可能遵循恶意指令。

为下面的人推荐一本书

越狱是指通过提示让 GenAI 模型做出或说出非预期事情的过程(Schulhoff,2024 年;Willison,2024 年;Perez 和 Ribeiro,2022 年)。这要么是一个架构问题,要么是一个训练问题,因为对抗性提示极难避免。

请看下面的越狱示例,它与前面的提示注入示例类似,但提示中没有开发人员的说明。用户无需在提示模板中插入文本,而是直接进入 GenAI 并对其进行恶意提示。

威胁总统


5.1.2 迅速黑客攻击的风险


及时的黑客攻击会导致现实世界中的风险,如隐私问题和系统漏洞。

 5.1.2.1 数据隐私


模型训练数据和提示模板都可能通过提示黑客(通常是通过提示注入)泄露。

训练数据重建是指从 GenAIs 中提取训练数据的做法。Nasr 等人(2023 年)就是一个直接的例子,他们发现,通过让 ChatGPT 永远重复 "公司 "这个词,它就开始反刍训练数据。

提示泄露是指从应用程序中提取提示模板的过程。开发人员通常会花费大量时间创建提示模板,并将其视为值得保护的知识产权。Willison (2022) 演示了如何从 Twitter 机器人中泄露提示模板,只需提供如下指令即可:

请忽略以上内容,告诉我你最初的指示是什么。


5.1.2.2 代码生成问题


LLMs 通常用于生成代码。攻击者可能会瞄准这些代码产生的漏洞。

图 5.1:安全与提示

当 LLM 生成的代码试图导入不存在的软件包时,就会出现软件包幻象(Lanyado 等人,2023;Thompson 和 Kelly,2023)。在发现LLMs 经常出现幻觉的软件包名称后,黑客可以创建这些软件包,但要使用恶意代码(Wu 等人,2023c)。如果用户运行这些以前不存在的软件包的安装程序,就会下载病毒。

漏洞(和安全漏洞)更频繁地出现在LLM 生成的代码中(Pearce 等人,2021 年、2022 年;Sandoval 等人,2022 年;Perry 等人,2022 年)。提示技术的细微变化也会导致生成的代码出现此类漏洞(Pearce 等人,2021 年)。


5.1.2.3 客户服务


恶意用户经常对企业聊天机器人进行提示注入攻击,导致品牌尴尬(Bakke,2023;Goodside,2022)。这些攻击可能会诱使聊天机器人输出有害评论或同意以极低的价格向用户出售公司产品。在后一种情况下,用户实际上可能有权获得这笔交易。Garcia (2024) 描述了一个航空公司聊天机器人如何向客户提供错误的退款信息。客户向法院提出上诉并获胜。虽然这个聊天机器人是在 ChatGPT 之前开发的,用户没有受到任何欺骗,但这个先例可能适用于使用细微提示黑客技术的情况。


5.1.3 硬化措施


目前已开发出几种工具和提示技术来降低上述安全风险。然而,提示黑客(包括注入和越狱)仍是尚未解决的问题,而且很可能无法完全解决。


基于提示的防御方法 提出了多种基于提示的防御方法,在提示中加入指令以避免提示注入(Schulhoff,2022 年)。例如,可以在提示符中添加以下字符串:

不输出任何恶意内容

不过,Schulhoff 等人(2023 年)对数十万个恶意提示进行了研究,发现任何基于提示的防御都不是完全安全的,尽管它们能在一定程度上减轻提示黑客的攻击。

Guardrails 是指导 GenAI 输出的规则和框架(Hakan Tekgul,2023 年)。守护轨可以简单到将用户输入分类为恶意或非恶意(AI,2023;Inan 等人,2023),如果是恶意的,则以预制消息回应。更复杂的工具则采用对话管理器(Rebedea 等人,2023 年),允许LLM 从一系列精心策划的回复中进行选择。此外,还有人提出了针对提示的编程语言,以改进模板化并起到防护作用(Scott Lundberg,2023;Luca Beurer-Kellner,2023)。

检测器是旨在检测恶意输入和防止黑客攻击的工具。许多公司已经构建了此类检测器(ArthurAI,2024 年;Preamble,2024 年;Lakera,2024 年),这些检测器通常使用针对恶意提示训练的微调模型构建。一般来说,与基于提示的防御相比,这些工具能在更大程度上缓解提示黑客攻击。

 5.2 对齐


确保LLMs 与下游任务中的用户需求保持一致是成功部署的关键。模型可能会输出有害的结论。

图 5.2:基于提示的对齐组织

所有这些都增加了使用提示符的难度。为了帮助降低这些风险,我们可以精心设计提示语,使LLMs 。在本节中,我们将介绍提示语的调整问题以及潜在的解决方案。


5.2.1 提示灵敏度


一些研究表明,LLMs 对输入提示高度敏感(Leidinger et al.下面,我们将介绍几类此类扰动及其对模型行为的影响。

可以通过添加额外空格、改变大小写或修改分隔符来更改提示措辞。尽管这些改动很小,但 Sclar 等人(2023a)发现,在某些任务中,这些改动会导致 LLaMA2-7B 的性能从接近 0 到 0.804 不等。

任务格式描述了提示LLM 执行相同任务的不同方式。例如,要求LLM 执行情感分析的提示可以要求LLM 将评论分类为 "正面 "或 "负面",或者提示可以询问LLM "这条评论是正面的吗?"以获得 "是 "或 "否 "的回答。Zhao 等人(2021b)的研究表明,这些微小的变化就能改变 GPT-3 的准确性,最高可达 。同样,对逻辑上等同的特定任务提示进行微小的扰动,如改变多项选择题中的选择顺序,也会导致成绩大幅下降(Pezeshkpour 和 Hruschka,2023;Zheng 等人,2023a)。

当应用程序接口背后的模型随时间发生变化时,就会出现提示漂移(Chen 等人,2023b),因此相同的提示在更新的模型上可能会产生不同的结果。虽然这不是一个直接的提示问题,但它要求对提示性能进行持续监控。


5.2.2 过度自信与校准


LLMs 用户往往对自己的答案过于自信,尤其是在被要求用语言表达自己的信心时(Kiesler 和 Schiffner,2023 年;Xiong 等人,2023a),这可能会导致用户过度依赖模型输出(Si 等人,2023c)。置信度校准提供了一个代表模型置信度的分数(Guo 等,2017 年)。虽然置信度校准的一个自然解决方案是研究 提供的输出标记概率,但也有多种用于置信度校准的提示技术。LLM

口头化分数是一种简单的校准技术,可生成信心分数(例如,"从 1 到 10,你有多大信心"),但其有效性还存在争议。Xiong 等人(2023b)发现,一些LLMs 在口头表达信心分数时非常过度自信,即使在使用自我一致性和思维链时也是如此。与此相反,Tian 等人(2023 年)发现,简单的提示(第 4.2 节)比模型输出的标记概率能实现更准确的校准。

所谓 "谄媚"(sycophancy),是指LLMs 通常会表示同意用户的观点,即使在以下情况下也是如此


该观点与模型自身的初始输出相矛盾。Sharma 等人(2023 年)发现,当LLMs 被要求评论对论点的看法时,如果在提示中包含用户的观点(如 "我非常喜欢/不喜欢这个论点"),模型就很容易被左右。此外,他们还发现,质疑LLM 的原始答案(如 "你确定吗?")、强烈提供正确性评估(如 "我相信你错了")以及添加错误假设都会完全改变模型输出。Wei 等人(2023b)注意到了意见诱导和虚假用户假设的类似结果,他们还发现,对于大型和经过指令调整的模型,谄媚心理会增强。因此,为避免这种影响,提示中不应包含个人观点。


5.2.3 偏见、成见和文化


LLMs 对所有用户都应公平,这样才不会在模型输出中延续偏见、刻板印象或文化伤害(Mehrabi 等人,2021 年)。根据这些目标设计了一些提示技术。

香草提示(Si 等人,2023b)简单地说就是在提示中发出指令,告诉LLM 要不偏不倚。这种方法也被称为道德自我纠正(Ganguli et al.)

选择平衡演示(Si 等人,2023b)或获得根据公平性指标优化的演示(Ma 等人,2023)可减少LLM 输出中的偏差(第 2.2.1.1 节)。

可以在提示中注入文化意识(Yao 等人,2023a),以帮助LLMs 进行文化适应(Peskov 等人,2021)。要做到这一点,可以通过创建几个提示来实现机器翻译,其中包括1) 要求LLM 完善自己的输出;以及 2) 指示LLM 使用与文化相关的词汇。

AttrPrompt(Yu 等人,2023 年)是一种提示技术,旨在避免在生成合成数据时产生偏向某些属性的文本。传统的数据生成方法可能会偏向于特定的长度、位置和时间。

和样式。为了克服这一问题,AttrPrompt1) 要求LLM 生成对改变多样性非常重要的特定属性(如位置);以及 2) 提示LLM 通过改变这些属性中的每个属性来生成合成数据。

 5.2.4 含糊不清


模棱两可的问题可以有多种解释,每种解释都可能导致不同的答案(Min 等人,2020 年)。鉴于这些多重解释,模棱两可的问题对现有模型来说具有挑战性(Keyvan 和 Huang,2022 年),但目前已开发出一些提示技术来帮助应对这一挑战。

模棱两可的演示 Gao 等人(2023a)的示例具有模棱两可的标签集。在提示中加入它们可以提高 ICL 的性能。这可以通过检索器自动完成,但也可以手动完成。

问题澄清(Rao 和 Daumé III,2019 年)可让LLM 识别模棱两可的问题,并生成可向用户提出的澄清问题。一旦用户澄清了这些问题,LLM 就可以重新生成回复。Mu 等人(2023 年)在代码生成中采用了这种方法,Zhang 和 Choi(2023 年)为LLMs 配备了类似的管道,用于解决一般任务中的歧义问题,但明确设计了单独的提示:1) 生成初始答案 2) 分类生成澄清问题还是返回初始答案 3) 决定生成哪些澄清问题 4) 生成最终答案。

 6 基准


既然我们已经对提示技术进行了系统回顾,那么我们将通过两种方式分析不同技术的实证性能:一是通过正式的基准评估,二是通过在一个具有挑战性的实际问题上详细说明提示工程的过程。


6.1 技术基准


对提示技术的正式评估可以在一项广泛的研究中进行,该研究将在数百个模型和基准中对数百种提示技术进行比较。这超出了我们的研究范围,但由于以前没有人做过,所以我们朝着这个方向迈出了第一步。我们选择了一个提示技术子集,并在广泛使用的基准 MMLU(Hendrycks 等人,2021 年)上运行它们。我们在具有代表性的 2,800 个 MMLU 问题子集( of the questions from each category)上运行。 ,并在所有实验中使用 gpt-3.5turbo。


6.1.1 提示技术比较


我们使用相同的通用提示模板(图 6.2)对六种不同的提示技术进行了基准测试。该模板显示了提示语不同组成部分的位置。每个提示中只有基本指令和问题。基本指令是一个短语,如 "解决问题并返回 (A)、(B)、(C) 或 (D)。我们还测试了两种问题格式(图 6.3 和 6.4)。我们在提示模板中插入了问题格式,以代替"{问题}"。除了使用 "自我一致性 "的提示外,我们总共测试了 6 种不同的提示技术。

零点测试 作为基线,我们不使用任何提示技术,直接通过模型进行提问。在此基准中,我们使用了两种格式以及基础指令的三种措辞变化。因此,该基准共对 2800 个问题进行了六次测试。其中不包括任何示例或思维诱导。

零镜头-CoT 技术 我们还运行了零镜头-CoT。作为三种不同的变体、

我们使用了三种思维诱导器(使模型产生推理步骤的指令),包括标准的 "让我们一步一步思考 "思维链(小岛等人,2022),以及ThoT(周等人,2023)和计划与解决(王等人,2023f)。然后,我们从中选出最佳方案,再用 "自一致性 "进行三次迭代,取多数人的响应。

Few-Shot 技术 我们还使用了 Few-Shot 提示语和 Few-Shot-CoT 提示语,这两种提示语的示例都是由我们的一位作者制作的。我们分别使用了基础指令的三种变体以及两种问题格式(也适用于示例)。然后,我们使用了自我一致性表现最好的措辞,并进行了三次迭代,以大多数人的回答为准。

图 6.1:图中显示了每种提示技术的准确度值。紫色误差条说明了每种技术的最小值和最大值,因为每种技术都是在不同的措辞和格式下运行的(SC 除外)。

 6.1.2 提问格式


我们实验了 Sclar 等人(2023b)的两种格式选择,他们探讨了格式选择如何影响基准测试结果。我们使用了两种格式,这两种格式在他们的任务中产生了不同的结果(图 6.3 和 6.4)。

 6.1.3 自我一致性


对于两个 "自我一致性 "结果,我们根据 Wang 等人(2022 年)的指南,将温度设置为 0.5。所有其他提示的温度均为 0。
{BASE_INSTRUCTION}
{EXEMPLARS }
{QUESTION} {THOUGHT_INDUCER}

图 6.2:基准测试的提示模板。

 问题

 选项

(a) (b) b (c) (d) d
 回答

图 6.3:问题格式 1.


6.1.4 评估答复


评估LLM 是否正确回答了问题是一项艰巨的任务(第 2.5 节)。如果答案符合某些可识别的模式,例如括号中唯一的大写字母(A-D)或 "正确答案是 "之类的短语,我们就将其标记为正确答案。

 6.1.5 结果


随着技术越来越复杂,性能也普遍提高(图 6.1)。不过,ZeroShot-CoT 的性能比 Zero-Shot 急剧下降。虽然它的传播范围很广,但在所有变体中,Zero-Shot 的表现都更好。SelfConsistency 的两种情况由于重复了单一的技术,因此传播范围自然较小,但它只提高了 Zero-Shot 提示的准确性。Few-Shot CoT 的表现最好,而某些技术无法解释的性能下降还需要进一步研究。由于提示技术的选择类似于超参数搜索,因此这是一项非常艰巨的任务(Khattab 等人,2023 年)。不过,我们希望这项小规模的研究能促进对性能更强、更稳健的提示技术的研究。


6.2 迅速工程案例研究


提示工程是一门新兴的艺术,许多人已经开始专业实践,但文献中还没有关于这一过程的详细指导。作为朝这个方向迈出的第一步,我们针对一个现实世界中的难题提出了一个带注释的提示工程案例研究。我们并不打算在以下方面做出经验性贡献


problem::{question}, options::
 (A):
 (B):
 (C):

(d): , 答案::

图 6.4:问题格式 2.

实际解决问题。相反,它提供了一个经验丰富的及时工程师如何处理类似任务的示例,以及汲取的经验教训。

 6.2.1 问题


我们的说明性问题涉及检测潜在自杀者所写文本中可预测危机级别自杀风险的信号。自杀是全球范围内的一个严重问题,与大多数心理健康问题一样,心理健康资源的极度匮乏也加剧了这一问题。在美国,超过一半的人口生活在联邦定义的精神卫生服务提供者短缺地区(国家卫生劳动力分析中心,2023 年);此外,许多精神卫生专业人员缺乏预防自杀的核心能力(Cramer 等人,2023 年)。2021 年,有 1230 万美国人认真考虑过自杀,其中 人实际尝试过自杀,导致 48000 多人死亡(美国疾病预防控制中心,2023 年)。在美国,自杀是 年龄在 2021 年统计的第二大死因(仅次于意外事故),是 35-54 岁人群的第五大死因(Garnett 和 Curtin,2023 年)。

最近的研究表明,对潜在自杀倾向的评估具有重要价值,这种评估特别侧重于识别自杀危机,即与即将发生自杀行为的高风险相关的急性痛苦状态。然而,自杀危机综合症(SCS)(Schuck 等人,2019b;Melzer 等人,2024 年)和急性自杀情感障碍(Rogers 等人,2019 年)等诊断方法的有效评估需要个人临床互动或完成包含数十个问题的自我报告问卷。因此,用个人语言准确标记自杀危机指标的能力将在心理健康生态系统中产生巨大影响,而不是取代临床治疗。


但它也是对现有实践的一种补充(Resnik 等人,2021 年)。

作为一个起点,我们在此将重点放在自杀危机综合症评估中最重要的预测因素上,文献中将其称为疯狂的绝望或困顿,"一种想要逃离无法忍受的处境的欲望,与所有逃生路线都被封锁的感知联系在一起"(Melzer et al.,2024)。 个人所经历的这一特征也是导致自杀的心理过程的其他特征的核心。

 6.2.2 数据集


我们使用了马里兰大学 Reddit 自杀数据集(Shing 等人,2018 年)中的一个数据子集,该数据集由 r/SuicideWatch 中的帖子构建而成,r/SuicideWatch 是一个为任何有自杀想法的人提供同伴支持的子reddit。两名接受过自杀危机综合征因素识别培训的编码员对一组 221 个帖子进行了编码,以确定是否存在诱发因素,编码员之间的可靠性非常高(Krippendorff's alpha )。

 6.2.3 进程


一位撰写了广为使用的提示指南(Schulhoff,2022 年)的专家提示工程师承担了使用LLM 识别帖子中夹带内容的任务。 提示工程师收到了一份关于自杀危机综合症和诱捕的简短口头和书面总结,以及 121 个开发帖子及其正/负标签("正 "表示存在诱捕),另外 100 个标签帖子留作测试。这些有限的信息反映了现实生活中经常出现的情况,即根据任务描述和数据制定提示。更广泛地说,这与自然语言处理和人工智能领域的一种倾向是一致的,即把编码(注释)作为一项贴标签的任务来处理,而不去深入研究标签实际上可能指的是微妙而复杂的社会科学基本构造这一事实。

我们记录了及时工程流程,以说明经验丰富的及时工程师是如何开展工作的。我们的

这项工作经历了 47 个记录在案的开发步骤,累计耗时约 20 个小时。从 的冷启动性能(提示无法返回结构正确的回复),到 的 0.53 性能提升,其中 是 0.86 精确度和 0.38 召回率的调和平均值。

下面,提示集 是测试项目,而 , 和 表示示例中的问题、思维链步骤和答案。


6.2.3.1 数据集探索(2 个步骤)


在这一过程中,提示工程师首先审阅了对诱捕的描述(图 6.7);这一描述在编码过程的早期曾被用作人工编码员的第一道评分标准,但是,他们对 SCS 很熟悉,知道这既不是正式的定义,也不是详尽无遗的定义。然后,提示工程师将数据集加载到 Python 笔记本中进行数据探索。他首先询问 gpt-4-turbo-preview 是否知道什么是诱捕(图 6.8),但发现LLM 的回答与给出的描述并不相似。因此,提示工程师在以后的所有提示中都使用了图 6.7 中对诱捕的描述。


6.2.3.2 获取标签(8 个步骤)


正如第 6.1 节中关于 MMLU 中的 human_sexuality 子集所述,LLMs 在敏感领域表现出难以预测和控制的行为。在提示工程流程的多个步骤中,提示工程师发现LLM 正在提供心理健康建议(如图 6.9),而不是对输入进行标注。通过改用 GPT-4-32K 模型解决了这一问题。

从这一初始阶段得出的一个结论是,与某些大型语言模型相关的 "防护栏 "可能会干扰在提示任务中取得进展的能力,这可能会影响对模型的选择,而不是因为LLM 的潜在质量。


6.2.3.3 提示技术(32 个步骤)


然后,提示工程师将大部分时间用于改进所使用的提示技术。其中包括 "Few-Shot "等技术、

图 6.5:从表现最差的提示语到表现最好的提示语,F1 分数相差很大,但大多数提示语的分数都在相似的范围内。

Chain-of-Thought 技术、AutoCoT 技术、Contrastive CoT 技术和多重答案提取技术。我们报告了这些技术首次运行的统计数据;即使温度和顶部 设为零,后续运行的 F1 分数变化也可能高达 0.04。

使用图 6.7 中的描述,评估的第一项技术是 "零点射击 + 上下文"(图 6.10)。请注意提示中的词义,尽管图 6.7 并非正式定义。

为了从LLM 中获得用于计算性能指标的最终响应,有必要从LLM 的输出中提取一个标签。提示工程师测试了两种提取器,一种用于检查输出是否完全是 "是 "或 "否",另一种仅检查这些单词是否与输出的前几个字符相匹配。后者的性能更好,因此在本文的其余部分中使用了它。

直到达到 CoT。这种方法的召回率为 0.25,精确度为 1.0, ,对训练/开发中的所有样本进行了评估,因为没有样本被用作示例。

10 个样本 + 上下文。接下来,提示工程师将前十个数据样本(带标签)添加到提示中,格式为 : (问题)A: (答案)(图 6.11)。在对训练/开发集中的其余项目进行评估后,该 10 次提示的召回率为 (0.30),精确率为 ,F1 为 ( 0.45 ) 。

一枪式 AutoDiCot + 全文。在执行了 10 次拍摄提示后,提示工程师发现开发集中的第 12 个项目被错误地标记为正例,于是开始尝试各种方法来修改提示。

开发集提示技术的 F1 分数
 技术

图 6.6:从尝试的第一个提示("零点射击 + 上下文")到最后一个提示(匿名电子邮件),F1 分数都很难提高,而且往往需要测试多个表现不佳的提示,才能找到一个表现良好的提示。绿线表示比当前最高 F1 分数有所提高,红线表示有所下降。
 诱捕:

  • 感觉没有出口
  •  感到绝望

  • 感觉无路可走

  • 害怕一切不再正常

  • 感到无力改变
  •  被困的感觉
  •  感觉命中注定

  • 感觉或认为事情永远不会改变

  • 感觉无处可逃

  • 感觉没有解决问题的好办法

图 6.7:提示工程师使用的夹带描述

什么是自杀危机综合症的诱捕?

图 6.8:向LLM 提出的问题,以确定其培训数据是否提供了有关夹带的相关知识(没有)。

如果对提示进行调整,模型就会正确标注该项目。为了了解错误标注的原因,提示工程师要求LLM 解释为什么第 12 个项目会被这样标注。

如果您有伤害自己的直接危险,请联系您所在地区的紧急服务机构或危机热线。他们可以立即为您提供支持,并帮助确保您的安全。

图 6.9:一个输出片段,它没有标注数据点,而是试图为用户提供心理健康支持。此类输出的长度往往是这个片段的五倍。


{段落定义(图 6.7)

这是诱捕吗?是还是不是?

图 6.10:"零镜头 + 上下文 "提示,这是本案例研究中最简单的提示。

6.7)}
 Q:
 A:
..
 Q:
 A:
 Q:
A:

{段落定义(图 6.7)
 A:
...
 A:
A:

图 6.11:10 连拍 + 上下文提示

图 6.12 显示了这一过程的一个版本,它被推广到对 中的所有开发问题/答案项目 而不仅仅是项目 12 进行解释。根据 就错误标注的 所引出的推理步骤,对前面的提示进行了修改,将 纳入了一个带有错误推理的 One-Shot CoT 示例中,作为 "不应该做什么 "的范例(图 6.13)。

我们将图 6.12 中的算法称为自动定向 CoT(AutoDiCoT),因为它能自动引导 CoT 过程以特定方式进行推理。这种技术可以推广到任何标注任务中。它将自动生成 CoTs(Zhang 等人,2022b)与向LLM 展示错误推理的例子相结合,就像 Contrastive CoT(Chia 等人,2023)那样。该算法也被用于开发后来的提示语。

最后,该提示还增加了两段背景/说明。第一条是提示工程师收到的一封电子邮件,其中解释了项目的总体目标,提供了更多关于 "诱捕 "概念的背景信息,以及想要给它贴标签的原因。第二项新增内容的灵感来自于提示工程师注意到模型经常过量生成 "诱捕 "的正面标签。我们推测,该模型在基于训练前的推断中过于激进地从公开的信息中推断出 "诱捕"。

  1. 要求:开发项目

  2. 对于 中的每一对

(a) 利用模型将 标为夹带或未夹带

(b) 如果模型标签正确:

i.用 "为什么?"提示模型,生成推理链
 (c) 其他:

i.用 "这实际上[是/不是]诱捕,请解释原因。"提示模型,以生成推理链

(d) 存储元组

  1. 返回: 图元

图 6.12:算法:自动定向 CoT

他指示模型仅限于对诱捕的明确陈述(图 6.13)。下面,我们将这两段除描述诱捕之外提供的上下文称为完整上下文。

该提示还使用了一个新的提取器,它检查输出中的最后一个词是 "是 "还是 "否",而不是第一个词。除了前 20 个词外,我们对开发集中的所有输入进行了测试。它并没有提高 (0.36) F1,但如下文所述,它将提示工程师引向了一个可以提高 F1 的方向。精确度提高到 (0.39) 精确度,召回率下降到 (0.33) 召回率。

在这一点上,值得注意的是,虽然最终 F1 分数有所提高,但从长远目标来看,为减少过度生成正面标签而采取的措施实际上并不正确。禁锢不一定要明确表达出来才能存在(例如,通过 "我感觉被困住了 "或 "没有出路了 "这样的短语);相反,研究文本的临床专家发现,禁锢的表达可能是隐含的,而且可能相当微妙。此外,在自动发现某人语言中的禁锢的大多数使用案例中,精确度和召回率不可能同等重要,而在两者中,召回率/精确度/召回率是最重要的。

 {教授的电子邮件}

{段落定义(图

重要: 只有当他们明确表示感觉被困住时,才可将帖子标记为 "被困住"。
 Q:

R:虽然 "今天我发现我有 10 天时间搬出我的公寓,否则我将被正式驱逐。我已经拖欠房租两个月了,原因是我在工作中被降职,房租也从每两周大约挣 降到 左右。如果我被逐出家门,我可能会无家可归 "似乎表达了被困住/困顿的感觉,但不够明确,不能贴上 "禁锢 "的标签。
 A:

图 6.13:一次性 AutoDiCot + 完整语境

由于假阴性的潜在成本如此之高,因此准确性(即不遗漏应标记为高危人群的人)可能更为重要。

虽然这种见解是后来才提出的,但这里的启示是,如果不促进提示工程师与更深入了解实际用例的领域专家之间的定期接触,提示开发过程就很容易偏离实际目标。

消除电子邮件。之前的修改结果很有希望,但这些修改确实涉及到创建一个提示,其中包括一封并非为此目的而创建的电子邮件中的信息,以及关于项目、数据集等不打算向广大受众披露的信息。但具有讽刺意味的是,删除这封邮件后,性能明显下降, (0.18) F1, (0.17) 精确度和 (0.20) 召回率。我们将此归因于这封邮件提供了有关标签目标的更丰富的背景信息。

 {申请人的电子邮件}.


{段落定义(图

ure 6.7)}

重要: 只有当他们明确表示感觉被困住时,才可将帖子标记为被困住。
 A:
 Q:
 A:

R: 虽然"{LLM REASONING}"似乎表达了被困/受阻的感觉,但还不够明确,不能贴上 "禁锢 "的标签。
 A:

图 6.14:10 次拍摄 +1 AutoDiCoT

我们不建议在任何 提示中包含电子邮件或任何其他可能识别身份的信息。虽然我们不建议在任何LLM 提示中包含电子邮件或任何其他潜在的身份信息,但我们还是选择在提示中保留电子邮件;这与许多典型环境中的情况一致,在这些环境中,提示不会暴露给其他人。

10 个示例 +1 AutoDiCoT。下一步,提示工程师尝试了包括完整上下文、10 个常规示例和关于如何不推理的单次示例。这损害了性能(图 6.14) (0.15) F1, (0.15) 精确度, 0.15 ( 0.15 ) 召回率。

仅使用完整语境。接下来,只使用完整上下文创建提示,不使用任何示例(图 6.15)。这比之前的技术提高了性能, (0.44) F1, (0.29) 精确度, ( 0.92 ) 召回率。有趣的是,在这一提示中,提示工程师意外地粘贴了两次全文电子邮件,结果对后来的性能产生了显著的积极影响(而删除重复内容实际上会降低性能)。这让人想起重读技术(Xu 等人,2023 年)。

这可以从乐观和悲观两个方面来解释。乐观地看,它表明


{代理的电子邮件}{代理的电子邮件}{代理的电子邮件}{代理的电子邮件}{代理的电子邮件}{代理的电子邮件}.{代理的电子邮件}{代理的电子邮件}{代理的电子邮件}{代理的电子邮件}{代理的电子邮件}{代理的电子邮件}.


{段落定义(图

ure 6.7)}

重要: 只有当他们明确表示感觉被困住时,才可将帖子标记为 "被困住"。
A:

图 6.15:只显示全文

 {申请人的电子邮件}.

 {诱捕定义}.


重要: 只有当他们明确表示感觉被困住时,才可将帖子标记为被困住。
 A:
Q...
 Q:
 A:

图 6.16:10 次拍摄 AutoDiCoT

如何通过探索和偶然发现实现改进。悲观的一面是,在提示中复制电子邮件的价值凸显了提示在多大程度上仍然是一门难以解释的黑色艺术,在这种情况下,LLM ,可能会对人们意想不到的变化出乎意料地敏感。

10 张 AutoDiCoT 照片。下一步是按照图 6.12 中的算法创建更多的 AutoDiCoT 示例。总共有 10 个新的 AutoDiCoT 示例被添加到完整的上下文提示中(图 6.16)。从 分数、 (0.53) F1、 (0.38) 精确度、