提示词工程基础
提示 LLM
使用简单的提示词可以实现很多功能,但结果的质量取决于您提供多少信息以及提示词的精心程度。一个提示词可以包含您传递给模型的指令或问题等信息,还可以包含诸如上下文、输入或示例等其他详细信息。您可以使用这些元素更有效地指导模型,从而提高结果质量。
让我们从一个简单的提示词基础示例开始
提示词
The sky is
输出
blue.
如果您正在使用 OpenAI Playground 或任何其他 LLM Playground,可以按照以下截图所示的方式提示模型

以下是关于如何开始使用 OpenAI Playground 的教程
需要注意的一点是,在使用像 gpt-3.5-turbo
或 gpt-4
等 OpenAI 对话模型时,您可以使用三种不同的角色来构建提示词:system
、user
和 assistant
。system 消息不是必需的,但有助于设置助手的整体行为。上面的示例只包含一个 user 消息,您可以直接使用它来提示模型。为了简单起见,除了明确提及的情况外,所有示例都将仅使用 user
消息来提示 gpt-3.5-turbo
模型。上面的示例中的 assistant
消息对应于模型的响应。您还可以定义 assistant 消息来传递所需行为的示例。您可以在此处 (在新标签页中打开)了解更多关于使用对话模型的信息。
您可以从上面的提示词示例中观察到,语言模型根据上下文 "The sky is"
响应了一系列有意义的 token。输出可能出乎意料或与您希望完成的任务相去甚远。事实上,这个基本示例强调了提供更多上下文或具体说明您希望系统实现什么目标的必要性。这就是提示词工程的全部意义所在。
让我们尝试改进一下
提示词
Complete the sentence:
The sky is
输出
blue during the day and dark at night.
这样更好吗?好的,通过上面的提示词,您正在指示模型完成句子,因此结果看起来好多了,因为它完全遵循了您的指示(“完成句子”)。这种设计有效提示词以指示模型执行所需任务的方法,在本指南中被称为 提示词工程。
上面的示例是对当今 LLM 可以实现的功能的基本说明。如今的 LLM 能够执行各种高级任务,从文本摘要到数学推理再到代码生成。
提示词格式
您在上面尝试了一个非常简单的提示词。标准提示词具有以下格式
<Question>?
或
<Instruction>
您可以将其格式化为问答 (QA) 格式,这在许多 QA 数据集中是标准格式,如下所示
Q: <Question>?
A:
当像上面那样提示时,也称为零样本提示,即您直接向模型发出提示以获得响应,而不提供任何关于您希望它完成的任务的示例或演示。一些大型语言模型具有执行零样本提示的能力,但这取决于手头任务的复杂性和知识,以及模型训练时表现良好的任务。
一个具体的提示词示例如下
提示词
Q: What is prompt engineering?
对于一些较新的模型,您可以跳过“Q:”部分,因为它根据序列的构成方式被模型隐含地理解为问答任务。换句话说,提示词可以简化如下
提示词
What is prompt engineering?
考虑到上面的标准格式,一种流行且有效的提示技术被称为少样本提示,您可以在其中提供范例(即演示)。您可以按如下方式格式化少样本提示词
<Question>?
<Answer>
<Question>?
<Answer>
<Question>?
<Answer>
<Question>?
QA 格式版本将如下所示
Q: <Question>?
A: <Answer>
Q: <Question>?
A: <Answer>
Q: <Question>?
A: <Answer>
Q: <Question>?
A:
请记住,不强制使用 QA 格式。提示词格式取决于手头的任务。例如,您可以执行一个简单的分类任务,并提供演示该任务的范例,如下所示
提示词
This is awesome! // Positive
This is bad! // Negative
Wow that movie was rad! // Positive
What a horrible show! //
输出
Negative
少样本提示实现了情境学习,这是语言模型根据少量演示学习任务的能力。我们将在后面的部分中更广泛地讨论零样本提示和少样本提示。
在我们的新 AI 课程中了解更多高级提示词方法。立即加入! (在新标签页中打开) 使用代码 PROMPTING20 额外享受八折优惠。