" 提示词工程,是一种不需要更新模型权重和参数来引导模型输出特定结果的方法**"**
大模型之所以叫大模型,不但是因为其参数量大,还有训练与运营成本高。因此,从企业运营成本来说,使用大模型能用提示词解决就坚决不微调(fine-tunning),能微调解决就坚持不重新训练或设计。
那么提示词是什么?为什么需要提示词?有什么作用?
01
什么是提示词工程(prompt engineering)?
简单来说,提示词工程是一种不需要调整大模型参数或权重,就可以获取某种结果的方法。
提示词的作用和应用场景都非常广泛,不论是文本生成,还是问答系统,亦或者其它场景。
同一个LLM,提示词不一样生成的内容也会不一样,甚至会有很大的差别。
所以,从这个角度来说,提示词工程是一种更好地使用大模型的方法。
学好提示词,能够让你更好、地使用和操作大模型,并且得到更好的结果。
当然,从技术的角度来理解,提示词工程是一种过渡的技术,原因是因为大模型还无法做到像人类一样的语言理解能力,因此才需要提示词工程作为辅助手段,让大模型能够更好地理解人类的问题。
前面说了提示词的概念和作用,但如果只是说提示词工程的概念,可能很多人都觉得云里雾里,觉得它很高大上。
但事实上提示词工程说复杂也复杂,说简单也简单;网络上虽然有各种提示词模板,但事实上我我们随便问的一句问题都可以算作提示词工程。
比如在大模型的聊天输入框中,和它打招呼说哈喽;这个也可以算作提示词工程。
提示词工程的作用是为了让大模型给出更加准确的输出,而提示词的表现形式可以是任何形式,可以是一个问题,一段对话,一段描述等任何文本形式。
而从语言学的角度来说,一个问题描述的详细与否,主要就是问题的背景,上下文,以及各种限定语,这就是提示词工程的本质。
因此,提示词工程也叫做上下文提示。
比如说,在大模型中输入一句"哈喽",其实也算提示词工程的一部分,只不过这个提示词很简单和没有提示词没什么区别。
部分功能就是使用提示词工程优化的,大模型人工智能小程序,感兴趣的可以点击查看:
而比较好的提示词是什么样的?
比如说,给大模型的输入中说:"给我介绍一下提示词工程"。
这时大模型给的结果可能会很宽泛;但如果这样问:"从大模型的使用角度,帮我介绍一下提示词工程,并且给出几个简单的使用场景,以及示例;还有怎么才能写出一个更好的提示词"。
这样大模型给出的输出结果就会好得多;如果你能用更加详细的描述来问大模型,你会得到更好的结果。
02
怎么才能写出一个更好的提示词?
一个好的提示词应该包含以下几个部分:
任务
任务序列是由动词引导的,例如generate, drive, write等,而且需要明确任务目标
上下文
背景上下文极具挑战性, 一般要描述什么是用户的背景信息,成功的结果希望是什么样子,以及他们处于怎样的环境中
示例
基本上,对所有主要语言模型进行的研究表明,在提示中包含例子都将产生更高质量的答案。
角色
这是你希望人工智能所扮演的角色。想象一下你有一个问题,想咨询专家来解决这些疑问。例如,你在找工作的时候可以让大模型扮演一个面试官;在买车的时候,让大模型扮演一个具有多年经验的汽车销售等。
格式
想象一下实现的目标,可以是个人或团体的目标,比如找到工作、成为一位优秀的演讲者等。
所有这些都是零散的想法,但借助人工智能的帮助,可以将它们整理成一个特定的格式,比如一个表格。我们也可以希望得到电子邮件、要点、代码块等格式。这些格式对我们的工作也很有用,例如段落和标记。
语气
如果正确衡量要使用的音调类型,"语气"者一个元素就很容易理解。
在这6个要素中,任务是必须的,上下文和示例非常重要,而且最好也要有角色、格式和语气。