prompt基本建议

在和 ChatGPT 对话时,亦或者在使用和设计 prompt 时,有以下几个原则与建议。记住这几个原则,能让你写出更好的 prompt

建议使用最新的模型
如果你是直接使用 AI 产品,比如 ChatGPT 或者 Midjourney,那无需在意这个原则。如果你是通过 API 或者 OpenAI Playground 的方式使用,则建议你先使用最新的模型测试。

Prompt 里最好包含完整的信息
这个是对结果影响最大的因素。比如如果你想让 AI 写一首关于 OpenAI 的诗。

Less effective prompt:

Write a poem about OpenAI.

它生成的答案可能就会很宽泛,而更好的方式是增加更多的信息。

Better prompt:

Write a short inspiring poem about OpenAI, focusing on the recent DALL-E product launch (DALL-E is a text to image ML model) in the style of a {famous poet}

Prompt 最好简洁易懂,并减少歧义
这个比较好理解,即使你跟人说话,说一些简单的短句,对方也会更容易听懂,AI 也是这样。另外,在 prompt 里也需要减少一些歧义,少用模棱两可的词语。

比如像这个就很不明确,什么叫 not too much more?

The description for this product should be fairly short, a few sentences only, and not too much more.

更好的 prompt 是这样的,明确告知要写多少句话,就比较明确:

Use a 3 to 5 sentence paragraph to describe this product.

另外需要注意的是,简单并不代表简短。你的 prompt 也可以很长,只要你的 prompt 描述更充分就可以,即使长一点也没有关系。

Prompt 要使用正确的语法、拼写,以及标点
特别是在使用英语的 prompt 的时候,一定要注意语法和拼写。

什么是 Prompt Engineering?

什么是 Prompt Engineering?
解释这个词之前,首先需要解释 prompt 这个词。

简单的理解它是给 AI 模型的指令。

它可以是一个问题、一段文字描述,甚至可以是带有一堆参数的文字描述。AI 模型会基于 prompt 所提供的信息,生成对应的文本,亦或者图片。

比如,我们在 ChatGPT 里输入 What is the capital of China? (中国的首都是什么?),这个问题就是 prompt。

Prompt
What is the capital of China?

而 Prompt Engineering (中文意思为提示工程,后缩写为 PE)则是:
Prompt Engineering 是一种人工智能(AI)技术,它通过设计和改进 AI 的 prompt 来提高 AI 的表现。Prompt Engineering 的目标是创建高度有效和可控的 AI 系统,使其能够准确、可靠地执行特定任务。

看上去很难懂,我试着换个方式让你理解。

你可能用过不少 AI 相关的产品,你或许会觉得好像只需要会说话、会打字,就能让 AI 输出答案。好像不需要什么技术。

的确,如果你只想让 AI 给你答案,你不需要额外做什么,只需要输入文字即可。但如果你想要得到满意的答案,甚至精确的答案。就需要用到 PE 这个技术。

因为人类的语言从根本上说是不精确的,目前机器还没法很好地理解人类说的话,所以才会出现 PE 这个技术。另外,受制于目前大语言模型 AI 的实现原理,部分逻辑运算问题,需要额外对 AI 进行提示(这里你不需要深究原因,暂时先知道这是个问题即可)。

举个例子,如果我们在 ChatGPT 里输入这样的一段话:

What is 100100/40056?

ChatGPT 会返回一个错误的答案 0.4464(注意,如果你用下方的 Dyno 运行,答案应该也是错误的,API 版本的回答是 14):

Prompt
What is 100100/40056?

但如果我们对 prompt 进行一些修改,答案则会是正确的。注意,如果你用下方的 Dyno 运行旧版的模型 API 的版本,做了修改后,答案应该还是错误的,需要用到 Role Prompting 才能生成正确答案。(这个后续章节会讲解)

Prompt
What is (100100)/40056?

另外,目前的 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 产品。

Bt宝塔面板移除强制手机关联验证的方法

在ssh里执行

sed -i "s|if (bind_user == 'True') {|if (bind_user == 'REMOVED') {|g" /www/server/panel/BTPanel/static/js/index.js

如果需要还原

sed -i "s|if (bind_user == 'REMOVED') {|if (bind_user == 'True') {|g" /www/server/panel/BTPanel/static/js/index.js