Prompt Engineering 深度解析:从基础到高级技术
大多数工程师将提示词(prompts)视为咒语——稍微修改一下措辞,寄希望于它能奏效,然后就此作罢。这在演示阶段(demos)没问题。但在生产环境中,这会导致系统表现不稳定:没人知道为什么模型在周二的表现与周一不同,一次常规的模型更新可能会悄无声息地破坏掉三个功能。正确的提示工程是一门学科,而不是一种仪式。本文涵盖了全栈内容:何时使用每种技术、基准测试(benchmarks)实际显示了什么,以及陷阱在哪里。
零样本与少样本:选择并非显而易见
零样本提示(Zero-shot prompting)——只需描述任务并让模型开始工作——的效果往往比大多数工程师预期的要好,而且其运作方式并不总是直观的。对于理解良好的任务(总结、翻译、事实性问答),零样本通常是正确的选择。通过示例增加 复杂性并不总是有帮助。
经典的“零样本思维链”(zero-shot chain-of-thought)技巧——在末尾添加“让我们一步步思考”——在逻辑推理任务上经常优于少样本提示。这一简单的短语能将模型从模式匹配转向程序性推理。
当你需要一致的输出格式、特定领域的语气,或者仅靠描述过于模糊的细微分类时,少样本提示(Few-shot prompting)就大放异彩了。系统研究中一个令人惊讶的发现是:示例的正确性并没有你想象的那么重要。推动少样本性能的关键是标签空间(有哪些可能的类别)、输入分布(看起来像真实数据的现实示例)以及输出格式。一个包含稍微错误示例但格式正确的少样本提示,往往优于一组完美准确但格式不一致的示例。
决策树大致如下:
- 简单、通用的任务 → 首先尝试零样本
- 复杂的输出格式或 Schema → 少样本
- 推理或数学问题 → 零样本 CoT(“一步步思考”)
- 需要一致的语气/语调 → 带有 3–5 个锚点的少样本
- 推理模型(o3, o4-mini, Claude 3.5+)→ 两者都测试,不要假设少样本必胜
高级推理模型的一个注意事项:少样本示例可能会产生负面影响。这些模型具有强大的内部推理能力,少样本示例有时会使它们偏向于表面层面的模式匹配,而不是深层推理。务必进行基准测试,不要凭空假设。
思维链:基准测试实际显示了什么
在 Wei 等人(2022 年)展示 了数学基准测试中的巨大收益后,思维链提示(Chain-of-thought prompting)成为了标配。但 2025 年的研究描绘了一个更微妙的图景,从业者应当对此有所了解。
沃顿商学院 GAIL 的一项研究在 25 次重复实验中,使用 8 个模型测试了 198 个博士级问题。结果如下:
- 非推理模型(如 Gemini Flash 2.0):+13.5% 的准确率提升 —— 这很有意义,但伴随着 35–600% 的额外 Token 消耗
- 非推理模型(GPT-4o-mini):+4.4% 的收益,在统计学上不显著
- 推理模型(o3-mini, o4-mini):+3% 的收益,微乎其微
- 推理模型(Gemini Flash 2.5):−3.3% —— 使用 CoT 比不使用效果更差
规律是:CoT 对非推理模型有显著帮助。对于推理模型,模型已经在进行内部思维链——要求它显式地执行通常只会增加 Token 浪费,有时甚至会因为强迫采用不同的思考路径而降低性能。
成本影响加剧了这一点。CoT 会增加 Token。在大规模应用中,处处使用 CoT 的提示词可能比有选择性使用的提示词贵 3–5 倍。在每日 100,000 次调用的情况下,差价可能达到每天 2,000–3,000 美元。
何时使用 CoT:多步骤数学、逻辑演绎、代码调试,以及任何需要中间推理过程可审计的地方。对于分类、查询、提取以及任何答案直接的任务,请跳过它。对于推理模型,在投入使用前进行基准测试——它可能会在没有帮助的情况下增加成本。
