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

1.3
ChatGPT与提示

在1.2节中,我们已经对ChatGPT有了初步了解。在本节中,我们将更深入了解与ChatGPT交互的核心元素——提示。本节主要分为两个部分:先介绍提示的含义,了解提示与问题的区别;再介绍ChatGPT是如何回答提示的,了解ChatGPT与提示相关的一系列内在机制。

1.3.1 什么是提示

在计算机领域,提示通常指在用户操作计算机时,操作系统、应用程序或网站等给用户显示的辅助文本信息。它主要用来引导用户完成操作。

例如,在使用搜索引擎时,当用户输入关键词后,搜索引擎会显示与输入关键词相关的提示,以便用户快速找到他们需要的信息。又例如,在使用文本编辑器时,当用户输入代码后,编辑器会根据语法规则来给出代码提示,从而加快用户的编码速度。在计算机软件中,提示是一种非常重要的工具,它可以在操作过程中引导用户,从而提升用户的操作效率和准确度,并帮助他们避免一些常见的错误。

在使用ChatGPT的过程中,用户输入的文本内容也被称为“提示”。然而与计算机中其他相关应用中的提示不同,这里的提示并不是用于引导用户操作,而是用于指引ChatGPT生成回答。

与ChatGPT的交互不就是人类提问、ChatGPT回答的简单过程吗?为什么我们不直接将用户输入的文本称为“提问”或“问题”呢?绝大多数人包括笔者在刚开始接触ChatGPT的时候,都有过这个疑问。经过深入使用ChatGPT及了解ChatGPT的原理之后,笔者认为将用户输入的文本定义为“提示”而非“问题”有以下几方面原因。

1.与ChatGPT交互并非人们理解的问答模式

用户与ChatGPT的交互虽然是一问一答形式的,与我们在聊天软件中与好友的聊天形式基本一致,但实际上它跟人类之间的问答有很大区别。当不同的问句被人类理解为相同的问题时,大多数时候人类会给出相同的答案。但是ChatGPT在接收到不同的用户输入后却很有可能给出不同的输出。以下面两个关于炒菜的相似问题作为示例。

问题1:炒菜时应注意什么?

问题2:炒菜有哪些要点?

这两个问题比较类似,问的都是炒菜的注意事项,所以针对这两个问题人类可能会给出如下相同的回答。

人类回答:炒菜时需要注意根据食材来控制油的用量、火候、锅内油温和翻炒的速度等。

针对上述两个问题,ChatGPT的回答如下:

问题1:炒菜时应注意什么?

ChatGPT回答:炒菜时应注意以下几点。

1.适量的油;

2.控制火候;

3.注意油温;

4.根据菜品选择合适的翻炒方式,如快炒、慢炒等;

5.注意食材的搭配和调料的使用,保证菜品美味可口。

问题2:炒菜有哪些要点?

ChatGPT回答:炒菜的要点包括以下几点。

1.选择合适的锅具,如炒锅或平底锅;

2.确保油热后再放入食材;

3.切好的食材应保持相似的大小,以便烹饪时均匀受热;

4.翻炒时保持适当的速度,避免食材炒煳或炒不熟;

5.适时加入调料,平衡食物的味道和口感;

6.根据需要,适时加入水分,防止食材炒干。

从ChatGPT的这两个回答可以看出,虽然两个回答有相似之处,都包含了很多炒菜的技巧和注意事项,但是侧重点不同。第一个回答更关注注意事项,列举出的主要是影响安全或健康的因素,而第二个回答更聚焦于技巧,主要强调的是炒好菜的技巧。根据1.2节ChatGPT的介绍,这种特征主要是因为GPT模型的输出文本完全是根据用户输入的文本来一个词一个词循环推测生成的。

由此我们可以看出,与ChatGPT的交互过程并不像其他简单聊天机器人那样仅仅是“人类提问,ChatGPT回答”。实际上,更正确的理解应该是“人类提示,ChatGPT生成”。这样的认识有助于我们更好地理解和利用ChatGPT的特性,从而获得更为满意的回答。“提示”这个词强调了用户输入在引导模型运算和生成回答的过程中所起的重要作用,更容易让人了解到与ChatGPT的交互和与人类聊天提问的不同之处。

2.提示不仅仅是提问

在与ChatGPT的交互过程中,提示并非一定是提问的形式。它也可以是一个简单的陈述句、几个关键词,甚至可以只是一个字或词。而且无论是什么样的文本形式,作为输入它们都可以触发ChatGPT来生成相应的回答。下面是几个例子。

1)问句作为提示

在与ChatGPT的交互过程中,可以直接用问句作为提示,如下例所示。

用户:

中国有哪几大菜系?

ChatGPT:

中国菜系繁多,有着丰富的地域特色。通常来说,我们将中国菜系分为八大菜系,它们分别是川菜(四川菜)、鲁菜(山东菜)、粤菜(广东菜)、苏菜(江苏菜)、闽菜(福建菜)、浙菜(浙江菜)、湘菜(湖南菜)和徽菜(安徽菜)。

2)完整陈述句作为提示

在与ChatGPT的交互过程中,也可以用完整的陈述句作为提示,如下例所示。

用户:

请简单介绍中国的菜系。

ChatGPT:

中国的菜系非常多样化,有着悠久的历史和丰富的文化内涵。根据地理位置、历史背景和食材差异,中国有不同的菜系,每一种菜系都有其独特的特色和传统。主要的中国菜系有:川菜、粤菜、鲁菜、湘菜、闽菜、苏菜、浙菜、徽菜等。

3)不完整陈述句作为提示

在与ChatGPT的交互过程中,也可以用不完整的陈述句作为提示,如下例所示。

用户:

中国菜系简介。

ChatGPT:

中国的菜系有许多,主要的菜系包括:川菜、粤菜、鲁菜、湘菜、闽菜、苏菜、浙菜、徽菜。此外,还有很多其他菜系,如上海菜、晋菜、鄂菜等,它们都有着独特的口味和特色。

4)关键词作为提示

在与ChatGPT交互的过程中,也可以像搜索引擎中使用关键词那样进行提示,如下例所示。

用户:

中国菜系

ChatGPT:

中国有着丰富多彩的菜系,主要包括:川菜、粤菜、鲁菜、湘菜、闽菜、苏菜、浙菜。

5)一个字作为提示

在与ChatGPT交互的过程中,甚至可以用一个字作为提示,如下例所示。

用户:

ChatGPT:

“菜”是指食物,特指饭菜,是人们日常饮食的重要组成部分。中国的菜种类非常丰富,从传统的家常菜到高级菜肴,从简单的小吃到复杂的烹饪,都有着各自的特点和口味。中国菜系以其丰富多彩和独特的口味,吸引了很多国内外的食客。

可以看到,除了第一个提示是问句之外,其他提示都是以陈述形式输入ChatGPT中,即使提示只是一组关键词甚至一个字,ChatGPT依然可以通过这些提示来生成相应的回答。因此,提示的质量在与ChatGPT交互过程中显得尤为重要。

在与ChatGPT的交互中,提示不一定是提问形式,也可以是回答形式,即交互的方向也可以发生变化,下面是一个简单的示例。

用户:

我想要面试一个酒店大厨,请帮我模拟面试,你提问,我来进行回答,一次只提一个问题。

ChatGPT:

好的,请简单介绍一下您的厨艺背景和经验。

用户:

我是一位酒店大厨,有五年后厨掌勺经验,熟练掌握川菜制作。

ChatGPT:

很棒!五年的后厨掌勺经验和熟练掌握川菜制作是非常值得称赞的。现在,请您分享一道您擅长的川菜菜品,并详细介绍它的制作过程及特点。

用户:

……

在上述示例中,ChatGPT作为面试官来向我们提问,在这种情况下,我们的提示就变成了针对面试官问题的回答。

总而言之,用户向ChatGPT输入的文本称为“提示”。提示可以是各种句式和交互方向,并不局限于提问。不同于与人交流,ChatGPT可能会根据不同的陈述方式给出不同的答案,即使这些陈述在意义上是相同的。

1.3.2 ChatGPT如何回答提示

在了解了什么是提示之后,让我们看看ChatGPT是如何回答用户输入的提示的。虽然直观上似乎只是用户输入文本,ChatGPT通过用户界面将输入文本传入GPT模型,GPT模型经过运算后由ChatGPT将GPT模型的输出结果返回给用户。但实际整个过程要复杂得多,ChatGPT在接收到用户输入后会经过一系列的步骤,然后才会将用户提示输入GPT模型之中。下面我们会分别介绍检查用户提示安全性、构建上下文窗口和设置语言属性这三个重要步骤。

1.检查用户提示安全性

在用户输入提示之后,ChatGPT将首先利用内部的审核功能来对用户提示的安全性进行审核。如果提示包含被禁止内容将会被检测出来,会被ChatGPT提醒并且过滤掉。其中,被禁止内容如表1.1所示。

表1.1 ChatGPT禁止内容

目前根据用户使用情况,ChatGPT禁止的内容还在不断增加。在使用ChatGPT的时候也需要注意,提示中不要包含任何违规内容。如果多次询问违禁问题,用户账号将会被封禁。

不仅用户的输入提示会被ChatGPT内部的审核功能进行审核,而且GPT模型的回答在返回给用户之前也会被审核功能进行审核。如果被检测出包含违规内容,则回复会被过滤掉,ChatGPT会通过提前配置好的模板消息来回复用户。

2.构建上下文窗口

ChatGPT与其他聊天机器人最大的不同,就是它能够结合上下文来进行回复。其他聊天机器人大多只能根据用户当前的问题或指令来提供回答,无法结合之前的对话来回答。如下面例子,在之前的对话中用户提到自己是一个素食主义者,所以在后续用户提示让推荐一些晚餐菜谱时,ChatGPT推荐的都是不包含荤菜的菜谱。

用户:

素食主义者的饮食需要注意什么?

ChatGPT:

素食主义者的饮食需要特别注意蛋白质、铁、钙、维生素B 12 、维生素D、Omega-3脂肪酸等营养素的摄入,以避免营养不足。以下是一些具体建议:

……

用户:

请推荐几个晚餐菜谱。

ChatGPT:

当然,这里有几个简单易做、健康美味的晚餐菜谱供您参考。

1.墨西哥黑豆玉米饭

食材:黑豆罐头、玉米罐头、米饭、洋葱、辣椒、蒜、番茄酱、香菜、橄榄油、盐、胡椒粉。

做法:将米饭煮熟备用。在热锅中加入橄榄油,加入洋葱、蒜和辣椒煸炒,加入黑豆和玉米,混合翻炒,加入适量番茄酱调味,加盐、胡椒粉调味。将炒好的黑豆和玉米盛入煮好的米饭中,撒上香菜即可。

2.香煎豆腐配彩椒蘑菇炒面

食材:豆腐、彩椒、蘑菇、面条、酱油、蒜、盐、胡椒粉。

做法:将豆腐切成小块,加入蒜、盐、胡椒粉腌制。将彩椒和蘑菇切成小块备用。将面条煮熟备用。在平底锅中加入橄榄油,将腌好的豆腐煎至金黄色备用。在同一锅中加入彩椒和蘑菇,翻炒,加入酱油调味。将煮熟的面条加入菜中煸炒两分钟即可。

3.简易番茄意面

食材:意面、番茄、蒜、橄榄油、盐、胡椒粉、香菜。

做法:将意面煮熟备用。将番茄切成小块,加入蒜、盐、胡椒粉拌匀备用。在平底锅中加入橄榄油,将拌好的番茄翻炒至熟透。将炒好的番茄浇在煮熟的意面上,撒上香菜即可。

因为ChatGPT具备结合上下文的能力,所以我们在写提示时不需要将之前对话中提到过的内容都列举出来,这会让我们与ChatGPT的交流更加自然流畅。那么,如此重要的结合上下文的能力是来自强大的GPT模型吗?其实不然,GPT模型本身虽然有强大的文字理解能力,但是在训练完成之后并不能存储用户之前的输入,或主动根据用户的每一次输入来重新训练调整模型本身。

结合上下文的能力其实来自ChatGPT对用户提示的处理,即通过使用对话式提示注入技术来实现这点的。简单来说就是,每当用户输入新提示之后,ChatGPT都会将用户之前全部对话和新提示一起输入GPT模型。可想而知,如果每次都输入之前的完整对话,那么每次对话之后,需要输入GPT模型的整个文本长度都会不断增加,这样很快便会超出GPT模型可以接受的输入长度上限。因此,ChatGPT在每次对话之后,都会提取本次对话的关键词,并将它们跟之前提取的关键词放在一起构造成新的上下文窗口,在下次用户输入提示之后,将提示也提取出关键词加入上下文窗口中,之后再输入GPT模型。

如图1.7所示,在用户第一次输入提示之后,ChatGPT会先提取提示中的关键词构建上下文窗口,再把提示输入GPT模型。在GPT模型输出回答之后,ChatGPT同样先提取回答中的关键词并加入上下文窗口中。用户再次输入提示之后,ChatGPT会将这次的提示加入之前的上下文窗口,然后传入GPT模型进行处理。在GPT模型输出回答之后,再次提取回答中的关键词并且加入上下文窗口,以此类推。

提取关键词虽然大大降低了上下文窗口的总长度,但是如果每次都将之前的关键词添加到上下文窗口中,那么上下文窗口迟早也会超出GPT模型允许的输入长度上限。因此,ChatGPT也对上下文窗口中的关键词个数以词元的形式作了限制。在上下文窗口中当关键词个数达到上限的时候,将以先进先出的形式把最早的关键词从上下文窗口中删除,从而保证上下文窗口在不超过关键词个数限制的情况下不断更新。

这时你可能会想,如果不提取关键词,而是直接在上下文窗口存储完整对话,是否也可以直接运用同样的机制来避免上下文的无限膨胀及保持上下文的更新呢?确实可以,但是因为完整对话占用的空间远大于提取关键词的方式,所以在限制上下文窗口尺寸上限之后,只存储关键词可以保存更多的上下文信息。此外,因为对话篇幅可能很长,所以如果上下文窗口直接存储完整对话,那么对它尺寸的限制就只能是基于字数或词数,这样很有可能在上下文窗口中将单个对话从中间直接截断,导致对话含义发生变化,从而影响上下文窗口的质量。

图1.7 ChatGPT利用对话式提示注入来了解对话的上下文

3.设置语言属性

针对每个输入的提示,ChatGPT还会为它设置回答的语言属性,包括Language(语言)、Tone(语气)及Mood(情绪)等信息。这个语言属性对用户是不可见的。根据用户输入的提示,ChatGPT会分析提示及上下文,从而自动确定这些属性。图1.8所示是一个例子。通过分析第一个提示,ChatGPT自动获取到语言为中文,需要回复语气应该是轻松欢快的。之后根据GPT模型的回复,ChatGPT会根据上下文和当前回复来更新语言属性。根据回复,在语言属性中将情绪设置为愉快。在用户第二次输入提示后,ChatGPT会根据当前提示更新语言属性,之后它会将语言属性附加在用户提示后面再一起输入给GPT模型。之后,根据GPT模型的输出ChatGPT会再更新语言属性,这样不断重复。

图1.8 构造语言属性提示来设置回复的语言、语气和情绪等属性

ChatGPT自动识别和更新语言属性,一方面避免了用户手动设置,大大提升了用户与ChatGPT的交互体验;另一方面实时地根据每一个用户的提示、GPT模型的回复及上下文的变化来调整语言属性,大大提升了对话的流畅度。这让用户感觉不再像是跟冷冰冰的机器对话,而像是在跟有真情实感的人交流。

ChatGPT针对提示的主要处理流程如图1.9所示。从用户界面接收到用户输入的提示之后,ChatGPT首先会对提示进行安全性检查来过滤掉包含违规内容的提示。通过安全性检查之后,ChatGPT会为用户提示构建上下文窗口和设置语言属性,之后将提示输入GPT模型。在GPT模型返回回答之后,同样需要更新上下文和语言属性,以及进行安全性检查,完成这一切之后,最终回复才会被显示给用户。

图1.9 ChatGPT处理提示流程 YTPs1ZXRvlsW5j5C85PA9u2gcRbAwLi37pYScljabhSEYZlk+MMoDx2oPBAruznv

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

打开