Prompt-Engineering-Guide/pages/introduction/basics.zh.mdx
2023-03-30 19:14:59 -06:00

114 lines
2.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 提示的基础知识
## 基本提示
使用简单提示可以实现很多功能,但结果的质量取决于您提供的信息量以及提示的质量。提示可以包含诸如传递给模型的*指令*或*问题*等信息,并包括其他细节,例如*上下文*、*输入*或*示例*。您可以使用这些元素更好地指导模型,从而获得更好的结果。
让我们从一个简单的提示示例开始:
*提示*
```
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能够执行各种高级任务从文本摘要到数学推理到代码生成。
## 提示格式
我们尝试了一个非常简单的提示。标准提示的格式如下:
```
<Question>?
```
```
<Instruction>
```
这可以格式化为问答QA格式这是许多QA数据集中的标准格式如下所示
```
Q: <Question>?
A:
```
像上面这样提示时,也称为*零-shot提示*,即您直接提示模型进行响应,而没有关于您想要实现的任务的任何示例或演示。一些大型语言模型确实具有执行零-shot提示的能力但这取决于手头任务的复杂性和知识。
给定上述标准格式,一种流行且有效的提示技术是所谓的*少样本提示*,其中我们提供示例(即演示)。少样本提示可以格式化如下:
```
<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
```
少样本提示实现了上下文学习,即语言模型在给定少量演示的情况下学习任务的能力。