关于大型语言模型中提示工程的系统性调查:技术与应用
摘要
提示工程(Prompt Engineering)已成为扩展大型语言模型(LLMs)与视觉-语言模型(VLMs)能力的重要技术。通过使用特定任务的说明(即提示),提示工程无需修改模型参数即可提高模型的效果。提示工程利用预训练模型的能力,通过输入适当的提示,激发出所需的模型行为,从而顺利完成下游任务。提示可以是提供上下文的自然语言指令,或是激活相关知识的向量化表示。
这一新兴领域在多个应用场景中取得了成功,包括问答和常识推理。然而,目前对各种提示工程方法与技术缺乏系统的组织和理解。本文通过提供按应用领域分类的结构化概览,弥补了这一空白。我们总结了每种提示方法的核心技术、适用领域、涉及的模型以及使用的数据集,同时深入探讨了每种方法的优缺点。文章还包括一个分类图和一张总结数据集、模型及各提示技术关键点的表格。
本系统性分析不仅有助于更好地理解这一快速发展的领域,还通过揭示提示工程的开放性挑战与机会,为未来研究提供了参考。
1 引言
提示工程的重要性在于它对 LLM 和 VLM 适应性的变革性影响。通过提供一种机制,使用精心设计的指令对模型输出进行微调,提示工程使这些模型能够在多种任务和领域中表现卓越。这种适应性区别于传统方法,后者通常需要重新训练模型或对特定任务进行大量微调。
提示工程的变革性在于其通过精巧的设计拓展了 AI 的边界,为未来的发展创造了无限可能。在不断变化的研究领域中,提示工程持续涌现创新的方法与应用,其意义在于它能够引导模型响应,从而提升 LLM 在不同领域的适应性和实用性。
当代提示工程技术横跨从基础方法(如零样本和少样本提示)到更复杂的技术(如“代码链”提示)的一系列技术。提示工程的概念最初在大型语言模型中被提出并广泛研究【Liu et al., 2023】【Tonmoy et al., 2024】【Chen et al., 2023】,随后延伸至视觉-语言模型【Wu et al., 2023】【Bahng et al., 2022】。
本文深入分析了提示工程不断发展的领域,研究了超过 29 种不同技术,并按其多样化的应用分类。通过系统回顾的方法,本文细致探讨了多种前沿提示方法的复杂性。我们的分析涵盖了这些技术的应用、使用的语言模型以及实验中使用的数据集,从而提供了对提示工程发展现状的详尽解析。此外,我们讨论了这些技术的优劣势,并提供了比较分析的见解。
2 提示工程
在本节中,我们根据提示工程的应用领域对技术进行了分类,并概述了提示技术从零样本提示到最新发展的演变过程。
2.1 在无广泛训练数据的情况下完成新任务
零样本提示(Zero-Shot Prompting)
零样本提示为利用大型语言模型(LLMs)带来了全新的方式。这种技术【Radford et al., 2019】无需大量的训练数据,而是依靠精心设计的提示,引导模型完成新任务。具体来说,模型在提示中接收任务描述,但并没有专门用于该任务的标注数据。模型随后利用其已有知识,根据提示生成预测。这种方法通过现有的语言模型能力有效实现了许多新任务。
少样本提示(Few-Shot Prompting)
少样本提示通过提供少量输入-输出示例,帮助模型理解任务内容,与零样本提示不同,后者不提供任何示例【Brown et al., 2020】。即使是少量高质量的示例,也能显著提升模型在复杂任务中的表现。然而,少样本提示需要额外的令牌来包含这些示例,对于较长的文本输入,这可能会带来挑战。此外,示例的选择与组合对模型行为的影响很大,且频繁词汇的偏好可能会影响结果。少样本提示在复杂任务中(尤其是 GPT-3 这类大型预训练模型中)表现突出,但要获得最佳效果并减轻偏差,提示的设计需要格外谨慎。
2.2 推理和逻辑(reasoning & logic)
链式思维(Chain-of-Thought, CoT)提示
大型语言模型在面对复杂推理时常常表现不佳,这限制了其潜力。为填补这一空白,【Wei et al., 2022】提出了链式思维(CoT)提示技术。这种技术通过分步引导逻辑推理过程,促使模型生成更清晰且连贯的响应。CoT 提示的主要贡献在于提出并验证了一种新方法,通过展示多步推理问题中的推理过程和最终答案,模拟人类将问题分解为逻辑中间步骤的方式。这种方法显著提升了 PaLM 540B 等模型在数学和常识推理基准上的表现,准确率达到 90.2%。
自动链式思维(Auto-CoT)提示
手动创建高质量的 CoT 示例既费时又不够高效。【Zhang et al., 2022】提出了自动链式思维(Auto-CoT)技术,通过“让我们逐步思考”的提示,自动生成推理链。由于单独生成的链可能存在错误,Auto-CoT 通过多样化采样增强了鲁棒性。它针对不同问题生成多种推理链,从而形成多样化的示例集。这种自动化方法减少了人工创建链式思维示例的工作量,同时在少样本学习中表现更佳。在算术和符号推理任务中,Auto-CoT 的平均准确率相较于 CoT 提升了 1.33% 和 1.5%。
自一致性(Self-Consistency)
【Wang et al., 2022】提出了自一致性(Self-Consistency),这是一种解码策略,用于提升 CoT 提示下的推理性能。在具有多个有效解的复杂推理任务中,自一致性通过语言模型的解码器生成多样化的推理链,并通过边际化这些推理链找到最一致的最终答案。这种方法利用了需要深思熟虑的问题通常伴随着更大的推理多样性的特点,从而找到解决方案。结合链式思维提示,自一致性在多个基准数据集上的准确率显著提升,例如在 GSM8K 上提高 17.9%,在 SVAMP 上提高 11.0%,在 AQuA 上提高 12.2%。
逻辑链式思维(LogiCoT)提示
逻辑推理能力对于大型语言模型(LLMs)在多领域解决复杂多步问题至关重要。现有方法如链式思维(CoT)提示,尽管鼓励逐步推理,但缺乏有效的验证机制。【Zhao et al., 2023】提出了一种逻辑链式思维(LogiCoT)提示,这是一个结合符号逻辑原则的神经-符号框架,旨在增强推理的连贯性与结构性。具体而言,LogiCoT 采用了反证法(reductio ad absurdum)对推理过程中的每一步进行验证,并对错误步骤提供反馈修正。通过“思考-验证-修正”循环,LogiCoT 能有效减少逻辑错误和幻觉。
在使用 Vicuna-33b 和 GPT-4 进行实验时,LogiCoT 在 GSM8K 数据集上的推理能力分别提升了 0.16% 和 1.42%,在 AQuA 数据集上的提升分别为 3.15% 和 2.75%。
符号链式思维(CoS)提示
由于依赖于自然语言,大型语言模型在处理复杂的空间关系任务时常常受到歧义和偏差的影响。【Hu et al., 2023】提出了符号链式思维(CoS)提示,采用符号而非自然语言来解决这一问题。CoS 提供了以下优势:更清晰、精炼的提示;增强模型的空间推理能力;提高人类的可解释性。然而,CoS 仍面临挑战,包括可扩展性、泛化能力以及基于符号的推理解释性问题。尽管如此,CoS 的实施显著提升了 ChatGPT 在 Brick World 任务中的表现,准确率从 31.8% 提高到 92.6%。此外,CoS 在提示令牌数量上实现了高达 65.8% 的缩减,简化了处理过程,同时保持了高准确率。
思维树(ToT)提示
【Yao et al., 2023a】与【Long, 2023】提出了思维树(Tree-of-Thoughts, ToT)框架,用于增强处理复杂任务时的提示能力。这些任务通常需要探索性和前瞻性推理。ToT 在链式思维提示的基础上,管理一种中间推理步骤的树状结构,每个“思维”代表一个朝向最终解决方案的连贯语言序列。通过结合搜索算法(如广度优先搜索或深度优先搜索),ToT 系统性地探索推理链,评估可能性较高的路径,同时在发现错误时进行回溯。
在 24 点游戏任务中,ToT 的成功率达到 74%,远高于 CoT 的 4%。此外,在词级任务中,ToT 的成功率为 60%,而 CoT 的成功率仅为 16%。
思维图(GoT)提示
人类思维的非线性特性挑战了传统链式思维提示的顺序性。【Yao et al., 2023b】提出了“思维图”(Graph of Thoughts, GoT)提示,这是一种基于图的框架,用于超越传统顺序方法,更好地匹配人类思维的非线性特点。该框架允许动态交互、回溯和评价思想,并通过聚合和组合不同分支的思想,摆脱了思维树的线性结构。
GoT 的关键贡献包括:
- 将推理过程建模为一个有向图;
- 提供模块化架构以支持多样的变换操作。
GoT 提示在 GSM8K 数据集上,相较于链式思维提示,使用 T5-base 提高了 3.41%,使用 T5-large 提高了 5.08%;在 ScienceQA 数据集上,相较于 Multimodal-CoT,提升幅度分别为 6.63% 和 1.09%。
系统 2 注意力(S2A)提示
基于 Transformer 的大型语言模型中的软注意力机制容易引入无关的上下文信息,从而对生成的文本产生不利影响。【Weston and Sukhbaatar, 2023】提出了系统 2 注意力(System 2 Attention, S2A)提示,通过重新生成输入上下文来提升注意力的相关性。S2A 包括两步:
- 上下文再生成:过滤无关内容;
- 响应生成:基于优化的上下文生成更高质量的输出。
在多个任务中,S2A 的表现优于基准模型,例如在事实问答中,S2A 的准确率达到 80.3%;在长文生成中,S2A 提升了客观性,得分为 3.82(满分 5)。
线索思维(Thread of Thought, ThoT)提示
【Zhou et al., 2023】提出了线索思维(ThoT)提示,这是一种设计用于在混乱上下文中增强大型语言模型(LLMs)推理能力的提示技术。ThoT 受人类认知启发,系统地将复杂上下文分解为可管理的片段,逐步进行分析。它采用两阶段方法:模型先对每个片段进行总结与分析;然后提炼信息,生成最终的综合响应。
ThoT 作为一种灵活的“即插即用”模块,能够在不同模型和提示方法中增强推理性能。在问答和对话数据集上的测试表明,其性能分别提升了 47.20% 和 17.8%,尤其在处理混乱上下文时表现显著。
表格链式思维(Chain-of-Table)提示
诸如链式思维(CoT)、程序思维(PoT)和思维树(ToT)的方法通过自由文本或代码表示推理步骤,但在复杂的表格场景中常遇到挑战。【Wang et al., 2024】提出了一种新的提示技术,称为表格链式思维(Chain-of-Table, CoT),通过动态生成并执行常见的 SQL 或 DataFrame 操作来逐步实现表格推理。这种迭代方法提高了中间结果的质量,增强了大型语言模型通过逻辑化可视化推理链进行预测的能力。表格链式思维在两个基准表格数据集(TabFact 和 WikiTQ)上的性能分别提升了 8.69% 和 6.72%。
2.3 减少幻觉(Reduce Hallucination)
检索增强生成(Retrieval Augmented Generation, RAG)
大型语言模型(LLMs)虽然在文本生成方面取得了革命性进展,但由于依赖有限且静态的训练数据,难以在需要外部知识的任务中生成准确响应。检索增强生成(RAG)【Lewis et al., 2020】通过将信息检索无缝集成到提示过程中,提出了一种创新解决方案。RAG 分析用户输入,生成针对性的查询,从预先构建的知识库中检索相关资源,将检索到的片段融入原始提示中,从而为生成的响应提供背景信息。RAG 的敏捷性克服了静态限制,使其成为需要最新知识的任务的变革性方法。RAG 在 ODQA 基准测试(如 TriviaQA 和 Natural Questions)中的表现超越了 seq2seq 模型和特定任务架构,准确匹配率分别达到了 56.8% 和 44.5%。
反应(ReAct)提示
与将推理和行动分开处理的以往研究不同,ReAct【Yao et al., 2022】允许 LLM 同时生成推理痕迹和特定任务的行动。这种交替过程增强了推理与行动计划之间的协同作用,使模型能够动态跟踪和更新行动计划,并处理异常情况。在问答(HotpotQA)和事实验证(Fever)任务中,ReAct 通过与简单的 Wikipedia API 交互解决幻觉与错误传播问题,从而生成更具解释性的任务解决轨迹。此外,在交互式决策任务(如 ALFWorld 和 WebShop)中,ReAct 的成功率分别达到了 34% 和 10%,显著优于模仿学习与强化学习方法。
验证链式思维(Chain-of-Verification, CoVe)提示
为了解决 LLM 中的幻觉问题,【Dhuliawala et al., 2023】提出了验证链式思维(CoVe),这是一种系统的四步流程:
- 模型生成初步响应;
- 计划验证问题以检查响应的正确性;
- 独立回答验证问题;
- 根据验证结果修订原始响应。
通过这一多步骤流程,LLM 的逻辑推理能力得以提升,同时减少了错误,即使面对矛盾信息时也能更好地应对。实验表明,CoVe 在处理清单问题、问答和长文生成任务时显著减少了幻觉,同时保持事实的准确性。
注释链式思维(Chain-of-Note, CoN)提示
检索增强语言模型(RALMs)通过整合外部知识来减少事实幻觉,但检索到的信息往往不可靠,可能导致误导性响应。【Yu et al., 2023】提出了注释链式思维(CoN),这是一种通过处理噪声和无关文档以及准确应对未知场景来增强 RALMs 鲁棒性的新方法。CoN 系统性地评估文档相关性,强调关键信息,过滤掉无关内容,从而生成更精确且上下文相关的响应。在多个开放域问答数据集上的测试显示,CoN 对噪声文档的准确匹配得分平均提升了 7.9%,对超出预训练知识的问题的拒绝率提高了 10.5%。
知识链式思维(Chain-of-Knowledge, CoK)提示
传统提示技术在解决基本任务方面表现良好,但在复杂推理任务中效果有限,常导致幻觉和不可靠输出。这些限制源于其依赖固定知识来源、缺乏有效的结构化查询生成以及动态纠错能力的不足。【Li et al., 2023d】受人类问题解决方式启发,提出了知识链式思维(CoK),通过系统性地将复杂任务分解为协调良好的步骤来提升推理性能。
CoK 的核心流程包括:
- 全面的推理准备阶段:建立上下文并框定问题;
- 动态知识适配阶段:从内部知识库、外部数据库和提示中仔细收集证据。
CoK 的优势在于动态整合多种知识来源并逐步引导 LLM 提供更准确的答案。在 HotpotQA、Fever 和 MedMCQA 数据集上的实验表明,CoK 在准确率和任务完成质量上有显著提升。
2.4 用户交互
主动提示(Active Prompting)
【Diao et al., 2023】提出了主动提示(Active-Prompting)技术,以适应大型语言模型(LLMs)处理复杂推理任务的多样需求。主动提示通过任务特定的示例提示和链式思维(CoT)推理,提升 LLM 的表现。
不同于依赖固定人类标注示例的现有 CoT 方法,主动提示引入了一种基于不确定性主动学习的机制,确定最值得标注的问题,并使用各种指标(如不确定性与熵)选择注释对象。在 Text-DaVinci-002 和 Code-DaVinci-002 上的八项复杂推理任务中,主动提示分别比自一致性方法的平均性能提高了 7.0% 和 1.8%,展现了最先进的结果。
2.5 微调与优化
自动提示工程(Automatic Prompt Engineer, APE)
设计有效的提示通常是专家注释者的一项繁琐任务。【Zhou et al., 2022】提出了一种创新方法,称为自动提示工程(APE)。APE 通过自动生成和选择提示,克服了静态手工设计的局限性。
APE 的工作流程包括:
通过将外部工具引入推理过程,ART 扩展了 LLM 的适用场景,使其生成更具现实相关性的输出。实验结果表明,在挑战性基准测试(如 BigBench 和 MMLU)中,ART 的表现优于传统提示技术,并在某些情况下甚至达到手工设计提示的水平。
2.7 提升一致性与连贯性
对比链式思维(Contrastive Chain-of-Thought, CCoT)提示
传统的链式思维(CoT)提示通常缺乏从错误中学习的机制。【Chia et al., 2023】提出了对比链式思维(CCoT),通过提供有效和无效的推理示例,与原始提示结合使用,帮助模型识别正确路径并避免错误路径。
对比链式思维的核心思想类似于“地图导航”,既显示正确路线也标注错误方向。
2.8 管理情绪与语气
情绪提示(Emotion Prompting)
尽管大型语言模型(LLMs)在多种任务中表现出色,其理解心理和情感线索的能力仍不确定。【Li et al., 2023a】通过引入情绪提示(EmotionPrompt),增强了 LLM 对情绪信号的感知能力。
2.9 代码生成与执行
草稿板提示(Scratchpad Prompting)
Transformer 模型在生成简单编程代码方面表现强大,但在复杂的多步算法计算中表现较差。【Nye et al., 2021】提出了一种“草稿板”提示方法,通过设计任务而非修改模型的方式提升推理能力。
草稿板提示的核心在于允许模型生成一系列中间步骤令牌,然后再提供最终答案。
程序化思维(Program of Thoughts, PoT)提示
语言模型在解决数学表达式时常犯算术错误,且在处理复杂方程和迭代操作时表现低效。【Chen et al., 2022】提出程序化思维(PoT)提示,建议在推理步骤中使用外部语言解释器完成计算。PoT 使模型(如 Codex)能够通过可执行 Python 程序表达推理过程,相较于链式思维提示(CoT),在数学问题和财务问题数据集上的平均表现提高约 12%。
- 分析用户输入,生成候选指令;
- 利用强化学习选择最优提示;
- 根据不同上下文动态调整提示。
在 BIG-Bench 和 CoT 推理任务上的广泛测试中,APE 的表现超过了人类设计的提示,在 24 项任务中有 19 项胜出。这项技术为 LLM 应对更广泛的任务提供了更高效、适应性更强的解决方案,极大地释放了其潜力。 -
2.6 知识驱动推理与生成
自动推理与工具使用(Automatic Reasoning and Tool-use, ART)
大型语言模型(LLMs)在复杂任务中常常受限于推理能力不足及外部工具利用率低。【Paranjape et al., 2023】提出了自动推理与工具使用(ART),旨在解决这些关键问题。ART 框架赋能 LLM 通过多步骤推理处理复杂问题,同时无缝整合外部专业知识与工具。
ART 的主要优势包括: - 动态工具整合:模型可以暂停生成,调用外部工具处理特定知识需求,然后无缝恢复任务流程;
- 多领域适应性:ART 不仅限于文本生成,还适用于科学研究、数据分析及决策支持等领域。
- 在逻辑推理基准测试(如 SQuAD 和 COPA)中,CCoT 相较于传统 CoT 的性能提升了 4%-16%;
- 结合自一致性技术后,性能进一步提升了约 5%。
尽管 CCoT 在推理任务中表现出色,但其在其他自然语言处理(NLP)任务中的应用潜力仍需进一步探索。 - 方法:基于心理学研究,设计了 11 条情感刺激语句并附加到提示中,以提升模型对情绪的敏感度。
- 实验结果:
- 在指令诱导任务中,情绪提示的相对表现提升了 8%;
- 在 BIG-Bench 任务中的表现提升了 115%。
在涉及 106 名参与者的评估中,情绪提示在生成任务的表现、真实性和责任感指标上平均提高了 10.9%。
- 在 MBPP-aug 数据集上的成功率达到 46.8%;
- 结合 CodeNet 和单行数据集,最终输出的正确率为 26.6%,完全正确的中间推理轨迹为 24.6%。
尽管草稿板提示提升了性能,但其依赖 512 令牌的固定上下文窗口,且需要监督学习支持。
结构化链式思维(Structured Chain-of-Thought, SCoT)提示
大型语言模型(LLMs)在代码生成任务中表现出色,但传统的链式思维(CoT)提示主要用于生成自然语言的中间推理步骤,在代码生成任务中的准确性较低。【Li et al., 2023c】提出了结构化链式思维(SCoT),这种提示技术专为代码生成设计。
核心思想:在推理步骤中引入程序结构(如顺序、分支和循环结构),明确引导模型考虑代码需求。 实验结果:在 ChatGPT 和 Codex 上进行的测试表明,SCoT 在 HumanEval、MBPP 和 MBCPP 基准中的表现优于 CoT 提示,性能提升幅度最高可达 13.79%。
代码链式思维(Chain-of-Code, CoC)提示
尽管链式思维(CoT)提示在提升语言模型的语义推理能力方面表现出色,但在处理需要数值或符号推理的问题时表现欠佳。【Li et al., 2023b】提出了代码链式思维(CoC),通过将语义任务转换为伪代码的形式,使模型能够以代码为载体执行逻辑和语义推理。
2.10 优化与效率
优化提示(Optimization by Prompting, OPRO)
在许多领域,优化通常涉及迭代技术。【Yang et al., 2023】提出了通过提示进行优化(OPRO),这一方法将大型语言模型(LLMs)视为优化器,利用自然语言提示迭代生成解决方案。
2.12 元认知与自我反思
退一步提示(Take a Step Back Prompting)
在处理复杂多步推理任务时,模型经常面临挑战。【Zheng et al., 2023】提出了退一步(Step-Back)提示,这是一种专为高级语言模型(如 PaLM-2L)设计的方法。
2.11 理解用户意图
重述与响应(Rephrase and Respond, RaR)提示
【Deng et al., 2023】关注 LLM 与人类思维框架之间的差异,并提出了重述与响应(RaR)提示技术。RaR 允许 LLM 在单个提示中重述并扩展问题,从而提升理解力和响应准确性。
- 实现方法:CoC 鼓励模型将子任务格式化为伪代码,允许代码解释器捕捉未定义行为并通过“LMulator”模拟执行。
- 实验结果:在 BIG-Bench Hard 数据集上的准确率达到 84%,相较于 CoT 提示提升了 12%。CoC 对大模型和小模型均有效,通过引入“代码思考”的方式扩展了语言模型正确回答推理问题的能力。
- 核心优势:OPRO 能快速适应不同任务,并定制优化过程。
- 应用场景:在经典问题(如线性回归和旅行商问题)中,OPRO 展现了强大的适应能力。此外,OPRO 还探索了提示优化,以最大化自然语言处理任务的准确率。
- 实验结果:在 GSM8K 数据集上的优化提示相较于人类设计的提示提升了 8%,在 Big-Bench 的挑战任务中表现提升高达 50%。
- 实现流程:两步变体分别进行重述和生成响应,解决了问题中的语义歧义。
- 实验表现:与原始提示相比,RaR 提高了模型对复杂任务的语义清晰度和解答能力,对 LLM 应用于多种任务提供了宝贵的见解。
- 核心机制:Step-Back 提示通过抽象高层概念和基础原则,从具体实例中提取更全面的理解。
- 实验结果:在 STEM、知识问答和多跳推理任务中,Step-Back 提示显著增强了推理能力。例如,在 MMLU 的物理和化学任务中,准确率分别提高了 7%;在 TimeQA 中,准确率提升了 27%;在 MuSiQue 中提升了 7%。
3 结论
在人工智能领域,提示工程(Prompt Engineering)已经成为一项变革性技术,释放了大型语言模型(LLMs)的巨大潜力。本文旨在作为一份基础性资源,通过系统地分类 29 种不同的提示工程技术及其目标功能,激发进一步研究,并支持提示工程领域的创新者。
本文的分析涵盖了各类应用、模型及数据集,并深入探讨了每种方法的优势与局限性。此外,我们还通过图表和表格总结了关键点,为读者提供了简洁明了的参考。尽管提示工程取得了显著的成功,但仍存在诸多挑战,包括:
偏差问题:提示可能无意间引入或放大模型的偏见; 事实准确性:模型可能生成不符合真实情况的内容; 解释性不足:现有提示技术在生成结果时缺乏透明的推理过程。
未来展望
提示工程的未来充满了巨大的潜力,新兴趋势如元学习(Meta-Learning)和混合提示架构(Hybrid Prompting Architectures)有望进一步提升模型的能力。然而,随着技术的发展,伦理问题也变得尤为重要。例如,提示的设计和使用必须确保在社会和商业应用中得到负责任的部署,以促进模型与人类生活的积极整合。
这些问题需要进一步研究和针对性的缓解策略来解决。