# 提示的基础知识 ## 基本提示 使用简单提示可以实现很多功能,但结果的质量取决于您提供的信息量以及提示的质量。提示可以包含诸如传递给模型的*指令*或*问题*等信息,并包括其他细节,例如*上下文*、*输入*或*示例*。您可以使用这些元素更好地指导模型,从而获得更好的结果。 让我们从一个简单的提示示例开始: *提示* ``` The sky is ``` *输出:* ``` blue The sky is blue on a clear day. On a cloudy day, the sky may be gray or white. ``` 正如您所看到的,语言模型输出了一系列字符串,这些字符串在给定上下文“`The sky is`”的情况下是有意义的。输出可能出乎意料或与我们想要完成的任务相距甚远。 这个基本示例还突显了提供更多上下文或说明的必要性,以便更明确地说明我们想要实现的特定内容。 让我们尝试稍微改进一下: *提示:* ``` Complete the sentence: The sky is ``` *输出:* ``` so beautiful today. ``` 这样好了吗?我们告诉模型完成句子,因此结果看起来更好,因为它完全遵循了我们告诉它要做的事情(“完成句子”)。这种设计最佳提示以指导模型执行任务的方法被称为**提示工程**。 上面的示例是今天LLM所能实现的基本说明。今天的LLM能够执行各种高级任务,从文本摘要到数学推理到代码生成。 ## 提示格式 我们尝试了一个非常简单的提示。标准提示的格式如下: ``` ? ``` 或 ``` ``` 这可以格式化为问答(QA)格式,这是许多QA数据集中的标准格式,如下所示: ``` Q: ? A: ``` 像上面这样提示时,也称为*零-shot提示*,即您直接提示模型进行响应,而没有关于您想要实现的任务的任何示例或演示。一些大型语言模型确实具有执行零-shot提示的能力,但这取决于手头任务的复杂性和知识。 给定上述标准格式,一种流行且有效的提示技术是所谓的*少样本提示*,其中我们提供示例(即演示)。少样本提示可以格式化如下: ``` ? ? ? ? ``` QA格式版本如下: ``` Q: ? A: Q: ? A: Q: ? A: Q: ? A: ``` 请记住,不需要使用QA格式。提示格式取决于手头任务。例如,您可以执行简单的分类任务并提供演示,如下所示: *提示:* ``` This is awesome! // Positive This is bad! // Negative Wow that movie was rad! // Positive What a horrible show! // ``` *输出:* ``` Negative ``` 少样本提示实现了上下文学习,即语言模型在给定少量演示的情况下学习任务的能力。