跳到主要内容

提示的基础

提示一个大型语言模型

使用简单提示可以实现很多功能,但结果的质量取决于您提供的信息量以及提示的精心设计程度。提示可以包含您传递给模型的指令问题等信息,并包括其他细节,如上下文输入示例。您可以使用这些元素更有效地指导模型,以提高结果的质量。

让我们从一个简单提示的基本示例开始:

提示

天空是

输出:

蓝色。

如果您正在使用 OpenAI Playground 或任何其他 LLM Playground,您可以像以下截图中所示提示模型:

INTRO1

需要注意的是,当使用 OpenAI 聊天模型,如 gpt-3.5-turbogpt-4 时,您可以使用三种不同的角色来构建提示:systemuserassistant。系统消息不是必需的,但有助于设置助手的整体行为。上面的示例仅包含用户消息,您可以直接使用它来提示模型。为简单起见,除非明确提到,所有示例都将仅使用 user 消息来提示 gpt-3.5-turbo 模型。上面示例中的 assistant 消息对应模型的响应。您还可以定义一个助手消息,以传递您想要的行为示例。您可以在这里了解更多关于使用聊天模型的信息 here

从上面的提示示例中,您可以看到语言模型根据上下文 "天空是" 响应一系列有意义的标记。输出可能出乎意料,或者与您想要完成的任务相去甚远。事实上,这个基本示例突显了提供更多上下文或指示的必要性,以明确指导系统实现特定目标。这就是提示工程的意义所在。

让我们尝试稍作改进:

提示:

完成句子:

天空是

输出:

白天是蓝色的,夜晚是黑色的。

这样好些了吗?通过上面的提示,您指示模型完成句子,因此结果看起来更好,因为它完全按照您告诉它要做的事情("完成句子")进行。这种设计有效提示以指导模型执行所需任务的方法,在本指南中被称为提示工程

上面的示例是今天大型语言模型所能实现的基本示例。当今的大型语言模型能够执行各种高级任务,从文本摘要到数学推理再到代码生成。

提示格式化

您已经尝试了一个非常简单的提示。标准提示的格式如下:

<问题>?

<指令>

您可以将其格式化为问答(QA)格式,这在许多 QA 数据集中很常见,如下所示:

Q: <问题>?
A:

像上面这样提示时,也被称为零-shot提示,即,您直接提示模型进行响应,而没有关于您希望它完成的任务的任何示例或演示。一些大型语言模型有能力执行零-shot提示,但这取决于手头任务的复杂性和知识,以及模型在哪些任务上训练得很好。

一个具体的提示示例如下:

提示

Q: 什么是提示工程?

对于一些较新的模型,您可以跳过 "Q:" 部分,因为模型会根据序列的构成方式理解为一个问答任务。换句话说,提示可以简化如下:

提示

什么是提示工程?

根据上述标准格式,一种流行且有效的提示技术被称为少-shot提示,其中您提供示例(即演示)。您可以将少-shot提示格式化如下:

<问题>?
<答案>

<问题>?
<答案>

<问题>?
<答案>

<问题>?

问答格式版本如下:

Q: <问题>?
A: <答案>

Q: <问题>?
A: <答案>

Q: <问题>?
A: <答案>

Q: <问题>?
A:

请记住,不一定要使用问答格式。提示格式取决于手头的任务。例如,您可以执行一个简单的分类任务,并提供演示示例,如下所示:

提示:


这太棒了! // 积极
这太糟糕了! // 消极
哇,那部电影太棒了! // 积极
多么可怕的节目! //

输出:

负面

少样本提示使得模型能够进行上下文学习,即语言模型在仅有少量示范的情况下学习任务的能力。我们将在接下来的章节中更详细地讨论零样本提示和少样本提示。