PAGE 05

✍️ 提示词工程 Prompt Engineering

掌握与大语言模型高效沟通的艺术——从基础技巧到高级策略,让同样的模型产出 3-10 倍更好的结果

10+
核心技术
3–10×
效果提升潜力
6
实战案例

一、为什么 Prompt Engineering 重要?

提示词工程(Prompt Engineering)是与大语言模型(LLM)交互的核心技能。它不涉及修改模型参数或重新训练,而是通过精心设计输入文本来引导模型产生更好的输出。

📈 3-10 倍效果提升

同样的 GPT-4 / Claude / 通义千问等模型,经过精心设计的 Prompt 可以在准确率、完整性和实用性上带来数量级的提升。OpenAI 官方文档和学术论文均表明,Prompt 质量是影响 LLM 输出质量的最关键因素之一。

🔓 不改模型就能获得更好结果

与模型微调(Fine-tuning)不同,Prompt Engineering 零成本、即时生效、可快速迭代。在多数实际应用中,优化 Prompt 的投入产出比远高于微调。

🎯 模型能力的"释放器"

大语言模型拥有大量预训练知识,但默认情况下这些能力并非完全可及。好的 Prompt 就像一个精密的"钥匙",能解锁模型在特定任务上的最佳表现。Prompt Engineering 的本质是人类意图与模型能力之间的桥梁

关键洞察:Prompt Engineering 不是"投机取巧",而是一项系统性的工程实践。它涉及对语言模型行为模式的理解、对任务需求的精确表达、以及对输出质量的持续评估与迭代。
— 参见:Liu et al. (2023) "Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in NLP"

二、基础技巧(附对比案例)

1

Zero-shot Prompting 零样本提示

直接给出任务指令,不提供任何示例。模型依靠预训练知识完成任务。这是最简单的提示方式,也是评估模型"开箱即用"能力的基准。

💡 原理:LLM 在预训练阶段已见过大量任务模式,直接给出清晰指令即可激活相关能力。
❌ 模糊指令 这篇文本是啥意思?
✅ 清晰指令 请将以下英文评论翻译为中文,并判断情感倾向(正面/负面/中性):

"The product quality is excellent but shipping was too slow."
Brown et al. (2020) "Language Models are Few-Shot Learners" — GPT-3 论文首次系统展示了 zero-shot 和 few-shot 的能力对比
2

Few-shot Prompting 少样本提示

在 Prompt 中提供若干标注好的示例,让模型通过"模仿"来理解任务模式。示例质量比数量更重要。

💡 原理:示例为模型建立了输入→输出的映射关系,降低了任务理解的难度。
Few-shot 情感分析示例 # 任务:判断评论的情感倾向 评论:"这个产品太棒了,用起来非常顺手!" 情感:正面 评论:"配送太慢了,等了整整一周,包装也破了。" 情感:负面 评论:"还行吧,中规中矩,没什么特别的。" 情感:中性 评论:"客服态度特别好,耐心解答了我所有的问题,五星好评!" 情感:正面

📊 示例数量 vs 效果关系

0-shot
55%
1-shot
68%
3-shot
78%
5-shot
82%
10-shot
84%

* 示例为典型趋势示意,实际效果因任务和模型而异。注意:收益递减点通常在 3-5 个示例左右。

Brown et al. (2020) "Language Models are Few-Shot Learners" — 证明了 few-shot 在 GPT-3 上的显著效果
3

Role Prompting 角色扮演

为模型设定一个专家角色,利用"角色锚定效应"让模型以特定视角和知识深度来回答问题。

💡 原理:角色设定激活了模型在预训练数据中与该角色相关的知识子空间,相当于给模型加了一个"注意力过滤器"。
好的角色 Prompt 你是一个拥有 15 年经验的资深数据分析师。 你擅长从复杂数据中提取洞察,并能用清晰、有说服力的方式呈现分析结果。 你的工作方式: 1. 先理解业务背景和数据结构 2. 提出关键假设 3. 用数据验证假设 4. 给出可执行的建议 请分析以下销售数据,给出你的洞察和建议: [数据...]

🎯 好角色 Prompt 的要素

  • 明确身份 — "你是拥有 15 年经验的资深数据分析师",而非简单的"你是一个分析师"
  • 专业领域 — 明确角色的专业方向和能力边界
  • 工作方式 — 描述角色的思考框架和工作流程
  • 输出风格 — 指定回答的语气、格式和详细程度
  • 约束条件 — 比如只基于事实、不编造数据等
❌ 弱角色 你是一个专家,帮我分析一下这个问题。
✅ 强角色 你是一位斯坦福大学计算机科学教授,专攻自然语言处理。请用学术论文的严谨风格,解释 Transformer 架构为什么比 RNN 更适合处理长序列。
4

Chain-of-Thought (CoT) 思维链

让模型展示其推理过程,"一步步思考"。对于数学、逻辑推理等复杂任务,CoT 能显著提高准确率。是当前最重要的 Prompt 技巧之一。

💡 原理:强制模型将复杂推理分解为多个中间步骤,每一步的输出作为下一步的输入,降低了单步推理的难度。
❌ 直接回答(容易出错) 问:一个水池有两个水管,A 管单独注满需要 3 小时,B 管单独注满需要 6 小时。两管同时开,多久能注满?

答:4.5 小时(常见错误:取平均)
✅ Chain-of-Thought 问:一个水池有两个水管...

让我们一步步思考:
1. A 管每小时注满水池的 1/3
2. B 管每小时注满水池的 1/6
3. 两管同时开每小时注满 1/3 + 1/6 = 1/2
4. 所以注满整个水池需要 1 ÷ (1/2) = 2 小时

🪄 Zero-shot CoT 魔法短语

Zero-shot CoT 只需在 Prompt 末尾加上一句: "Let's think step by step" (让我们一步步思考) 这简单的 7 个词就能显著提升模型在数学推理、逻辑推理等任务上的表现。
效果数据:在 GSM8K 数学推理数据集上,PaLM 540B 使用 CoT 后准确率从 17.6% 提升至 57.6%(提升 >3 倍)。Google 的研究显示,CoT 在大型模型上的效果远优于小模型,存在"涌现"特性。
Wei et al. (2022) "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" — Google Research
5

Self-Consistency 自我一致性

对同一个问题让模型多次生成推理过程(通过调节 temperature),然后取最终答案中出现最多的结果(多数投票)。

💡 原理:CoT 的推理路径可能不同,但正确答案通常集中在同一个结果。通过多次采样和投票,可以有效过滤掉推理过程中的偶然错误。
Self-Consistency 流程 # 对同一问题,生成多条推理路径: 路径 1: 2 + 3 × 4 → 2 + 12 → 14路径 2: 2 + 3 × 4 → 5 × 4 → 20 ✗(先加后乘,错误) 路径 3: 2 + 3 × 4 → 2 + 12 → 14路径 4: 2 + 3 × 4 → 2 + 12 → 14路径 5: 2 + 3 × 4 → (2+3)×4 → 20投票结果:14 获得 3 票,20 获得 2 票 → 最终答案:14
Wang et al. (2022) "Self-Consistency Improves Chain of Thought Reasoning in Language Models"
6

Tree of Thoughts (ToT) 思维树

将推理过程组织为一棵搜索树,每个节点代表一个推理状态,通过"探索"和"评估"来找到最优解。比线性 CoT 更适合需要回溯和全局规划的任务。

💡 原理:模拟人类的"系统二"思考——在复杂问题上,人类不会只走一条路,而是会考虑多种可能性、评估每条路径的价值,必要时回退重来。
ToT 示例:24 点游戏 问题:使用数字 4, 5, 6, 10 和 +, -, ×, ÷ 得到 24。 思考树: ├── 尝试: 10 - 4 = 6 → 剩余 {5, 6, 6} │ ├── 尝试: 5 × 6 = 30, 30 - 6 = 24 ✓ │ └── 尝试: 6 + 6 = 12, 12 × 5 = 60 ✗ ├── 尝试: 6 × 4 = 24 → 剩余 {5, 10} │ └── 尝试: 10 - 5 = 5, 24 × 5 = 120 ✗ └── 尝试: 10 + 6 = 16 → 剩余 {4, 5} └── 尝试: 5 × 4 = 20, 16 + 20 = 36 ✗ 最优路径:10 - 4 = 6 → 5 × 6 = 30 → 30 - 6 = 24 ✓
特性 Chain-of-Thought Tree of Thoughts
推理路径 单条线性路径 多条分支路径
回溯能力 ❌ 无法回退 ✅ 可回退重试
全局规划 ❌ 局部最优 ✅ 全局搜索
计算成本 低(1次推理) 高(多次推理)
适用场景 一般推理任务 需要规划/搜索的复杂任务
Yao et al. (2023) "Tree of Thoughts: Deliberate Problem Solving with Large Language Models"

三、高级技巧

7

Directional Stimulus Prompting 方向性刺激

通过在 Prompt 中嵌入特定的"刺激"信号(如关键词、情感词、约束条件),定向引导模型的输出方向。与 Few-shot 不同,它不需要完整示例,只需要微妙的暗示。

💡 原理:利用模型对特定词语/模式的注意力偏好,在输入中嵌入"方向锚点",让模型自发地向目标方向偏移。
方向性刺激示例 # 目标:让模型给出更创新性的回答 普通 Prompt: "请为一家咖啡店起个名字。" 方向性刺激 Prompt: "请为一家咖啡店起个名字。名字要有创意感,让人过目不忘,最好能体现一种独特的品牌哲学。可以大胆使用隐喻反直觉的表达方式。"
相关思想可追溯至 Liu et al. (2023) 关于 Prompt 设计中语义刺激的研究
8

ReAct Prompting 推理+行动循环

将推理(Reasoning)和行动(Acting)交替进行,模型先思考下一步该做什么,然后执行一个动作(如搜索、计算、查询),再根据结果继续推理。这是 Agent 的核心交互模式。

💡 原理:将"想"和"做"结合为一个闭环,让模型能够利用外部工具来弥补自身知识的不足。
ReAct 循环示例 问题:2024 年诺贝尔物理学奖获得者是谁?他所属哪个大学? Thought 1:我需要查找 2024 年诺贝尔物理学奖的信息。 Action 1:Search("2024 Nobel Prize Physics winner") Observation 1:2024 年诺贝尔物理学奖授予了 John Hopfield 和 Geoffrey Hinton... Thought 2:找到了获奖者。现在需要查 Geoffrey Hinton 所属的大学。 Action 2:Search("Geoffrey Hinton affiliation university") Observation 2:Geoffrey Hinton 是多伦多大学的名誉教授... Thought 3:我已经收集了所有需要的信息。 Final Answer:2024 年诺贝尔物理学奖获得者包括 Geoffrey Hinton(多伦多大学)和 John Hopfield(普林斯顿大学)。
Yao et al. (2022) "ReAct: Synergizing Reasoning and Acting in Language Models"
9

Prompt Chaining 提示链

将复杂任务拆解为多个子任务,每个子任务用独立的 Prompt 处理,前一个步骤的输出作为后一个步骤的输入。像流水线一样逐步完成。

💡 原理:分而治之。每个 Prompt 只负责一个明确的小任务,降低了单次 Prompt 的复杂度,提升了每一步的可靠性。
提示链示例:长文摘要 # Step 1: 提取关键信息 Prompt 1: "从以下文章中提取所有关键论点和数据支撑..." → 输出: 结构化论点列表 # Step 2: 归纳整理 Prompt 2: "将以下论点按重要性排序,并归类到 3-5 个主题下..." → 输出: 分类后的论点 # Step 3: 生成最终摘要 Prompt 3: "基于以下分类论点,写一篇 200 字的执行摘要..." → 输出: 最终摘要
提示链 vs 单次长 Prompt:提示链每步可独立验证和调试,出错时只需修改对应环节。单次长 Prompt 虽然简单,但出错排查困难,且受上下文窗口限制。
10

Meta-Prompting 用 AI 优化 Prompt

让 LLM 自己来优化 Prompt。提供一个初始 Prompt 和期望的输出格式,让模型迭代改进 Prompt 的措辞、结构和约束条件。

💡 原理:LLM 对语言模式有深刻理解,可以用它自身的语言能力来"优化"与它沟通的语言。
Meta-Prompting 示例 # 给 AI 一个"优化 Prompt"的任务: "你是一个 Prompt Engineering 专家。请优化以下 Prompt: 原始 Prompt:'帮我写个产品介绍' 优化要求: 1. 明确产品类型和目标受众 2. 指定输出格式和字数 3. 添加风格和语气约束 4. 包含关键信息要素 请输出优化后的 Prompt,并解释每项改进的理由。"
自动化工具:OpenAI 的 Playground 提供了 Prompt 优化功能;开源工具如 promptfoodspy 也支持自动 Prompt 优化和评估。

四、Prompt 设计最佳实践

1. 明确指令 vs 模糊指令

❌ 模糊 "写一篇关于 AI 的文章。"
✅ 明确 "写一篇 800 字的 AI 入门科普文章,面向没有任何技术背景的普通读者。要求:1) 用通俗比喻解释什么是 AI 2) 列举 3 个日常生活中的 AI 应用 3) 以对未来的积极展望结尾。语气友好、口语化。"

2. 输出格式控制

格式控制示例 # JSON 格式输出 "请以 JSON 格式返回分析结果,包含以下字段: - sentiment: 字符串,值为 positive/negative/neutral - confidence: 数字,0-1 之间 - keywords: 字符串数组,最多 5 个关键词" # Markdown 表格格式 "请用 Markdown 表格格式输出对比结果,列为:特性 | 模型A | 模型B | 胜出者" # 结构化报告 "请按以下结构输出报告: ## 摘要(50字以内) ## 背景分析 ## 核心发现(3-5条) ## 建议(可执行的行动项)"

3. 分隔符的使用

使用明确的分隔符来区分指令和内容,避免模型混淆。

分隔符示例 使用三引号、三反引号、XML 标签等: 请总结以下文章的核心观点: """ 文章内容... """ 请翻译以下文本: ``` Text to translate... ``` 请分析以下数据: <data> ...数据内容... </data>

4. 负面提示(告诉模型不要做什么)

负面提示 "请改写以下文章,使其更加简洁。注意: - 不要改变原文的核心含义 - 不要添加原文没有的信息 - 不要使用过于学术化的术语 - 不要超过原文长度的 70%"

5. 温度和 Top-p 参数的影响

参数 低值(0-0.3) 中值(0.3-0.7) 高值(0.7-1.0)
Temperature 确定性高,输出稳定
适合:事实问答、代码生成
平衡创造性和准确性
适合:通用对话、摘要
创造性高,输出多样
适合:创意写作、头脑风暴
Top-p 只选最可能的词
输出高度可预测
考虑概率分布的较大部分
输出合理且多样
考虑几乎所有可能
输出非常多样但可能不连贯
实用建议:对于需要精确答案的任务(数学、编程、数据提取),建议 temperature=0。对于创意任务,temperature=0.7-0.9。通常不需要同时调整 temperature 和 top-p,选择其中一个即可。

五、Prompt 评估

写好 Prompt 只是第一步,系统性地评估和优化才是关键。

1. 如何量化 Prompt 的效果?

📊 评估维度

  • 准确性(Accuracy) — 输出是否正确、符合事实
  • 完整性(Completeness) — 是否覆盖了所有要求的内容
  • 相关性(Relevance) — 是否聚焦于目标任务,没有无关信息
  • 一致性(Consistency) — 多次运行结果是否稳定
  • 格式合规性(Format Compliance) — 输出是否符合要求的格式
  • 安全性(Safety) — 是否包含有害或不当内容

2. A/B 测试方法

🔬 Prompt A/B 测试流程

A/B 测试步骤 1. 准备测试集: 50-200 个代表性的测试样本 2. 定义 Prompt 变体: A 版(当前版本)vs B 版(优化版本) 3. 批量运行: 在相同条件下对两个版本运行测试集 4. 评估打分: 人工评分或使用评估模型(如 GPT-4-as-judge) 5. 统计分析: 对比准确率、一致性等指标 6. 迭代优化: 基于分析结果继续改进 Prompt

3. 自动化评估工具

工具 特点 适用场景
promptfoo 开源,支持多模型对比,自动评分 CI/CD 集成,回归测试
dspy Stanford NLP 出品,自动优化 Prompt 学术研究,复杂 NLP 管线
LangSmith LangChain 官方,追踪+评估一体化 LangChain 应用调试
OpenAI Evals OpenAI 官方评估框架 GPT 模型评估
DeepEval LLM 评估框架,内置多种指标 RAG 系统、Agent 评估
Zheng et al. (2023) "Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena" — LLM-as-judge 评估方法

六、实战案例集合

✍️

文案写作 Prompt

Marketing Copy 你是一个资深营销文案专家,擅长为科技公司撰写 SaaS 产品推广文案。 任务:为以下产品写一段 200 字以内的推广文案。 产品信息:[产品名称和核心卖点] 要求: 1. 第一句话必须抓住读者注意力(使用提问或数据) 2. 突出 2-3 个核心差异化优势 3. 包含明确的 Call-to-Action 4. 语气:专业但不刻板,有说服力 5. 目标读者:[目标受众描述] 不要:使用过度夸张的语言(如"革命性"、"颠覆性")
💻

代码生成 Prompt

Code Generation 你是一个高级 Python 工程师,有 10 年后端开发经验。 任务:实现一个通用的 LRU Cache。 要求: 1. 使用 Python 3.10+ 语法 2. get 和 put 操作的时间复杂度为 O(1) 3. 包含类型注解(Type Hints) 4. 包含完整的 docstring 5. 附带 3 个单元测试用例 6. 处理边界情况:空缓存、容量为 1、key 不存在 不要:使用第三方库,只用标准库。
📊

数据分析 Prompt

Data Analysis 你是一位资深数据分析师,擅长从数据中提取业务洞察。 背景:我是一家电商公司的运营经理,有以下月度销售数据。 数据: [粘贴数据或描述数据结构] 请按以下步骤分析: 1. **数据概览**:关键统计指标(总量、均值、趋势) 2. **异常检测**:识别任何异常值或异常趋势 3. **归因分析**:找出变化的主要原因 4. **预测建议**:基于趋势给出下个月的建议 5. **可视化建议**:推荐 3 个最有价值的图表类型 输出格式:使用 Markdown 格式,每个部分用二级标题分隔。
🎓

教学辅导 Prompt

Teaching Assistant 你是一位经验丰富的 [学科] 教师,善于用生动的比喻和循序渐进的方式解释复杂概念。 学生水平:[年级/知识背景] 教学目标:帮助学生理解 [具体概念] 教学方法: 1. 先用一个日常生活的比喻引入概念 2. 然后给出正式定义(避免过多术语) 3. 用 1-2 个具体例子演示 4. 设计一个思考题让学生巩固理解 5. 最后总结关键要点 语气:耐心、鼓励,像一位好导师。如果学生可能容易混淆的地方,要特别指出。 重要: - 不要直接给出答案,引导学生自己思考 - 使用苏格拉底式提问法

七、参考来源

📚 学术论文

  • Brown, T. et al. (2020). "Language Models are Few-Shot Learners." NeurIPS 2020
  • Wei, J. et al. (2022). "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models." NeurIPS 2022
  • Wang, X. et al. (2022). "Self-Consistency Improves Chain of Thought Reasoning in Language Models." ICLR 2023
  • Yao, S. et al. (2022). "ReAct: Synergizing Reasoning and Acting in Language Models." ICLR 2023
  • Yao, S. et al. (2023). "Tree of Thoughts: Deliberate Problem Solving with Large Language Models." NeurIPS 2023
  • Liu, P. et al. (2023). "Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in NLP." ACM Computing Surveys
  • Zheng, L. et al. (2023). "Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena." NeurIPS 2023

🌐 实用资源