Prompt Eng

三个原则

  1. 清晰 Clear: 理解手头的主题或任务,并能够生成适当的响应。避免使用过于复杂或模糊的语言,力求在提示中尽可能具体。
  2. 聚焦 Focus: 定义清晰的提示应具有明确的目的和焦点,有助于引导对话并保持正确的轨道。避免使用过于广泛或开放式的提示,这可能会导致不连贯或缺乏焦点的对话
  3. 相关性 Relavant: 避免引入无关的主题或离题的内容,这可能会分散对话的主要焦点

四个注意

  1. 明确会话的目的和焦点。在编写提示之前,有一个清晰的想法很重要,即您想通过会话实现什么目标。您的目标是提供信息、回答问题还是进行随意交谈?明确会话的目的和焦点将有助于您编写一个特定且相关的提示,从而实现更具吸引力和信息性的会话, 例如:

    Prompt: I want to buy a new car. The car should be oil efficient and have a good safety rating.


此时 I want to buy a new car 就是目的和焦点, 在提示输入的开头和结尾进行强调, 以便 ChatGPT 能够更好的理解提示的意图.

  1. 使用具体和相关的语言。为了确保 ChatGPT 理解您的提示并能够生成适当的响应,使用具体和相关的语言非常重要。避免使用术语或模棱两可的语言,这可能导致混淆或误解。相反,力求尽可能清晰简洁,使用与所讨论主题相关的语言。

依然使用上述例子, 此时的具体相关语言就是: buy, car, oil efficient, safety rating. 相关即是扣题.

  1. 保持会话在正确的轨道上。当您参与 ChatGPT 对话时,保持关注所讨论的主题并避免引入与主题不相关的话题非常重要。通过保持会话在正确的轨道上,您可以确保它涵盖用户感兴趣的主题并提供有用和相关的信息。

在上述例子中, 保持会话在正确的轨道上就是: 保持会话在购买新车的主题上, 而不是其他的主题. 比如: Who is the president of the United States? 这个问题就不是扣题.

  1. 避免开放性或过于广泛的提示。虽然为了获得更全面的响应而问开放性或过于广泛的问题很诱人,但这些类型的提示通常会导致不连贯或无焦点的对话。相反,力求在提示中尽可能具体,为会话定义明确的目的和焦点。

同样看这个例子, 如果我只说: I want to buy a new car. 就会过分开放, 广泛. 导致 ChatGPT 的回复也会泛泛而谈.

专业术语

定义任何术语或技术术语。如果您需要在提示中使用术语或技术术语,请确保为这些术语提供清晰的定义或解释。这将有助于确保 ChatGPT 和用户在同一层面上,并避免误解. 例如:

Prompt: I want to write a hello world programm in programming language.


此时的 programming language 就是专业术语, 需要定义. 如果没有定义, LLM会自动选择一种语言, 而这将会导致输出的模糊. 因此, 我们需要在提示中定义 programming language 或者直接使用更加专业的术语直接称呼. 例如:
> Prompt: I want to write a hello world programm in programming language C.

Or
> Prompt: I want to write a hello world programm in C.

提示修正

同样的问题, 有时候我们会发现 ChatGPT 的回复不是我们想要的, 这时候我们可以对原提示进行修正, 以便 ChatGPT 能够更好的理解我们的意图.

引导对话

  1. 从一个清晰明了的提示开始。正如我们之前所讨论的那样,制定清晰明了的提示以定义对话的目的和重点是很重要的。通过以一个专注和具体的提示开始,您可以帮助确保对话保持在正确的轨道上,并覆盖用户感兴趣的主题。
    例如: 你将以汽车购买指导员的身份为我提供帮助.
  2. 鼓励 ChatGPT 扩展其回应。虽然 ChatGPT 能够提供有用和相关的信息,但有时鼓励它扩展其回应以提供更深入的信息或深入探讨相关主题会很有帮助。您可以通过提出跟进问题或提供额外的上下文或示例来引导对话。
    例如: 你可以做到更多更相信的汽车细节, 加油.
  3. 注意对话中使用的语气和语言。为了保持有意义和富有吸引力的对话,注意对话中使用的语气和语言是很重要的。避免使用过于随意或轻视的语言,因为这可能会导致沟通中断。相反,应采用尊重和专业的语气,并使用清晰易懂的语言。例如: 加入 “请”
  4. 监控对话的方向并根据需要进行调整。随着对话的进行,监控它所采取的方向并根据需要进行调整是很重要的,以保持其正确的轨道。如果对话开始偏离主题,您可以使用提示或跟进问题将其引导回更相关的方向。

角色扮演

在 晰明了的提示开始 之中, 我们提出让 ChatGPT 扮演汽车购买指导员的角色. 这样做的好处是, 我们可以更加专注于汽车购买的问题, 而不是其他的问题. 任何问题都可以让chatGPT进行角色扮演来实现专一问题的回答

提示链

作为 对话模型, 从上下文中进行学习是非常重要的. 所以我们就需要循序渐进的指导 ChatGPT 进行回答. 这种渐进过程就是提示链.
## 零样本提示
在我们第一次向 ChatGPT 提出问题时, ChatGPT 本身并没有任何的定制化上下文信息, 所以此时的第一次提示是完全基于模型本身知识的, 这就是零样本提示. 例如:
> Prompt:: 将文本分类为中性、负面或正面。
文本:我认为这次假期还可以。
情感:

output: 中性


多样本提示

使用零样本设置时,它们在更复杂的任务上仍然表现不佳。少样本提示可以作为一种技术,以启用上下文学习,我们在提示中提供演示以引导模型实现更好的性能。简而言之, 提供一些例子, 最好有有迹可循的规律, 进行提示. 例如:
> Prompt:: 这太棒了!// Negative
这太糟糕了!// Positive
哇,那部电影太棒了!// Positive
多么可怕的节目!//

output: Negative


在应用当中, 多样本提示事实上就是对话链, 是作为先验知识的存在.

链式思考

在提示链中, 我们可以使用链式思考的方式来进行提示.


Prompt Eng
https://fatshion-ftd.github.io/2023/04/01/Prompt-Eng/
作者
Mingchen Lee
发布于
2023年4月1日
许可协议