我们知道 ChatGPT 背后调用的是 GPT 模型,也就是一个生成式语言模型。
(资料图片仅供参考)
那在生成式 AI 领域 ,用户对模型的提问,也被叫做Prompt。这里为什么不叫作 Question 而是叫做 Prompt 实际上我们可以这么理解 - 提示的意思是当某人忘记某个事情时,你给他些提示,他就可以想起来。
比如我说“清明时节雨纷纷”,你自然就能想起来下一句“路上行人欲断魂”。
自监督学习
为什么 Prompt 是使用 ChatGPT 的关键技能呢,这我们就需要了解下一些概念。
我们原先接触的大部分机器学习,都是采用的有监督学习方式,比如在传统的图像识别领域,我们想要识别一张图片中的人是否佩戴了口罩,就必须要在训练之前告诉模型,比如有100张图片,有监督学习需要提前对这些模型进行标注,告诉模型哪张图片是佩戴了口罩的,哪张图片是没有佩戴口罩 - 这就是有监督学习。
而 GPT 模型是通过对大规模语料库进行预训练来学习自然语言处理任务的,在预训练过程使用了大量的无标注语料库,包括维基百科、新闻、小说等。
在预训练中,GPT模型会利用自监督学习方法,对输入文本进行预测,并通过自我监督机制来训练模型。在预测的过程中,模型会尝试根据输入文本的前缀来生成下一个词语或者字符,这个过程被称为语言模型预测。通过这种方式,GPT模型可以学习到大规模语料库中的语言规律、语义信息以及上下文关系,从而可以应用于各种自然语言处理任务中
这也就是为什么我们在用 ChatGPT 时,模型的回复内容是一个字一个字蹦出来的,而不是整段话直接出现 - 因为模型需要不断预测接下来要回复什么内容。(可以理解为是文字补全)
Prompt
而模型是基于什么进行预测的呢,就是基于我们给到的提示 Prompt 进行的预测。
比如上图绿衣服小姑娘代表 Prompt ,他分别跟三个小孩说了3个不同的提示,这时候三个小孩能基于提示回答对应的问题。
而在 ChatGPT 当中使用 Prompt 的好处在于它可以限制模型的生成空间,使其更专注于指定的主题或任务。因为 GPT 模型是基于大规模自监督学习的,它对输入文本的上下文信息学习得非常全面,但这也会导致模型生成的文本与预期的主题或任务不符。通过在输入中添加 Prompt,可以强制模型关注特定的信息,从而提高模型在特定任务上的表现。
此外,Prompt 可以帮助模型更好地利用其自监督学习中学到的记忆知识。在自监督学习中,GPT模型已经学习了大量的语言知识和语言规律,并且可以根据上下文信息生成连贯的文本。但是,在面对特定的任务时,模型可能无法直接应用其自监督学习中的知识,因为它需要特定的指导信息来指示生成合适的文本。通过Prompt的指导,模型可以更好地利用其自监督学习中的记忆知识,并生成更符合预期的文本。
相当于我们在提问时,给到的提示信息越详细,模型响应的质量肯定就会越高
任务提示型 Prompt
让我们一起来看一些例子:
当我想让 ChatGPT 帮我补全一个句子时,
如果我直接输入这个句子的前半段,那么结果是这样的:
这时候 ChatGPT 虽然会补全我们的句子,但它发散了思维,我实际上只想要一段话,但它给了我整个段落。
那如果我们在输入中给加上限制条件
ChatGPT就能准确无误的完成我们的需求,把这个句子补充完整。
上面的”请完成这句话“就是一个我们告诉模型要做的事情,这叫做任务提示型 Prompt。
任务提示型 Prompt 是一种 Prompt 分类,作用是提醒模型是要做什么任务。因为同样输入一句话,可以做的任务太多了,通过 Prompt 让模型知道这次是要做什么任务。例如,在 ChatGPT 中,我们输入一段描述,再加上“翻译”或者“问答”的 Prompt,那么 ChatGPT就会生成相应的结果
上面只是一个最简单的 Prompt 示例,在实际应用中这种 Prompt 技巧还有很多很多。
答案提示型 Prompt
比如 QA 模式 - 也可以叫做答案提示形 Prompt,在下面的示例中我们在前三句话都给了一个积极还是负面的说明结果,表示当前句子体现的情绪是积极还是负面。只有最后一句话没给到判断,这个意思就是让模型基于前面三个内容,它自己去判断一下最后一句话是什么情绪。
相当于使用问题和答案的方式来指导模型完成某个任务的格式
在 ChatGPT 输入问题后,模型会将最后一句话判断为负面。
这种 QA 模式,相当于通过少量的 Prompt 提示,给到模型进行情景学习。让模型判断后面的内容属于哪种标签。
Prompt的组成
上面两个示例分别代表了两种 Prompt 的设计类型:任务提示型和答案提示型。
虽然 Prompt 提示词的组成可以很复杂,但总的来说一个 Prompt 可能会包含以下几个元素
指令 Instruction :告诉模型你想要它执行的任务,例如:“请将下面的句子翻译成英语:”就是一个 instruction。
上下文 Contenxt:当前对话的上下文就是背景和语境,比如让ChatGPT 进行角色扮演,通过为 AI 分配一个角色的方式引导 AI 给出更准确的输出内容。
下面示例,就是通过角色扮演给模型设定了一个上下文,这时模型就会把自己代入微软面试官的角色来回答我们的问题。
输入数据 Input Data :你想要查询或寻找答案的内容,例如一段文本、一个问题。
还是上面的示例,”你会如何向我面试“就是 Prompt 提示词中的 Input Data 。
但通常光有 Input Data 是不够的,比如上面的问题就需要配合 Context 来限定问题的上下文。
输出指示符 Output Indicator:告诉模型你希望得到的输出类型或者格式。
比如让模型给你一个列表,或者让模型给你一个由分号分隔的结果,都属于 Output Indicator。
需要注意的是并不是所有的 Prompt 提示词都会包含所有元素,比如有的只会包含 Input Data , 而有的会包含 Input Data 和 Output Indicator ,所以具体一段提示词中会包含哪些元素还是取决于我们实际的任务要求。
总结
Prompt提示词不仅仅是在 ChatGPT 中重要,它在所有生成式 AI 中都是非常重要的概念,甚至专门针对 Prompt 最近网络上都流传了一个全新的职业 - Prompt- Engineering 提示词工程师:这个职业的工作就是 - 开发和优化 Prompt 从而更好的使用语言模型来处理各种应用和主题。
我们今天只是和大家介绍下什么是 Prompt,通过今天分享的内容,大家应该知道 Prompt 就是我们在询问 ChatGPT 时输入的内容,而Prompt 按照类型分为任务提示型和答案提示型,另外一个 Prompt 可能会包含多个组成部分,比如 Input Data 输入数据,Output Indicator 输出指示符,Context 上下文和 Instruction 指令。