提示词工程 (Prompt Engineering) 学习笔记

0 阅读4分钟

1. 核心基石:构建高确定性的 Prompt

要让模型输出稳定,首先需要消除歧义。通常一个工业级的 Prompt 需要包含以下结构:

  • 角色 (Role): 设定 LLM 的专业身份,这会激活模型参数中相关的专业词汇和行业知识。
  • 任务 (Task): 明确且单一的目标。
  • 上下文 (Context): 提供必要的背景信息,避免模型产生幻觉(Hallucination)。
  • 约束 (Constraints): 规定字数、语气、格式(如 JSON、Markdown)、或者“不要做什么”。

2. 提示词工程 (Prompt Engineering) 常用技巧

2.1 零样本提示 (Zero-shot)

不提供任何示例,直接向模型下达任务指令。

2.2 少样本提示 (Few-shot / K-shot)

在指令中提供几个高质量的输入输出示例,让模型通过上下文学习你的预期格式和逻辑。

示例:

注:图片来自斯坦福大学课程:CS146S: The Modern Software Developer

2.3 思维链 (Chain-of-Thought, CoT)

思维链是一种提示方式,核心做法是让模型“分步骤思考”,也就是常说的 “一步步思考(Think step by step)”
它的作用在于:面对复杂问题时,模型不会直接一下子给出答案,而是会先把问题拆成几个更小、更清晰的步骤,再一步步推理得出结果。这样通常能提升模型在逻辑推理、数学计算和多步骤任务中的准确性。

示例:

I went to the market and bought 10 apples. I gave 2 apples to the neighbor and 2 to the repairman. I then went and bought 5 more apples and ate 1. How many apples did I remain with? Let's think step by step.

仅仅是加了一句 Let's think step by step,效果就完全不同了。

2.4 自洽性(Self-Consistency)

让模型针对同一问题生成多条推理路径,然后通过“多数表决”选出最一致的答案,可有效减少幻觉。

具体实操如下:

当你遇到一个复杂的开发任务,不要只依赖模型的单次回答。相反,你可以针对同一个问题向模型独立发送多次请求(比如 5 次),并结合“思维链”让它每次都输出完整的推导步骤。

得到多份不同的解答后,你可以直接采纳出现频次最高(多数表决)的那个结论作为根本原因。对于更复杂的架构设计任务,你也可以人工快速审阅这几个不同的版本,将它们各自优秀的思路结合起来,从而得出一个最稳妥的最终方案。这种类似于“模型集成”的方法能极大地避免模型单次盲猜产生的幻觉。

2.5 检索增强生成 (RAG)

将外部的、准确的数据直接塞进模型的上下文窗口中,让模型基于这些特定数据回答,从而降低对参数记忆的依赖并减少幻觉。

2.6 工具调用 (Tool Use)

允许模型在遇到短板时调用外部工具(如代码解释器处理计数、网络搜索获取最新信息),赋予其行动能力。

2.7 反思机制 (Reflexion)

通过多轮提示,让模型审视、评估并纠正自己刚才生成的输出。

示例:

现在审视你的答案,它正确吗?如果不对请解释原因并重试

3. 扩展学习资料