ChatGPT 是 OpenAI 提供的一项服务,它是一个会话式大型语言模型。它非常普及,并且被发现非常有用了。在幕后,它是一个大型语言模型。与您提供的开头句子继续生成文本的其他大型语言模型不同,ChatGPT 允许您提问或提供指令,模型会像聊天一样响应。要让 ChatGPT 正确响应,您必须与模型进行交互。这种技术称为提示工程。
在本文中,您将了解 ChatGPT 作为大型语言模型,并学习提示工程。特别是,
- ChatGPT 中大型语言模型的输入上下文是什么
- ChatGPT 如何与输入交互
- 如何提供合适的提示以获得所需的结果
立即开始使用 ChatGPT,阅读我的书 《ChatGPT 提高生产力》。它提供了真实世界的用例和提示示例,旨在帮助您快速使用 ChatGPT。
让我们开始吧。

提示工程简介
图片由作者使用 Stable Diffusion 生成。保留部分权利。
概述
本文分为三个部分:
- 理解 ChatGPT
- 工程上下文
- 提示工程建议
理解 ChatGPT
ChatGPT 是一个会话式大型语言模型。语言模型可以根据前面的文本生成单词。会话式大型语言模型是自然的变化。如果您读过戏剧,例如莎士比亚写的以下示例,您应该注意到对话是多个人之间的对话。
亚伯拉罕:您是在冲我们竖起大拇指,先生?
撒母耳:是的,先生,我是在竖起大拇指。
亚伯拉罕:您是在冲我们竖起大拇指,先生?
撒母耳:如果我说——是的,法律是在我们这边吗?
格雷:不是。
撒母耳:不,先生,我不是在冲您竖起大拇指,先生;但我是在竖起大拇指,先生。
如果您将对话的前四行输入语言模型,那么它生成第五行是可以预期的。由于模型已从海量文本中学习,因此戏剧的格式只是它理解的一种样式。因为模型能够理解上下文,所以它的单词应该与前面的文本自然地衔接,就好像它是聊天中的正确响应一样。
工程上下文
在使用大型语言模型生成文本时,上下文在确定输出方面起着至关重要的作用。对于 ChatGPT,上下文来自之前的对话。为了确保 ChatGPT 以期望的方式响应,仔细构建输入以提供必要的线索至关重要。
虽然 ChatGPT 是一个强大的语言模型,但它也有其局限性。尽管它从训练数据中获得了一些基本的“常识”,但它可能无法展示详细的逻辑推理。例如,如果您要求 ChatGPT “提供有关机器学习的信息”,它可能会给出一个冗长但未必高质量的答案。但是,如果您问“告诉我使用机器学习解决图像分类问题的优缺点”,您更有可能获得更好的结果,因为
- 您提供了一个特定的范围,即图像分类问题
- 您要求了特定的响应格式,即优缺点
类似的情况是,当您提出一个复杂的问题时,例如下面的数学应用题
为了准备复活节,史密斯夫人去一家商店,以每只 5 美元的价格购买了 10 个玩具兔子。巧克力蛋比兔子便宜 1 美元,史密斯夫人买了 15 个。史密斯夫人花了多少钱?
ChatGPT 的较新版本可能可以正确处理,但如果大型语言模型试图立即给出答案,这类问题很容易出错。原因是,当您尝试生成简短答案时,上下文需要更多线索来保持逻辑正确。但是,当大型语言模型尝试分步列出逻辑时,很容易正确进行计算。因此,有人建议您不要问 ChatGPT“史密斯夫人花了多少钱”,而是问“详细说明史密斯夫人花了多少钱”。这些是迫使 ChatGPT 进行逻辑推理的线索。例如,您可能会观察到以下答案
为了计算史密斯夫人花了多少钱,我们需要分别计算玩具兔子和巧克力蛋的成本,然后将它们加起来。
史密斯夫人以每只 5 美元的价格购买了 10 个玩具兔子,因此兔子的总成本是 10 * 5 美元 = 50 美元。
每个巧克力蛋比玩具兔子便宜 1 美元,因此每个巧克力蛋的成本是 5 美元 – 1 美元 = 4 美元。
史密斯夫人购买了 15 个巧克力蛋,因此巧克力蛋的总成本是 15 * 4 美元 = 60 美元。
最后,要找出史密斯夫人总共花了多少钱,我们将兔子的成本和巧克力蛋的成本相加:50 美元 + 60 美元 = 110 美元。
因此,史密斯夫人总共花了 110 美元。
您可以看到大型语言模型如何给出正确答案。大型语言模型无法进行心算,并且逻辑能力有限(由于它是基于文本训练的,它学习到的信息量相当于单个句子所能表达的内容)。如果存在更复杂的逻辑,您必须确保模型循序渐进。这被称为思维链。
提示工程建议
以下是一些构建上下文以使 ChatGPT 或其他大型语言模型产生有用输出的思路:
- 不要让模型随意发挥,而应在提示中通过提供有关什么、在哪里、何时、为什么、谁和如何的详细信息来设置场景和范围。
- 在提示中指定一个角色,例如“作为一名计算机科学教授,解释什么是机器学习”,而不是简单地说“解释什么是机器学习”,可以让回应更具学术性。
- 您可以通过要求“向 5 岁孩子解释”、“用类比来解释”、“进行令人信服的陈述”或“分 3 到 5 点说明”来控制输出样式。
- 为了鼓励模型以思维链方式响应,请在请求末尾加上“分步解决此问题”。
- 您可以通过说“参考以下信息”并在后面附上您希望模型处理的材料来向模型提供额外信息。
- 由于之前的对话构建了上下文,因此以“忽略此之前的任何指令”开头提示可以使模型从头开始。
- 使提示简单易懂至关重要,因为推断出的上下文才能更准确地反映您的意图。
总结
在本文中,您了解了提示如何驱动大型语言模型的输出,特别是 ChatGPT。具体而言,您学习了。
- 提示如何设置上下文,以便模型可以在上下文中生成输出
- 大型语言模型是有限的;您需要提供正确的提示指导以生成准确的输出。
- 提供具体、详细的提示有助于获得正确的输出
暂无评论。