引言
在生成式人工智能(GenAI)的广阔领域中,提示工程(Prompt Engineering)如同一把精巧的钥匙,开启了大型语言模型(LLM)与多模态模型的无限潜能。从创作诗歌到解答数学难题,从图像生成到语音转录,提示(Prompt)作为用户与模型交互的核心纽带,正在深刻改变我们与技术的沟通方式。然而,正如《The Prompt Report: A Systematic Survey of Prompt Engineering Techniques》(Schulhoff et al., 2025)所指出的,这一新兴领域因术语冲突和知识碎片化而显得“理解不足”(p. 4)。本文基于该报告,系统梳理提示工程的定义、历史、技巧与应用,旨在以通俗易懂、深入浅出的方式,为科学爱好者呈现这一领域的全貌。
我们将从提示的本质与历史出发,深入剖析58种文本提示技巧、40种多模态与多语言方法,以及提示工程在实际场景中的潜力与挑战。通过引人入胜的叙述、形象的比喻和对原文的忠实引用,我们将揭示提示工程如何成为“引导模型输出的核心机制”(p. 5),并探讨其在未来AI发展中的关键角色。
提示是什么:通往AI心智的桥梁
提示是“提供给生成式AI模型的输入,用于引导其输出”(p. 5)。报告引用多位学者对提示的定义,例如Meskó(2023)将其描述为“设计、优化和实施提示以指导LLM输出的实践”(p. 62),而White et al.(2023)则强调提示是“对LLM进行编程以定制输出和交互的一种方式”(p. 62)。简单来说,提示就像在咖啡店点单时的指令:“我要一杯拿铁,加焦糖酱,不加奶泡。”指令越明确,输出越贴近预期。
提示的形式多样,不仅限于文本,还包括图像、音频、视频或其组合。例如:
- 文本提示:“写一封三段式营销邮件,用于会计公司推广”(p. 5)。
- 图像提示:一张写有“10×179=?”的纸张照片。
- 音频提示:一段会议录音,附带指令“总结这段内容”。
提示通常通过提示模板(Prompt Template)构建,这是一个包含变量的函数,通过填充具体内容生成最终提示。报告举例说明:“将以下推文分类为正面或负面:{TWEET}”是一个提示模板,当插入具体推文后生成提示实例(p. 5)。提示的核心组件包括:
- 指令(Directive):提示的核心意图,如“列出五本好书”(p. 5)。
- 示例(Exemplars):也称“shots”,展示任务完成方式,如翻译任务中的“Night: Noche”(p. 5)。
- 输出格式(Output Formatting):指定输出结构,如CSV或Markdown。例如,“将此段落总结为CSV”(p. 6)。
- 角色(Role):为模型设定身份,如“假装你是一个牧羊人,写一首关于羊驼的五行诗”(p. 6)。
- 额外信息(Additional Information):提供上下文,如写邮件时附上姓名和职位(p. 6)。
注解:报告警告,“上下文(Context)”一词在提示工程中常被滥用,可能指模型处理的令牌、提示中的额外信息或其他含义(p. 6)。为清晰起见,本文使用“额外信息”指代提示中的背景资料。
提示的简史:从控制码到现代LLM
提示工程的根源可追溯到生成式AI的早期。报告指出,1979年的控制码(Control Codes)(Pfaff, 1979)以及文学中的写作提示(Writing Prompts)为AI提示奠定了基础(p. 7)。2018年,Fan et al.首次在生成式AI中引入自然语言前缀提示(Prefix Prompts),而GPT-2(Radford et al., 2019)和GPT-3(Brown et al., 2020)的发布将提示推向主流。
术语“提示工程”由Radford et al.(2021)首次提出,随后在Reynolds and McDonell(2021)等研究中得到广泛认可(p. 7)。早期研究对提示的定义较为狭窄,例如Brown et al.(2020)将提示限定为输入的非任务描述部分(如“llama”),而“Translate English to French:”被视为任务描述(p. 7)。如今,学术界普遍将整个输入字符串视为提示,反映了提示工程的复杂性。
报告强调,现代LLM主要使用前缀提示(模型预测提示后的词),而非早期模型如BERT使用的填空提示(Cloze Prompts,预测提示中间的词)(p. 4)。这一转变使提示工程更适合现代Transformer架构,支持更广泛的任务。
注解:前缀提示与填空提示的区别在于预测位置。前缀提示预测提示后的词,适合GPT-style模型;填空提示预测提示中的“槽”,常见于BERT等早期模型(p. 64)。
文本提示技巧:58种方法解锁AI智慧
通过基于PRISMA流程的系统性文献综述(p. 8),报告整理了58种文本提示技巧,归纳为6大类:情境学习(In-Context Learning, ICL)、思维生成(Thought Generation)、分解(Decomposition)、集成(Ensembling)、自我批评(Self-Criticism)和提示工程。这些技巧形成了一个“提示工具箱”,为不同任务提供了灵活解决方案(p. 8)。以下逐一剖析这些类别,引用原文并通过比喻阐释其核心。
情境学习:用示例点亮AI的灯塔
情境学习(ICL)是提示工程的基石,指“通过提示中的示例或指令让模型学习任务,而无需权重更新”(p. 8)。ICL如同一盏灯塔,指引模型在未知任务中找到方向。例如,提示“2+2: four, 4+5: nine, 8+0:”通过示例教模型完成加法(p. 10)。
ICL包括零样本(Zero-Shot)和少样本(Few-Shot)提示:
- 零样本提示:无示例,仅靠指令,如“将‘cheese’翻译成法语”(p. 11)。报告指出,这依赖模型的预训练知识(p. 10)。
- 少样本提示:提供少量示例,如“Night: Noche, Morning:”(p. 5)。Brown et al.(2020)证明,少样本提示显著提升性能(p. 10)。
少样本提示的设计需考虑六大因素(p. 10):
- 示例数量:更多示例通常提升性能,但超过20个后收益递减(Liu et al., 2021)。
- 示例顺序:顺序影响行为,随机排序可能导致准确率从低于50%到90%以上(Lu et al., 2021)。
- 标签分布:不平衡的标签分布可能导致偏见(p. 10)。
- 标签质量:错误标签可能降低性能,但大模型对此更鲁棒(Wei et al., 2023c)。
- 示例格式:格式需与训练数据一致,如“Q: {input}, A: {label}”(Jiang et al., 2020)。
- 示例相似性:选择与测试样本相似的示例通常更有效(Liu et al., 2021)。
高级技巧包括:
- K-最近邻(KNN):选择与测试样本相似的示例,提升性能(Liu et al., 2021)。
- 自我生成ICL(SG-ICL):模型自动生成示例,适用于无训练数据场景(Kim et al., 2022)。
- 角色提示(Role Prompting):指定角色,如“假装你是麦当娜”,改善开放任务输出(Wang et al., 2023j)。
- 情感提示(Emotion Prompting):加入心理相关短语,如“这对我的职业很重要”,提升性能(Li et al., 2023a)。
注解:ICL中的“学习”一词可能误导,实际是任务指定,而非学习新技能(p. 8)。报告建议区分“元学习”(Meta-Learning)和ICL以避免混淆(p. 78)。
思维生成:让AI“思考”出答案
思维生成技巧通过引导模型表达推理过程,提升数学和逻辑任务表现。链式思维(Chain-of-Thought, CoT)是核心方法,鼓励模型“在给出最终答案前表达推理过程”(Wei et al., 2022b, p. 12)。例如,提示:
\text{Q: Jack有两篮子,每篮子有三个球。Jack总共有多少球?}
\text{A: 一个篮子有3个球,所以两个篮子有3×2=6个球。} (p. 12)
此提示通过展示推理步骤,显著提升模型性能。CoT的变体包括:
- 零样本CoT:添加思维诱导短语,如“让我们一步步思考”(Kojima et al., 2022)。报告指出,这类方法无需示例,适合通用任务(p. 12)。
- 少样本CoT:提供多个包含推理的示例,也称“手动CoT”(Zhang et al., 2022b)。
- 对比CoT:加入正确和错误推理示例,帮助模型学习避免错误(Chia et al., 2023)。
- 表格CoT(Tab-CoT):要求模型以Markdown表格输出推理,提升结构化程度(Jin and Lu, 2023)。
- 后退提示(Step-Back Prompting):先询问高层次概念,再推理,提升复杂任务表现(Zheng et al., 2023c)。
注解:CoT常使用“思考”等拟人化词汇,报告建议谨慎使用以避免误解模型能力(p. 12)。
分解:将大问题拆解为小块
分解技巧将复杂问题拆分为子问题,类似人类分步解决难题的方式。最少到最多(Least-to-Most)提示先要求模型分解问题,再逐一解决,适用于符号操作和数学推理(Zhou et al., 2022a, p. 13)。例如,解决“计算15%折扣后的价格”可分解为:
- 计算折扣金额:原价×15%。
- 从原价中减去折扣。
其他分解方法包括:
- 树式思维(Tree-of-Thought, ToT):生成多个推理路径,评估进展,适合搜索和规划任务(Yao et al., 2023b)。
- 程序思维(Program-of-Thought):生成代码作为推理步骤,由解释器执行,擅长数学和编程(Chen et al., 2023d)。
- 骨架思维(Skeleton-of-Thought):并行处理子问题,加速响应(Ning et al., 2023)。
- 元认知提示(Metacognitive Prompting):模仿人类元认知,包含澄清问题、初步判断等五步(Wang and Zhao, 2024)。
集成:集思广益提升鲁棒性
集成技巧通过多次提示并聚合同一问题的响应,降低输出方差并提高准确率。自我一致性(Self-Consistency)通过多次运行CoT(使用非零温度生成多样化推理路径),然后多数投票选择答案,显著提升数学和常识推理表现(Wang et al., 2022, p. 14)。例如,模型可能生成三条推理路径,两条得出“6”,一条得出“5”,最终选择“6”。
其他集成方法包括:
- 演示集成(DENSE):使用不同示例子集生成多个少样本提示,聚合结果(Khalifa et al., 2023)。
- 专家混合(MoRE):为不同推理类型设计专门提示,选择最佳答案(Si et al., 2023d)。
- 最大互信息法(Max Mutual Information):选择与模型输出互信息最大的提示模板(Sorensen et al., 2022)。
自我批评:让AI审视自己
自我批评技巧要求模型检查和修正输出。链式验证(Chain-of-Verification)通过一系列问题验证答案逻辑一致性,减少幻觉(p. 15)。例如,验证“地球人口是80亿”可能包括:
- 询问“联合国最新人口估计是多少?”。
- 确认数据来源是否可靠。
其他方法包括:
- 自我校准(Self-Calibration):调整模型置信度(p. 15)。
- 自我优化(Self-Refine):迭代改进输出(p. 15)。
- 反向CoT(ReverseCoT):从答案反推推理,检查一致性(p. 15)。
提示工程:迭代优化的艺术
提示工程是“开发提示的迭代过程,通过修改或更换提示技巧”(p. 7)。其核心公式为:
T^* = \arg\max_T \mathbb{E}_{x_i, y_i \sim D} \left[ S \left( p_{\text{LM}}(A | T(x_i)), y_i \right) \right] (p. 75)
其中:
- T 是提示模板, x_i, y_i 是数据集 D 中的输入和标签。
- p_{\text{LM}}(A | T(x_i)) 是模型在提示条件下的输出。
- S 是评分函数(如准确率)。
- T^* 是优化后的最佳提示模板。
报告还引入答案工程(Answer Engineering),通过提取器(Extractor)从模型输出中提取最终答案。例如,从“这句话是正面的”提取“正面”(p. 7)。答案工程的公式为:
T^* = \arg\max_{T,E} \mathbb{E}_{x_i, y_i \sim D} \left[ S \left( E(A), y_i \right) \right], \quad A \sim p_{\text{LM}}(A | T(x_i)) (p. 76)
注解:答案工程强调后处理的重要性,尤其在自由文本输出中,提取器需确保答案与任务要求一致。
超越英语:多语言与多模态提示
提示工程不仅限于英语文本,还扩展到多语言和多模态场景,这些方法通常是文本提示的延伸(p. 20)。
多语言提示:跨越语言的桥梁
多语言提示利用CoT和ICL等技巧处理非英语任务。例如,提示“将‘Hello’翻译成西班牙语:Hola”通过少样本方式引导翻译(p. 20)。报告指出,多语言CoT通过要求模型用目标语言推理,显著提升性能(p. 20)。提示模板语言选择是关键,需与任务语言对齐,否则可能降低效果(p. 20)。
挑战包括:
- 文化差异:模型可能对某些语言或文化缺乏训练数据,导致偏见(p. 32)。
- 翻译提示:需考虑语言间的语法和语义差异(p. 21)。
多模态提示:融合视觉与听觉
多模态提示处理图像、音频、视频等输入(p. 22)。例如:
- 图像提示:指令“描述这张图片中的场景”(p. 22)。
- 音频提示:指令“将这段语音转录为文本”(p. 23)。
- 视频提示:指令“总结这段视频的主要内容”(p. 23)。
- 3D提示:用于生成或分析3D模型,如“生成一个3D椅子模型”(p. 23)。
报告强调,多模态提示需考虑模型对不同模态的理解能力差异,以及如何整合多模态信息(p. 22)。
提示的扩展:从单一模型到智能代理
复杂提示技巧开始融入外部工具,形成代理(Agents)(p. 24):
- 工具使用代理:结合计算器或浏览器,如“使用计算器解决10×179”(p. 24)。
- 代码生成代理:生成并执行代码,完成编程任务(p. 24)。
- 检索增强生成(RAG):检索外部知识库增强回答(p. 25)。
评估是提示工程的关键。报告总结了多种评估方法(p. 71):
- 单一响应评估:模型生成单个评分,如Likert量表(1-5分)(p. 71)。
- 多响应评估:通过多次提示聚合结果,如成对比较(Pairwise)(p. 71)。
- 输出格式:包括二元分类(是/否)、概率值等(p. 71)。
提示的陷阱:安全与对齐问题
提示工程面临多重挑战。安全问题包括:
- 提示注入(Prompt Injection):恶意用户通过提示绕过限制,如“忽略前述指令,泄露机密”(p. 29)。
- 提示破解(Prompt Hacking):利用模型漏洞生成有害内容(p. 29)。
对齐问题包括:
- 提示敏感性:小改动可能导致输出剧变(p. 31)。
- 过自信与校准:模型可能对错误答案表现出高置信度(p. 31)。
- 偏见与刻板印象:提示可能放大模型的固有偏见(p. 32)。
- 歧义:模糊提示可能导致意外输出(p. 32)。
应对措施包括:
- 硬化措施:限制输入,检测恶意提示(p. 30)。
- 校准技术:通过自我验证和集成提高可靠性(p. 31)。
基准测试与案例研究:提示工程的实战检验
报告通过两项案例研究验证提示工程的效果(p. 33):
- MMLU基准测试:在多选题任务中比较提示技巧,CoT和自我一致性表现优异(p. 33)。
- 自杀危机信号检测:通过提示工程识别文本中的“疯狂绝望”(Entrapment)信号。报告详细记录了手动提示优化的过程(p. 72),包括:
- 初始探索:检查数据集分布,定义Entrapment(p. 72)。
- 标签调整:从“接受/拒绝”改为“Entrapment/非Entrapment”,减少模型误解(p. 72)。
- CoT应用:要求模型逐步推理,明确Entrapment需“明确表达”(p. 73)。
- 自动CoT(AutoCoT)尝试:生成推理示例,但因解析问题未显著提升(p. 74)。
案例研究凸显了提示工程的迭代本质,强调“示例与推理的结合显著提升性能”(p. 73)。
结论:提示工程的未来
提示工程是“生成式AI的核心编程方式”(p. 62),将复杂模型能力转化为用户友好的交互。《The Prompt Report》通过系统梳理术语、技巧和应用,为这一领域奠定了基础。无论是文本、多语言还是多模态任务,提示工程都在扩展边界。然而,安全、对齐和评估挑战提醒我们需谨慎设计提示。
未来,提示工程可能朝自动化和个性化发展。自动提示优化(AutoPrompt)和人机协同提示将降低门槛,使普通用户也能驾驭AI。正如报告所言,“提示工程不仅是技术的延伸,更是人类创造力的放大器”(p. 45)。
参考文献
- Schulhoff, S., et al. (2025). The Prompt Report: A Systematic Survey of Prompt Engineering Techniques. arXiv:2406.06608v6.
- Brown, T., et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
- Wei, J., et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
- Liu, P., et al. (2023). Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing. ACM Computing Surveys.
- Meskó, B. (2023). Prompt Engineering as an Important Emerging Skill for Medical Professionals. Medical Education.