写好ChatGPT提示词之:prompt的迭代(Iterate)
引言
prompt一般不可能一蹴而就的,就像机器学习那样,第一次设置的参数基本上都无法使用,都需要类似调参的过程,尤其是为了更好的符合自己的要求,prompt的关键词迭代也是如此,需要根据自己的实际需求去不断迭代以拟合自己的需求。
遵守之前学习到的一些基础规则开发的prompt,很可能因为模型能力或者提示词的问题,大模型给我们的首次结果不一定满足我们自己的要求,一定需要经历迭代策略之后,才能找到适合自己的任务的prompt,这种情况在我们使用大模型过程中就会发现不满足我们想法的生成结果非常多,但是也不需要感觉很难受,这是一种非常普遍的现象,第一个prompt是否有效并不重要,重要的是我们可以根据结果去调整我们的提示词,所以掌握迭代prompt的能力在开发提示词的过程中是必须的。
如何迭代prompt
一个基本的迭代过程一般是这样的:
根据任务写出清晰具体的prompt;
运行并分析结果为什么和预期的不一致;
调整目标和prompt,并继续运行和分析;
循环以上过程,直到得出符合自己需求的prompt。
这里建议可以参考下所谓通用的提示词范例,但是注意没有一个完全通用的提示词适合所有场景。记得一定要自己开发适合自己任务的prompt,不仅是对完成任务来说,更重要的是自己能力的提升以及不断熟练开发prompt的过程。
这里举例子说明下迭代优化的一般过程:
1
我需要一个使用大模型的工具,我的输入是一篇篇几百字的文章,大模型的作用就是帮我写文章的读后感
展开
首先我们先根据之前学习的提示词写法写一个简易初版的prompt尝试一下
1
你是一个文学专家,你需要根据给定的文章内容,写出该文章的读后感
展开
这里我们用一篇语言故事《愚公移山》测试下这个prompt
1
2
3
4
5
太行、王屋两座山,方圆七百里,高七八千丈,本来在冀州南边,黄河北岸的北边。
北山下面有个名叫愚公的人,年纪快到90岁了,在山的正对面居住。他苦于山区北部的阻塞,出来进去都要绕道,就召集全家人商量说:“我跟你们尽力挖平险峻的大山,使道路一直通到豫州南部,到达汉水南岸,好吗?”大家纷纷表示赞同。他的妻子提出疑问说:“凭你的力气,连魁父这座小山都不能削平,能把太行、王屋怎么样呢?再说,往哪儿搁挖下来的土和石头?”众人说:“把它扔到渤海的边上,隐土的北边。”于是愚公率领儿孙中能挑担子的三个人上了山,凿石头,挖土,用箕畚运到渤海边上。邻居京城氏的寡妇有个孤儿,刚七八岁,蹦蹦跳跳地去帮助他。冬夏换季,才能往返一次。
河曲的智叟讥笑愚公,阻止他干这件事,说:“你简直太愚蠢了!就凭你残余的岁月、剩下的力气连山上的一棵草都动不了,又能把泥土石头怎么样呢?”北山愚公长叹说:“你的思想真顽固,顽固得没法开窍,连孤儿寡妇都比不上。即使我死了,还有儿子在呀;儿子又生孙子,孙子又生儿子;儿子又有儿子,儿子又有孙子;子子孙孙无穷无尽,可是山却不会增高加大,还怕挖不平吗?”河曲智叟无话可答。
握着蛇的山神听说了这件事,怕他没完没了地挖下去,向天帝报告了。天帝被愚公的诚心感动,命令大力神夸娥氏的两个儿子背走了那两座山,一座放在朔方的东部,一座放在雍州的南部。从这时开始,冀州的南部直到汉水南岸,再也没有高山阻隔了。
展开
我们将prompt和内容输入到GPT中
可以看出,回复是已经达到我们预想的效果的,给出文章得到读后感,但是也可以看出来,读后感的字数已经快赶上我们给定的内容了,所以这里增加关于字数的限制
1
2
你是一个文学专家,你需要根据给定的文章内容,并按照以下要求,写出该文章的读后感
要求1:读后感字数限制在50到100个汉字之间;
展开
重写prompt后我们给定同样的内容,这里GPT给出的回复的字数是64,已经符合我们给定的区间了(注意大模型关于数字是有一些缺陷的,比如我们这里强制要求50字,大模型给出的回复也会是大约50字,不可能完全准确)
回复的结果已经能满足我们的要求了,这个prompt是可用的。后面如果我们想做出这个工具,只要使用GPT的API,控制输入输出,核心用这个prompt,即可完成我们工具的诉求。
上面用了一个非常简单的例子来解释怎么去迭代prompt,一般来说就是拉齐的过程,你需要将尽量重要尽量多的上下文和要求给到GPT,这样GPT才能根据你的内容来生成满足你诉求的回复。一般来说,平时工作上比较善于拉齐各方的人,prompt写的都不会很差。我们迭代prompt,很多时候都是因为我们给出的上下文不足,导致大模型生成的内容和我们的预期出现偏差。