mirror of
https://github.com/dair-ai/Prompt-Engineering-Guide
synced 2024-11-10 01:13:36 +00:00
Merge pull request #528 from shizidushu/patch-2
Update basics.zh.mdx to make it update and more readable
This commit is contained in:
commit
5243009cf6
@ -3,49 +3,49 @@
|
||||
import {Screenshot} from 'components/screenshot'
|
||||
import INTRO1 from '../../img/introduction/sky.png'
|
||||
|
||||
## 基础提示词
|
||||
## 给LLM提示
|
||||
|
||||
您可以通过简单的提示词(Prompts)获得大量结果,但结果的质量与您提供的信息数量和完善度有关。一个提示词可以包含您传递到模型的_指令_或_问题_等信息,也可以包含其他详细信息,如_上下文_、_输入_或_示例_等。您可以通过这些元素来更好地指导模型,并因此获得更好的结果。
|
||||
你可以通过简单的提示词(Prompts)获得大量结果,但结果的质量与你提供的信息数量和完善度有关。一个提示词可以包含你传递到模型的*指令*或*问题*等信息,也可以包含其他详细信息,如*上下文*、*输入*或*示例*等。你可以通过这些元素来更好地指导模型,并因此获得更好的结果。
|
||||
|
||||
看下面一个简单的示例:
|
||||
|
||||
_提示词_
|
||||
*提示词:*
|
||||
|
||||
```
|
||||
The sky is
|
||||
```
|
||||
|
||||
_输出结果_
|
||||
*输出:*
|
||||
|
||||
```
|
||||
blue.
|
||||
```
|
||||
|
||||
如果使用的是 OpenAI Playground 或者其他任何 LLM Playground,则可以提示模型,如以下屏幕截图所示:
|
||||
如果你正在使用OpenAI Playground或其他任何LLM Playground,你可以按照以下屏幕截图中的方式提示模型:
|
||||
|
||||
<Screenshot src={INTRO1} alt="INTRO1" />
|
||||
|
||||
需要注意的是,当使用 OpenAI 的 `gpt-4` 或者 `gpt-3.5-turbo` 等聊天模型时,您可以使用三个不同的角色来构建 prompt: `system`、`user` 和 `assistant`。其中 `system` 不是必需的,但有助于设定 `assistant` 的整体行为,帮助模型了解用户的需求,并根据这些需求提供相应的响应。上面的示例仅包含一条 `user` 消息,您可以使用 `user` 消息直接作为 prompt。为简单起见,本指南所有示例(除非明确提及)将仅使用 `user` 消息来作为 `gpt-3.5-turbo` 模型的 prompt。上面示例中 `assistant` 的消息是模型的响应。您还可以定义 `assistant` 消息来传递模型所需行为的示例。您可以在[此处](https://www.promptingguide.ai/models/chatgpt)了解有关使用聊天模型的更多信息。
|
||||
需要注意的是,当使用 OpenAI 的 `gpt-4` 或者 `gpt-3.5-turbo` 等聊天模型时,你可以使用三个不同的角色来构建 prompt: `system`、`user` 和 `assistant`。其中 `system` 不是必需的,但有助于设定 `assistant` 的整体行为,帮助模型了解用户的需求,并根据这些需求提供相应的响应。上面的示例仅包含一条 `user` 消息,你可以使用 `user` 消息直接作为 prompt。为简单起见,本指南所有示例(除非明确提及)将仅使用 `user` 消息来作为 `gpt-3.5-turbo` 模型的 prompt。上面示例中 `assistant` 的消息是模型的响应。你还可以定义 `assistant` 消息来传递模型所需行为的示例。你可以在[此处](https://www.promptingguide.ai/models/chatgpt)了解有关使用聊天模型的更多信息。
|
||||
|
||||
从上面的提示示例中可以看出,语言模型能够基于我们给出的上下文内容 `"The sky is" 完成续写。而输出的结果可能是出人意料的,或远高于我们的任务要求。 但是,我们可以通过改进提示词来获得更好的结果。
|
||||
从上面的提示示例中可以看出,语言模型能够基于我们给出的上下文内容 `"The sky is"` 完成续写。输出可能是出乎意料的,或者与你想要完成的任务相去甚远。实际上,这个基本示例突出了提供更多上下文或明确指示你想要实现什么的必要性。这正是提示工程的核心所在。
|
||||
|
||||
让我们试着改进以下:
|
||||
让我们试着改进一下:
|
||||
|
||||
_提示词_
|
||||
*提示词:*
|
||||
|
||||
```
|
||||
完善以下句子:
|
||||
Complete the sentence:
|
||||
|
||||
The sky is
|
||||
```
|
||||
|
||||
_输出结果_
|
||||
*输出:*
|
||||
|
||||
```
|
||||
blue during the day and dark at night.
|
||||
```
|
||||
|
||||
结果是不是要好一些了?本例中,我们告知模型去完善句子,因此输出的结果和我们最初的输入是完全符合的。**提示工程**(Prompt Engineering)就是探讨如何设计出最佳提示词,用于指导语言模型帮助我们高效完成某项任务。
|
||||
结果是不是要好一些了?本例中,我们告知模型去完善句子,因此输出结果看起来要好得多,因为它完全按照你告诉它要做的(“完善句子”)去做。在本指南中,这种设计有效的提示词以指导模型执行期望任务的方法被称为**提示工程**。
|
||||
|
||||
以上示例基本说明了现阶段的大语言模型能够发挥的功能作用。它们可以用于执行各种高级任务,如文本概括、数学推理、代码生成等。
|
||||
|
||||
@ -63,31 +63,33 @@ blue during the day and dark at night.
|
||||
<指令>
|
||||
```
|
||||
|
||||
这种可以被格式化为标准的问答格式,如:
|
||||
你可以将其格式化为问答(QA)格式,这在许多问答数据集中是标准格式,如下所示:
|
||||
|
||||
```
|
||||
Q: <问题>?
|
||||
A:
|
||||
```
|
||||
|
||||
以上的提示方式,也被称为 _零样本提示(zero-shot prompting)_,即用户不提供任务结果相关的示范,直接提示语言模型给出任务相关的回答。某些大型语言模式有能力实现零样本提示,但这也取决于任务的复杂度和已有的知识范围。
|
||||
当像上面那样提示时,这也被称为**零样本提示**,即你直接提示模型给出一个回答,而没有提供任何关于你希望它完成的任务的示例或示范。一些大型语言模型具备进行零样本提示的能力,但这取决于手头任务的复杂性和知识,以及模型被训练以在其上表现良好的任务。
|
||||
|
||||
|
||||
具体的零样本提示示例如下:
|
||||
|
||||
_提示词_
|
||||
*提示:*
|
||||
|
||||
```
|
||||
Q: What is prompt engineering?
|
||||
```
|
||||
对于一些较新的模型,你可以跳过 `Q:` 部分,直接输入问题。因为模型在训练过程中被暗示并理解问答任务,换言之,提示词可以简化为下面的形式:
|
||||
|
||||
_提示词_
|
||||
对于一些较新的模型,你可以省略“Q:”部分,因为模型会根据序列(译注:输入的提示词)的构成将其理解为问答任务。换句话说,提示可以简化如下:
|
||||
|
||||
*提示词*
|
||||
|
||||
```
|
||||
What is prompt engineering?
|
||||
```
|
||||
|
||||
基于以上标准范式,目前业界普遍使用的还是更高效的 _小样本提示(Few-shot Prompting)_范式,即用户提供少量的提示范例,如任务说明等。小样本提示一般遵循以下格式:
|
||||
基于以上标准格式(format),一种流行且有效的提示技术被称为**少样本提示**,其中你提供示例(即示范)。你可以按照以下格式组织少样本提示:
|
||||
|
||||
```
|
||||
<问题>?
|
||||
@ -103,7 +105,7 @@ What is prompt engineering?
|
||||
|
||||
```
|
||||
|
||||
而问答模式即如下:
|
||||
问答格式的版本看起来像这样:
|
||||
|
||||
```
|
||||
Q: <问题>?
|
||||
@ -119,9 +121,9 @@ Q: <问题>?
|
||||
A:
|
||||
```
|
||||
|
||||
注意,使用问答模式并不是必须的。你可以根据任务需求调整提示范式。比如,您可以按以下示例执行一个简单的分类任务,并对任务做简单说明:
|
||||
请记住,使用问答格式并非必须。提示格式取决于手头的任务。例如,你可以执行一个简单的分类任务,并给出如下所示的示例来给任务示范:
|
||||
|
||||
_提示词_
|
||||
*提示词:*
|
||||
|
||||
```
|
||||
This is awesome! // Positive
|
||||
@ -130,10 +132,10 @@ Wow that movie was rad! // Positive
|
||||
What a horrible show! //
|
||||
```
|
||||
|
||||
_输出结果_
|
||||
*输出:*
|
||||
|
||||
```
|
||||
Negative
|
||||
```
|
||||
|
||||
语言模型可以基于一些说明了解和学习某些任务,而小样本提示正好可以赋能上下文学习能力。我们将在接下来的章节中更广泛的讨论如何使用零样本提示和小样本提示。
|
||||
语言模型可以基于一些说明了解和学习某些任务,而小样本提示正好可以赋能上下文学习能力。我们将在接下来的章节中更广泛的讨论如何使用零样本提示和小样本提示。
|
||||
|
Loading…
Reference in New Issue
Block a user