前言
随着现在OpenAI的高速发展,prompt显得越来越重要,甚至出现了一个新的职业,叫做提示词工程师。现在许多人都低估了OpenAI的力量,它已经在颠覆人们对互联网搜索引擎的认知,很多问题都可以通过AIGC来主动生成,而不再需要在浏览器中收集资料再逐步分析。基于它的强大力量,我们也需要提供更明确清晰的prompt来得到我们想要的答案。为此我学习了大神吴恩达与OpenAI技术人员 Isa Fulford共同讲授的prompt engineering课程,而后我将它总结起来,在这里分享给大家。
现在LLM(大模型)已经爆火,因为其强大的能力,市场巨大,若把它比作金矿,那么prompt就是打开这座金矿的钥匙。
首先,带大家了解LLM
这也是吴恩达prompt engineering课程所讲的第一个内容,以至更好地学习prompt。LLM大致分为两种,分别是Base LLM(基础大模型)与Instruction Tuned LLM(指令调整型模型),它们最大的区别就是Base LLM所做的更多是完成你发给它的这句话,而Instruction Tuned LLM才是回答你的问题。举个例子吧,你想知道中国最高的楼是哪座或者是中国的人口有多少,因为互联网上的文章可能是关于中国的问答列表,Base LLM 会回答中国的最大城市是哪个。相比之下,Instruction Tuned LLM 接受了遵循指令的培训,它会更精确地回答你的问题。所以,我们想要选择指令调整型模型,也算是在大量文本训练下的基础大模型。我们只需要给出精确的输入便能得到答案,所以写出高效的提示词至关重要,那么我们直接进入主题,该如何写prompt呢?
两个原则
原则一:提供明确清晰的指示。把时间花在设计prompt上,好的问题比答案更重要,为什么这么说呢,当给出足够的限制,LLM就会给出最精准的答案,而随意的问题会让大模型模模糊糊,返回正确但广泛的答案,我们需要用上写文章时的严谨度而不是跟最好的伙伴聊天的随意。还有一点,很多人会将明确的提示词和简短的提示词混淆,一定要记得,长提示词的效果一定更好,不需要花心思去给提示词做减法。最后也是很关键的一点,要知道LLM有高效的学习能力,我们可以举上一些例子来控制它输出我们想要的格式和风格,在你不知道该如何描述你想要的答案时。下面这张图便是吴恩达为了得到精确答案先告诉大模型需要以一致的风格回答,再给出例子,最后得到相似的答案。
原则二:给模型思考的时间。LLM也与人一样,需要“思考”,其中包含了处理请求、生成响应和进行学习调整,需要时间来检索、分析、生成最合适的内容,如果你想在短时间得到答案,那么它给出的响应将会是不准确的。这与限制它给出的答案最多二十个词一样,它对于总结的能力并不强,太短的输出可能会使答案不完整。
迭代
迭代的过程:
大多情况下我们是需要通过很多次的提问才能得到我们所要的答案,就连OpenAI的技术人员Isa Fulford自己都称从来没有在第一次尝试的时候就用到最终在应用程序中采用的提示。所以说我们需要迭代我们的提示词,如果第一次运行效果不太好,那么思考为什么说明不够清晰,或者没有给算法足够的时间思考,使你能够改进你的提示词,以此类推,重复多次,直到你得到你最为认可的答案。
分隔符
每天与代码交流的我们,一定了解分隔符。那么为什么要在提示词中运用分隔符呢?通常我们会要求LLM去分析一个文本,然后提我们的需求。分隔符便是为了让它更好地区分开文本部分和需求部分,这将避免许多问题。我们可以选择引号或三重单引号等等,如下图:
这样OpenAI就能快速地将提示词和文本区分开来做需求分析。
缺点
最后跟大家讲讲LLM的缺点,其中之一是它会产生幻觉,就是在没有依据的情况下编造细节,举个例子:
大模型缺乏事实验证能力,其内容可能包含错误信息、过时的内容或者虚构的情节,所以我们也需要具有一定的辨别能力。
结语
现在网络上已经存在很多AIGC相关的网页和平台,说明prompt的市场已经存在且潜能巨大。感谢吴恩达,让我对prompt的编写上有了更深的看法,也感谢大家的观看,希望我的总结可以对你有所帮助。