在扩展大语言模型 (LLM) 及视觉 - 语言模型 (VLM) 能力方面,提示工程已成为关键技术。它通过特定任务的指令,即提示,提升模型效能,无需更改模型核心参数。这些提示能够通过给定的指令直接引导预训练模型完成下游任务,从而实现模型行为的精确调控。这些提示既可以是指导模型的自然语言说明,也可以是激发相关知识的向量表示。提示工程作为一个新兴领域,在多种场景下展现了其强大的应用潜力,包括问答系统、常识推理等。尽管如此,这一领域的方法和技术仍缺乏系统性的整理和理解。本文通过系统性概述提示工程的最新进展,并按应用领域进行分类,旨在填补这一空白。我们对每种提示方法进行了详细总结,包括其方法论、应用案例、相关模型及数据集。同时,我们探讨了各方法的优缺点,并提供了一个包含数据集、模型及关键技术点的分类图和表格。通过这一系统性分析,我们能够更深入地理解这个快速发展的领域,并指出未来研究的方向和挑战。
图 1: 提示工程要素的视觉概述:基于海量数据训练的大语言模型,构成提示的核心元素的指令与上下文,以及用户的输入界面。
1 引言
提示技术已成为提升预训练大语言模型(LLM)和视觉 - 语言模型(VLM)能力的关键。它通过设计特定的任务指令,即提示,来引导模型产出,无需改变其内部参数。这种技术特别在于它如何根本改变了 LLM 和 VLM 的适应能力,通过精心制定的指令微调模型产出,使它们能在各种任务和领域中表现卓越。这与以往需要重新训练或大量微调模型以适应特定任务的传统方式截然不同,提示技术正推动 AI 领域的界限,开启了充满可能性的未来。在这个不断变化的领域,持续的研究不断展现出提示技术的新方法和应用。其重要性体现在能够指导模型响应,从而提升 LLM 在不同行业中的适应性和应用性。当前的提示技术覆盖了从基础的零样本、少样本提示到更复杂的"代码链"提示等一系列技术。提示技术最初由 LLM 的研究推广,如 Liu 等人(2023 年),Tonmoy 等人(2024 年),Chen 等人(2023 年)的工作,后来又扩展到了 VLM 领域,如 Wu 等人(2023 年),Bahng 等人(2022 年)的研究。尽管 LLM 和 VLM 领域已有广泛的研究,但关于应用中心的提示技术系统概述的研究仍有所欠缺。随着提示技术的进步,迫切需要进行一项全面的调查,深入了解当下研究的应用和进展。本调查深入探讨了提示技术的最新进展,分析了 29 种不同的技术及其应用。通过系统性的审查,我们详尽地研究了这些前沿技术的应用、所用的语言模型和测试的数据集,对提示技术发展的全景进行了详细解读。同时,我们比较了这些技术的优劣,提供了它们效能的深入见解。我们还呈现了一幅全面的分类图谱,展示了这些技术如何使 LLM 在语言生成、问题回答、代码创造和推理任务等方面展现出前所未有的能力。
本次调研弥补了现有文献的空白,旨在为研究人员和从业者提供一个宝贵的资源,深入了解提示工程领域的最新进展及其发展趋势。论文的结构安排如下:第二节详细阐述了提示工程技术,从基础到高级,按照应用领域进行了划分;第三节总结全文并对未来的研究方向提出了思考。
本节介绍了在不同的树状结构中如何通过特定的配置实现信息的有序展示。配置涉及树的生长方向(向东),是否反转(是),锚点设置(基于西侧),以及其他视觉效果如矩形框、隐藏的绘制边界、圆角以及文本对齐方式等。此外,还包括了如何根据不同的层级调整文本框宽度和字体大小,以及如何通过深灰色的边缘和不同的线宽来增强视觉效果。
在"提示工程 (Prompt Engineering)"这一部分,我们探讨了如何在不需要广泛训练的情况下,通过填充特定颜色和设置文本宽度来适应新任务。这包括了使用零样本 (Zero-shot) 提示和少样本 (Few-shot) 提示的方法,分别由 Radford 等人(2019)和 Brown 等人(2020)提出。
接下来,我们讨论了"推理与逻辑 (Reasoning and Logic)"相关的技术,如连贯思考 (Chain-of-Thought, CoT) 提示,自动连贯思考 (Automatic Chain-of-Thought, Auto-CoT),自我一致性 (Self-Consistency),逻辑连贯思考 (Logical CoT) 提示,连贯符号 (Chain-of-Symbol, CoS) 提示,思考树 (Tree-of-Thoughts, ToT) 提示,思考图 (Graph-of-Thought, GoT) 提示,系统二注意力提示 (System 2 Attention Prompting),思考线索 (Thread of Thought, ThoT) 提示,以及表格链提示 (Chain of Table Prompting),由不同的研究者在 2022 到 2024 年间提出。
为了减少幻觉现象,"减少幻觉 (Reduce Hallucination)"部分介绍了如检索增强生成 (Retrieval Augmented Generation, RAG)、反应式提示 (ReAct Prompting)、验证链 (Chain-of-Verification, CoVe)、笔记链提示 (Chain-of-Note, CoN)、知识链提示 (Chain-of-Knowledge, CoK) 等技术。
在"用户互动 (User Interaction)"章节,我们讨论了如何通过主动提示 (Active-Prompt) 来增强与用户的互动。
"微调与优化 (Fine-Tuning and Optimization)"一节探讨了如何自动化提示工程 (Automatic Prompt Engineer, APE) 来优化模型表现。
"基于知识的推理与生成 (Knowledge-Based Reasoning and Generation)"介绍了自动推理和工具使用 (Automatic Reasoning and Tool-use, ART) 等方法。
此外,还有"提高一致性与连贯性 (Improving Consistency and Coherence)"、"管理情绪与语调 (Managing Emotions and Tone)"、"代码生成与执行 (Code Generation and Execution)"、"优化与效率 (Optimization and Efficiency)"、"理解用户意图 (Understanding User Intent)"以及"元认知与自我反思 (Metacognition and Self-Reflection)"等章节,都详细讨论了各自领域的最新进展和技术。
每一部分都紧密结合了当前最前沿的研究,展示了在人工智能领域如何通过精细化的提示设计来解决复杂问题,增强模型的理解能力,以及提高与用户的互动质量。
图 2: 大语言模型中提示工程技巧的系统分类,这一分类依据应用领域而定,为在不同场合下定制化提示提供了一个精细化的框架。
2 提示工程
本节内容围绕应用领域将提示工程的技巧进行了系统整理,并对提示技术的发展脉络进行了简明扼要的回顾,涵盖了从零样本提示到最新技术的进展。
2.1 面向新任务的轻量级训练方法
2.1.1 零样本提示
零样本提示技术标志着在利用大型语言模型方面的一大进步。这种方法(Radford 等人,2019)允许我们在没有大量训练数据的情况下,通过精心设计的提示来引导模型完成新的任务。具体来说,模型通过提示获得任务描述,但没有特定任务的标注数据进行训练。模型依靠已有的知识,根据提示来为新任务做出预测。
2.1.2 少样本提示
与零样本提示不同,少样本提示通过提供少数几个输入输出示例,帮助模型理解特定的任务(Brown 等人,2020)。这几个高质量的示例能显著提升模型在复杂任务上的性能,相较于完全没有示例的情况。然而,引入这些示例需要更多的令牌,对于长文本输入可能是个挑战。而且,示例的选择和编排对模型的行为有重大影响,如对常见词汇的偏好可能会影响少样本提示的效果。虽然少样本提示提高了处理复杂任务的能力,尤其是在大型预训练模型如 GPT-3 中,但精心设计提示来获得最佳性能并减少不希望的模型偏见仍然非常关键。
2.2 推理与逻辑
2.2.1 链式推理引导技术
大语言模型在处理复杂的推理任务时往往遇到困难,这限制了它们的发挥潜力。为了解决这一问题,Wei 等人在 2022 年提出了一种名为链式推理引导(CoT)的新技术,旨在通过特定的提示方式促进大语言模型进行连贯且逐步的推理。这一方法的核心贡献是它能够相比传统的提示方式,更有效地促使大语言模型给出有结构、深思熟虑的回答。通过系列实验,研究者证明了链式推理引导技术的独特价值,特别是它在引导模型进行逻辑推理过程中的能力,使得模型能够更深入地理解问题。举个例子,这种提示方式能够详细展示解决复杂数学问题的逻辑推理步骤,类似于人类解题时的思维过程。应用这种技术,研究者们在 PaLM 540B 上针对数学和常识推理的测试中取得了前所未有的准确率,高达 90.2%。
2.2.2 自动化链式推理引导技术
手动创建高质量的链式推理示例既费时又效率不高。因此,Zhang 等人在 2022 年提出了一种自动化链式推理引导(Auto-CoT)技术,它通过自动生成"让我们一步一步来思考"这类提示,帮助大语言模型构建推理链。这种方法特别注意到单个推理链可能出现的错误,通过多样化采样来增加鲁棒性。它针对不同的问题生成多种独特的推理链,组合成最终的示例集,这种自动化的多样化采样方法有效减少了错误,提高了少量样本学习的效率,避免了手动创建推理链的繁重工作。使用这种技术,研究者们在 GPT-3 上进行的算术和符号推理任务测试中,相比传统的链式推理引导技术,平均准确率分别提高了 1.33% 和 1.5%。
2.2.3 自我一致性的提升
Wang 等人(2022 年)提出了一个新的解码策略:自我一致性。这个方法在处理需要通过连贯推理来解答的复杂问题时,相较于传统的贪婪解码方式,能显著提高推理的性能。自我一致性通过从语言模型的解码器中抽取不同的推理路径,生成多种可能的推理链条。接着,它通过综合这些推理链,找出最为一致的答案。这种策略基于这样一个观察:那些需要深入分析的问题往往存在更多的推理可能性,这样就更有可能找到正确答案。自我一致性与连贯思维(CoT)提示的结合,在多项基准测试中都实现了显著的准确率提升,例如,在 GSM8K 上提高了 17.9%,在 SVAMP 上提高了 11.0%,在 AQuA 上提高了 12.2%,在 StrategyQA 上提高了 6.4%,在 ARC 挑战上提高了 3.9%。
2.2.4 逻辑连贯思维(LogiCoT)提示
对于大语言模型(LLMs),能够进行逻辑推理对解决跨领域的复杂多步问题至关重要。与现有的逐步推理方法(如连贯思维提示)相比,Zhao 等人(2023 年)提出的逻辑连贯思维(LogiCoT)提示引入了一种新的框架。这个框架借鉴了符号逻辑的原理,通过一种更加条理清晰和结构化的方式来增强推理过程。特别地,LogiCoT 采用了反证法,即通过证明某个推理步骤如果导致矛盾,则该步骤必定是错误的,来核验和修正模型生成的推理步骤。这种"思考 - 核验 - 修正"的循环流程有效减少了逻辑错误和错误假设。在 Vicuna-33b 和 GPT-4 的测试中,LogiCoT 在推理能力上的提升非常显著,与传统 CoT 相比,在 GSM8K 数据集上分别提高了 0.16% 和 1.42%,在 AQuA 数据集上提高了 3.15% 和 2.75%。
2.2.5 符号链提示技术(CoS)
当处理涉及复杂空间关系的任务时,大语言模型(LLMs)常常会遇到挑战,原因在于它们依赖的自然语言很容易含糊其辞,且容易带有偏见。为了突破这一限制,Hu 等研究者在 2023 年提出了一种新方法:符号链提示技术(CoS)。这种方法不使用自然语言,而是采用简化的符号作为提示。CoS 的优势显而易见:它不仅让提示变得更加清晰和简洁,还显著提升了模型处理空间关系问题的能力,并且让人们更容易理解模型的工作原理。尽管如此,CoS 在扩展性、适用性、与其他技术整合以及符号基础上的推理解释性方面还面临一些挑战。值得一提的是,采用 CoS 之后,ChatGPT 在处理 Brick World 空间任务的准确率从 31.8% 跃升至 92.6%,并且在简化提示过程中,提示所需的符号数量减少了高达 65.8%,既提高了效率,又保持了高准确性。
2.2.6 思维树提示框架(ToT)
Yao 等人和 Long 在 2023 年提出了一种名为思维树(ToT)的新型提示框架,旨在提升模型处理那些需要探索和前瞻性思考的复杂任务的能力。ToT 在传统提示方法的基础上进一步发展,通过构建一个包含中间推理步骤的树状结构来进行扩展,这些步骤被称为"思维"。每一个"思维"都是朝向最终答案前进的连贯语言序列。这一结构使得语言模型能够通过评估这些"思维"在解决问题中的进展来进行有目的的推理。ToT 通过将产生和评价"思维"的能力与搜索算法(如宽度优先搜索或深度优先搜索)结合起来,实现了对推理链条的系统性探索,使模型能够在发现有前景的解决方案时进行扩展,或在遇到错误时回溯。在"24 点游戏"这一任务中,ToT 的表现尤为出色,成功率高达 74%,远超传统方法的 4%。此外,在处理单词级任务时,ToT 的成功率也达到了 60%,显著优于传统方法的 16%。
2.2.7 图思维提示方法
我们的思维过程往往不走直线,这对于按部就班推进的传统思维树提示方法来说,是一个不小的挑战。Yao 等人在 2023 年提出了一种新颖的"图思维"(GoT) 提示方法。这种方法通过构建思维图谱来模拟人脑的非线性思维模式,允许我们在不同的思维路径之间自由跳跃、回溯和综合信息。这样,我们就能从多个角度聚合思考,突破传统线性思维的限制。其核心创新在于,将推理过程视为一个方向性的图结构,并通过灵活的模块化设计来实现思维的多样化转换。这种方法不仅更接近人类的思维习惯,还能有效提升模型处理复杂问题的能力。实验证明,与传统的连续提示(CoT)相比,GoT 在一些任务上显示出了显著的性能提升,例如,在 GSM8K 数据集上,T5-base 和 T5-large 分别提高了 3.41% 和 5.08% 的准确率,而在 ScienceQA 上,相比于最先进的多模态 CoT,分别提高了 6.63% 和 1.09%。
2.2.8 第二系统注意力机制
在大型语言模型中,传统的软注意力机制有时会引入无关的信息,这会影响模型生成答案的准确性。为了解决这个问题,Weston 和 Sukhbaatar 在 2023 年提出了一种名为"第二系统注意力机制"(S2A) 的新方法。该方法通过重新生成输入的上下文,使模型能专注于最相关的信息部分,从而提升了模型对信息的处理质量和响应的相关性。具体来说,S2A 通过一个两步骤的过程------先是上下文的再生成,然后是在这个精炼后的上下文基础上进行答案生成,以此来优化注意力机制和提升回答的质量。该方法在多个任务上进行了测试,包括事实性问答、长文本生成和数学问题解答等,在事实性问答任务中,S2A 实现了 80.3% 的准确率,显著提升了事实的准确性;在长文本生成方面,它还提高了文本的客观性,得分达到了 3.82 分(满分 5 分)。
2.2.9 思维脉络 (ThoT) 提示法
Zhou 等人 (2023) 提出了思维脉络 (Thread of Thought, ThoT) 提示法,这是一种旨在提升大语言模型 (LLMs) 在复杂情境中推理能力的技术。该方法借鉴人类思维方式,将复杂情境分解为易于管理的小段进行逐步分析。它采取双阶段策略:先对每个小段进行总结和审视,然后再细化信息以形成最终答案。ThoT 的灵活性特别突出,可作为一个多用途的"即插即用"模块,有效提升各种模型和提示方法的推理性能。在问答和对话数据集的测试中,尤其是在复杂环境下,ThoT 实现了高达 47.20% 和 17.8% 的性能提升。
2.2.10 表格链式提示法
传统方法如 CoT、PoT 和 ToT 通过自由文本或代码展现推理步骤,在处理复杂的表格数据时常常遇到困难。Wang 等人 (2024) 开发了创新的表格链式 (Chain-of-Table) 提示法。这种方法通过逐步执行表格上的 SQL/DataFrame 操作,实现动态的表格推理,每一步的迭代都能改善中间结果,从而增强大语言模型通过逻辑推理链作出预测的能力。显著地,表格链式提示法在 TabFact 和 WikiTQ 这两个标准表格数据集上分别实现了 8.69% 和 6.72% 的性能提升。
2.3 减轻生成偏差
2.3.1 检索增强式生成 (RAG)
尽管大语言模型 (LLMs) 已在文本生成方面取得了革命性进展,但它们对有限且固定的训练数据的依赖限制了在需要外部知识的任务中提供准确答案的能力。传统的提示方法无法解决这一问题,且需要成本高昂的重新训练。检索增强式生成 (Retrieval Augmented Generation, RAG) 由 Lewis 等人 (2020) 提出,通过将信息检索技术无缝整合进提示过程,提供了一种全新的解决方案。RAG 分析用户的输入,制定针对性的查询,并在预建的知识库中寻找相关信息。检索到的信息片段被整合进原始提示中,为其增加了背景上下文。这种增强的提示方法使得大语言模型能够创造出既创新又准确的回答。RAG 通过其灵活性突破了传统模型的局限,为那些需要最新知识的任务提供了革命性的改进。在开放域问答 (ODQA) 的基准测试中,RAG 超越了序列到序列 (seq2seq) 模型和特定任务架构,准确匹配得分在 TriviaQA 上达到了 56.8%,在自然问题 (Natural Questions) 上达到了 44.5%。
2.3.2 ReAct 提示技术
不同于传统研究将推理和行为分开来看的做法,由 Yao 等人在 2022 年提出的 ReAct 技术,赋予了大语言模型同时进行推理生成和针对特定任务采取行动的能力。这种方法让推理和行动之间产生了更好的协同效应,使模型能够在处理突发情况时更有效地制定、跟踪和更新行动方案。ReAct 被应用于各种语言处理和决策任务中,并且在性能上超越了当前最先进的方法。特别是在问题解答(HotpotQA)和事实核验(Fever)任务中,ReAct 通过与简易的维基百科 API 的交互,有效地解决了信息虚构和错误传播的问题,并提供了更易于理解的解决方案路径。在 ALFWorld 和 WebShop 等交互式决策任务中,ReAct 也显示了卓越的性能,分别达到了 34% 和 10% 的成功率,这些成就是在最少的上下文示例输入下完成的。
2.3.3 验证链式 (CoVe) 提示技术
为了应对大语言模型中的信息虚构问题,Dhuliawala 等人在 2023 年提出了一种名为验证链式 (CoVe) 的方法。该方法包括四个系统步骤:生成初步回答、规划验证问题以检验工作、独立回答这些问题,并基于验证结果修正初步回答。通过这种有序的多步骤过程,大语言模型在逻辑推理能力上得到加强,即使面对矛盾信息也能减少错误。CoVe 模拟了人类进行验证的过程,提高了大语言模型输出的一致性和精确度。在处理列表式问题、问答以及长文本生成时,CoVe 成功降低了信息虚构的现象,同时确保了信息的真实性。通过集中的验证问题,模型能够识别并改正其错误,从而提高了准确性。
2.3.4 笔记链式 (CoN) 提示技术
传统的检索增强型语言模型(RALMs)通过引入外部知识来减少信息虚构,但外部信息的可靠性并非总是有保证的,这可能导致误导性回答。标准的 RALMs 在判断所拥有知识是否足够时面临挑战,往往无法在缺乏信息时回答"未知"。为了克服这些挑战,Yu 等人在 2023 年提出了一种新的方法,通过有效处理噪声大和不相关的文档,并准确应对未知情境来提升 RALMs 的鲁棒性。CoN 通过系统性评估文档的相关性,重点筛选关键且可靠的信息,排除不相关的内容。这种方法使得模型在提供回答时更加精确且与上下文相关。在多个开放域问答数据集上的测试显示,CoN 方法使得对噪声较大的文档的准确匹配得分平均提高了 7.9 分,同时将对超出预训练知识范围问题的拒绝率提高了 10.5 分,显著提高了模型的性能和可靠性。
2.3.5 知识链接提示方法
尽管传统的大语言模型提示技术在简单任务上表现出色,但面对复杂的推理挑战时,这些技术往往力不从心,导致输出结果不稳定且充满错误信息和模糊不清的思维逻辑。这主要是因为它们依赖于固定的知识源、无法有效生成结构化查询,以及缺乏适当的逐步指导机制。受到人类解决问题方法的启发,Li 等人 (2023d) 提出的知识链接提示法 (CoK) 通过将复杂任务分解为一系列有序步骤来克服这些限制。这一过程从全面的推理准备开始,为解决问题建立上下文和框架,然后进入动态的知识整合阶段,在此阶段,系统会仔细搜集来自内部知识库、外部数据库及给定提示的相关信息。
2.4 用户界面
2.4.1 动态提示技术
Diao 等人 (2023) 提出的动态提示技术旨在让大语言模型更好地适应各种复杂的推理任务。他们通过引入任务特定的示例提示和链式思维推理来提高模型在复杂问答任务中的表现。与依赖固定人工标注样本的传统链式思维方法不同,动态提示采用一种新的策略来识别对模型改进最有益的问题,并选择这些最具不确定性的问题进行标注。这种方法受到了基于不确定性的主动学习策略的启发,通过评估不同的不确定性指标来优化问题选择过程。动态提示在八项复杂推理任务上的表现显著,相比于自我一致性策略,在 text-davinci-002 和 code-davinci-002 上分别提升了平均 7.0% 和 1.8%,展现了领先的技术成果。
2.5 微调与优化
2.5.1 自动化提示生成 (APE)
传统上,为大型语言模型(LLMs)定制有效的引导提示是一项需要专家精心操作的复杂任务。然而,Zhou 等人于 2022 年提出的自动化提示生成(APE)技术,开辟了一种创新的自动化指令生成与选择路径。APE 技术突破了固定和手工设计提示的局限,能够动态地为特定任务生成并挑选出最有效的提示。这一巧妙的方法能分析用户的输入,设计出一系列候选指令,随后通过强化学习技术挑选出最佳的提示,并能根据不同的情境进行即时调整。通过在多样化的 BIG-Bench 测试套件和 CoT 推理任务上的广泛测试,APE 的效果显著,其生成的提示在大多数情况下(19/24 个任务)都超越了人工编写的提示,大幅提高了 LLMs 的推理能力。APE 的突破性进展为 LLMs 处理更多样的任务提供了更高效和灵活的途径,充分发挥了它们在各种应用场景中的潜力。
2.6 基于知识的推理与生成
2.6.1 自动推理与工具应用 (ART)
LLMs 在处理复杂任务时受限于其有限的推理能力和无法使用外部工具的缺陷。为了解决这一关键问题,Paranjape 等人于 2023 年提出的自动推理与工具应用(ART)技术,赋予了 LLMs 通过多步骤过程进行推理和无缝集成外部知识的能力。ART 技术成功地弥补了推理上的不足,让 LLMs 能够解决更复杂的问题,超越了简单的文本生成。通过整合外部的专业知识和计算工具,ART 为 LLMs 提供了前所未有的多功能性和实用性,使它们能够在科学研究、数据分析、乃至决策支持等多个领域作出贡献。ART 通过结构化程序自动化推理步骤,摆脱了繁琐的手动设计需求,其动态的工具整合能力确保了与外部工具的顺畅协作。通过在 BigBench 和 MMLU 这两个挑战性基准上的实证测试,ART 展示了其卓越的效果,不仅超越了传统的引导技巧,甚至在某些情况下达到了与精心设计的演示相媲美的水平。
2.7 提高一致性与连贯性
2.7.1 对比式思维链路 (CCoT) 提示技术
传统的大语言模型 (LLM) 使用的思维链路提示技术常常忽略了一个关键环节:从错误中吸取教训。对比式思维链路 (CCoT) 提示技术,由 Chia 等人于 2023 年提出 (2023),正好解决了这一点。它通过提供正确与错误的推理示例并行地引导模型,仿佛是在探索一张既标明了正确路径又指出了错误弯道的地图,这正是对比式思维链路的独特之处。这种双重视角的方法已经在诸如 SQuAD 和 COPA 的推理基准测试中得到验证,它促进了 LLM 逐步推理,相比传统思维链路技术,在战略性和数学推理的评估中取得了 4% 至 16% 的提升,并且当与自洽技巧结合使用时,性能进一步提高了大约 5%。然而,这项技术还面临着一些挑战,比如如何为各种问题自动生成对比示例,以及它在除推理外的其他自然语言处理任务中的适用性。
2.8 情绪和语调管理
2.8.1 情绪提示技术
尽管大语言模型 (LLM) 在多种任务上展现出了卓越的能力,但它们在理解心理和情绪信号方面的能力还存在不确定性。Li 等人在 2023 年提出的 EmotionPrompt (2023a),旨在解决这一问题。该技术受到了语言如何影响人类表现的心理学研究的启发,通过在提示中加入 11 个情绪激励句子来提高 LLM 的情绪智能。实验结果显示,这些情绪激励句子的加入显著提升了 LLM 在多种任务中的表现。具体来说,EmotionPrompt 在指令学习任务中取得了 8% 的性能提升,在 BIG-Bench 任务中则实现了高达 115% 的巨大飞跃,充分证明了其在增强 LLM 处理情绪信号方面的有效性。此外,一项涉及 106 名参与者的评估显示,使用 EmotionPrompt 相比标准提示,能在创造性任务的表现、真实性和责任感等方面平均提升 10.9%。
2.9 代码生成与执行
2.9.1 笔记本提示法
尽管基于 Transformer 的语言模型在编写简单编程任务的代码方面能力出众,但在涉及精确推理的复杂、多步骤算法计算任务上却遇到了挑战。为此,Nye 等人 (2021) 提出了一种新的方法,这种方法专注于任务设计而非修改模型本身,引入了"笔记本"概念。这一策略允许模型在给出最终答案之前,生成一连串的中间步骤。采用笔记本提示法,模型在 (主要是基础 Python 编程) MBPP-aug 上的成功率达到了 46.8%。结合 CodeNet 和单行数据集后,模型展现出了最佳性能,正确最终输出的比例达到了 26.6%,完美执行路径的比例为 24.6%。然而,笔记本提示法也存在限制,包括固定的上下文窗口仅限于 512 个步骤,以及高度依赖监督学习来有效使用笔记本。
2.9.2 思维编程提示法
由于倾向于算术错误、处理复杂方程的能力不足以及在表达复杂迭代过程中的低效,语言模型在解决数学表达式问题上表现不尽人意。为了提升语言模型在数值推理方面的能力,Chen 等人 (2022) 提出了思维编程提示法 (PoT),鼓励使用外部语言解释器处理计算步骤。通过这种方式,如 Codex 之类的模型能够通过执行 Python 程序来展现其推理过程,在处理包含数学文字题和金融问题的数据集时,相较于传统的 CoT 提示法,性能平均提高了约 12%。
2.9.3 结构化推理链提示法
大语言模型在代码生成方面展现了惊人的能力。通常使用的 CoT 提示法涉及在生成代码前先行产生自然语言的中间推理步骤。虽然这在自然语言生成方面非常有效,但当应用于代码生成任务时,其准确性较低。Li 等人 (2023c) 提出了专门针对代码生成的创新提示技术------结构化推理链 (SCoT)。通过将程序结构(如序列、分支和循环)融入推理步骤中,SCoT 提示法显著提升了大语言模型生成结构化源代码的能力。这种方法特别指导模型从源代码的角度出发考虑要求,与传统 CoT 提示法相比,在代码生成效率上取得了明显改进。作者在 ChatGPT 和 Codex 上进行的三个基准测试(HumanEval, MBPP 和 MBCPP)验证了 SCoT 的有效性,并证明了其性能超过 CoT 提示法高达 13.79%。
2.9.4 代码链 (CoC) 提示技巧
尽管链式思维 (CoT) 技巧在提升语言模型的语义推理能力方面表现出色,但对于需要数值或符号推理的问题就显得力不从心。Li 等人 (2023b) 提出了代码链 (CoC) 技术,旨在通过编程来增强模型在逻辑和语义任务上的推理能力。CoC 鼓励语言模型把语义子任务转化为灵活的伪代码,这样不仅可以让解释器识别并处理未定义的行为,还可以通过"LMulator"进行模拟操作。实验结果显示,CoC 在 BIG-Bench Hard 测试中以 84% 的准确率超越了链式思维及其他基准方法,准确率提高了 12%。CoC 证明了无论是在大型还是小型模型上都能有效地扩展模型的推理解答能力,采取"编码思维"方法,显著提升了语言模型处理推理问题的能力。
表 1: 大语言模型 (LLMs) 常用提示技巧概览:涵盖应用、提示获取方式、提示回合、模型类型、数据集以及评价指标。
应用场景 | 提示策略 | 比较维度 | ||||
提示获取方式 | 提示次数 | 使用的语言模型 | 数据集 | 评价指标 | ||
面向无训练数据的新任务 | 零样本学习 | 人工制定 | 单一 | GPT-2 | 算术题和符号处理 | 准确度和 ROUGE 得分 |
少样本学习 | 人工制定 | 单一 | GPT-3 | 自然语言问题解答、网络问题搜索、趣味问答 | 准确度 | |
链式推理 (CoT) | 人工制定 | 多样 | PaLM 540B | GSM8K 数学题 | 准确度 | |
逻辑链式推理 (LogiCoT) | 人工制定 | 多样 | Vicuna-33b, GPT-4 | GSM8K 数学题、AQuA、社交问答 | 准确度 | |
上下文串联 (CoS) | 人工制定 | 多样 | gpt-3.5-turbo, GPT-4 | SPARTUN 多项选择题 | 准确度、精确度、召回率 | |
自动生成的链式推理 (Auto-CoT) | 模型生成 | 多样 | GPT-3 | 算术题和符号处理 | 准确度 | |
自我一致性校验 | 人工制定 | 单一 | PaLM 540B | 算术题和常识问题 | 准确度 | |
推理和逻辑能力 | 话题转换 (ToT) | 基于信息检索 | 多样 | GPT-4 | 24 点游戏、创意写作挑战 | 成功率 |
生成式话题转换 (GoT) | 基于信息检索 | 多样 | T5-large | GSM8K 科学问题、ScienceQA | ROUGE 得分 | |
答案到问题 (S2A) | 人工制定 | 单一 | Llama 2-70B | 问答、GSM8K 数学题 | 准确度 | |
混合话题转换 (ThoT) | 混合方法 | 多样 | gpt-3.5-turbo, Llama 2-70b-chat | 流行文化问答、实体查询、多项选择推理 | 精确匹配得分 | |
表格链 (Chain of Table) | 人工制定 | 多样 | GPT 3.5, LLaMA 2 | TabFact 事实验证、WikiTQ 维基问答 | BLEU 得分、ROUGE 得分 | |
上下文验证 (CoVe) | 基于信息检索 | 多样 | Llama 65B | Wikidata 数据、QUEST 问题集、MultiSpanQA 多答案问题 | 精确度、F1 得分 | |
实时反馈 (ReAct) | 基于信息检索 | 多样 | PaLM-540B, GPT-3 | HotpotQA 热门问题、FEVER 事实验证 | 精确匹配得分、准确度 | |
减少错误信息生成 | 检索增强生成 (RAG) | 基于信息检索 | 单一 | RAG-Token, RAG-Seq | MSMARCO 信息搜索、SearchQA 问题搜索 | ROUGE 得分、BLEU 得分 |
一致性校验 (CoN) | 模型生成 | 多样 | Llama 2, DPR | NQ 自然问答、TriviaQA 趣味问答、WebQ 网络问题 | 精确匹配得分、F1 得分 | |
领域 | 方法 | 范围 | 使用模型 | 应用领域 | 评价指标 | |
用户交互 | 积极引导 | 人工操作 | 单项任务 | code-davinci-002, text-davinci-003 | 算术计算、常识判断、符号操作 | 评价不一、熵差异、自我评估得分 |
微调和优化 | 自适应性能提升 | 模型自生成 | 单项任务 | text-curie-001, text-davanci-002 | 逻辑推理、真实性问答 | 执行准确度、概率估计、效率评分 |
基于知识的推理与创新 | 艺术智能 | 混合模式 | 多任务处理 | GPT-3 (175B) | 复杂问题挑战、多模块学习 | 准确度 |
提升逻辑一致性和表达连贯性 | 连贯一致性训练 | 模型自生成 | 多任务处理 | gpt-3.5-turbo-0301 | 数学问题、实际问题问答 | 准确度 |
情绪与语调管理 | 情绪引导 | 人工操作 | 单项任务 | GPT-4 | 挑战基准、指令学习 | 准确度 |
社会认知训练 | 混合模式 | 多任务处理 | ChatGPT, Codex | 编程评估、多种编程问题 | 通过率@k | |
代码生成与执行 | 实践操作训练 | 人工操作 | 单项任务 | gpt-3.5-turbo | 数学解题、财经问答 | 精确匹配得分 |
共同创造 | 人工操作 | 单项任务 | text-davinci-003, gpt-3.5-turbo | 高难度挑战 | 准确度 | |
思维导图提示 | 人工操作 | 单项任务 | GPT-3 | 编程问题、增强学习 | 准确度 | |
优化与效率提升 | 操作性能优化 | 人工操作 | 单项任务 | PaLM 2-L-IT, text-bison | 高难度问题解答、挑战基准 | 准确度 |
理解用户意图 | 反馈调整响应 | 人工操作 | 单项任务 | GPT-4-0613 | 知识问答、符号操作 | 准确度、公平性评价、语言建模得分 |
自我认知与反思 | 暂停反思 | 人工操作 | 单项任务 | PaLM2-L, GPT-4 | 物理学习、化学学习、时间问题解答、情境问题、策略问题 | 准确度 |
2.10 优化与效率提升
通过这种方式,我们将复杂的技术术语和专业概念转化为更易于大众理解的语言,同时保持了原文的意图和信息的准确性。这样的翻译不仅使得科普阅读变得更加亲切和易懂,也有助于非专业读者更好地理解高科技领域的最新发展和研究成果。
2.10.1 用提示来优化问题解决(OPRO)
在不同的领域里,找到最好的解决方案通常需要反复试错。Yang 等人在 2023 年的研究中提出了一个全新的想法:利用大型语言模型(LLMs)来帮助寻找解决方案,这个方法被称为"通过提示进行优化"(OPRO)。这种方法的独特之处在于,它通过使用自然语言的提示,根据问题的描述来一步步找到解决方案,这让它能够迅速适应不同的问题并且根据需要调整解决方案的寻找过程。通过在一些典型问题上的案例分析,比如线性回归和旅行商问题,这项研究展示了 LLMs 在寻找解决方案方面的巨大潜力。它还探讨了如何优化提示,以在处理自然语言任务时获得最高的准确率,这进一步证明了 LLMs 的高灵敏度。实验结果表明,对小规模训练集进行提示优化,可以有效提高测试集上的表现。通过 OPRO 优化的提示,相比人工设计的提示,在 GSM8K 数据集上的表现提高了高达 8%,在 Big-Bench 的一些更具挑战性的任务上提高了高达 50%。
2.11 理解用户意图
2.11.1 改写与回答(RaR)提示法
Deng 等人在 2023 年的研究中指出,我们在探索大型语言模型(LLMs)时,经常忽略了一个重要方面:人类的思维方式和 LLMs 的思维方式之间存在差异。为了弥补这一差异,他们提出了一种新的方法:改写与回答(RaR)。这种方法允许 LLMs 在一个提示中重新表述和拓展问题,显示出对问题的理解和回答的准确度都有所提高。通过将改写和回答结合起来,这种两步骤的 RaR 方法在各种任务上都取得了显著的性能提升。研究发现,相比随意提出的人类问题,经过改写的问题能够更清晰地表达语义,解决问题的模糊性。这些发现为我们提供了如何理解和提升 LLMs 在不同应用中有效性的宝贵见解。
2.12 元认知与自我反思
2.12.1 重新审视提示技术
面临复杂多步推理的挑战,Zheng 等人于 2023 年提出了针对高级语言模型,如 PaLM-2L,的步回提示技术。这种创新手段让模型能够进行高层次的抽象思考,从具体案例中总结出基本原理和高级概念。步回提示技术通过一个包含抽象化和推理的双步骤过程,经过广泛的实验验证,在 STEM、知识问答及多步推理等推理密集型任务上应用这一技术,显著提升了 PaLM-2L 的推理能力。特别是,在 MMLU 物理和化学、TimeQA 以及 MuSiQue 等任务上,性能均有明显提升,分别提高了 7%、27% 和 7%。
3 结论
在人工智能领域,提示技术已经成为一种改变游戏规则的力量,为大语言模型的潜能解锁。本综述论文旨在成为一个系统归纳 29 种不同提示技术的基础资源,这些技术基于它们特定的功能目标,旨在激发进一步的研究并支持提示技术领域的创新发展。我们的分析涵盖了不同的应用、模型和数据集,揭示了每种技术的优点和限制。为了更好地突出这些要点,我们特意添加了图解和表格。尽管已经取得了显著的进展,但仍面临诸如偏见、信息不准确和解释难度等挑战,这些问题需要我们进一步研究和提出解决方案。提示技术的未来前景广阔,元学习和混合提示架构等新兴趋势预示着更大的能力提升。然而,伴随着这些技术的发展,我们也必须重视伦理道德问题,确保其发展和应用能够负责任地、积极地融入我们的生活。
原文:A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications
作者:Pranab Sahoo,Ayush Kumar Singh,Sriparna Saha,Vinija Jain,Samrat Mondal,Aman Chadha