Prompt Engineering 是驾驭大模型能力的第一道门槛。好的 Prompt 能显著提升输出质量。

基本原则

  1. 清晰具体:明确任务目标、输出格式和约束条件
  2. 提供示例:Few-shot 示例是最有效的引导方式之一
  3. 分步引导:复杂任务拆解为多个步骤
  4. 角色设定:给模型一个合适的身份和专业背景

Few-shot Learning

通过在 Prompt 中提供输入-输出示例,引导模型理解任务模式:

请将以下句子翻译为英文:

输入:今天天气很好
输出:The weather is nice today.

输入:我正在学习大模型
输出:

示例的质量和多样性直接影响效果。通常 3-5 个精心设计的示例即可。

Chain-of-Thought(CoT)

对于推理类任务,引导模型"一步步思考":

问题:一个商店有 23 个苹果,卖掉了 17 个,又进了 8 个,现在有多少个?

请一步步思考:
1. 初始有 23 个苹果
2. 卖掉 17 个:23 - 17 = 6 个
3. 又进了 8 个:6 + 8 = 14 个
答案:14 个

添加 “Let’s think step by step” 这样的 magic phrase 也能触发 CoT 行为。

结构化输出

要求模型以特定格式输出,便于程序解析:

请以 JSON 格式输出,包含以下字段:
- title: 文章标题
- summary: 100字以内的摘要
- tags: 标签数组
- sentiment: positive/negative/neutral

配合 JSON Schema 或 Function Calling 可以进一步提高格式合规率。

常见陷阱

  • Prompt 过长:无关信息会稀释关键指令的权重
  • 指令冲突:前后矛盾的约束会让模型无所适从
  • 过度约束:限制太死会扼杀模型的创造力
  • 忽略边界情况:未说明输入异常时模型如何处理

进阶方向

  • 自动 Prompt 优化:DSPy 等框架支持 programmatic prompt optimization
  • Prompt 模板管理:版本控制、A/B 测试、效果评估
  • System Prompt 设计:为 Chat 模型设计稳定的系统级指令

Prompt Engineering 既是艺术也是科学,需要在实践中不断迭代优化。