上篇文章给大家介绍了《清华大学第一弹:DeepSeek从入门到精通》中关于Ptompt的结构与元素的内容。
但有同学反馈说讲的还是太绕了,看着头疼。
于是,我认真思考了如何用萌新也能愉快阅读的形式,来讲解Prompt的设计思路。没想到在这个过程中,我对Prompt的结构和元素,又有了一些新的理解。
接下来,我将用一些尽量生动形象的例子,跟大家分享我的收获~
- • 指令(Instruction) :即要求AI具体执行的动作,是Prompt的核心,不可缺少的部分。
显然,你向AI寻求帮助,一定是需要它完成一个具体的动作,要么是解答问题,要么是写点文字,要么是陪你聊天,等等。
因此,Prompt一定是围绕着“指令”来构造的。而从指令本身的构成元素来看,又包括比如简单动作、迭代、输出验证等常见元素。
那么该如何深入理解“指令”呢?
想想你的老板,ta每天对你说的大部分话,就是“指令”。
因此,当你在给AI派活的时候,不妨先想想,你希望领导在给你派活的时候说些什么。
示例1
领导:小萌,你过来一下
这是一个典型的只包含“指令”结构的Prompt,它的”指令“由一个“简单动作”元素(即“过来一下”)构成。
别看它短小,由于它所要求的动作并不需要“上下文”或者“输出控制”的支撑,因此它是一个结构完整、清晰明确的优秀Prompt。
(当然,如果你说:“领导没说是现在过来还是一会儿过来啊?”,那可能是你太优秀了。)
那什么样的Prompt是不够优秀的呢,那就是它内容模糊、意义不明的时候。
示例2
领导:小萌,你把那个弄一下。
不用我说,你也能get到这个Prompt有多糟糕吧。
它的“指令”也由一个”简单动作“构成,即“弄一下”。但从完成动作的目的来看,这个"指令"缺少必要的辅助结构,导致整个Prompt模糊不清。
首先,“那个”是什么?到底需要”弄“啥?
从Prompt设计的角度来说,它的“上下文”结构不完整,缺少需要你处理的具体“数据”元素,导致指令实际上无法完成。
其次,怎么”弄“?
比较明显的,这个Prompt的”输出控制“结构整体丢失,因此完全不知道需要你做成个什么样子、具体要满足哪些要求。
另一方面,同样,这个Prompt也没有提供”上下文“结构中的”背景“元素,于是给人一种天降大锅、摸不着头脑的感觉。
(最可怕的是,打工人经常会遇到这种Prompt...)
所以呢,我们在编写Prompt的时候,一定要像那些英明伟大充满智慧的领导那样,脑子清楚,知道让下属完成一个”指令“,需要给他提供哪些必要的”上下文“,同时要做怎样的”输出控制“。
不然AI给的东西达不到你的预期,你只会说这个AI不行啊~
接下来,我们通过完善示例2中的Prompt,来让大家feel一下什么叫“围绕着指令来构造Prompt”。
如前所述,这个Prompt的指令是一个“简单动作”,“弄一下”。
那么,从确保下属/AI能够把这个事情“弄”好的目的出发,我们可以考虑给这个Prompt添加一些必要的内容。常见的考虑方向包括:
“弄”什么?为啥要“弄”?
也就是说,从完成指令的目的出发,考虑给Prompt增加必要的“上下文”结构。
- • 上下文(Context) :即为执行“指令”提供所需要的主题、背景、处理对象等相关信息。
我们先来给示例2的Prompt增加一个处理对象元素,即明确到底要弄的什么:
领导:小萌,把这篇题目叫《》的公众号文章的内容弄一下。
然后,为了让小萌把任务做的更好,我们可以告诉她一些背景信息,这样小萌在执行指令的时候就不会像个无头苍蝇似得放飞自我:
领导:
小萌,明天我准备给大家做一个关于Prompt设计的培训,需要一些培训资料,
你帮我把这篇题目叫《》的公众号文章的内容弄一下。
现在这个Prompt是不是看起来好多了,小萌知道了要处理什么,也知道为什么要处理这个东西。
这样,即使“弄一下”这个指令依然有一些模糊,小萌也大概能够依据日常经验推测出领导想要她执行的任务的全貌和需求。
不过,我们追求的是清晰明确的Prompt,当然不能止步于此。
“弄”成啥样?
接下来,需要从完成指令的效果出发,考虑给Prompt增加必要的“输出控制”结构。
- • 输出控制(Control) :对如何执行”指令“进行控制,包括形式控制、内容控制。
1.形式控制
即通过提出明确的要求,来对AI输出的内容进行格式、样式方面的影响,常见的形式控制包括:格式、结构、可视化。
下面我们来给Prompt加一些形式控制,即要求做成PPT:
领导:
小萌,明天我准备给大家做一个关于Prompt设计的培训,需要一些培训资料,
你帮我把这篇题目叫《》的公众号文章的内容弄一下。
直接用我们的培训模板搞个PPT,页数不要超过5页。
2.内容控制
就是通过提出的明确的要求,来对AI的输出内容本身进行影响,常见的内容控制包括:约束条件、质量控制、知识域、参考等。
下面我们来给Prompt增加一些约束条件和参考:
领导:
小萌,明天我准备给大家做一个关于Prompt设计的培训,需要一些培训资料,
你帮我把这篇题目叫《》的公众号文章弄一下。
直接用我们的培训模板搞个PPT,页数不要超过5页。
主要放关于如何围绕指令构造Prompt这个部分的内容,你可以参考我上周做的培训PPT的语言风格来写。
至此,这个Prompt已经完善了必要的任务背景,同时还补全了对形式、内容及风格方面的具体要求和参考,完全可以说是一个清晰明确的Prompt了。
敢问你的老板派活的时候能做到吗?
大家在设计Prompt的时候一定要注意,指令,即你要求AI完成的具体动作,是你的Prompt的核心。
你需要围绕着指令来构造你的Prompt,即从完成这个动作的目的、效果出发,补充这个指令所需要的“上下文”和“输出控制”。
当然,提示工程领域的专家们不断研究出了很多特殊的Prompt技术、规则,比如著名的“Let‘s think step by step”,又如Exemplar Ordering这种通过控制示例顺序来影响模型输出的现象,Prompt Engineering依然是一个非常专业、复杂的主题。
但我相信,对于以解决日常生活工作问题为目的的普罗大众来说,理解前述Prompt设计的基本思路,就已经能很好地提升AI使用体验了。