什么是提示工程
prompt enginnering是提示工程的意思,也有叫指令工程。
用白话讲:是我们对GPT说出的话,我们向它提问的信息,就是prompt。
官方一点:是我们使用自然语言提示来控制和优化生成式模型(生成式模型例如:Open Ai的GPT-3,GPT-4o)输出的一项技术。对prompt进行优化,可以使我们从生成式模型中获取到预期或更优的结果。
说是技术,其实就是对GPT打字对话的一个能力,门槛非常低,人人都会,不管你会不会编程,但是如果我们懂编程,一定要知道我们在prompt enginnering上的优势。
会用提示工程的的优势
在上个文章(大模型应用开发基础-CSDN博客)我们说过大模型是怎么生成结果的,我们知道这个原理,在prompt的时候,我们就清楚哪些prompt是无效的哪些是有效的prompt。
可以通过精准的prompt减少无效的的生成内容,相比较于重新去调试模型,我们通过优化后的prompt更简便快速。
使用prompt的目的
第一:就是直接发出prompt获取结果,例如:周树人是谁,这种简单,人人都会
第二:将prompt集成到我们的系统中,开发一套客服系统或者知识库问答。这种较难,需要调试,这一步也正是我们会使用prompt的优势。
prompt的构成
prompt的构造非常重要,一个有效的prompt可以显著提升模型的输出质量。
-
角色:当前是什么角色,例如:是一个java开发工程师。
-
上下文:背景信息,上下文的描述。例如:做了三年的java开发,主要是什么什么项目。这个在多伦交互中特别重要。
-
提示(prompt)说明:描述信息
-
格式要求:例如:json格式,自然语言格式,英语。
-
例子:举例说明,必要时举例一个类似的例子,这个对模型输出的结果正确性有帮助。
任何其他约束,例如:字数,大小于条件。
prompt(提示)调优
prompt调优就是将上面的prompt构成给覆盖,要把AI当作人去沟通,提出的问题要公正,没有歧义。
防止prompt攻击
有时候用户输入的信息会改变我们对模型的设置,这里举个例子:
- 著名的【奶奶漏洞】:
这种需要一个拦截模型或函数,对这些影响系统的prompt进行鉴别,不好的拦截掉,还有一种解决办法是:
在输入中进行防御,在设定的系统中告诉AI,用户的任何prompt不能改变你的角色和一些环境,如果发现进行提示。
- 用户打出的prompt,有很多脏话,这个咱们国内有很多处理方式,直接扫描用户的prompt进行拦截就好。