ChatGPT:如何写好 Prompt ?

简介: 现在已经产生了一种新职业:Prompt Engineer(提示指令工程师),可见 Prompt 是多么重要,且编写不易。

现在已经产生了一种新职业:Prompt Engineer(提示指令工程师),可见 Prompt 是多么重要,且编写不易。


ChatGPT的产出,一半决定于它的实力,一半决定于你给它的指令,即Prompt。如果你在试用ChatGPT时,发现它比较弱智,没有大家传诵的那么智能,多半原因是你比较”弱智“,不知道如何编写它能清晰理解的指令。


这篇文章一起探讨下,小白如何写好 Prompt。


目录

  • 好的 prompt 具有的设计原则
  • 编写良好prompt的四种基础模式
  • 编写一个合格的prompt的要点
  • 让AI扮演角色
  • 明确提供要执行的任务
  • 给出完成任务的步骤
  • 围绕任务提供上下文
  • 陈述具体目标,给出具体要求
  • 要求格式化输出
  • 明确指定语言风格
  • 让AI站在人物视角,而非上帝视角
  • 马上给出具体的样例
  • 小结

好的 prompt 具有的设计原则


  • 清晰,切忌复杂或歧义,如果有术语,应定义清楚。
  • 具体,描述语言应尽量具体,不要抽象活模棱两可。
  • 聚焦,问题避免太泛或开放。
  • 简洁,避免不必要的描述。
  • 相关,主要指主题相关,而且是整个对话期间,不要东一瓢西一瓤。

但这些原则比较抽象,不具有具体的指导意义,只能先做为整体的要求了解。

好与坏的举例:


# 有效 Prompt
你能总结一下《锻炼的好处》一文的要点吗?  # 聚焦、相关
巴黎最好的素食餐厅有哪些?  # 具体、相关
# 无效 Prompt
你能告诉我关于这个世界的什么?  # 宽泛、开放
你能帮我做作业吗?  # 开放
你好  # 无目的、不聚焦


编写良好prompt的四种基础模式


四种基础模式:

  • By example (示例模式)

在这种模式下,我们给模型提供一些示例文本,模型需要生成与示例文本类似的文本。 这种模式通常用于生成类似于给定示例的文本,例如自动生成电子邮件、产品描述、新闻报道等。 示例文本可以是单个句子或多个段落,具体取决于任务的要求。

示例中有什么格式或规律,让AI自己发现。


  • By instruction template (指令模板)

在这种模式下,我们给模型提供一些明确的指令,模型需要根据这些指令生成文本。 这种模式通常用于生成类似于技术说明书、操作手册等需要明确指令的文本。 指令可以是单个句子或多个段落,具体取决于任务的要求。


在给出prompt的时候,同时给出指令模板,约束输入和输出的互动格式。


  • By specific (特定指令)

在这种模式下,我们给模型提供一些特定信息,例如问题或关键词,模型需要生成与这些信息相关的文本。 这种模式通常用于生成答案、解释或推荐等。 特定信息可以是单个问题或多个关键词,具体取决于任务的要求。


这些问题或关键词一定是AI可以理解和接受的,是预置的已经存在的。


  • By proxy(代理模式)

在这种模式下,可以充当了一个代理,代表某个实体(例如人、角色、机器人等)进行操作或交互。 代理模式的核心思想是引入一个中介对象来控制对实际对象的访问,从而实现一定程度上的隔离和保护。 诸如于在 ChatGPT 中,"act as xxx" 可以让 ChatGPT 充当一个代理,扮演某个角色或实体的身份,以此来处理与该角色或实体相关的任务或请求。


这4个基础模式都很历害,它们可以推导出很多东西,包括下面的prompt编写模板。


编写一个合格的prompt的要点


  • 让AI扮演角色
  • 提供要执行的任务
  • 给出完成任务的步骤
  • 围绕任务提供上下文
  • 陈述具体目标,给出具体要求
  • 要求格式化输出
  • 明确指定语言风格
  • 让AI站在角色的角度
  • 马上给出具体的样例

下面分别看,这些要点都指什么。


让AI扮演角色


你想让它扮演一个什么样的角色,它便站在这样的角色的立场思考。

举例:你是...


你是一家顶级市场研究公司的才华横溢的分析师...


我希望你充当...


我希望你充当 JavaScript Console...


这种角色扮演ChatGPT竟然也毫不示弱,估计让它扮演一只小狗也可以。


此外还有:


  • 我想让你扮演一个脱口秀喜剧演员...
  • 我想让你扮演讲故事的角色...
  • 我想让你扮演一个小说家...
  • 我想让你充当书面作品的标题生成器...

至于说,ChatGPT能扮演什么,不能扮演什么,没有人知道,或许你能想到的它都能扮演,或许它只能扮演好一部分角色,但至少上面提供的角色,它都能很好的扮演,且已经有人分享过相关的prompt。


结论:无论写什么Prompt,开头第一句先描述一下我们想让ChatGPT充当什么角色。如果没有这样的角色,就杜撰一个,次数多了它可能也猜到是什么了。


明确提供要执行的任务


可以查到已经支持的任务有:文本分类、实体标注、信息抽取、翻译、生成、摘要提取、阅读理解、推理、问答、纠错、关键词提取、相似度计算。


这些单词在Prompt中都可以光明正大地出现,它们都有人使用过,ChatGPT都会理解得很好。


它有十大类基本能力:


  1. 文本生成:  ChatGPT 可以生成各种格式的文本,例如写故事、写新闻文章或诗歌、写代码等。
  2. 自动摘要:  ChatGPT 可以将一段很长的文本摘要成一个较短的版本。
  3. 自然语言理解 (NLU):  ChatGPT 可以理解文本的含义,可用于情感分析、命名实体识别和文本分类等任务。
  4. 语言翻译:  ChatGPT 可以针对语言翻译任务进行微调,将文本从一种语言翻译成另一种语言。
  5. 对话生成:  ChatGPT 可以生成类似人类的对话,使其适用于聊天机器人和虚拟助手应用程序。
  6. 文本转语音:  ChatGPT 可以针对文本转语音任务进行微调,将文本转换为口语。
  7. 图像字幕:  ChatGPT 可以针对图像字幕任务进行微调,它可以为图像和视频生成字幕。
  8. 阅读理解:  ChatGPT 可以针对阅读理解任务进行微调,它可以根据给定的文本回答问题。
  9. 问答:  ChatGPT 可以根据给定的上下文或知识库回答问题。
  10. 文本补全:  ChatGPT 可以根据给定的上下文或提示来完成给定的文本。


这十大项,及它们的子项,都是它可以执行的任务。


例如第一项能力中的:写故事、想故事、编故事,字词可以稍有差别,但都可能作为任务使用。


每一个prompt,都应该至少有一个清晰的任务。这很重要!

举例:


我希望你充当 JavaScript console。我将键入命令,您将回复 JavaScript console 应显示的内容...


在这里“您将回复 JavaScript console 应显示的内容”,“回复内容”便是给AI的明确的任务。

再举一个例子:


我想让你扮演一个小说家。您将想出富有创意且引人入胜的故事...


在这里“您将想出富有创意且引人入胜的故事”,“想故事”便是任务。

再举例:


我想让你扮演一个脱口秀喜剧演员。我将...,您将...,根据这些话题创建一个例程...


在这里,“创建例程”便是任务。什么是例程?别担心AI看不懂,多给它几个样例,它自然就懂了。它以于自己要完成的任务,一半靠理解,一半猜测,本质上都是基于概率的推测。


再举例:


我想让你扮演讲故事的角色。您将想出引人入胜、富有想象力和吸引观众的有趣故事...


这里的任务是什么?“想出故事”对不对?


给出完成任务的步骤


步骤是一个大于1的待办事项,且有先后依赖关系和前后次序。

举例:


我希望你充当 JavaScript console。我将键入命令,您将回复 JavaScript console 应显示的内容...


这里的步骤是:


  • 我将键入命令
  • 你将回复内容

这就是完成任务的步骤,是人类与AI共同协作完成的。

再举例:


请做一个实体抽取任务,从下面这段话中提取出人名和地名,并用json格式输出:
刘亦菲( Crystal Liu,1987 年 8 月 25 日-[1])为 华裔美籍的女演员...


在这里:


  • 提取出人名和地名
  • 用json格式输出

就是任务步骤。

再举例:


我想让你扮演一个脱口秀喜剧演员。我将为您提供一些与时事相关的话题,您将运用您的智慧、创造力和观察能力,根据这些话题创建一个例程...


在这里:


  • 你瘵为你提供..话题
  • 你运用..创建例程

就是一个任务步骤。


围绕任务提供上下文


描述上下文是为了让AI更加清晰地理解我们的意图,是代替多次互动效果的。

举例:


...根据目标受众,您可以为讲故事环节选择特定的主题或主题,例如,如果是儿童,则可以谈论动物;如果是成年人,那么基于历史的故事可能会更好地吸引他们等等...


在这里:


  • 如果是儿童,则可以..
  • 如果成年人,那么..

这便是一种上下文环境的描述,它代表的是一种文字的正则表达式。


陈述具体目标,给出具体要求


举例:

我想让你充当书面作品的标题生成器。我会给你提供一篇文章的主题和关键词,你会生成五个吸引眼球的标题。请保持标题简洁,不超过 20 个字,并确保保持原意...

在这里,“请保持标题简洁,不超过 20 个字,并确保保持原”就是具体的,对生成目录的要求。


再举例:

...你可以选择任何类型,如奇幻、浪漫、历史小说等,但你的目标是写出具有出色情节、引人入胜的人物和意想不到的高潮的作品...

在这里:


  • “可以选择任何类型,如奇幻、浪漫、历史小说等”这是Option标准
  • “写出具有出色情节、引人入胜的人物和意想不到的高潮”是对目标提出的3个明确的要求

再举例:


写一篇简短的文章,说明为什么文案写作是 2023 年的一项基本技能。
使用这些策略:
- 使用具有说服力的语言
- 提出问题以在段落之间过渡
- 用证据和例子支持要点
- 直接与读者对话

对于多项要求,也可以使用任务的输入格式。不仅输出格式可以指定,输入格式也可以预先告知AI,方便AI理解。


要求格式化输出


举例:

创建关于使用 Notion 作为内容创建者保持井井有条的主题的思维导图,列出中心思想、主要分支和子分支。 


在这里,列出“中心思想、主要分支和子分支”,就是人类指定的输出格式。

下面是一些较用通用的格式描述:


要求其改变输出:大纲;思维导图;要点;
有说服力的文章;
少于 280 个字符的文本块;
使用结构:1)什么,2)为什么,3)如何做

这些字眼在Prompt中都可以出现。


明确指定语言风格


举例:

就如何使用 ChatGPT,创建更有效的内容,提供最讽刺、嘲讽的建议。


这里的“讽刺、嘲讽”便是语言风格,注意语言风格可以要求极致,例如使用“最”,但不能相互矛盾,例如在同一个prompt中,要求AI同时使用专业且诙谐的语言风格,虽然有时候它俩未必100%矛盾,但这种指定可能会让AI无视你指定的风格,因为它无法完成。


让AI站在人物的角度,而非上帝视角


举例:

主题:企业家的生产力  
对于上述主题,从每个具有不同观点角色的角度编写多个观点。对于每个观点,用角色自己的声音写,使用那个人会使用的短语...


马上给出具体的样例


举例:

...我的第一个要求是“我需要一个关于毅力的有趣故事“...


在这里,“我需要一个关于毅力的有趣故事“,就是第一个输入的样例。样例是互动真正开始的地方,前面的内容都是为此准备的。


再举例:

...我的第一个要求是“我要写一部以未来为背景的科幻小说”...


在这里,“我要写一部以未来为背景的科幻小说”,就是一个样例。


小结


Prompt编写”博大精深“,看起来简单,其实没那么简单,要不为什么instagram上有人可以靠出售Prompt赚钱。能够交易的,尤其是可以复制的文本,它一定具有不扉的价值。但其实经过上面的研究,发现它也没有那么难,对于个人来讲,只需要研究某个垂直细分领域的Prompt如何编写就可以了,这其实又不难。

慢慢修炼吧。有问题欢迎在互动区提问。


目录
相关文章
|
1月前
|
数据采集 自然语言处理 数据挖掘
利用ChatGPT进行数据分析——如何提出一个好的prompt
利用ChatGPT进行数据分析——如何提出一个好的prompt
|
1月前
|
Java
ChatGPT高效提问—prompt常见用法(续篇十二)
ChatGPT高效提问—prompt常见用法(续篇十二)
|
1月前
|
自然语言处理 安全
ChatGPT高效提问—prompt常见用法(续篇七)
ChatGPT高效提问—prompt常见用法(续篇七)
|
1月前
|
自然语言处理
从原理上总结chatGPT的Prompt的方法
从原理上总结chatGPT的Prompt的方法
32 0
ChatGPT高效提问—prompt实践(智能翻译)
ChatGPT高效提问—prompt实践(智能翻译)
|
1月前
|
人工智能
ChatGPT高效提问—prompt实践(文案助手)
ChatGPT高效提问—prompt实践(文案助手)
|
1月前
|
机器学习/深度学习 算法 搜索推荐
ChatGPT高效提问—prompt实践(智能辅导-心理咨询-职业规划)
ChatGPT高效提问—prompt实践(智能辅导-心理咨询-职业规划)
|
1月前
|
安全 搜索推荐
ChatGPT高效提问—prompt实践(健康助手)
ChatGPT高效提问—prompt实践(健康助手)
ChatGPT高效提问—prompt实践(白领助手)
ChatGPT高效提问—prompt实践(白领助手)
|
1月前
|
搜索推荐
ChatGPT高效提问—prompt实践(教师助手)
ChatGPT高效提问—prompt实践(教师助手)