大语言模型提示词基础指南
提示词的核心价值
你可以通过简单的提示词获得大量结果,但结果的质量与你提供的信息数量和完善度直接相关。一个优秀的提示词不仅包含指令或问题,还可以包含上下文、输入数据或示例。通过这些元素,你可以更好地指导模型,从而获得更高质量的产出。
从简单到精准:提示词的演变
让我们通过一个对比示例,看看如何通过增加上下文来提升结果质量。
简单示例(缺乏上下文)
- 提示词: The sky is
- 输出: blue.
分析: 虽然模型完成了续写,但输出可能过于简单或出乎意料。这突显了提供更多上下文或明确指示的必要性。
改进后的示例(包含指令)
- 提示词: Complete the sentence: The sky is
- 输出: blue during the day and dark at night.
分析: 结果显著改善。通过明确告知模型"完善句子"这一意图,模型能够完全按照你的期望执行任务。
什么是提示工程?
在本指南中,这种设计有效的提示词以指导模型执行期望任务的方法被称为提示工程。现阶段的大语言模型功能强大,可用于执行文本概括、数学推理、代码生成等各种高级任务。
聊天模型的角色构建
当使用 OpenAI 的 gpt-4 或 gpt-3.5-turbo 等聊天模型时,你可以使用三个不同的角色来构建 Prompt:
|---------------|--------------------------------------|
| 角色 | 说明 |
| System | (可选)设定 Assistant 的整体行为,帮助模型了解用户需求背景。 |
| User | 包含指令或问题。通常直接作为 Prompt 使用。 |
| Assistant | 模型的响应。你也可以定义 Assistant 消息来传递行为示例。 |
注意: 为简单起见,本指南的示例(除非明确提及)将仅使用 User 消息来作为 Prompt。
提示词的标准格式与技巧
标准提示词通常遵循 <问题>? 或 <指令> 的格式。基于此,有两种主流的提示技术:
零样本提示
你直接提示模型给出回答,而不提供任何关于任务的示例或示范。
- 标准问答格式:
-
- Q:
<问题>? - A:
- Q:
- 简化格式: 对于较新的模型,你可以省略"Q:"部分,模型会自动理解任务。
-
- 示例: What is prompt engineering?
少样本提示
你提供示例(即示范),赋能模型的上下文学习能力。这是一种流行且有效的技术。
- 通用格式:
<问题>?<答案><问题>?<答案><问题>?<答案><问题>? - 问答格式版本:
-
- Q:
<问题>?A:<答案> - Q:
<问题>?A:<答案> - Q:
<问题>?A:
- Q:
- 分类任务示例:
提示词格式取决于手头的任务。例如,在执行分类任务时,可以这样提供示范:
输入:
This is awesome! // Positive
This is bad! // Negative
Wow that movie was rad! // Positive
What a horrible show! //
输出:
Negative
语言模型可以基于少量说明了解和学习特定任务,我们将在接下来的章节中更广泛地讨论如何使用零样本提示和少样本提示。
提示词的核心要素
如果您接触过大量提示工程相关的示例和应用,您会注意到提示词通常由几个关键要素组成。构建一个高效的提示词,本质上就是组合以下要素的过程:
- 指令:您希望模型执行的特定任务或指令。
- 上下文:包含外部信息或额外的背景知识,引导语言模型更好地响应。
- 输入数据:用户输入的具体内容或问题。
- 输出指示:指定模型输出的类型或格式。
注意: 并非所有要素都是必须的。提示词所需的格式取决于您想要语言模型完成的任务类型。
要素拆解示例
为了更好地演示这些要素,下面是一个旨在完成文本分类任务的简单提示词。
提示词内容:
请将文本分为中性、否定或肯定
文本:我觉得食物还可以。
情绪:
要素分析:
|----------|------------------|----------------------------------------|
| 要素 | 对应内容 | 说明 |
| 指令 | "请将文本分为中性、否定或肯定" | 明确了模型需要执行的操作。 |
| 输入数据 | "文本:我觉得食物还可以。" | 这是模型需要处理的具体对象。 |
| 输出指示 | "情绪:" | 引导模型在此处开始生成结果。 |
| 上下文 | (无) | 此基本示例未包含上下文,但在复杂任务中,通常通过提供示例来帮助模型理解任务。 |
我们会在后续的指南中提供更多更具体的示例,帮助您掌握如何灵活组合这些要素。
这篇优化后的文案重点使用了表格来拆解案例,让"指令、输入、输出"的对应关系一目了然。