Prompt工程的核心原则
Prompt工程是LLM应用开发的基础技能。写好Prompt需要遵循四个核心原则:明确性、结构化、示例引导和边界控制。
思维链提示
思维链(Chain-of-Thought, CoT)是提升LLM推理能力最有效的方法之一。其核心思想是引导模型在给出最终答案前展示推理过程。
Zero-shot CoT
只需在Prompt末尾添加"请逐步思考"或"Let's think step by step",就能显著提升模型在数学和逻辑推理任务上的表现。
Few-shot CoT
提供包含完整推理过程的示例,让模型模仿推理路径。示例的数量通常为2-5个,过多会超出上下文限制,过少则不足以引导。
Auto-CoT
自动生成推理链示例,避免人工构造的成本。具体做法是先对问题进行聚类,然后从每个类别中选择代表性样本并自动生成推理过程。
Few-shot学习技巧
Few-shot学习的质量取决于示例的选择和排列:
- 示例代表性:选择与目标问题在语义和难度上相近的示例
- 示例多样性:覆盖不同类型的输入场景
- 示例顺序:将最相似的示例放在最后(近因效应)
- 标签平衡:各类别的示例数量保持均衡
结构化Prompt设计
将Prompt分解为多个功能模块,形成标准化结构:
## 角色定义
你是一个{角色},擅长{能力描述}。
## 任务说明
你需要完成以下任务:{具体任务描述}
## 约束条件
- 如果缺乏必要信息,请明确说明
- 输出格式必须为JSON
- 保持客观中立的语气
## 输出格式
{期望的输出格式模板}
## 上下文信息
{提供给模型的外部知识}
这种模块化设计便于维护和复用,也方便A/B测试不同模块的效果。
进阶技巧
- 分步引导:将复杂任务拆解为多个步骤,每一步使用独立的Prompt
- 对抗性Prompt:在Prompt中加入对抗性示例,提升模型的鲁棒性
- 自一致性:多次采样取最一致的答案,提高准确性
- 主动提示:让模型在不确定时主动提问,而不是猜测
- 工具调用:定义函数签名,让模型自主决定何时调用外部工具
调试与迭代
Prompt调试的核心原则:每次只改一个变量。同时修改角色定义、示例和输出格式会让你无法判断哪个改动起了作用。建议用版本管理工具(如LangSmith或简单的Git)记录每次Prompt变更及其效果指标,建立Prompt的"Git历史"。好的Prompt是迭代出来的,第一版很少是最优版本。
掌握这些进阶技巧后,可以系统性地提升LLM应用的表现,减少幻觉和错误输出。
