mirror of
https://github.com/dair-ai/Prompt-Engineering-Guide
synced 2024-11-10 01:13:36 +00:00
Update tips.zh.mdx to keep it update and more readable
This commit is contained in:
parent
77fb185e58
commit
f15688a6e1
@ -3,22 +3,25 @@
|
|||||||
以下是设计提示时需要记住的一些技巧:
|
以下是设计提示时需要记住的一些技巧:
|
||||||
|
|
||||||
### 从简单开始
|
### 从简单开始
|
||||||
在设计提示时,需要记住这是一个迭代的过程,需要大量的实验来获得最佳结果。使用像 OpenAI 或 Cohere 这样的简单平台是一个很好的起点。
|
|
||||||
|
|
||||||
您可以从简单的提示开始,随着您的目标是获得更好的结果,不断添加更多的元素和上下文。在此过程中对您的提示进行版本控制是至关重要的。当您阅读本指南时,您会看到许多例子,其中具体性、简洁性和简明性通常会给您带来更好的结果。
|
在开始设计提示时,你应该记住,这实际上是一个迭代过程,需要大量的实验才能获得最佳结果。使用来自OpenAI或Cohere的简单的 playground 是一个很好的起点。
|
||||||
|
|
||||||
当您有一个涉及许多不同子任务的大任务时,您可以尝试将任务分解为更简单的子任务,并随着获得更好的结果而不断构建。这避免了在提示设计过程中一开始就添加过多的复杂性。
|
你可以从简单的提示词开始,并逐渐添加更多元素和上下文(因为你想要更好的结果)。因此,在这个过程中不断迭代你的提示词是至关重要的。阅读本指南时,你会看到许多示例,其中具体性、简洁性和简明性通常会带来更好的结果。
|
||||||
|
|
||||||
|
当你有一个涉及许多不同子任务的大任务时,可以尝试将任务分解为更简单的子任务,并随着结果的改善逐步构建。这避免了在提示设计过程中一开始就添加过多的复杂性。
|
||||||
|
|
||||||
### 指令
|
### 指令
|
||||||
您可以使用命令来指示模型执行各种简单任务,例如“写入”、“分类”、“总结”、“翻译”、“排序”等,从而为各种简单任务设计有效的提示。
|
|
||||||
|
|
||||||
请记住,您还需要进行大量的实验,以查看哪种方法最有效。尝试使用不同的关键字、上下文和数据尝试不同的指令,看看哪种方法最适合您的特定用例和任务。通常情况下,上下文与您要执行的任务越具体和相关,效果越好。我们将在即将推出的指南中介绍采样和添加更多上下文的重要性。
|
你可以使用命令来指示模型执行各种简单任务,例如“写入”、“分类”、“总结”、“翻译”、“排序”等,从而为各种简单任务设计有效的提示。
|
||||||
|
|
||||||
其他人建议将指令放在提示的开头。建议使用一些清晰的分隔符,如“###”,来分隔指令和上下文。
|
请记住,你还需要进行大量实验以找出最有效的方法。以不同的关键词(keywords),上下文(contexts)和数据(data)试验不同的指令(instruction),看看什么样是最适合你特定用例和任务的。通常,上下文越具体和跟任务越相关则效果越好。在接下来的指南中,我们将讨论样例和添加更多上下文的重要性。
|
||||||
|
|
||||||
|
有些人建议将指令放在提示的开头。另有人则建议是使用像“###”这样的清晰分隔符来分隔指令和上下文。
|
||||||
|
|
||||||
例如:
|
例如:
|
||||||
|
|
||||||
*提示:*
|
*提示:*
|
||||||
|
|
||||||
```
|
```
|
||||||
### 指令 ###
|
### 指令 ###
|
||||||
将以下文本翻译成西班牙语:
|
将以下文本翻译成西班牙语:
|
||||||
@ -27,18 +30,21 @@
|
|||||||
```
|
```
|
||||||
|
|
||||||
*输出:*
|
*输出:*
|
||||||
|
|
||||||
```
|
```
|
||||||
¡Hola!
|
¡Hola!
|
||||||
```
|
```
|
||||||
|
|
||||||
### 具体性
|
### 具体性
|
||||||
对您希望模型执行的指令和任务非常具体。提示越具体和详细,结果就越好。当您有所期望的结果或生成样式时,这一点尤为重要。没有特定的令牌或关键字会导致更好的结果。更重要的是具有良好的格式和描述性提示。实际上,在提示中提供示例非常有效,可以以特定格式获得所需的输出。
|
|
||||||
|
|
||||||
在设计提示时,您还应考虑提示的长度,因为提示的长度有限制。考虑到您应该具体和详细的程度是需要考虑的。包含太多不必要的细节并不一定是一个好方法。这些细节应该是相关的,并有助于完成手头的任务。这是您需要进行大量实验的事情。我们鼓励大量实验和迭代,以优化您的应用程序的提示。
|
要非常具体地说明你希望模型执行的指令和任务。提示越具描述性和详细,结果越好。特别是当你对生成的结果或风格有要求时,这一点尤为重要。不存在什么特定的词元(tokens)或关键词(tokens)能确定带来更好的结果。更重要的是要有一个具有良好格式和描述性的提示词。事实上,在提示中提供示例对于获得特定格式的期望输出非常有效。
|
||||||
|
|
||||||
|
在设计提示时,还应注意提示的长度,因为提示的长度是有限制的。想一想你需要多么的具体和详细。包含太多不必要的细节不一定是好的方法。这些细节应该是相关的,并有助于完成手头的任务。这是你需要进行大量实验的事情。我们鼓励大量实验和迭代,以优化适用于你应用的提示。
|
||||||
|
|
||||||
例如,让我们尝试从一段文本中提取特定信息的简单提示。
|
例如,让我们尝试从一段文本中提取特定信息的简单提示。
|
||||||
|
|
||||||
*提示:*
|
*提示:*
|
||||||
|
|
||||||
```
|
```
|
||||||
提取以下文本中的地名。
|
提取以下文本中的地名。
|
||||||
|
|
||||||
@ -49,33 +55,39 @@
|
|||||||
```
|
```
|
||||||
|
|
||||||
*输出:*
|
*输出:*
|
||||||
|
|
||||||
```
|
```
|
||||||
地点:里斯本,香帕利莫德中心
|
地点:里斯本,香帕利莫德中心
|
||||||
```
|
```
|
||||||
|
|
||||||
输入文本来自[这篇 Nature 文章](https://www.nature.com/articles/d41586-023-00509-z)。
|
输入文本来自[这篇 Nature 文章](https://www.nature.com/articles/d41586-023-00509-z)。
|
||||||
|
|
||||||
### 避免不精确
|
|
||||||
在上面关于详细和格式改进的提示中,很容易陷入想要过于聪明的提示陷阱,从而可能创建不精确的描述。通常最好是具体和直接。这里的类比非常类似于有效的沟通——越直接,信息传递就越有效。
|
|
||||||
|
|
||||||
例如,您可能有兴趣了解提示工程的概念。您可以尝试这样做:
|
### 避免不明确
|
||||||
|
|
||||||
|
给定上述关于详细描述和改进格式的建议,很容易陷入陷阱:想要在提示上过于聪明,从而可能创造出不明确的描述。通常来说,具体和直接会更好。这里的类比非常类似于有效沟通——越直接,信息传达得越有效。
|
||||||
|
|
||||||
|
例如,你可能有兴趣了解提示工程的概念。你可以尝试这样做:
|
||||||
|
|
||||||
```
|
```
|
||||||
解释提示工程的概念。保持解释简短,只有几句话,不要过于描述。
|
解释提示工程的概念。保持解释简短,只有几句话,不要过于描述。
|
||||||
```
|
```
|
||||||
|
|
||||||
从上面的提示中不清楚要使用多少句话和什么样的风格。您可能仍然可以通过上面的提示获得良好的响应,但更好的提示是非常具体、简洁和直接的。例如:
|
从上面的提示中不清楚要使用多少句子以及什么风格。尽管你可能仍会从上述提示中得到较好的响应,但更好的提示应当是非常具体、简洁并且切中要点的。例如:
|
||||||
|
|
||||||
```
|
```
|
||||||
使用 2-3 句话向高中学生解释提示工程的概念。
|
使用 2-3 句话向高中学生解释提示工程的概念。
|
||||||
```
|
```
|
||||||
|
|
||||||
### 做还是不做?
|
|
||||||
设计提示时的另一个常见技巧是避免说不要做什么,而是说要做什么。这鼓励更具体化,并关注导致模型产生良好响应的细节。
|
### 做什么还是不做什么?
|
||||||
|
|
||||||
|
设计提示时的另一个常见技巧是避免说不要做什么,而应该说要做什么。这样(说要做什么)更加的具体,并且聚焦于(有利于模型生成良好回复的)细节上。
|
||||||
|
|
||||||
以下是一个电影推荐聊天机器人的示例,因为我写的指令——关注于不要做什么,而失败了。
|
以下是一个电影推荐聊天机器人的示例,因为我写的指令——关注于不要做什么,而失败了。
|
||||||
|
|
||||||
*提示:*
|
*提示:*
|
||||||
|
|
||||||
```
|
```
|
||||||
以下是向客户推荐电影的代理程序。不要询问兴趣。不要询问个人信息。
|
以下是向客户推荐电影的代理程序。不要询问兴趣。不要询问个人信息。
|
||||||
|
|
||||||
@ -84,22 +96,25 @@
|
|||||||
```
|
```
|
||||||
|
|
||||||
*输出:*
|
*输出:*
|
||||||
|
|
||||||
```
|
```
|
||||||
当然,我可以根据您的兴趣推荐电影。您想看什么类型的电影?您喜欢动作片、喜剧片、爱情片还是其他类型的电影?
|
当然,我可以根据你的兴趣推荐电影。你想看什么类型的电影?你喜欢动作片、喜剧片、爱情片还是其他类型的电影?
|
||||||
```
|
```
|
||||||
|
|
||||||
以下是更好的提示:
|
以下是更好的提示:
|
||||||
|
|
||||||
*提示:*
|
*提示:*
|
||||||
|
|
||||||
```
|
```
|
||||||
以下是向客户推荐电影的代理程序。代理负责从全球热门电影中推荐电影。它应该避免询问用户的偏好并避免询问个人信息。如果代理没有电影推荐,它应该回答“抱歉,今天找不到电影推荐。”。
|
以下是向客户推荐电影的代理程序。代理负责从全球热门电影中推荐电影。它应该避免询问用户的偏好并避免询问个人信息。如果代理没有电影推荐,它应该回答“抱歉,今天找不到电影推荐。”。
|
||||||
```顾客:请根据我的兴趣推荐一部电影。
|
```顾客:请根据我的兴趣推荐一部电影。
|
||||||
客服:
|
客服:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
*输出:*
|
*输出:*
|
||||||
|
|
||||||
```
|
```
|
||||||
抱歉,我没有关于您兴趣的任何信息。不过,这是目前全球热门的电影列表:[电影列表]。希望您能找到喜欢的电影!
|
抱歉,我没有关于你兴趣的任何信息。不过,这是目前全球热门的电影列表:[电影列表]。希望你能找到喜欢的电影!
|
||||||
```
|
```
|
||||||
|
|
||||||
上述示例中的一些内容摘自 ["Best practices for prompt engineering with OpenAI API" article.](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api)
|
上述示例中的一些内容摘自 ["Best practices for prompt engineering with OpenAI API" article.](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api)
|
||||||
|
Loading…
Reference in New Issue
Block a user