购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 ChatGPT提示工程:prompt的艺术

“提示”(prompt)这个词汇背后隐藏着AI(人工智能)界的一个巨大秘密,提示不仅仅是一个指令或请求,它更是与机器交流的艺术,是使其释放巨大潜力的钥匙。在这一节中,我们将深入挖掘“提示”的魔法,学习如何巧妙地与ChatGPT互动,以及如何最大限度地利用其知识和能力。从提示的基础概念到技巧,让我们一起探索如何与机器建立更深入的对话。

2.2.1 提示工程的概念

在当前市面上,无论是OpenAI的ChatGPT还是其他AI聊天机器人,其核心都是基于大模型的理念。它们通过无监督预训练学习,吸收了海量的数据,最终形成了上知天文、下知地理的通才型AI,这种AI会根据我们的输入,预测并输出下一个语义单元,也就是预测接下来的内容会是什么。

然而值得注意的是,输入问题的差异可能会导致输出结果的质量大不相同。如果你直接让ChatGPT去设计数据分析师模拟面试,得到的结果并不理想。比如:

User:

请你设计数据分析师模拟面试。

ChatGPT:

当然可以。以下是一个模拟的数据分析师面试。

面试官:你好,欢迎参加这次面试。首先请自我介绍一下。

候选人:(自我介绍)

面试官:谢谢你的介绍。我注意到你的简历上提到了一些你过去的数据分析项目。能否挑选一个你最有成就感的项目,详细告诉我一下?

候选人:(回答)

面试官:很好。你可以讲讲你在这个项目中是如何处理和分析数据的吗?包括你使用的工具、你对数据的理解,以及你如何从这些数据中提取出有用的信息。

候选人:(回答)

面试官:你有经验使用python和R语言进行数据分析吗?你更偏向于使用哪一种,为什么?

候选人:(回答)

……

以上就是一个模拟的数据分析师面试流程。它涵盖了自我介绍,过去项目经验,数据处理和分析能力,编程语言偏好,数据清洗技巧,数据可视化工具和技术,以及面对与预期不符的数据情况的处理方式等等。希望这个可以帮助你准备数据分析师的面试。

ChatGPT输出的这些内容当然可以作为我们准备数据分析师面试题的参考资料,但是存在几个问题:缺少交互,也缺少面试评价等,针对这些问题,我们可以这样修改:

User:

请你扮演数据分析师的面试官,而我是要应征数据分析师的面试者,请你对我模拟面试。

请注意,你需要遵守以下规则:

1.你只能问我有关职位的面试。

2.你不需要写多余的解释。

3.你需要像面试官一样等我回答问题,再提问下一个问题。

4.待面试结束后,请给出面试评价。

ChatGPT:

很好,让我们开始。您好,我很高兴今天能与您面谈。我会依照规则进行面试。

请您做一下自我介绍,并且详述一下您的教育和工作经历。

User:

尊敬的面试官您好,我是×××,硕士毕业于××大学,曾在××、××××等公司担任资深数据分析师职务,有8年数据分析从业经验,主要负责用户增长相关分析。

ChatGPT:

非常感谢您的介绍。接下来的问题是,您在过去的工作或项目中,哪一个最能展示您的数据分析能力?您在这个项目中具体做了什么?

User:

在××项目中,我作为分析师和项目经理,通过××工具使用××方法和××方法,将××关键指标提升了10个百分点;同时协调上下游资源,合理推动项目进展。

ChatGPT:

听起来您在该项目中的表现非常出色。下一个问题是,您熟悉哪些数据分析工具和编程语言?

……

ChatGPT:

面试结束后的评价:您的专业知识非常深厚,无论是对数据分析的理论知识还是实际应用的理解都非常深入。您的经验丰富,解决问题的思路清晰,能够快速找到问题的关键,对数据有深入的理解和敏锐的洞察力。同时,您对大数据工具和编程语言也有很强的掌握能力。我认为您非常适合我们的数据分析师职位。如果有任何进一步的问题或需要更多信息,请随时联系我们。期待与您的进一步合作。

在我们修改的提问中,我们就使用了提示词的相关方法。

对于大模型来说,提出一个好的问题就像是打开了通向知识宝库的钥匙。只有精准地提问,才能引导模型给出我们想要的答案。对于ChatGPT而言,提问的艺术就是获取优质结果的关键,而提问艺术的集中体现,就是提示工程。

提示工程是一系列围绕ChatGPT输入提示的设计、测试和优化活动,旨在通过精确、创造性的输入,引导模型产生高质量、相关的输出,并根据反馈进行迭代优化。其步骤主要包括三部分:确定输入提示、处理模型输出和根据反馈优化提示。

(1)确定输入提示。模型的输入或提示是进行提示工程的初始步骤,它们通常是问题、命令或场景描述。通过精确和有针对性的提示,引导模型产生期望的思考和输出。

(2)处理模型输出。处理模型输出涵盖了输出的解析、格式化以及进一步的处理和转化。模型输出的文本可能需要进一步转化为图表或图像,以便更直观、易理解。

(3)根据反馈优化提示。这一阶段关注的是根据用户反馈或模型输出结果的反馈对输入提示进行迭代和优化。通过不断的优化和调整,模型的输出更精确、更符合预期。

提示工程的目标是最大化ChatGPT的性能和效用。通过精心设计和优化提示,我们可以引导模型生成更高质量的输出,更好地满足用户的需求。需要注意的是,提示工程并不是一次性的过程,而是一个持续的迭代过程。随着模型的更新和优化,以及用户需求的变化,我们需要不断地进行提示工程,以保持模型的最佳性能。

2.2.2 提示的设计

通过2.2.1节的内容,我们知道优质的提示词对于引导ChatGPT生成高质量的输出至关重要。因此在设计提示词前我们得先明白一个问题:什么样的提示词可以被称为优质提示词?提示词的“优质”主要应当体现在如下方面。

(1)明确性。提示词应该清晰明确,这样模型能够理解其含义并产生相应的输出,如果提示词出现模糊不清或含糊其词的表达,那ChatGPT有时便会输出让我们哭笑不得的回答。

(2)完整性。提示词应该是完整的句子或问题,并且能提供足够的上下文信息,帮助模型理解预期的响应类型。如果你只是给出一个词“天气”,ChatGPT可能不清楚你想要知道的是当前的天气、天气预报,还是关于天气的一般信息。相反,如果你问“2022年5月上海的天气整体如何?”这个提示就提供了更多的上下文。

(3)简洁性。虽然提示词需要提供足够的上下文,但也应该尽可能简洁。过于冗长或复杂的提示词可能会使模型混淆,从而影响其输出的质量。如果你的提示词是一个长篇的段落,模型可能会在处理这么多信息时产生困难。

(4)通用性。在同类任务上,更换主体词后,同样可以得到优质的结果。如此一来,这个提示词就可以作为模板存起来,在想要生成类似内容时,改变主题和要求就可以快速地复用。

(5)中立性。因为ChatGPT的输出通常会反映提示词的语气和观点,所以提示词应该尽可能地中立,避免引入任何偏见或主观观点,除非你是带着预期向ChatGPT进行提问的(不建议这样做!)。

根据这些优质提示词的要求,我们可以设计图2.10所示的提示词的书写结构。

图2.10 提示词设计结构

提示词设计结构=指定扮演角色+描述任务或需求+限定范围或主题+指定关键要求。

简单地说,就是告诉ChatGPT“你是谁”“你需要做什么”“你要在什么条件下做”“你在做的过程中要注意什么”这样的思路来设计我们的提示词。

(1)指定扮演角色。指定扮演角色有助于为ChatGPT提供更明确的上下文和指引,从而使其更容易理解我们的问题和需求。AI模型,尤其是像ChatGPT这样的大型预训练模型是拥有广泛的知识和信息的。但是,它们通常没有固定的身份或角色。当我们给予模型一个特定的身份,我们实际上是在为它设定一个“框架”或上下文,让它能够更有针对性地提供回答。所以当我们以特定角色来提问时,ChatGPT会根据这个角色的知识和经验来回答问题,从而生成更专业、更具针对性的回答。

(2)描述任务或需求。在提示词中清楚地指明我们希望生成的文本的目标或任务,如描述、解释、比较、总结等。模型的功能非常广泛,从简单的数据查询到复杂的数据分析,它都可以做。明确地给出ChatGPT指示可以确保我们得到所需的答案,而不是与之相关但不完全符合要求的信息。比如“列出”可能会让模型提供一个项目列表,而“解释”则会让模型提供更详细的描述或定义。

(3)限定范围或主题。在提示词中指定特定的主题、领域或背景,以便模型生成与之相关的内容。模型的知识库非常大,但是如果没有具体的方向,它可能会在各种相关的主题之间跳来跳去。通过限定范围或主题,我们可以确保答案集中在我们真正关心的领域。比如当询问关于“太阳”的信息时,明确指出我们想了解“太阳的组成”可以帮助模型专注于太阳的成分,而不是它在太阳系中的位置或与其他星体的关系。

(4)指定关键要求。这里的关键要求是多方面的,主要包括三个方面:特定的文本格式或结构要求,特定的语气或风格,关键的信息或要素。

①特定的文本格式或结构要求:文本的格式或结构在传达信息时起着关键作用,正确的格式可以使信息更易于理解和消化,从而让我们的需求更直接地被满足。如果我们希望得到一个问题的答案,并希望答案按照“定义-原因-结果”这样的结构,那么我们可以提出:“请按照定义、原因和结果的顺序解释(某事)。”这样,模型的回答将按照这一结构进行,从而使得答案更加条理清晰。

②特定的语气或风格:不同的语境和目标群体可能需要不同的语气或风格。如果我们想为孩子编写一个故事,我们可以给出提示:“请以童话故事的语气描述(某事)。”这样ChatGPT就会使用轻松、有趣和适合孩子的语言来描述指定的对象。

③关键的信息或要素:在某些情况下,我们可能只对某些信息感兴趣,或者有特定的信息要求,因此确保提供的答案中包含这些关键信息或要素。比如我们可以给出提示:“请描述(某公司)的财务状况,特别是其流动资产和长期债务。”这样一来,尽管答案可能包含该公司的其他财务信息,但流动资产和长期债务必须被明确地包括在内。

现在,我们回到2.2.1节给出的关于数据分析师模拟面试的例子,我们对原先的提示进行优化。

请你设计数据分析师模拟面试。

①我们在提示词中加入指定扮演的角色:“扮演数据分析师的面试官”;

②我们更详细地描述任务或需求:“我是面试者,请你对我模拟面试”;

③我们限定范围或主题为“数据分析”;

④我们指定关键要求:“请注意,你需要遵守以下规则……”

由此得到我们优化后的提示词:

User:

请你扮演数据分析师的面试官,而我是要应征数据分析师的面试者,请你对我模拟面试。

请注意,你需要遵守以下规则:

1.你只能问我有关职位的面试。

2.你不需要写多余的解释。

3.你需要像面试官一样等我回答问题,再提问下一个问题。

4.待面试结束后,请给出面试评价。

在我们优化后的提示中,“请你扮演数据分析师的面试官”即为指定扮演角色;“我是要应征数据分析师的面试者”即为限定范围或主题;“请你对我模拟面试”即为描述任务或需求;“请注意,你需要遵守以下规则”及其之后的内容即为指定关键要求。

当然,在实践中我们要具体问题具体分析,具体的提示词构建需要根据具体的文本生成任务和上下文来灵活调整,以最佳地满足我们的需求。

2.2.3 提示的优化技巧

在2.2.2节,我们深入探讨了ChatGPT的提示词设计结构,了解了如何通过指定角色、明确任务、限定主题范围以及提出关键要求来形成高效的提示词。这样的结构化设计可以提高ChatGPT的交互质量。但是,仅仅知道如何构建这些提示词还不够。

为了真正发挥ChatGPT的潜力,我们还需要掌握一些优化技巧,有时候这些技巧可以起到四两拨千斤的效果。这里我们给出最常用的六种技巧,供大家作为工具手册进行回顾。

1.分步骤引导

为了获得更具结构性的答案,我们可以尝试使用分步骤的方式引导ChatGPT。通过将问题分解为多个步骤,可以帮助AI更深入地了解你的需求。

例如,如果我们需要一个数据分析项目的策划方案,可以将prompt分为以下几个步骤。

(1)理解数据的来源和特点。

(2)明确数据分析的主要目的。

(3)选择最合适的数据处理和分析技术。

(4)评估分析结果的准确性和可靠性。

通过这些步骤,我们可以确保ChatGPT给出的内容更加具体、翔实,而不是简单的“请帮我策划一个数据分析项目的策划方案”。

因此采用分步骤引导,有助于生成具有结构性的答案;相反,若过于简单,可能导致输出的答案缺乏结构。

2.巧用符号

这里我们给出符号的使用方法,如表2.2所示。

表2.2 编写提示词中符号使用方法

3.利用示例和类比

在设计提示时,使用示例和类比可以帮助ChatGPT更好地理解我们的需求。

(1)示例可以提供一个具体的情境,使抽象或不明确的指令变得清晰起来。对于模型来说,这可以作为一个参考,从而更准确地捕捉到我们的意图。比如当我们觉得自己的问题不够明确时,可以提供一个相关示例为模型提供更多上下文。

(2)类比可以将复杂的信息与已知的信息进行比较,等于提供了一个框架给ChatGPT,使其更容易地将新的概念与其已有的知识相匹配。

4.用“继续”不断输出

在ChatGPT上一个回答中断后,直接输入“继续”命令,ChatGPT就能延续上文内容输出回答。这是使回答变得优质的最有效也最简单的办法之一。

5.调整提示中要求的复杂度

如果我们希望获得更深入的答案,可以尝试提高提示词中要求的复杂度。相反,如果我们只需要简单地回答,可以尝试降低提示词中要求的复杂度。这个办法其实就是在提示词中加入“详细地”“完整地”或者“简略地”等修饰词来控制输出结果。

假设我们需要关于某个话题的简要概述,则提示词可以是:“请简要介绍大数据分析的概念、应用和趋势。”如果我们需要更详细的回答,可以将提示词修改为:“请详细讨论大数据分析的概念、关键技术、应用案例和未来发展趋势。”

6.用英文提问

ChatGPT是在大量的英文数据上进行了训练,因此,它更广泛地接触到英文内容,对英语的理解更加深入。同时,由于可用来源的多样性,英文训练数据中嵌入的细微差别和上下文可能更为丰富。这可能导致模型提供更准确和符合上下文的回应。在技术、科学和学术领域,许多技术和专业术语主要是用英文讨论的。因此,当讨论专业话题时,英文提问可能会得到更准确和详细的答案。

通过恰当的提示和技巧,我们能够更加有效地与ChatGPT交互,从而获得更精准、更有深度的答案。 nO66g06F5dsr3j1SlzOV7Bd/NanFV91o1BZcr3+I55ibwVQ2RncrNCy3nIBi8r/j

点击中间区域
呼出菜单
上一章
目录
下一章
×