Prompt设计技巧

Few-shot和Chain-of-Thought是提升大模型能力的核心技巧,可以显著改善模型的推理和任务完成能力。

共 3 篇文章·阅读时间:约30分钟

01Few-shot提示

Few-shot提示通过在Prompt中提供少量示例,帮助模型理解任务模式和期望输出。

Few-shot原理

大语言模型具有强大的上下文学习能力,通过观察示例就能理解任务要求,无需参数更新。

示例结构

示例1:
输入:苹果
输出:水果

示例2:
输入:胡萝卜
输出:蔬菜

示例3:
输入:玫瑰
输出:

模型会基于示例推断:玫瑰应该输出"花"或"植物"

Few-shot技巧

示例多样性

提供涵盖不同情况和边界条件的示例。
避免所有示例都过于相似。

格式一致性

保持示例的输入输出格式一致。
模型会模仿格式生成答案。

标签空间

确保示例覆盖所有可能的标签/类别。
特别是分类任务。

示例数量

通常2-5个示例效果较好。
过多示例会增加token消耗。

02Chain-of-Thought

Chain-of-Thought(思维链)通过让模型展示推理过程,显著提升复杂推理任务的表现。

CoT原理

思维链的核心思想是"像人类一样思考"。在给出最终答案前,先展示推理步骤。

为什么CoT有效?

  • 中间步骤缓存:每一步的推理结果可以复用
  • 注意力分配:将模型注意力引向关键信息
  • 计算延长:增加"思考"时间
  • 可解释性:输出包含推理过程,更易理解

CoT示例

问题:小明有5个苹果,小红给了他又3个苹果,他吃掉了2个,还剩多少?

普通回答:6个

CoT回答:

1. 小明开始有5个苹果

2. 小红给了他3个,所以5+3=8个

3. 他吃掉了2个,所以8-2=6个

因此,小明还剩6个苹果。

CoT适用场景

  • 数学推理(尤其是多步骤计算)
  • 逻辑推理
  • 代码生成和调试
  • 需要分析的问题

03Zero-shot CoT

Zero-shot CoT通过特定的触发语句,无需示例即可激活模型的推理能力。

Zero-shot CoT原理

只需在问题后添加"Let's think step by step"这样的触发语,模型就会自动进行多步推理。

Zero-shot CoT示例

问题:小明有100元,他买了3本每本25元的书,还剩多少?
Let's think step by step.

[模型输出推理过程...]

对比与选择

特性Few-shot CoTZero-shot CoT
示例需求需要多个示例无需示例
Token消耗较高较低
效果通常更好稍弱但足够好
适用场景复杂、特定格式要求快速原型、简单任务

最佳实践

  • 简单任务:直接提问,或使用Zero-shot CoT
  • 复杂任务:Few-shot CoT提供具体示例
  • 格式重要:Few-shot CoT确保输出格式正确
  • 迭代优化:先Zero-shot快速验证,再优化为Few-shot
----