Basics
prompting LLMs 的基本概念,以及 zero-shot / few-shot prompting
#Prompting LLMs
你可以通过简单的
prompt看下面一个简单的示例:
Prompt:
codeThe sky is
Output:
codeblue.
如果你正在使用 OpenAI Playground 或其他任何 LLM Playground,你可以按照以下截图中的方式 prompt 模型:

需要注意的是,当使用 OpenAI 的
gpt-4gpt-3.5-turbosystemuserassistantsystemassistantuseruserusergpt-3.5-turboassistantassistant从上面的示例中可以看出,语言模型能够基于我们给出的上下文内容
"The sky is"让我们试着改进一下:
Prompt:
codeComplete the sentence: The sky is
Output:
codeblue during the day and dark at night.
结果是不是要好一些了?本例中,我们告知模型去完善句子,因此输出结果看起来要好得多,因为它完全按照你告诉它要做的(“完善句子”)去做。
以上示例基本说明了现阶段的大语言模型能够发挥的功能作用。它们可以用于执行各种高级任务,如 text summarization、math reasoning、code generation 等。
#Model settings
如果你发现同一个 prompt 每次输出差异很大,优先检查和调整 model settings(例如
temperaturetop_p#Prompt 格式
前文中我们采取的是比较简单的 prompt。标准 prompt 通常遵循以下格式:
code<question>?
或:
code<instruction>
你也可以将其格式化为 Q&A 格式(在许多 Q&A dataset 中是标准格式),如下所示:
codeQ: <question>? A:
当像上面那样 prompt 时,这也被称为
zero-shotzero-shot一个
zero-shotPrompt:
codeQ: What is prompt engineering?
对于一些较新的模型,你可以省略 “Q:” 部分,因为模型会根据序列的构成将其理解为 Q&A 任务。换句话说,prompt 可以简化如下:
Prompt:
codeWhat is prompt engineering?
基于以上标准格式,一种流行且有效的提示技术被称为
few-shotfew-shotcode<question>? <answer> <question>? <answer> <question>? <answer> <question>?
Q&A 格式的版本:
codeQ: <question>? A: <answer> Q: <question>? A: <answer> Q: <question>? A: <answer> Q: <question>? A:
请记住,是否使用 Q&A 格式取决于任务类型。例如,你可以执行一个简单的 classification task,并给出如下所示的示例来示范任务:
Prompt:
codeThis is awesome! // Positive This is bad! // Negative Wow that movie was rad! // Positive What a horrible show! //
Output:
codeNegative
LLM 可以基于少量说明了解和学习某些任务,而
few-shotzero-shotfew-shot