最权威的提示词教程,莫过于ChatGPT官方文档里的6个写提示词的建议,如下对文档做了总结。


大模型 | 如何用Prompt技巧激发无限创意?Prompt原则&技巧_人工智能

一、指令清晰、详细

首先,指令要清晰。要准确表达你的需求,避免让GPT去猜测你的意图。如果你要生成较短的内容,就要求GPT简短回答;如果不想结果太简单,就用专业标准;不满意格式时,示例你期望的格式;总之减少GPT的猜测,我们可以得到更准确的响应。如何做到指令清晰呢?6个建议如下:

1. 问题里包含更多细节

在向ChatGPT提问时,应包含相关且重要细节,否则,GPT可能会胡乱猜测。例:

不好的提示词:谁是总统?
更好的提示词:谁是 2021 年的墨西哥总统,选举的频率如何?
在向ChatGPT提问的时候,要在问题里,包含相关的、重要的细节。 否则的话,ChatGPT就会给你瞎猜。

不好的提示词: 总结会议记录。 
更好的提示词: 将会议记录总结成一个段落。然后编写演讲者的Markdown列表及其要点。最后,列出演讲者建议的下一步行动或行动项目(如果有)。

2. 让模型角色扮演

指定模型在回复中扮演特定角色。

GitHub人设大全:
https://github.com/f/awesome-chatgpt-prompts

例:

不好的提示词:如何控制消极情绪?
更好的提示词:我想让你担任心理健康顾问。我将为您提供一个寻求指导和建议的人,以管理他们的情绪、压力、焦虑和其他心理健康问题。您应该利用您的认知行为疗法、冥想技巧、正念练习和其他治疗方法的知识来制定个人可以实施的策略,以改善他们的整体健康状况。我的第一个请求是“如何控制消极情绪?”

3. 使用分隔符

使用三重引号、XML标签、章节标题等分隔符,帮助划分文本的不同部分,便于大模型更好地理解。

对于简单的内容,有分隔符和没有分隔符,得到的结果,可能差别不大。但是,任务越复杂,消除任务的歧义就越重要。大模型是为我们生成内容的,不要把它的算力,浪费在了理解我们输入的内容上。

例:

用三重引号分隔
将三重引号中的古诗翻译成现代汉语。 """ 关关雎鸠,在河之洲。 窈窕淑女,君子好逑。 参差荇菜,左右流之。 窈窕淑女,寤寐求之。 求之不得,寤寐思服。 悠哉悠哉,辗转反侧。 参差荇菜,左右采之。 窈窕淑女,琴瑟友之。 参差荇菜,左右芼之。 窈窕淑女,钟鼓乐之。 """

用XML标签分隔
您将获得一对关于同一主题的文章(用 XML 标记分隔),先总结一下每篇文章的论点。然后指出他们中的哪一个提出了更好的论点并解释原因。
<article> 在这里插入第一篇文章</article>

4. 指定完成任务所需的步骤

详细写出任务所需的步骤,可使模型更容易按步骤执行。

例:

使用以下步骤完成用户请求。
第 1 步:在三重引号内的文本中用一句话总结,加前缀“Summary:”。
第 2 步:将摘要翻译成西班牙语,加前缀“Translation:”。
"""
在此插入文本
"""

5. 提供示例

通过示例让模型理解你的需求,多用于难以描述的任务或特殊风格中。

例:

假设你是一个旅行博主,你希望模型能以引人入胜的方式描述各种旅游地点。你可以这样写提示词:
你是一个旅行博主,我会在三重括号内给你提供示例。你模仿示例,写出5个回答。
提示词:告诉我关于上海的事。
""" 
提示词:告诉我关于巴黎的事。
回答:巴黎,犹如一首经久不衰的交响乐,每个角落都充满了艺术与浪漫的气息; 埃菲尔铁塔,卢浮宫,塞纳河都如同乐章,述说着这座城市的历史与未来。
 """

6. 设定回答的长度

要求大模型根据单词/字数、段落数量、要点数量生成回答,这样大模型生成的答案更有条理。

例:

用大约 50 个字总结以下文本,并总结为两个段落,三个要点。
"""
插入文本
"""

二、提供参考文本

给模型提供可信的信息来编写答案,或者引用参考文本编写答案,避免胡乱回答。

例:

使用以下文章回答问题。如果找不到答案,回复“我找不到答案”。
"""
插入文章
"""
问题:插入问题

三、将复杂任务拆分

将复杂任务分解成简单步骤,方便模型操作,提高准确性。

1. 问题分类

先把这些任务按类型分类,然后给每一种类型的任务都制定一套相应的步骤或者指令。使用这种方法的好处就是,每一次我们只需要关注当前的任务和相应的步骤或者指令,这样就可以降低出错的几率,而且也能节省成本。因为处理大任务需要的电脑运行费用,通常会比处理小任务的费用要高。

例:

您是一个网络专家,将收到客户服务查询。将每个查询分为主要类别和次要类别。主要类别:计费、技术支持、账户管理或一般查询。次要类别:退订或升级、添加支付方式、收费说明、对收费提出异议。根据不同的类别给出详细的解答。
假设客户需要“故障排除”方面的帮助。你将需要处理一些需要技术支持进行故障排查的客户服务咨询。请按照以下步骤帮助用户:
● 让他们检查路由器的所有线缆是否都已连接。注意,线缆随着时间的推移容易松动是常见的问题。
● 如果所有的线缆都已连接,但问题依然存在,请询问他们正在使用的路由器型号。
● 现在你需要指导他们如何重启设备:
  ○ 如果型号是 MTD-327J,建议他们按住红色按钮 5 秒钟,然后等待 5 分钟后再测试连接。
  ○ 如果型号是 MTD-327S,建议他们拔掉电源后再插入,然后等待 5 分钟后再测试连接。
● 如果客户在重启设备并等待 5 分钟后问题依然存在,通过输出 {"IT support requested"} 将他们转接到 IT 支持。
● 如果用户开始提问与此主题无关的问题,那么确认他们是否想结束当前的故障排查聊天,并根据以下方案对他们的请求进行分类

2. 分段总结长文/长对话

分段总结,再汇总,即总结前一部分的时候,带上之前的内容。多轮对话中,这样更利于后面回答的准确生成。

例:

问:请输入内容
回答1: [段落1内容总结]
问2:请输入内容
回答2: [段落2内容总结] + [回答1]
请根据以上格式提供每段的内容,这样能更好地对每一段进行总结,并逐步汇总所有内容,有助于生成最终的回答。

四、给大模型时间“思考”

1. 生成自己的答案再下结论

让模型先自行解决问题,之后比较并评估学生答案的正确性,让模型回答更有条理,也可提高准确性。

例:

首先想出你自己解决这个数学题的方法,然后将您的解决方案与学生的解决方案进行比较,并评估学生的解决方案是否正确。在您自己完成问题之前,不要判断学生的解决方案是否正确。

2. 隐藏推理过程

在给用户答案前,模型先在内部思考,不展示部分思考过程,即一个"内心独白(inner monologue)"的技巧。这样同样让模型回答更有条理,提高准确性,也不会干扰用户期望的输出。

例:

按照以下步骤回答用户查询。 
第 1 步 - 首先找出您自己的问题解决方案。不要依赖学生的解决方案,因为它可能不正确。将您为此步骤所做的所有工作用三重引号 (""") 括起来。 
第 2 步 - 将您的解决方案与学生的解决方案进行比较,并评估学生的解决方案是否正确。将您为此步骤所做的所有工作用三重引号 (""") 括起来。 
第 3 步 - 如果学生犯了错误,请确定您可以在不给出答案的情况下给学生什么提示。将您为此步骤所做的所有工作用三重引号 (""") 括起来。 
第 4 步 - 如果学生犯了错误,请向学生提供上一步的提示(三重引号外)。不要写“第 4 步 - ...”,而写“提示:”。

3. 让模型反思回答

让大模型再去找找看有没有之前漏掉的内容,往往能让模型的输出结果,变得更好。

例:

You will be provided with a document delimited by triple quotes. 
Your task is to select excerpts which pertain to the following question: "What significant paradigm shifts have occurred in the history of artificial intelligence." 
Ensure that excerpts contain all relevant context needed to interpret them - in other words don't extract small snippets that are missing important context. 
Please think about your answers and answer carefully.

五、使用外部工具

1. 嵌入(embedding)

使用基于嵌入的搜索来实现高效的知识检索,利用外部信息作为其输入的一部分,有助于模型生成更加明智和最新的回答,即RAG(Retrieval-Augmented Generation)。

例:

如果用户提出关于特定电影的问题,结合
```高质量的电影信息(如演员、导演等)```
来回答用户的问题。

2. 调用API

提供文档与代码示例,指导模型使用API,使用代码或者调用外部的API,产生的输出一起输入给模型使用,来进行更精确推理。

例:

结合```文档与代码示例```
您可以通过将生成的Python代码/API调用结果括在三重反引号中来进行下面的计算,
```代码在这里/API调用结果在这里```
使用它来执行计算。

注:执行模型生成的代码或API可能本身并不安全,需要一个沙盒代码执行环境来限制不受信任的代码可能造成的危害。

六、系统地测试更改

有时候很难判断新的指令或设计是让你的系统变得更好还是更糟。对于小样本量来说,很难区分真正的改进还是偶然运气。也许这种变化可以提高某些输入的性能,但却损害了其他方面的性能,所以建立一个系统测试流程更有必要。

1. 指标评估

以img2code指标对比,需要从页面整体布局、细节、字体等方面,详细评估code生成的好坏

例:

大模型 | 如何用Prompt技巧激发无限创意?Prompt原则&技巧_ai_02

2. 模型评估

把模型输出的结果,统一输入模型进行打分评估。

例:

请根据评估标准给结果打分,如下:
● 准确性(Accuracy)
  ○ 定义:模型生成的回答是否准确且符合事实。
  ○ 评分标准:
    ■ 0-2分:回答严重不准确或与事实明显不符。
    ■ 3-5分:回答部分正确,但有明显错误或遗漏关键信息。
    ■ 6-8分:回答大部分正确,但有细微错误或偏差。
    ■ 9-10分:回答完全准确且无可挑剔。
● 理解能力(Comprehension)
  ○ 定义:模型是否正确理解了用户提出的问题或指示。
  ○ 评分标准:
    ■ 0-2分:完全没有理解问题,回答与问题无关。
    ■ 3-5分:部分理解了问题,但回答不完全相关。
    ■ 6-8分:大部分理解了问题,但有细微的误解。
    ■ 9-10分:完全理解问题,并能提供相关的回答。
● 生成能力(Generation)
  ○ 定义:模型生成的文本是否流畅、自然,并且符合上下文逻辑。
  ○ 评分标准:
    ■ 0-2分:生成的文本不连贯,逻辑混乱或难以理解。
    ■ 3-5分:生成的文本有部分连贯,但存在明显的逻辑错误或不自然之处。
    ■ 6-8分:生成的文本大部分连贯,逻辑合理,但有少许不自然之处。
    ■ 9-10分:生成的文本完全连贯,自然且逻辑清晰。

3. 人工评估

有些美观、简洁等任务较主观,需要人工筛选,根据选定的baseline,给出评价。举例如下:

大模型 | 如何用Prompt技巧激发无限创意?Prompt原则&技巧_人工智能_03