什么是 Prompt Engineering?
解释这个词之前,首先需要解释 prompt 这个词。
简单的理解它是给 AI 模型的指令。
它可以是一个问题、一段文字描述,甚至可以是带有一堆参数的文字描述。AI 模型会基于 prompt 所提供的信息,生成对应的文本,亦或者图片。
比如,我们在 ChatGPT 里输入 What is the capital of China?
(中国的首都是什么?),这个问题就是 prompt。
而 Prompt Engineering (中文意思为提示工程,后缩写为 PE)则是:
Prompt Engineering 是一种人工智能(AI)技术,它通过设计和改进 AI 的 prompt 来提高 AI 的表现。Prompt Engineering 的目标是创建高度有效和可控的 AI 系统,使其能够准确、可靠地执行特定任务。
看上去很难懂,我试着换个方式让你理解。
你可能用过不少 AI 相关的产品,你或许会觉得好像只需要会说话、会打字,就能让 AI 输出答案。好像不需要什么技术。
的确,如果你只想让 AI 给你答案,你不需要额外做什么,只需要输入文字即可。但如果你想要得到满意的答案,甚至精确的答案。就需要用到 PE 这个技术。
因为人类的语言从根本上说是不精确的,目前机器还没法很好地理解人类说的话,所以才会出现 PE 这个技术。另外,受制于目前大语言模型 AI 的实现原理,部分逻辑运算问题,需要额外对 AI 进行提示(这里你不需要深究原因,暂时先知道这是个问题即可)。
举个例子,如果我们在 ChatGPT 里输入这样的一段话:
What is 100*100/400*56?
ChatGPT 会返回一个错误的答案 0.4464(注意,如果你用下方的 Dyno 运行,答案应该也是错误的,API 版本的回答是 14):
但如果我们对 prompt 进行一些修改,答案则会是正确的。注意,如果你用下方的 Dyno 运行旧版的模型 API 的版本,做了修改后,答案应该还是错误的,需要用到 Role Prompting 才能生成正确答案。(这个后续章节会讲解)
另外,目前的 AI 产品还比较早期,因为各种原因,产品设置了很多限制,如果你想要绕过一些限制,或者更好地发挥 AI 的能力,也需要用到 Prompt Engineering 技术。这个我们在后续的章节会讲到。
所以,总的来说,Prompt Engineering 是一种重要的 AI 技术:
- 如果你是 AI 产品用户,可以通过这个技术,充分发挥 AI 产品的能力,获得更好的体验,从而提高工作效率。
- 如果你是产品设计师,或者研发人员,你可以通过它来设计和改进 AI 系统的提示,从而提高 AI 系统的性能和准确性,为用户带来更好的 AI 体验。
需要学习 PE 吗?
坦率说来,大家对 PE 有一些争议,
前面一节我解释了 prompt 的各种好处。但也有人认为这个就像当年搜索工具刚出来的时候,出现了不少所谓的「搜索专家」,熟练使用各种搜索相关的奇技淫巧。但现在这些专家都不存在了。因为产品会不断迭代,变得更加易用,无需再使用这些技巧。
拿前面提到的数学问题为例,API 版本算出来是 14,但 ChatGPT 的版本则看上去更准确一些,相信不久的将来,我们无需在公式前加括号,它就能返回正确的结果(2023-03-02)。
但综合我对产品和用户的理解,以及各位大佬的看法,我的理解是:
现在 AI 的发展还比较早期,了解和学习 PE 价值相对比较大,但长远来看可能会被淘汰。这个「长远」可能是 3 年,亦或者 1 年。
OpenAI 的 CEO Sam Altman 在今年 2 月底提到给 ChatBot 写 prompt 是个非常高杠杆的技能。
但如果你看过 Sam Altman 去年的访谈,他在去年 9 月的时候就提过,5年内我们很可能就不再需要 PE。
从用户的角度看,我认为学习 prompt 可以让你更好地使用 ChatGPT 等产品。
从产品的角度看,对于用户来说,我认为 prompt 会是个短期过度形态,未来肯定会有更友好的交互形式,或者理解能力更强的 AI 产品。
One More Thing
前特斯拉 AI 负责人 Andrej Karpathy(对了,他之前就在 OpenAI,最近二进宫回OpenAI 了) 今年 1 月底,说了这样的一句话:
所以本教程所有案例以及 prompt 都会以英文撰写。不管 PE 最后会怎样,看完后,起码你的英语水平会提高。