第 2 课
← 返回系列列表

高级提示词技巧

Prompt Engineering — 提示词工程

少样本提示、思维链、结构化输出、条件逻辑等高级方法。

高级提示词技巧

课程简介

少样本提示、思维链、结构化输出、条件逻辑等高级方法。

🎬 本课程视频:Prompt Engineering — 提示词工程


高级提示词技巧

一、少样本学习(Few-Shot Learning)

1.1 什么少样本学习?

少样本学习是在提示词中提供若干输入-输出示例,让模型从示例中学习任务的模式和风格,然后处理新的输入。

1.2 示例的选择策略

覆盖策略:示例应该覆盖输入空间的典型变化。如果任务是情感分类,示例应该包括正面、负面和中性三种。

示例:
输入:这部电影太精彩了,我看了三遍。 → 正面
输入:一般般,没什么特别的。 → 中性
输入:浪费时间,完全不推荐。 → 负面

新的输入:画质很好但剧情空洞。
输出:

难度递增策略:从简单到困难排列示例,让模型从易到难学习。

边界案例策略:包含一些边界案例,帮助模型处理模糊情况。

1.3 少样本 vs 微调

维度 少样本学习 微调
需要的数据量 2-10 个示例 500-10000+ 条
准备时间 分钟级 天级
灵活性 高(可以随时换任务) 低(一个模型一个任务)
Token 成本 每次调用包含示例 一次训练后无额外成本
效果上限 中等(受上下文窗口限制) 高(深度适应任务)

二、思维链(Chain-of-Thought, CoT)

2.1 核心思想

思维链是目前最有影响力的高级提示技巧。它的核心思想是:引导模型在给出最终答案之前,展示中间推理步骤

2.2 为什么思维链有效?

传统提示词要求模型直接给出答案。对于简单问题,这不是问题。但对于需要多步推理的问题,直接给出答案的跳过了推理过程,错误率会显著上升。

思维链通过让模型「把思考过程写下来」,实现了两个关键效果:
1. 推理显式化:每一步推理都可见,便于检查和纠错
2. 计算外化:利用模型的文本生成能力进行符号化推理,而非依赖其隐含的推理能力

2.3 思维链的实现方式

零样本思维链(Zero-shot CoT):只需要在提示词最后加上「请逐步思考」。

问题:一个苹果 3 元,一个橙子 4 元,小明买了 5 个苹果和 3 个橙子,一共花了多少钱?
请逐步思考。

推理过程:
1. 苹果的总价:5 × 3 = 15 元
2. 橙子的总价:3 × 4 = 12 元
3. 总共:15 + 12 = 27 元

答案:27 元。

少样本思维链(Few-shot CoT):提供包含推理过程的示例。

示例:
Q:小明有 10 颗糖,给了小红 3 颗,又从小花的 5 颗糖中拿了 2 颗,小明现在有几颗糖?
A:小明原本有 10 颗。给了小红 3 颗,还剩 10 - 3 = 7 颗。从小花那里拿了 2 颗,7 + 2 = 9 颗。答案是 9。

Q:图书馆有 120 本书,周一借出 25 本,周二还回 12 本,周三借出 18 本,现在图书馆有多少本书?
A:

2.4 思维链的变体

结构化思维链:要求模型按固定模板输出推理过程。

推理步骤:
1. 已知条件:[列出已知信息]
2. 目标:[明确需要求解什么]
3. 第一步计算:[第一步的计算过程和结果]
4. 第二步计算:[第二步的计算过程和结果]
5. 检查:[验证结果是否合理]
6. 最终答案:[最终结果]

多路径思维链:生成多个不同的推理路径,选择多数一致的结论。

2.5 思维链的适用场景

三、结构化输出

3.1 为什么需要结构化输出?

LLM 的默认输出是自然语言文本。但在很多工程场景中,我们需要的是可以被程序直接解析的结构化数据。

3.2 JSON 模式约束

请从以下文本中提取信息,按 JSON 格式输出。

文本:「2024 年第三季度,特斯拉实现营收 251.8 亿美元,净利润 21.8 亿美元。」

输出格式:
{
  "company": "公司名称",
  "period": "时间期间",
  "metrics": [
    {"name": "指标名称", "value": 数值, "unit": "单位"}
  ]
}

3.3 制表符分隔输出

请以表格形式输出,每列用制表符分隔。

产品名称    销售额 增长率
iPhone  500亿    8%
Mac 100亿    -2%
iPad    80亿 5%

3.4 输出格式约束的技巧

  1. 显式指定 Schema:在提示词中写出完整的输出结构
  2. 提供示例:给出一个完整的输出示例
  3. 指定枚举值:对于受限的字段,列出允许的值
  4. 设置默认值:要求缺失字段使用 null 或空字符串

四、条件逻辑

4.1 条件路由

根据输入的内容,选择不同的处理路径。

判断用户输入的类型:

1. 如果用户的问题是「技术咨询」,调用技术知识库回答
2. 如果用户的问题是「售后服务」,调用售后流程回答
3. 如果用户的问题是「产品介绍」,生成产品介绍
4. 如果无法分类,请求用户澄清

请先输出分类结果,再按分类处理。

4.2 分支提示词

IF 条件 A THEN 执行分支 A
IF 条件 B THEN 执行分支 B
IF 两者都满足 THEN 优先执行分支 A

五、提示词组合技巧

5.1 角色 + 任务 + 格式

最常用的提示词结构:先定义角色,再说明任务,最后约束输出格式。

你是一位数据科学家。请分析以下数据集,找出三个最有意义的趋势。
输出格式:以 Markdown 列表形式,每个趋势包含「趋势描述」和「数据支持」两个子项。

5.2 链式提示

多个提示词串联,前一步输出作为后一步输入。每一步可以加入新的约束。

5.3 对比提示

要求模型从正反两个方面分析问题。

请分别从支持方和反对方的角度,分析以下议题:远程办公是否应该成为常态?
支持方观点:
反对方观点:
最后给出你的综合分析。

六、常见陷阱与解决方案

6.1 过度拟合示例

问题:提供的示例太少或太类似,模型输出的风格和模式被锁死
解决:提供多样化的示例,覆盖不同的输入变体

6.2 模型偷懒

问题:模型使用「等」、「类似」、「等等」来省略内容,而不是完整输出
解决:明确要求「不省略任何内容,完整输出全部项目」

6.3 角色矛盾

问题:在同一个对话中给模型分配了冲突的角色
解决:保持角色一致,或者在不同步骤中明确切换角色

七、总结

高级提示词技巧包括少样本学习、思维链、结构化输出和条件逻辑。少样本学习通过示例引导模型行为;思维链通过展示推理步骤提升复杂推理的准确性;结构化输出确保模型输出可以被程序消费;条件逻辑实现根据输入动态选择处理路径。这些技巧各有适用场景,组合使用可以实现更强大、更可控的 LLM 应用。

五、思维链(Chain of Thought)

5.1 什么是思维链

思维链(CoT)是一种让 LLM “展示推理过程”的技术。不是让模型直接输出答案,而是先输出一步步的推理过程,再给出最终答案。

5.2 思维链的效果

在数学推理、逻辑推理、复杂问答等任务中,思维链能显著提升准确率。例如:

问题:小明有 3 个苹果,小红有 5 个苹果,他们一共有多少个苹果?

错误的思维链:
3 + 5 = 9
答案:9

正确的思维链:
小明有 3 个苹果,小红有 5 个苹果。
要求苹果总数。
总数 = 小明的苹果 + 小红的苹果 = 3 + 5 = 8
答案:8

5.3 零样本思维链

只需要在提示词末尾加上“请逐步思考”或“Let's think step by step”,就能触发思维链效果。这是最简单有效的提示词技巧之一。

六、结构化输出

6.1 什么是结构化输出

要求 LLM 按照特定的格式(JSON、XML、Markdown table 等)输出结果。结构化输出让 LLM 的输出可以直接被程序解析和使用。

6.2 结构化输出的实现

请分析以下客户反馈,并以 JSON 格式输出:

反馈:{customer_feedback}

输出格式:
{
  "sentiment": "positive|negative|neutral",
  "category": "产品|服务|价格|其他",
  "key_points": ["点1", "点2"],
  "priority": 1-5
}

七、总结

高级提示词技巧让我们能够挖掘 LLM 的更深层能力。

关键要点回顾:
- 少样本提示通过示例指导模型
- 思维链让模型展示推理过程
- 结构化输出让结果可直接程序解析
- 综合使用各种技巧效果更好

五、思维链(Chain of Thought)

5.1 什么是思维链

思维链(CoT)是一种让 LLM “展示推理过程”的技术。不是让模型直接输出答案,而是先输出一步步的推理过程,再给出最终答案。

5.2 思维链的效果

在数学推理、逻辑推理、复杂问答等任务中,思维链能显著提升准确率。例如:

问题:小明有 3 个苹果,小红有 5 个苹果,他们一共有多少个苹果?

错误的思维链:
3 + 5 = 9
答案:9

正确的思维链:
小明有 3 个苹果,小红有 5 个苹果。
要求苹果总数。
总数 = 小明的苹果 + 小红的苹果 = 3 + 5 = 8
答案:8

5.3 零样本思维链

只需要在提示词末尾加上“请逐步思考”或“Let's think step by step”,就能触发思维链效果。这是最简单有效的提示词技巧之一。

六、结构化输出

6.1 什么是结构化输出

要求 LLM 按照特定的格式(JSON、XML、Markdown table 等)输出结果。结构化输出让 LLM 的输出可以直接被程序解析和使用。

6.2 结构化输出的实现

请分析以下客户反馈,并以 JSON 格式输出:

反馈:{customer_feedback}

输出格式:
{
  "sentiment": "positive|negative|neutral",
  "category": "产品|服务|价格|其他",
  "key_points": ["点1", "点2"],
  "priority": 1-5
}

七、总结

高级提示词技巧让我们能够挖掘 LLM 的更深层能力。

关键要点回顾:
- 少样本提示通过示例指导模型
- 思维链让模型展示推理过程
- 结构化输出让结果可直接程序解析
- 综合使用各种技巧效果更好

【深度技巧补充】我们再来聊聊思维链的一些进阶用法。除了基本的“Let's think step by step”之外,还有几种更强大的思维链变体:

1. 自洽性思维链(Self-Consistency CoT):多次运行思维链,取最一致的答案。假设一个问题可能有不同的推理路径,LLM 每次可能走不同的路径。通过多次采样并取多数答案,可以显著提升结果的可靠性。研究表明 Self-Consistency 可以将数学推理的准确率提升 10-20 个百分点。

2. 思维树(Tree of Thoughts):不是线性推理,而是分支推理。在每一步生成多个可能的推理方向,然后评估每个方向的可行性,选择最优方向继续探索。如果一条路径走不通,还可以回溯到之前的决策点换一条路径。

3. 主动提示(Active Prompt):让 LLM 自己决定在推理过程中需要哪些信息。模型不是被动地按固定步骤推理,而是主动提出“我需要知道 X 才能继续推理”,然后在获得相关信息后继续。

少样本提示的选择策略也很关键。不是随便选例子,而是遵循以下原则:例子的多样性——覆盖不同类型的输入;例子的难度递进——从简单到复杂;例子的边界覆盖——包含边缘情况和典型错误示例。好的少样本选择可以让模型更快地理解任务模式。

五、思维链(Chain of Thought)

5.1 什么是思维链

思维链(CoT)是一种让 LLM “展示推理过程”的技术。不是让模型直接输出答案,而是先输出一步步的推理过程,再给出最终答案。

5.2 思维链的效果

在数学推理、逻辑推理、复杂问答等任务中,思维链能显著提升准确率。例如:

问题:小明有 3 个苹果,小红有 5 个苹果,他们一共有多少个苹果?

错误的思维链:
3 + 5 = 9
答案:9

正确的思维链:
小明有 3 个苹果,小红有 5 个苹果。
要求苹果总数。
总数 = 小明的苹果 + 小红的苹果 = 3 + 5 = 8
答案:8

5.3 零样本思维链

只需要在提示词末尾加上“请逐步思考”或“Let's think step by step”,就能触发思维链效果。这是最简单有效的提示词技巧之一。

六、结构化输出

6.1 什么是结构化输出

要求 LLM 按照特定的格式(JSON、XML、Markdown table 等)输出结果。结构化输出让 LLM 的输出可以直接被程序解析和使用。

6.2 结构化输出的实现

请分析以下客户反馈,并以 JSON 格式输出:

反馈:{customer_feedback}

输出格式:
{
  "sentiment": "positive|negative|neutral",
  "category": "产品|服务|价格|其他",
  "key_points": ["点1", "点2"],
  "priority": 1-5
}

七、总结

高级提示词技巧让我们能够挖掘 LLM 的更深层能力。

关键要点回顾:
- 少样本提示通过示例指导模型
- 思维链让模型展示推理过程
- 结构化输出让结果可直接程序解析
- 综合使用各种技巧效果更好

【深度技巧补充】我们再来聊聊思维链的一些进阶用法。除了基本的“Let's think step by step”之外,还有几种更强大的思维链变体:

1. 自洽性思维链(Self-Consistency CoT):多次运行思维链,取最一致的答案。假设一个问题可能有不同的推理路径,LLM 每次可能走不同的路径。通过多次采样并取多数答案,可以显著提升结果的可靠性。研究表明 Self-Consistency 可以将数学推理的准确率提升 10-20 个百分点。

2. 思维树(Tree of Thoughts):不是线性推理,而是分支推理。在每一步生成多个可能的推理方向,然后评估每个方向的可行性,选择最优方向继续探索。如果一条路径走不通,还可以回溯到之前的决策点换一条路径。

3. 主动提示(Active Prompt):让 LLM 自己决定在推理过程中需要哪些信息。模型不是被动地按固定步骤推理,而是主动提出“我需要知道 X 才能继续推理”,然后在获得相关信息后继续。

少样本提示的选择策略也很关键。不是随便选例子,而是遵循以下原则:例子的多样性——覆盖不同类型的输入;例子的难度递进——从简单到复杂;例子的边界覆盖——包含边缘情况和典型错误示例。好的少样本选择可以让模型更快地理解任务模式。

延伸阅读

← 提示词基础与最佳实践 提示词工程工具与迭代 →