Prompt Engineering 高级技巧
超越基础 few-shot,探索 Chain-of-Thought、Self-Consistency 等高级提示工程技术。
超越基础 Prompt
大多数开发者熟悉 zero-shot 和 few-shot prompting,但要充分发挥 LLM 的潜力,需要掌握更高级的技术。
Chain-of-Thought (CoT)
引导模型逐步推理,显著提升复杂任务的准确率:
问题:一个商店有 15 个苹果,卖掉了 8 个,又进货 12 个,还剩多少?
让我们逐步思考:
1. 初始数量:15 个苹果
2. 卖掉 8 个:15 - 8 = 7 个
3. 进货 12 个:7 + 12 = 19 个
答案:19 个苹果
在 prompt 中加入 “Let’s think step by step” 就能激活 CoT 能力。
Self-Consistency
多次生成答案,取多数投票的结果:
def self_consistency(prompt, n=5):
answers = []
for _ in range(n):
response = llm.generate(prompt)
answer = extract_answer(response)
answers.append(answer)
# 多数投票
return max(set(answers), key=answers.count)
这种方法在数学和逻辑推理任务上效果显著。
ReAct 框架
结合推理(Reasoning)和行动(Acting):
Question: 北京今天的气温是多少?
Thought: 我需要查询北京今天的天气信息
Action: search("北京今天天气")
Observation: 北京今天晴,气温 28°C
Thought: 我已经获取到了气温信息
Answer: 北京今天的气温是 28°C。
Tree of Thoughts (ToT)
在复杂问题上探索多条推理路径:
- 生成多个初始思路
- 评估每个思路的前景
- 选择最有希望的思路继续扩展
- 必要时回溯到之前的节点
Prompt 模板最佳实践
# 角色
你是一个专业的{角色描述}。
# 任务
{清晰的任务描述}
# 约束
- {约束条件 1}
- {约束条件 2}
# 输出格式
{期望的输出格式示例}
# 示例
输入:{示例输入}
输出:{示例输出}
总结
高级 Prompt 技术能显著提升 LLM 在复杂任务上的表现。关键是根据任务特点选择合适的技术,并通过实验不断优化。