公众号AI修猫收集了12种编写Prompt的设计模式。首先来看一下设计模式的概念:

设计模式通常包括以下要素:

  1. 名称:描述设计模式的名称,以便于进行讨论和交流。
  2. 问题:描述需要解决的问题或场景,包括问题的背景、现有的解决方案存在的问题等。
  3. 解决方案:描述如何解决问题的方法和实现方式,包括模式的结构、角色和职责、协作方式等。
  4. 效果:描述使用该模式的好处和潜在的局限性,包括可维护性、可扩展性、可重用性等方面的影响。
  5. 应用场景:描述该模式适用的场景和限制条件,以及如何根据具体需求进行相应的变化和调整。
    6. 实现细节:提供关于如何在具体编程语言或环境中实现该模式的详细步骤和示例代码。

以下是12种设计模式

1.Structured Prompt(结构化提示词)

可以按照 prompt=角色+任务+要求+提示的结构设计清晰明了的提示词。要点: 构建一个有明确结构和预期输出的提示词。简单地说,这个结构就是要告诉 chatgpt:你是谁?你要做什么?要做成什么样?要如何做?这是大家都会用也用的最多的一种提示词,“假定你是,你的任务是,要求是”著名的 CRISPE 框架就是这种结构化 Prompt 的框架

例如知名的 CRISPE 框架,CRISPE 分别代表以下含义:

  • CR:Capacity and Role(能力与角色)。你希望 ChatGPT 扮演怎样的角色。
  • I:Insight(洞察力),背景信息和上下文(坦率说来我觉得用 Context 更好)。
  • S:Statement(指令),你希望 ChatGPT 做什么。
  • P:Personality(个性),你希望 ChatGPT 以什么风格或方式回答你。
  • E:Experiment(尝试),要求 ChatGPT 为你提供多个答案。

最终写出来的 Prompt 是这样的:

Act as an expert on [action] the [object] in the [context]

这类 Prompt 被广泛的应用到生产环境,结构化 Prompt 有很多优势,乃至网易、字节这样的互联网大厂都在使用结构化 Prompt。

2. Prompt Creator(提示词生成器)

简单地说,就是让 ChatGPT 扮演一个提示词生成专家,帮助你完成/完善/改进你的 prompt。编写要点:利用模型自身生成新的提示词

最终写出来的 Prompt 是这样的:

Act as prompt creator, Give me a prompt about [topic]

这类 Prompt 用到最多的场景就是用能生成提示词的 Prompt 来优化原来的提示词:

作为一名Prompt工程师。作为一名经验丰富的知名提示词工程师,您擅长制作高质量的提示词,从ChatGPT中获得准确和相关的响应。我很高兴能利用你的专业知识来进一步提高我的提示。

3. One/Few Shot Prompt(单样本/少样本提示)

简单地说,当目标任务需要特定的知识或技能时。需要举例让模型明白,将要执行任务的模式。要点: 提供少量的示例,使模型理解任务。

最终写出来的 Prompt 是这样的:

Act as linguist, Traslate these English sentences to French

这类 Prompt 用到最多的场景,就是当角色面对复杂任务的时候,你需要举一个对话的例子或者适合你假定的这个角色的恰当的例子,以确保模型能以这种恰当的模式进行思考。

4. CoT(Chain of Thought,思维链)

CoT 是 "Chain of Thought" 的缩写,是一种针对自然语言处理 (NLP) 模型的提示方法,旨在提高模型的推理能力。通过将多步骤问题分解为中间推理步骤,CoT 提示使得模型可以更有效地处理需要多步骤推理的任务,如数学问题和常识推理。与传统提示方法不同,CoT 提示引导模型生成中间推理步骤,从而模拟人类推理的直觉过程。在 few shot prompt 的范例中给出思维链,让模型学习不仅输出结果还要给出思考过程。可以显著提升 LLM 的表现。当任务需要多步骤才能完成时,编写要点: 让模型系统地完成一系列的任务。

最终写出来的 Prompt 是这样的:

Do A, then B, then C.

这类 Prompt 用到最多的场景就是处理复杂的问题,需要不断的迭代:

You will answer a

5. Self-Consistency COT(一致性思维链)

简单地说,把 temprature 调成大于 0,如 0.4.然后让模型多回答几次,对回答结果进行投票,可以显著改善 COT。

最终写出来的 Prompt 是这样的:

Do A, check if it's consistent with B, then do C

6. Zero-Shot COT(零样本思维链)

当一个新的、没有先前经验的任务需要完成时。在没有先前见过的任务上执行多步骤。

最终写出来的 Prompt 是这样的:

Do A, then B, then C

下面这句 Prompt 被公认是解决这类问题最佳的方法:

Let's work this out in a step by step way to be sure we have the right answer.

7. Self-ask Prompt(自我提问)

简单地说,在 prompt 范例中引导入 LLM 将一个复杂的问题拆分为简单的子问题,逐个回答,然后汇总成为答案。需要模型自我导向或者引导讨论时。让模型提出自己的问题来引导思考。和 COT 思维链效果有些类似,但同时要求 LLM 提出子问题并给出答案,对生成内容的约束更大,有时候效果更好。

最终写出来的 Prompt 是这样的:

What questions should I ask about [topic]?

8.ReACT(Reaon+Act 协同思考和动作)

最终写出来的 Prompt 是这样的:

Work with [user/model] to [task]

最典型的例子就是 AutoGPT,也是这种强化学习范式 prompt 的产物,AutoGPT 设计的主要 prompt 模式如下::

Thoughts(当前的思考)->Reasoning(推理过程->Plan(后续计划)->Criticism(自我批判审视)->Next action(下一步行动)

9.Reflexion(失败后自我反思)

当模型的表现低于预期,需要改进时。让模型反思其行为并学习如何改进。按照任务>尝试->评估>如果失败则反思(Reflection)失败原因->再次尝试 →.的模式来解决问题。加了 Reflection:步骤可以明显提升成功率。作者认为反思步骤可以帮助 LLM 建立长期记忆或者经验。Reflection 也是以强化学习范式实现的,和 ReACT 效果差不多。

最终写出来的 Prompt 是这样的:

Why did I fail in [task]? How can I do better?

最常用的提示词:

你认为你的任务完成了吗?

10.Langchain (连接知识库)

当需要引用特定的知识或信息时。利用已有的知识和信息来解决问题。将本地文档做成知识库或根据已有的知识库,根据 Query 问题按照文本 Emedding 向量相似度查询到最相关的知识内容,按照模版拼接到 Prompt 中。核心技术是 Embedding 算法,以及向量数据库查询。
最终写出来的 Prompt 是这样的:

What does [knowledge base] say about [topic]

这是一个最简单的提示词:

维基百科上关于黑洞的内容是什么?

其实在昆德拉那条提示词里也有类似的内容,毕竟大语言模型就是一个很大的知识库。

11. Negative Prompt (反向提示)

当需要纠正模型的行为或避免特定错误时。通过给出错误的示例来指导模型。具体来说,反向提示词通常是以否定的形式呈现的,例如在文本生成任务中,使用“不要写...”、“不要提及...”、“不要使用...”等方式来限制模型生成不想要的文本。在情感分析任务中,使用“不是...”、“并不...”等方式来指示模型识别出一段文本的负面情感。在 QA(问答)任务中,使用“不是...”、“不包括...”等方式来指示模型回答问题时避免输出错误或不准确的答案。Negative Prompt 在 Stable Diffusion 被广泛使用,相似的,在 ChatGPT 等 AI 模型中,我们也会经常使用到。

最终写出来的 Prompt 是这样的:

Do NOT do [incorrect action]

这是一个最简单的提示词:

不要将人名翻译成其他语言

12. Concept of redefinition (概念的再定义)

当需要改变模型对某个概念的理解时。重新解释或定义一个概念。对于 ChatGPT 等 AI 来说,语言就是语言,他不区分自然语言和编程语言,甚至有可能编程语言对它更友好。对于 ChatGPT 等 AI 尚不存在的概念,可以通过 Google 相关的内容之后,由 AI 进行总结。或者直接定义一个概念用 ReDefinition(再定义)->Heuristics(试探->

Confirm understanding(确认理解)的流程去编写 Prompt

最终写出来的 Prompt 是这样的:

[Concept] is not [old definition], it is [new definition]

这是一个最简单的提示词:

智能不是知识的积累,而是解决问题的能力

这是一个强大的编写模式,能改变原有定义。值得您好好发挥创造力和专注力研究一下。