9

提示词工程(下)

高级Prompt技术与优化策略

⏱️ 90分钟📊 难度:进阶🎯 模块:工程实践

📖课程概述

在掌握了Zero-shot、Few-shot和Chain-of-Thought等基础技巧后,本讲将介绍更高级的提示词工程技术。 我们将学习Self-Consistency(自洽性)、Tree of Thoughts(思维树)等前沿方法, 探讨如何系统地优化和评估提示词效果,以及在实际应用中的常见问题和解决方案。 通过本讲学习,你将能够设计出更加强大和可靠的提示词系统。

🎯学习目标

1.掌握Self-Consistency和Tree of Thoughts等高级技巧
2.理解提示词优化的系统方法和评估标准
3.识别和解决提示词设计中的常见问题
4.建立提示词工程的最佳实践和设计模式库

🔑核心知识点

Self-ConsistencyTree of Thoughts提示词优化效果评估

🔄技巧一:Self-Consistency(自洽性)

🎲

什么是Self-Consistency

Self-Consistency(自洽性)是一种通过多次采样来提高答案可靠性的技术。 核心思想是:对同一个问题生成多个推理路径,然后通过投票或其他方法选择最一致的答案。 这种方法特别适用于有多个合理推理路径的复杂问题。

工作流程

1

多次采样

对同一问题使用CoT生成多个(如5-10个)推理路径

2

提取答案

从每个推理路径中提取最终答案

3

多数投票

选择出现频率最高的答案作为最终结果

示例:数学推理问题

问题:

一个数字减去5,然后乘以3,结果是21。这个数字是多少?

推理路径1:

设数字为x,则(x-5)×3=21 → x-5=7 → x=12 ✓

推理路径2:

反向推理:21÷3=7,7+5=12 ✓

推理路径3(错误):

(x-5)×3=21 → x×3-5=21 → x=8.67 ✗

推理路径4:

先除后加:21÷3=7,原数=7+5=12 ✓

推理路径5:

设减5后为y,则y×3=21 → y=7 → 原数=12 ✓

投票结果:

答案"12"出现4次,答案"8.67"出现1次
最终答案:12(多数投票)

优点

  • • 显著提高答案准确性和可靠性
  • • 能够识别和过滤错误推理
  • • 无需额外训练或标注数据
  • • 适用于各种推理任务

⚠️局限性

  • • 显著增加计算成本(多次调用)
  • • 需要更多时间生成结果
  • • 可能存在系统性偏差
  • • 对简单任务收益有限

🌳技巧二:Tree of Thoughts(思维树)

🎋

什么是Tree of Thoughts

Tree of Thoughts(ToT)是Chain-of-Thought的升级版,允许模型探索多个推理分支, 并在每一步评估不同路径的质量。ToT将问题求解过程建模为树状搜索, 可以回溯、剪枝,最终找到最优解。特别适用于需要探索和规划的复杂任务。

核心机制

1. 思维生成

在每一步生成多个可能的思考路径(分支)

2. 思维评估

评估每个分支的质量和成功可能性

3. 搜索策略

选择最有希望的路径继续探索(BFS/DFS)

4. 回溯机制

当路径不可行时,返回上层尝试其他分支

示例:24点游戏

问题:

使用数字4、5、6、10和加减乘除运算,如何得到24?

步骤1:生成初始思维分支

分支A: 4 + 5 = 9 (剩余: 9, 6, 10)
分支B: 4 × 5 = 20 (剩余: 20, 6, 10)
分支C: 6 × 5 = 30 (剩余: 4, 30, 10)
分支D: 10 - 6 = 4 (剩余: 4, 4, 5)

步骤2:评估并选择最优分支

评估:分支D (10-6=4) 让我们有两个4,可能有用
选择:继续探索分支D

步骤3:继续分支D

从 (4, 4, 5) 出发:
4 + 4 = 8,然后 8 × 5 = 40 ✗ (太大)
4 × 4 = 16,然后 16 + 5 = 21 ✗ (接近但不对)
(4 + 4) × 5 = 40 ✗
回溯!

步骤4:回溯并尝试分支B

从 (20, 6, 10) 出发:
20 + 6 = 26 ✗
20 - 6 = 14 ✗
6 - 10 = -4,然后 20 + (-4) = 16 ✗

步骤5:尝试新组合

(10 - 4) = 6,然后 6 × (6 - 5) = 6 ✗
(10 - 6) = 4,然后 4 × (5 + 4) = 36 ✗
6 ÷ (5 - 4) = 6,然后 6 × 10 = 60 ✗
(6 - 5/4) × 10 不符合规则

步骤6:找到解!

(10 - 4) × 5 - 6 = 6 × 5 - 6 = 30 - 6 = 24 ✓

ToT优势体现:

• 系统地探索了多个可能的路径
• 能够评估中间步骤的价值
• 当路径不可行时及时回溯
• 最终找到正确解:(10-4)×5-6 = 24

🎯ToT vs CoT vs Self-Consistency

CoT:单一推理链,线性思考

Self-Consistency:多条独立推理链,并行投票

ToT:树状探索,可回溯和剪枝,更系统化

优点

  • • 系统化探索解决方案空间
  • • 能够处理需要规划的复杂任务
  • • 支持回溯和策略调整
  • • 可以找到非显而易见的解

⚠️局限性

  • • 计算成本极高(多次API调用)
  • • 实现复杂,需要搜索算法
  • • 不适用于简单任务
  • • 需要设计评估函数

⚙️提示词优化方法

好的提示词不是一蹴而就的,需要系统地测试和优化。 以下是一套经过验证的提示词优化流程和技巧。

🎯

1. 明确化指令

将模糊的指令改写为清晰、具体、可操作的描述。

"分析这段文字"

"从情感倾向、主题和关键论点三个维度分析这段文字,每个维度用2-3句话总结"

📐

2. 添加结构化约束

明确指定输出格式,提高结果的可预测性和可解析性。

"列出优缺点"

"用以下格式列出:\n优点:\n1. [第一个优点]\n2. [第二个优点]\n缺点:\n1. [第一个缺点]"

🎭

3. 角色设定

为模型设定专业角色,引导其采用特定视角和专业水平。

"解释量子计算"

"你是一位量子物理学教授,用高中生能理解的方式解释量子计算的基本原理"

🔢

4. 分步引导

将复杂任务分解为多个步骤,逐步完成。

"写一篇产品分析报告"

"步骤1:总结产品核心功能\n步骤2:分析目标用户群\n步骤3:列出竞争优势\n步骤4:给出改进建议"

📝

5. 提供示例

通过高质量示例展示期望的输出风格和质量标准。

示例输入:"快速交付"
示例输出:"Rapid Delivery - 快速、高效地向客户交付价值"
现在翻译:"持续改进"

⚠️

6. 边界条件说明

明确指出需要避免的内容和特殊情况的处理方式。

"总结文章,限制在150字以内。
如果文章包含敏感话题,请标注'需人工审核'。
避免使用行业黑话和缩写。"

💡迭代优化流程

1. 建立基准:用简单提示词测试,记录效果

2. 单点优化:每次只改变一个方面(如添加示例)

3. 效果对比:在多个测试用例上比较前后效果

4. 保留改进:只保留确实有效的修改

5. 持续迭代:重复2-4步,直到满意

📊效果评估方法

如何知道提示词是否有效?需要建立系统的评估方法。 根据任务类型,我们可以采用不同的评估策略。

定量评估(客观指标)

准确率

适用于分类、问答等有标准答案的任务

示例:情感分析的正确分类比例

完整性

检查输出是否包含所有必要信息

示例:信息提取任务的字段覆盖率

格式一致性

输出是否符合指定格式

示例:JSON输出的解析成功率

稳定性

多次运行结果的一致性

示例:同一输入的输出变异度

定性评估(主观判断)

相关性评分

1-5分评价输出与问题的相关程度

1分-无关3分-部分相关5分-高度相关

质量评分

评估输出的专业性、深度和实用性

A/B测试

对比两个提示词版本,选择更好的一个

📋评估实践建议

  • 建立测试集:准备10-50个代表性测试用例,覆盖各种情况
  • 记录结果:系统记录每次修改的效果,便于对比
  • 多维度评估:同时考虑准确性、质量、成本、速度
  • 边缘案例:特别关注困难案例和异常输入的处理
  • 用户反馈:在真实场景中收集最终用户的反馈

常见问题与解决方案

问题1:输出格式不稳定

有时候模型返回JSON,有时候返回纯文本,难以解析。

解决方案:

  • • 使用Few-shot提供格式示例
  • • 明确说明:"必须返回有效的JSON格式"
  • • 添加输出验证和重试机制
  • • 使用结构化输出功能(如OpenAI的JSON mode)

问题2:模型理解偏差

模型没有按照预期理解任务,输出与需求不符。

解决方案:

  • • 分解任务,逐步引导
  • • 增加上下文信息和背景说明
  • • 使用反面示例说明不希望的输出
  • • 尝试不同的表达方式

问题3:输出过于冗长或简短

模型生成的内容长度不符合预期。

解决方案:

  • • 明确指定字数或句子数:"用100-150字总结"
  • • 使用结构化要求:"用3个要点说明"
  • • 调整temperature参数(较低值更简洁)
  • • 在提示词中强调简洁或详细的要求

问题4:处理边缘案例失败

模型在特殊输入或罕见情况下表现不佳。

解决方案:

  • • 在Few-shot示例中包含边缘案例
  • • 明确说明异常情况的处理:"如果输入为空,返回..."
  • • 添加输入验证和错误处理逻辑
  • • 使用Self-Consistency提高鲁棒性

问题5:成本过高

提示词太长或使用了过多的Few-shot示例,导致token消耗大。

解决方案:

  • • 精简提示词,去除冗余描述
  • • 减少示例数量(通常2-3个即可)
  • • 考虑使用更小、更便宜的模型
  • • 对简单任务使用Zero-shot而非Few-shot
  • • 缓存常用的提示词结果

🎯 核心要点总结

高级技巧

Self-Consistency和ToT提供了更强大的推理能力,适用于复杂问题

  • • Self-Consistency:多次投票
  • • Tree of Thoughts:树状搜索
  • • 根据任务复杂度选择
  • • 平衡效果与成本

优化与评估

系统化的优化和评估方法是提升提示词质量的关键

  • • 6种优化策略
  • • 定量+定性评估
  • • 建立测试集
  • • 迭代改进

实践智慧

识别常见问题并应用对应解决方案,积累实战经验

  • • 格式稳定性处理
  • • 边缘案例应对
  • • 成本优化技巧
  • • 持续学习改进

📚学习资源

📄

课程Slides

完整的讲义PDF,包含所有图表和详细内容

本讲测评

检验你对本讲知识点的掌握程度

开始测评 →