现在已经产生了一种新职业: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都会理解得很好。
它有十大类基本能力:
- 文本生成: ChatGPT 可以生成各种格式的文本,例如写故事、写新闻文章或诗歌、写代码等。
- 自动摘要: ChatGPT 可以将一段很长的文本摘要成一个较短的版本。
- 自然语言理解 (NLU): ChatGPT 可以理解文本的含义,可用于情感分析、命名实体识别和文本分类等任务。
- 语言翻译: ChatGPT 可以针对语言翻译任务进行微调,将文本从一种语言翻译成另一种语言。
- 对话生成: ChatGPT 可以生成类似人类的对话,使其适用于聊天机器人和虚拟助手应用程序。
- 文本转语音: ChatGPT 可以针对文本转语音任务进行微调,将文本转换为口语。
- 图像字幕: ChatGPT 可以针对图像字幕任务进行微调,它可以为图像和视频生成字幕。
- 阅读理解: ChatGPT 可以针对阅读理解任务进行微调,它可以根据给定的文本回答问题。
- 问答: ChatGPT 可以根据给定的上下文或知识库回答问题。
- 文本补全: 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如何编写就可以了,这其实又不难。
慢慢修炼吧。有问题欢迎在互动区提问。
新人从0到1编程自学经典《微信小游戏开发》全套书籍已经在京东、当当上架,需要签名版及1v1辅导的读者请与作者联系。作者博客:艺述论。