Learn Prompting-基础篇
AI魔法学院
2023-06-06
分享海报

本系列将介绍人工智能的基本知识,以及为什么你应该关注提示工程。本系列包括《基础》、《基础应用》、《进阶》、《提示的应用》、《高级应用》、《可靠性》、《图片提示词》、《其他》等九篇,完整出处请访问:

https://learnprompting.org/docs/intro

本文是为几乎没有提示工程或人工智能经验的人编写的。本文的目标受众是每个人,从非技术背景的商科学生,到非技术背景的成年人。我们将介绍人工智能的基本知识,以及为什么你应该关注提示工程。

如果你已经有提示工程或人工智能的基础知识,可以跳到下一篇文章。

什么是人工智能?

从目的的角度出发,人工智能(AI)是人们创造的一些“聪明的”的算法,使得机器能够像人类一样“思考”1。这些算法可以写论文、解决数学问题,并创造艺术。该领域的最新进展已经十分先进,以至于人工智能可以写出令人信服的销售邮件、新闻报道,甚至可以赢得艺术比赛。

目前,人工智能正在颠覆许多行业,包括新闻行业、医疗卫生行业和教育行业。你可能很快看到人工智能在你工作或教学中出现,即使现在还没有。但是,尽管人工智能非常有用,但它们需要人类来指导它们做什么。通常情况下,人工智能就像非常聪明的五岁小孩。它们可以做很多事情,但它们需要仔细的指导才能做得好。

能够正确指导人工智能是一项非常强大的技能。那么该如何跟它们沟通呢?本课程讨论的人工智能能够理解英语(和其他语言)。所以我们通常只需描述我们想要完成的任务。例如,我们可以告诉人工智能写一篇关于人工智能的优点的文章,它的如下回答2

近年来,人工智能(AI)已经成为科技界的一个热门话题。随着技术的不断发展,人工智能可能彻底改变我们生活的许多方面,人工智能也正变得越来越重要。从医疗保健和交通,到教育和制造,人工智能已经向我们展示了它在多个方面造福社会的巨大潜力。

人工智能最明显的好处是它能够将繁琐的任务自动化。人工智能系统可用于自动化大规模操作,如数据分析、客服,甚至商品生产。这样便释放了人类的劳动力,让人们可以专注于需要更多人类智慧的复杂的和创造性的任务。人工智能也可用于分析大量数据,其所花时间远低于人类。这在金融等行业可能十分有用,人工智能可以检测股票市场的模式,并提供可能被忽视的见解。

人工智能还可以用于预测,并提高效率和准确性。例如,人工智能可以预测客户的趋势和偏好,帮助企业做出更好的决策并增加利润。人工智能还可以识别金融、医疗保健和制造等行业的潜在风险与机会。这可以帮企业做出明智的决定,并减少昂贵的错误和风险。

最后,人工智能可以被用来提高我们对世界的理解。人工智能可用于分析大型数据集,并让我们更好地了解周围的世界。这可以帮助我们更好地了解气候变化的影响、帮助我们找到新的疾病治疗方法,甚至预测地震和洪水等灾难。

总之,人工智能有可能彻底改变我们生活的许多方面。从自动化繁琐的任务到洞察和预测,人工智能可以用来提高效率、准确性和我们对世界的理解。随着技术的不断发展,人工智能将变得越来越有意义,其造福社会的潜力也会越来越大。

我需要关心人工智能吗?

人工智能可以用来自动完成你现在正花费无数时间做的任务。我们在上面提到了几个例子,但你也可以考虑任何稍微重复的任务。这些任务包括写电子邮件,写报告,甚至是写代码。如果你向人工智能描述这项任务,它就有可能为你做这件事,或者至少给你一个开头。

我该如何开始?

本课程将教你如何与人工智能交流。阅读本章的其余部分,然后查看你感兴趣的其他章节。如果你特别想了解专业人士如何使用人工智能来实现自动化,那么应用提示部分是你所感兴趣的。看看专业人士是如何使用人工智能来实现其工作自动化的。你可以用一些人工智能网站,例如Open AI、其他人工智能工具等,或者直接使用本网站上嵌入的交互程序Dyno

在阅读下一章之前,需要提醒一下:你无需任何技术背景便可以开始学习提示工程。在犯错中学习。

从技术上讲,它们并不真正像人类那样“思考”,这只是一种简单的解释。

提示过程

在上一章中,我们讨论了人工智能以及人类如何指导 AI 执行任务。指导人工智能执行任务的过程称为提示过程1。我们向 AI 提供一组指令(提示),然后它执行任务。提示可以简单到一个问题,也可以复杂到多个段落。

以下是两个提示的示例:

1) 文章摘要

假设您正在阅读一篇关于佛罗里达州降雪的文章。您想快速了解文章的主要内容,因此您向 AI 展示您正在阅读的内容,并要求进行摘要2

佛罗里达州很少下雪,特别是在中部和南部地区。除了州的极北部地区外,佛罗里达州大部分主要城市都没有记录到可测量的降雪量,尽管记录到了少量的痕迹,或者每个世纪观测到几次空气中的飘雪。根据国家气象局的数据,在佛罗里达群岛和基韦斯特群岛自欧洲殖民以来没有发生过飘雪的情况,已有超过300年时间。在迈阿密、劳德代尔堡和棕榈滩,超过200年中只有一次关于在空气中观察到飘雪的报告,发生在19771月。在任何情况下,自这次1977年的事件以来,迈阿密、劳德代尔堡和棕榈滩都没有看到过飘雪的情况。

以下是 AI 的回复。更简洁易读!

佛罗里达州很少下雪,除了州的极北部地区外,在过去的200年中迈阿密、劳德代尔堡和棕榈滩

这些主要城市中只有一次观察到空气中飘雪的报告。

2) 数学问题求解

如果您有一个数学方程,想让语言模型来解决,您可以通过提问 数学方程等于几 来输入提示。

对于一个给定的问题,您的完整提示可能是这样的:

965  590 等于几

对于这个提示,GPT-3text-davinci-003)(一种 AI 模型)有时会回答 569,050(不正确)。这就是提示工程的重要性所在。

提示工程

如果我们不是问965  590 等于几?,而是问确保你的答案完全正确。965590 等于几?确保你的答案完全正确:,GPT-3 将会回答 569,350(正确)。为什么会这样呢?为什么要两次告诉 AI 对于正确答案有帮助?我们如何能在我们的任务中产生最佳结果的提示?尤其是最后一个问题,是提示工程领域以及本课程的重点。 请继续阅读,了解如何设计好的提示!

还有一件事,如果你在GPT-3上运行上述提示,你应该将 TEMPERATURE 设置为 0 来消除随机性。

给出指令

最简单的提示方法之一就是直接给出指令。我们上一个部分中就已经看到了一个简单的指令(1,000,000  9,000等于几 请确保输入正确数量的零,即使数量很多也要如此)。然而,现代人工智能可以遵循更复杂的指令。

以下是一个 Dyno 交互式嵌入示例。如果您看不到它,请确保在您的浏览器中打开了 JavaScript。由于这是一个交互式演示,您可以编辑文本并单击Generate按钮重新运行人工智能。

示例 1

AI 能够轻松地解决这个问题。使用指令提示,它可以解决许多其他简单和更复杂的问题。

示例 2

这是一个更复杂的例子1

请阅读以下销售邮件。删除任何可用于识别个人身份的信息 (PII),并用相应的占位符替换它。例如,用[姓名]替换John Doe

你好 John

我写信给你是因为我注意到你最近买了一辆新车。我是一家当地经销商 (Cheap Dealz) 的销售员,我想让你知道我们有一辆新车的超值优惠。如果你有兴趣,请告诉我。

谢谢,

Jimmy Smith

电话:410-805-2345

电子邮件:jimmysmith@cheapdealz.com

以下是AI的回答

你好 [姓名]

我写信给你是因为我注意到你最近买了一辆新车。我是一家当地经销商 ([经销商名称]) 的销售员,我想让你知道我们有一辆新车的超值优惠。如果你有兴趣,请告诉我。

谢谢,

[销售员姓名]

电话:[电话号码]

电子邮件:[电子邮件地址]

看到模型如何从指令中推断出结果真的很酷。例如,它知道将Cheap Dealz替换为[经销商名称],将Jimmy Smith替换为[销售员姓名],即使我们没有明确告诉它这样做。

允许 AI 从文本中删除个人身份信息 (PII) 是一种有奏效的方法,但应该非常谨慎使用,因为它可能会犯错误。

角色提示

另一种提示技术是给 AI 分配一个角色。例如,您的提示可以以你是一名医生或你是一名律师开始,然后要求 AI 回答一些医学或法律问题。举个例子:

你是一个能解决世界上任何问题的杰出数学家。

试着解决下面的问题:

100*100/400*56 是多少?

答案是 1400

AI (GPT-3 davinci-003) 的答案用绿色突出显示:

这是一个正确的答案,但是如果 AI 只是被提示100*100/400*56等于几?,它会回答280(错误)

通过为 AI 分配一个角色,我们给它提供了一些上下文。这个上下文有助于 AI 更好地理解问题。通过更好地理解问题,AI 往往可以给出更好的答案。

这种技术在现代的 AI (例如 GPT-3 davinci-003) 不再那么有效了。然而,我在这个例子中使用了 GPT-3 davinci-003,所以角色提示仍然至少是一个比较有效的工具。

多范例提示

另一个提示策略是多范例提示(few shot prompting, 这种策略将为模型展示一些例子(shots),从而更形象地描述你的需求。

在上图的例子中,我们尝试对用户反馈进行正面(positive)或反面(negative)的分类。我们向模型展示了 3 个例子,然后我们输入一个不在例子里面的反馈(It doesnt work!)。模型发现头三个例子都被分类到 positive 或者 negative ,进而通过这些信息将我们最后输入的反馈分类到了 negative

我们如何结构化地设计例子也是非常重要的。由于我们已经将头三个例子结构化成: input classification,因此模型最终也跟着同样只输出分类的结果,而不是一段完整的句子,例如 this review is positive

备注

每一个输入-输出对被称为一个范例

结构化的延伸

多范例提示的一个关键场景是当我们需要以特定的结构输出结果,但是又很难向模型进行描述的时候。为了理解这一点,让我们看这样一个例子:假设您需要通过分析当地的报纸文章来汇编附近城镇公民的姓名和职业。您希望模型读取每篇文章并以Last, First [OCCUPATION]格式输出姓名和职业列表。为了让模型做到这一点,您可以向它展示一些示例:

通过向模型展示正确的输出格式示例,它就能够为新的文章生成正确的输出结果。

备注

尽管我们可以通过使用指令提示符的方式来生成相同的输出,但多范例提示在输出结果的一致性上会更好。

不同类型的范例提示

单词 shot 在该场景下与 example(范例) 一致。除了多范例提示(few-shot prompting)之外,还有另外两种不同的类型。它们之间唯一的区别就是你向模型展示了多少范例。

类型

无范例提示(0 shot prompting) 不展示范例

单范例提示(1 shot prompting) 只展示 1 条范例

多范例提示(few shot prompting) 展示 2 条及以上的范例

无范例提示

无范例提示是最基本的提示形式。它仅仅是向模型展示提示信息,没有提供任何示例,并要求其生成回答。因此,你到目前为止看到的所有指令和角色提示都属于无范例提示。无范例提示的另一个例子是:

Add 2+2

这是无范例提示,因为我们没有向模型展示任何完整的示例。

单范例提示

单范例提示是向模型展示一个示例。例如:

Add 3+3 6

Add 2+2

我们仅向模型展示了一个完整的示例(“Add 3+3 6”),因此这是一个单范例提示。

多范例提示

多范例提示是向模型展示2个或更多示例。例如

Add 3+3 6

Add 5+5 10

Add 2+2

这是我们向模型展示了至少2个完整的示例(“Add 3+3 6”和“Add 5+5 10”)。通常,展示给模型的示例越多,输出结果就越好,因此在大多数情况下,多范例提示比另外两种提示更受欢迎。

结论

多范例提示是让模型生成准确且格式正确的输出的强大技术!

By gezilinll.

组合提示

正如我们在前面的教程中所看到的,面向模型的提示具有不同的格式和其复杂性。它们可以包括上下文、指令式的提示词和多个输入-输出的示例。然而,到目前为止,我们只研究了独立的提示类别。将这些不同的技巧组合起来可以产生更强大的提示。

以下是一个包含上下文、指令以及多示例提示的例子:

Twitter是一个社交媒体平台,用户可以发布称为“推文”的短消息。推文可以是积极的或消极的,我们希望能够将推文分类为积极或消极。以下是一些积极和消极推文的例子。请确保正确分类最后一个推文。

Q 推文 今天真是美好的一天!

这条推文是积极的还是消极的?

A 积极的

Q 推文 我讨厌这个班级

这条推文是积极的还是消极的?

A 消极的

Q 推文 我喜欢牛仔裤上的口袋

A

通过添加额外的上下文和示例,我们通常可以提高人工智能在不同任务上的表现。

规范化提示

我们现在已经涵盖了多种类型的提示,以及如何组合它们的方法。本篇教程将为您提供术语来解释不同类型的提示。虽然已经有方法来形式化提示工程中的术语1,但这个领域正在不断变化,因此我们将为您提供更充足的信息以便开始。

提示的组成部分

以下是在一个提示中将时常看到的一些组成部分:

角色

指令/任务

问题

上下文

示例(few shot)

在之前的教程中,我们已经涵盖了角色、指令和示例。问题则是简单的单一问题!(例如,“法国的首都是什么?”)。上下文则是任何与你想要模型作出的回应有关的信息。

并不是每个提示都包含所有这些组成部分,并且当某些部分出现时,它们之间也没有标准的顺序。例如,以下两个提示,每个提示包含一个角色、一个说明和一个上下文,虽然描述顺序有差异,但是我们期望他们做的事情是一样的:

你是一名医生。请阅读这份病史并预测患者的风险:

200011日:打篮球时右臂骨折。戴上石膏进行治疗。

2010215日:被诊断为高血压。开了利辛普利的处方。

2015910日:患上肺炎。用抗生素治疗并完全康复。

202231日:在一次车祸中患上脑震荡。被送进医院接受24小时的监护。

200011日:打篮球时右臂骨折。戴上石膏进行治疗。

2010215日:被诊断为高血压。开了利辛普利的处方。

2015910日:患上肺炎。用抗生素治疗并完全康复。

202231日:在一次车祸中患上脑震荡。被送进医院接受24小时的监护。

你是一名医生。请阅读这份病史并预测患者的风险:

然而,第二个提示其实更好,原因是指令是提示的最后一部分,这时候语言模型将更倾向于按指令执行而不是进一步输出上下文相关的信息。例如,如果给定第一个提示,语言模型可能会回复:2022315:与神经科医生预约随访,以评估脑震荡恢复进展,而不是直接预测患者的风险。

一份 “标准的” 提示

到目前为止,我们已经了解了几种不同格式的提示。现在,我们将定义一个“标准的”提示是什么样子的。根据 Kojima 等人的说法(@kojima2022large),我们将仅由问题组成的提示称为“标准”提示,同时,仅由问题组成且以 QA 格式存在的提示也是“标准”提示。

为什么我们需要关心?

在我们引用的许多文章/论文中都使用了这个术语。我们定义这个术语是为了与标准提示相比讨论新类型的提示。

两个标准提示的例子:

标准提示

法国首都是什么?

QA 格式的标准提示

Q: 法国首都是什么?

A:

多示例的标准提示

多示例的标准提示2只是在标准提示的基础上附带多个需要解决的任务的范例3。在研究中,多示例的标准提示有时也会直接称为标准提示(虽然我们在本指南中尽量避免这样称呼)。

两个多示例标准提示的例子:

多示例标准提示

西班牙的首都是什么?

马德里

意大利的首都是什么?

罗马

法国的首都是什么?

QA 格式的多示例标准提示

Q:西班牙的首都是什么?

A:马德里

Q:意大利的首都是什么?

A:罗马

Q:法国的首都是什么?

A

多示例提示有助于上下文学习,这意味着模型无需更新参数就能够进行学习输出4

聊天机器人基础

最常见的一种使用提示的方法是与公开的聊天机器人(例如 ChatGPT)进行互动。请注意,ChatGPT GPT-3 不同,他们之间的主要区别在于聊天机器人可以记住你的对话历史。就像 GPT-3 一样,它们也可以高水平地回答问题、提供写作摘要和分析、编写文案或代码等,这是一个令人兴奋的前景——但是聊天机器人的真正价值只有在你使用具体的提示时才能体现。在本文中,我们将探讨一些基本的方法,如使用风格指导、描述符和引导,让聊天机器人更好的发挥作用。

修改你的提示语

风格指导(Style Guidance

风格指导就是要求 AI 以某种特定的风格来表达。如果没有给出风格指导的问题,ChatGPT 通常会返回一两个短段落的回答,少数需要更长的回答时会返回更多内容。

https://learnprompting.org/zh-Hans/assets/images/unguided_question-11ed7466deac948fff08a62f6ba326b3.png

ChatGPT 的回答常以中性正式的语气表达,同时提供一些细节,这非常不错!不过,如果我们想要更好的回答,可以在提示末尾自定义 ChatGPT 的回答风格。如果我们想要更加随意的回答,可以要求它以友好或非正式的语气表达;如果我们想要更易读的格式,可以给出相同的问题,但要求以无序列表的形式回答;如果我们想要一个有趣的回答,可以要求它以连续的打油诗形式回答(这是我个人最喜欢的)。

https://learnprompting.org/zh-Hans/assets/images/limerick_question-c58485ac8cff1dbbf9be1eb67a3eccbb.png

一个更详细的风格提示的例子可能是:

[问题]“以拥有20多年经验和多个博士学位的[领域]专家的风格和水平写作。在回答中优先考虑有建设性的、不太知名的建议。使用详细的例子进行解释,尽量少离题和耍幽默。“

使用风格输入提示将大大提高回答的质量!

描述符(discriminator

如果你只想改变语气或微调提示而不是重新格式化,添加描述符是一个不错的方法。简单地在提示后面添加一两个词可以改变聊天机器人解释或回复您的信息的方式。你可以尝试添加形容词,如“有趣的”、“简短的”、“不友好的”、“学术语法”等,看看答案如何变化!

引导提示(Priming Prompt

聊天机器人对话的结构决定,你给 LLM 的第一个提示的形式将会影响后续的对话,从而让你能够添加额外的结构和规范。 举个例子,让我们定义一个系统,允许我们在同一会话中与教师和学生进行对话。我们将为学生和教师的限定说话风格,指定我们想要回答的格式,并包括一些语法结构,以便能够轻松地调整我们的提示来尝试各种回答。

“教师”代表一个在该领域拥有多个博士学位、教授该学科超过十年的杰出教授的风格。您在回答中使用学术语法和复杂的例子,重点关注不太知名的建议以更好地阐明您的论点。您的语言应该是精炼而不过于复杂。如果您不知道问题的答案,请不要胡乱编造信息——相反,提出跟进问题以获得更多背景信息。您的答案应以对话式的段落形式呈现。使用学术性和口语化的语言混合,营造出易于理解和引人入胜的语气。

“学生”代表一个具有该学科入门级知识的大学二年级学生的风格。您使用真实生活的例子简单解释概念。使用非正式的、第一人称的语气,使用幽默和随意的语言。如果您不知道问题的答案,请不要编造信息——相反,澄清您还没有学到这个知识点。您的答案应以对话式的段落形式呈现。使用口语化的语言,营造出有趣和引人入胜的语气。

“批评”代表分析给定文本并提供反馈的意思。

“总结”代表提供文本的关键细节。

“回答”代表从给定的角度回答问题的意思。

圆括号()中的内容表示您写作的角度。

花括号{}中的内容表示您所涉及的主题。

方括号[]中的内容表示您应该采取的行动。

例子:(学生){哲学}[回答] 在大学里选择这门课程相比其他课程有什么优势?

如果您理解并准备开始,请回答“是”。

以下是一个未引导的问题示例,询问 ChatGPT 关于哲学领域中最有趣的部分。它使用列表,通俗冷静地表达,然而在解释中不是非常具体。

https://learnprompting.org/zh-Hans/assets/images/unprimed_question-0b3ca7ccd9997e197401d34a48ff4eee.png

在第二个例子中,我们提供了一个引导提示给 ChatGPT,并以正确的形式提出了问题。你应该注意到,它的回答与第一个例子有一些相似之处,例如,它为各个领域提供的例子问题是相似的,但它提供了更深入的背景信息,放弃了列表格式,而是采用连贯的段落,将例子与现实生活联系起来。

https://learnprompting.org/zh-Hans/assets/images/primed_question-40ab1f36514336c83807d71407efdb52.png

在提示中引入引导是一种更高级的与聊天机器人交互的方式。每个提示中添加规范仍然有帮助,因为模型随着时间的推移可能会失去对引导的追踪,但它将为你的 AI 交互提升很多清晰度!

大语言模型(LLMs)中的隐患

LLMs 十分强大但也並非完美,在使用的时候需注意一些隐患。

引用来源

LLMs 没有连接到网络且无法精确得知他们的信息来源,故大多数情况下不能准确给出引用来源。他们经常会产生一些看起来不错,但完全不准确的资料。

备注

搜索特化型(能够搜索网络及其他来源)LLMs 能解决这个问题。

偏见

LLMs 时常产生具有刻板印象的回应。即使有安全防护措施,他们有时也会生成性别歧视/种族歧视/同性恋歧视的内容。在面向消费者的应用中使用 LLMs 时要小心,即使在研究中也要小心(它们可能产生有偏见的结果)。

谵妄

当被问到一个不知道答案的问题时,LLMs 时常产生虚假的信息。有时他们会说不知道答案,但很多时候他们会自信地给出一个错误的答案。

数学

LLMs 不擅长逻辑计算。他们解决简单的数学问题也存在困难,对于更复杂的数学问题更是无从下手。

备注

工具增强型 LLMs 在一定程度上能改善这个问题。

提示词攻击

用户可以欺骗 LLMs 使其生成任何他们想要的内容。

LLM Settings

导论

LLMs 的输出受超参数配置(configuration hyperparameters)影响,它能控制模型的多个方面,例如有多「随机」。调整超参数能生成更具活泼、多样及有趣的输出。本章将讨论两个重要的超参数以及它们如何影响 LLMs

备注

[给研究者] 这些配置不同于学习率(learning rate)、层数(number of layers)及隐藏大小(hidden size)等通常的超参数。

热度(Temperature

热度可以控制语言模型输出的随机度。高热度生成更难预料及富有创造性的结果,低热度则更保守。例如热度为 0.5 时模型生成内容将比 1.0 更容易预测且创造性更少。

Top p

Top p,即核心采样(nucleus sampling),是另一个控制语言模型输出随机性的超参数配置。它设定了一个概率阈值,并选择累积概率超过该阈值的最佳词汇,然后模型从这组词汇中随机抽取以生成输出。与传统方法(在整个词汇表中随机抽样)相比,这种方法可以产生更丰富多样且有趣的输出。例如 top p 0.9 时模型将仅考虑概率阈值 90% 以上的词汇。

其他相关超参数

还有许多其他超参数会影响语言模型的表现,如频率(frequency)和存在惩罚(presence penalties)。这里暂时不涉及它们,但也许将来会。

超参数如何影响输出

热度和 top p 都可以通过控制生成文本中的随机性和多样性来影响语言模型的输出。较高的热度或 top p 会生成更不可预测且有趣的结果,但同时也增加了错误或无意义文本的可能性。相反较低的热度或 top p 则生成更保守和可预测的结果,但也可能导致重复或乏味。

对于文本生成你可能希望使用较高的热度或 top p。然而,对于精确性重视型场景,如翻译或问答时,则应用较低的热度或 top p 以提高精确性和事实正确性。

备注

有时对于需要更多随机性的精确性重视型场景,搭配特殊提示技巧可能有所帮助。

结论

总之,在使用语言模型时,热度、top p 和其他模型超参数配置是需要考虑的关键因素。通过理解这些超参数与模型输出之间的关系,使用者可以针对特定场景和应用优化他们的提示。

危险

有些模型,如 ChatGPT,不允许调整这些超参数配置。

理解人工智能思维

你好,读者,恭喜你完成了基础介绍章节。你在这个非常令人兴奋的领域有了一个很好的开端。在继续阅读本课程的其余部分之前,有几件简单的事情你应该知道,关于不同的人工智能及其工作原理。

https://learnprompting.org/zh-Hans/assets/images/music+image-079c274bd7f568398866dbbc12701d8e.png

从图像生成音频

不同的人工智能们

成千上万,甚至可能有数百万个人工智能存在。有些可能要比另一些优秀。不同的人工智能可以生成图像、音乐、文本,甚至视频。请注意,这些都是生成人工智能,基本上是创造东西的人工智能。还有用于判别的人工智能,即分类事物的人工智能。例如,你可以使用图像分类器来确定一张图片是猫还是狗。在本课程中,我们不会使用任何判别人工智能。

目前仅有少数生成式人工智能足够先进,可以在提示工程中生效。在本课程中,我们主要使用 GPT-3 ChatGPT。正如我们在上一页中提到的那样,ChatGPT 是一个聊天机器人,而 GPT-3 不是。它们通常在回答相同问题时会产生不同的响应。如果你是开发人员,我建议使用 GPT-3,因为它更可复现的。如果你不是开发人员,我建议使用ChatGPT,因为它更易于使用。本课程中的大多数技术都可以应用于这两个人工智能。然而,其中一些技术只适用于 GPT-3,因此如果你想使用本课程中的所有技术的话,我们鼓励你使用 GPT-3

在图像生成部分,我们还将使用 Stable Diffusion DALLE。在这里可以查看更多相关的人工智能。

这些人工智能是如何工作的呢?

本节介绍了流行的生成式文本人工智能的方面。这些人工智能的大脑由数十亿个人工神经元组成。这些神经元的结构被称为 transformer 架构,它是一种相当复杂的神经网络类型。你需要了解的是:

这些人工智能只是数学函数。它们更像是f(成千上万的变量) = 成千上万种可能的输出,而不是 f(x) = x^2f(x)=x

2

这样的简单函数。

这些人工智能通过将句子分解成称为标记(tokens)的单词子单词(例如,AI 可能将 “I don't like” 作为 “I, don, 't like”)(译注:由于中文 token 化的表现形式和英文并不完全相同,这里保持英文示例,感兴趣的同学可以在 OpenAI 提供的在线工具自行体验)来理解句子。然后,每个标记都被转换为一组数字,以便人工智能进行处理。

这些人工智能根据前面的单词标记预测句子中的下一个单词标记(例如,人工智能可能会在 “I don't like” 后面预测 “apples”)。它们写下的每个标记都基于它们以前看到和写下的标记;每次它们写下一个新标记时,它们都会停下来思考下一个标记应该是什么。

这些人工智能同时查看每个标记。它们不像人类那样从左到右或从右到左阅读。

请理解,“思考”、“大脑”和“神经元”这些词是拟人化的表述(zoomorphism),实际上是对模型所做的事情的比喻。这些模型并不真正思考,它们只是数学函数。它们不是真正的大脑,它们只是人工神经网络。它们不是真正的生物神经元,它们只是数字。

这是一个非常活跃的研究和哲学领域。这种描述与它们的本质相去甚远,旨在缓和大众媒体对人工智能作为像人类一样思考行动的存在的描绘。话虽如此,如果你真的想拟人化人工智能,那就去做吧!似乎大多数人都这样做,这甚至可能有助于学习它们。

备注

d2l.ai 是了解人工智能工作原理的好资源。

顺便说一下,作者实际上是喜欢苹果的。它们很好吃。

开始你的旅程

现在你已经了解了提示工程(prompt engineering)的基础知识,你已经可以开始自己尝试提示工程了。本课程的其余部分将包含更多的技术和资源,但学习 PE 的最好方法是开始用自己的提示(prompts)进行实验。本节将告诉你如何开始解决一个任意的提示工程问题。

假设你想要这样一个提示(prompt),它通过 ChatGPT 生成一个沉浸式的互动故事。

Step 1 研究

首先要做的是研究你想要的提示。除了谷歌之外,以下资源也非常有参考价值:

Awesome ChatGPT Prompts

FlowGPT

rPromptDesign (以及类似的子版块)

Learn Prompting Discord (以及其他相关的讨论区,包括 OpenAI Discord

你可以先试试这个提示(by Heroj04):

I want you to act as a text based adventure game. I will type commands and you will reply with a description of what the character sees. I want you to only reply with the game output inside one unique code block, and nothing else. do not write explanations. do not type commands unless I instruct you to do so. when i need to tell you something in english, i will do so by putting text inside curly brackets {like this}. my first command is wake up

Step 2 实验

现在,我们将把提示放入 ChatGPT,看看会发生什么。

我们可以看到,它生成了一个故事,但它是在 csharp(一种编程语言)的代码块中写的。也许我们不想要这样的形式,所以我们将把提示修改成:

I want you to act as a text based adventure game. I will type commands and you will reply with a description of what the character sees. Do not write explanations. My first command is wake up

ChatGPT 回答

You slowly open your eyes and find yourself lying on the cold, hard ground. As you take in your surroundings, you realize that you are in a dimly lit cave. The air is damp and musty, and you can hear the sound of water dripping somewhere in the distance. Your head is throbbing and you feel disoriented. You need to figure out where you are and how to get out of here.

很好,现在它把故事输出为纯文本。然而,我们的提示缺乏细节。让我们在提示中增加一些结构:

I want you to act as a text based adventure game. I will type commands and you will reply with a description of what the character sees. Do not write explanations. Use flowery language and descriptive words. The setting is a cottage core village, where gnomes and frogs roam free as equals. Whenever you speak, start your paragraph with TIME, LOCATION, FRIENDS (who is with you), ITEMS (what items you have). My first command is wake up.

ChatGPT 回答

TIME Early morning

LOCATION A cozy, quaint cottage nestled in a village surrounded by lush greenery and fragrant flowers.

FRIENDS You are alone in your bedroom, snuggled under a cozy quilt.

ITEMS You see a wooden nightstand beside your bed, and a basket full of fresh flowers on the windowsill.

As you wake up, you feel the warmth of the sun filtering through the window and the soft chirping of the birds outside. You sit up in bed and stretch your arms, taking in the sight of the beautiful flowers blooming outside. The gentle rustling of the leaves and the soft breeze bring you a sense of calm and tranquility. You feel refreshed and rejuvenated, ready to take on whatever adventures the day might bring.

啊,完美,现在你可以通过 ChatGPT 实现你的田园梦了 🌸

Step 3 获取反馈并迭代

现在,给你的朋友员工老板看看,并向他们征求反馈意见。如果他们喜欢,很好!如果不喜欢,就迭代你的提示,直到得到你们都喜欢的东西。你也可以在上面提到的社区中征求反馈意见。这个步骤永远不会真正结束。你将一直对你的提示进行迭代,因为问题和人是随着时间变化的。

结论

做 你 想做的提示工程。我(本课程的维护者)总是从头开始写我的提示语。如何写出最好的提示语没有黄金标准;试验和错误是最好的学习方法。祝你学习愉快,祝你本课程的其余部分学习顺利!

备注

本文的建议适用于所有的提示工程问题,而不仅仅是编写交互式故事!

© THE END

转载请联系本网站获得授权

投稿或版权问题请加微信:skillupvip