提示词基础
简单提示
通过简单的提示词,你可以实现很多功能,但结果的质量取决于你提供的信息量以及提示词的设计水平。一个提示词可能包含你传递给模型的指令或问题,以及其他细节,如上下文、输入或示例。你可以使用这些元素来更有效地指导模型,以提高结果的质量。
让我们通过一个简单提示词的基本示例开始:
提示词:
天空是
输出:
天空是大气层和太空的视觉呈现,它覆盖地球表面,对我们来说是无限的。在白天,天空呈现出蓝色,这主要是因为大气中分子和颗粒散射阳光中的蓝光比其它颜色更多的结果。晚上,天空变得黑暗,可以看到月亮、星星和其他天体。根据天气和特定的大气条件,天空可能会呈现出多种颜色和形态,如日出时的红色和橙色,或是雷暴前的灰暗色。
如果你在使用OpenAI的Playground或任何其他的大语言模型平台,你可以按照以下截图所示与模型对话:

需要注意的是,在使用OpenAI的聊天模型,如gpt-4时,你可以用三种不同的角色构建你的提示:系统(SYSTEM)、用户(USER)和助理(ASSISTANT)。系统消息不是必需的,但有助于设定助理的整体行为。上面的例子只包括用户消息,你可以用它直接与模型对话。为了简单起见,除非特别提到,所有例子都将仅使用用户消息来对话gpt-4模型。上面例子中的助理消息对应模型的回应。你也可以添加助理消息示例,以传达你想要的特定对话示例。
从上面的提示词例子中可以观察到,大语言模型响应了一个在给定语境下(“天空是”)有意义的标记序列。输出可能是出乎意料的,或与你想要完成的任务相去甚远。实际上,这个基础示例突出了提供更多上下文或指令的必要性,具体来说,你想要通过系统完成什么。这就是所谓的提示词工程。
让我们试着改进一下:
提示词:
写首短诗:
天空是
输出:
天空是蔚蓝的画卷,
绘着日出、晚霞一瞬间。
白云飘,鸟儿歌,
人间四季,春夏秋冬更替转。
在这宽广的舞台上,
每个生命都演绎着不凡。
这样好一点吗?有了上述提示,你是在指导模型写了首天空的短诗,所以结果看起来好多了,因为它完全按照你告诉它要做的事情来做("写首短诗")。这种设计有效提示词来指导模型执行所需任务的方法,就是本手册中所谓的提示词工程(Prompt Engineering)。
上面的例子是今天的大语言模型所能做到的基础展示。如今的大语言模型能够执行各种高级任务,范围从文本总结到数学推理再到代码生成。
提示词格式
你已经尝试了一个非常简单的提示。一个标准的提示格式如下:
<问题>?
或者
<指令>
你可以把它格式化成问答(QA)格式,这在很多QA数据集中是标准的,如下所示:
问题: <问题>?
答案:
当像上面这样提示词时,它也被称为零样本提示词(Zero-shot prompting),即,你直接提示模型进行回应,无需任何示例或关于你希望它完成的任务的示例。一些大语言模型有能力进行零样本提示词回应,但这取决于任务的复杂性和所需知识,以及模型在训练中所使用的数据集。
一个具体的提示词例子如下:
提示词:
问题: 什么是提示词工程?
对于一些较先进的模型,你可以省略“问题:”部分,因为模型会默认并理解这是一个基于序列组成的问答任务。换句话说,提示可以简化为:
提示词:
什么是提示词工程?
考虑到上述的标准格式,一种流行且有效的提示词技术被称为少样本提示词(Few-shot prompting),在其中你提供示例。你可以按如下格式撰写少样本提示词:
<问题>?
<答案>
<问题>?
<答案>
<问题>?
<答案>
<问题>?
QA格式的版本看起来像这样:
Q: <问题>?
A: <答案>
Q: <问题>?
A: <答案>
Q: <问题>?
A: <答案>
Q: <问题>?
A:
记住,不是必须使用QA格式。提示词的格式取决于手头的任务。例如,你可以执行一个简单的分类任务,并给出任务的示例,如下所示:
提示词:
这太棒了!// 积极
这太糟糕了!// 消极
哇,那部电影太酷了!// 积极
多么糟糕的节目!//
输出:
消极
少样本提示词使得在上下文中学习成为可能,这是大语言模型在给定几个示例后学习任务的能力。我们将在后续章节中更广泛地讨论零样本提示词和少样本提示词。