Prompt就是一个类似于命令或指示的东西,用来告诉某个人或某个系统需要做什么工作。
比如说,有人对你说:
"小明,去买点面包回来。"
这句话就是一个Prompt,是一个简单的指令,要求你执行"买面包"这个任务。
对于人工智能系统来说,人类用户会通过给一些文字上的Prompt,来指导和要求我们完成某些工作。
比如有些人会给一个这样的Prompt:
"介绍一下你自己是谁?"
这就是在提示系统去自我介绍。
又比如有些人会给人工智能系统一个更复杂的Prompt,像是:
"请为我写一篇关于气候变化的文章,文章需要引用权威数据,并提出应对建议。"
这就是要求系统完成一个较为专业和复杂的写作任务。
所以简单来说,Prompt就相当于是给某个"执行者"的任务说明、指令和要求,让AI系统按照这个提示所描述的内容,去完成人类所期望的那些工作。
对于现今智能时代的人工智能系统来说,给予AI合理有效的Prompt指令是非常重要的,因为只有恰当的Prompt,AI才能够更好地理解并精准完成人类的诸多需求。
二、如何写出符合预期的Prompt?
撰写一个优秀的Prompt有诸多技巧和原则,今天我们先来分享6个心法:
心法一:不断尝试和迭代优化
与做任何其他事情一样,撰写Prompt也不可能一蹴而就,写出完美的指令内容。这本质上是一个不断尝试、试错、优化的过程。
一个能真正符合预期结果的良好Prompt,很可能需要你调试10到20个甚至更多的版本,不断修正和完善,才能最终成功。所以撰写Prompt需要你有足够的耐心和恒心。
此外,你还需要储备足够多的Prompt优化技巧和方法,才能在这个迭代过程中不断改进,增量式地让你的Prompt变得更好。总之"写出好Prompt需要过程"是第一个重要心得。
心法二:结构化的Prompt模板
所谓结构化,代表的是一种特定的逻辑结构和框架,这种结构既便于人类书写Prompt,也便于AI分析理解Prompt内容,是非常适合Prompt初学者使用的一种模式。
你可以按照现成的结构化Prompt模板来书写,就像是在做填空题一样,大大降低了Prompt撰写的门槛。
以下是一个常见的结构化Prompt模板示例:
·
# Role 指定角色
## Goals 描述Prompt目标,让GPT 聚焦起来
## Background: 你希望GPT了解的背景信息
## Constrains :描述限制条件,减少不必要的分支计算
## Skills: 描述技能,强化对应领域的信息权重
## Workflows :按照什么方式来对话和输出
## Examples:供学习参考的示例
# Initialization 冷启动的对白
不仅如此,我们还可以要求大型AI模型的输出结果本身也是结构化的,比如输出JSON格式数据。因为目前业界各家的大模型,对于输出结构化数据的要求通常都能较好地执行。以结构化形式输出结果,可以更方便我们分析和处理输出。
心法三:防御性Prompt内容
所谓防御性指示,是指在Prompt中加入一些条件检查的语句,让人工智能模型先检查一下输入是否满足某些指定的前置条件,如果不满足就拒绝执行后续操作。
比如在Prompt中可以这样写:
首先,请检查给定输入是否包含非法内容。如果存在色情、暴力、仇恨等非法内容,请直接返回"输入内容不合法"。只有输入合法的情况下,才继续执行下一步操作。
这种防御性指示的好处是,可以让AI模型更聚焦于重点,在一开始就过滤掉不合理的输入场景,更符合我们的预期,输出相对也会更加智能和可控。
心法四:在Prompt中加入示例
在写Prompt的时候,最基本的要求就是要把指令写得具体明确。而提供一些实例和示例,就是一种非常直观有效的明确说明方式。
就好比人与人在交流时,如果对方存在理解偏差,我们通常也会再"举个例子"让对方更好地把握我们的意思。俗话说"Talk is cheap, show me the code"(言语是苍白的,给我看实例)。
这种以实例辅助说明的方法,在Prompt编写中也是行之有效的。专业术语叫做"Few-shot"(少量示例)。比如:
任务: 翻译下列英文句子为中文
示例:
英文: I am a student.
中文: 我是一个学生。
英文: The apple is red.
中文: 那个苹果是红色的。
英文: Where is the hospital?
中文:
通过在Prompt中加入前面的两个示例,AI模型就可以更好地把握任务要求,从而生成更准确的最后一个示例的结果。
心法五:给予AI足够的思考时间
有的时候,如果对AI模型施加压力,要它仓促即时的回答某个问题,很可能导致它给出的答案质量不高,甚至是完全错误的。
因为正确并值得信赖的答案,通常都需要一定的深思熟虑过程,谨慎推理才能形成。Prompt也可以体现这一点,给予AI一定的思考时间和动能。
比如可以在Prompt中加入这样的语句:
·
"我希望你能先深呼吸一下,不要着急,仔细思考一下这个问题再给出最终答案。"
·
·
"在输出最终答案之前,请再次审慎检查您的推理和结果,确保它们是准确合理的。"
·
·
"让我们来一步一步解决这个问题,首先你需要.....,然后.....,最后......"
·
这种提示性语句,可以有效促使AI模型放慢节奏,谨慎思考,增加答案的准确性。
心法六:将复杂问题分解为简单问题
有些时候遇到一个很复杂艰深的问题,如果企图用一个Prompt就仓促地解决,很可能会适得其反。因为单一的Prompt可能难以涵盖所有细节,无法很好地指导AI模型。
在这种情况下,不妨使用"分而治之"的策略,将一个复杂的大问题,分解成一系列相对简单的小问题,然后用多个Prompt分别针对性地解决这些小问题,最终这些小问题的解就组合成了大问题的解答。
比如一个
"写一篇文章"
的Prompt过于笼统,不如拆解为:
1.
一个Prompt用于给出文章的主题和核心观点
2.
一个Prompt用于搜集与主题相关的信息和数据
3.
一个Prompt用于整理框架和材料
4.
一个Prompt用于将材料进行行文
...
每个Prompt的任务都相对较为简单,而通过多个Prompt的组合,就能最终解决复杂的"写作"大任务。这种拆解的方式还有利于分析中间过程中哪些环节出现了问题。
三、小结
要想写出一份出色的Prompt,需要掌握诸如不断迭代优化、使用模板结构、加入防御性指示、辅以示例说明、给予AI思考时间、分而治之等多种技巧和原则,需要长期的实践和积累。
本期介绍的是一些抽象的原则类写法,下期会介绍一些可以直接复制粘贴的具体Prompt写法。
优秀的Prompt能最大限度发挥人工智能的能力,创造更多价值,学会如何写Prompt是投入产出比相当高的。
出自:https://mp.weixin.qq.com/s/V-S8QQpPfwB56bEIL73wcg