不过提示的形式是千差万别的,理论上能够有无数多的提示来完成任务,但一般情况下我们会把一段提示分成以下几个部分:
指令 (Instruction)要让模型完成的任务
上下文背景 (Context)给模型的外部信息
问题 (Input Data)让模型回答的具体问题
输出格式要求(Output Indicator)对模型输出结果的格式要求
总之我们知道 Prompt 会直接影响 ChatGPT 的输出结果。
因此要想得到想要的答案,就需要写好提示词。
今天我们就一起来看几个基本任务示例,这些基本任务可以说是所有 ChatGPT 任务的底层,不管你是让 ChatGPT 解决什么问题,实际上都是属于这几个基本任务的一种,这些基本任务包括:
文本摘要(Text Summarization)
信息提取(Information Extraction)
问答(Question Answering)
文本分类(Text Classification)
代码生成(Code Generation)
文本摘要(Text Summarization)
Text Summarization 文本摘要,也可以叫做文本总结,这是整个自然语言领域内的一个标准任务。
通过文本摘要可以将长篇文章或文档自动压缩成简短的摘要,而不会丢失重要信息。
在没有 ChatGPT 之前,文本摘要的准确性和连贯性都不够好,同时也无法处理较长的文本内容,而在使用 ChatGPT 之后,这些问题都得到了很好的解决。
你还可以在生成摘要时添加更详细的指令描述,比如要求 ChatGPT 生成的字数,风格,以及用途
信息提取(Information Extraction)
信息提取简单来说就是从大量的文本中提取出有用的信息,比如从一大段文字中提取出人名,地名,公司名称,时间,金额等等,都是属于信息提取的一部分。
而信息提取的应用场景是很多的,比如在金融领域,通过信息提取可以从大量报表文字中提取出公司名称,交易额,交易时间等关键信息。在医疗领域也可以从文献中提取疾病名称,症状,药品名称等信息来辅助医学研究和诊断。
问答(Question Answering)
QA 问答任务是 NLP 领域中很常见的一个任务类型,我们直接使用 ChatGPT 问问题就相当于是一种问答任务。
相当于计算机需要理解我们输入的问题,并能够提供相应的答案。
一种提问方式是直接问问题,这时候因为 ChatGPT 所使用的大语言模型已经学会了很多的知识,所以可以直接回答大部分问题。
比如下面就是直接询问“维生素是在研究什么疾病中发现的”
但这时候提问的话,模型回复的结果可能并不是我们需要的。
比如上面回答的信息太多了,我只想要让他回答问题,不用给我发长篇大论。
那就可以给问题加一个具体的描述指令。
甚至我可以更进一步,让模型只返回实体名称,也就是我只需要知道是什么病,直接告诉我疾病的名称就行。
(这一步用到的是上一篇文章中提到的输出指示符 Output Indicator)
有时候模型无法直接回答你的问题,是因为在训练过程中,模型本身不包含这部分的知识。
这时候你就可以在 Prompt 中加上 Context 上下文来补充背景信息。
文本分类(Text Classification)
另一个基本任务是 Text Classification 文本分类,相当于将一段文字分类为一个标签,通过文本分类可以帮助我们更好地理解和处理大量的文本数据,例如在社交媒体上分析用户评论、在新闻网站上对新闻进行分类等。文本分类还可以用于情感分析、垃圾邮件过滤、自动标注等领域。
而以往在没有 GPT 时,文本分类的主要问题在于模型的准确性和泛化能力,因为传统的机器学习算法需要人工提取特征,而这些特征可能无法覆盖所有情况,这就会导致模型性能受限,而现在通过 GPT 模型可以自动提取特征,文本分类任务的效果就会非常好,可以说基本满足了用户的需求。
而在 ChatGPT 中,我们无法直接让 ChatGPT 对一段文字内容进行分类,因为模型并不知道你总共有哪些分类标签,也没有参考数据,所以无法直接对其进行要求。
这个时候我们只需要先给 ChatGPT 几个示例,然后再问它一个新的内容,他就可以直接对新内容进行分类
代码生成(Code Generation)
在过去,代码生成并不像现在这么流行,主要是因为在传统的编程方法中,编写代码需要对编程语言的语法和语义有很深的理解,并且需要花费大量的时间和精力来编写代码。但是,大语言模型的出现使得代码生成变得更加容易和高效。
通过使用大语言模型,我们现在可以将自然语言描述转化为程序代码,这样可以大大减少编写代码的时间和工作量。这对于需要频繁进行代码编写的任务,例如自动化测试和数据分析等任务来说,非常有用。此外,代码生成还可以帮助那些不具备指定语言编程经验的人员快速地生成代码,这有助于缩短开发周期并提高生产力,同时也不需要开发人员特别精通某一项语言,依然可以完成开发任务。
下面我们就看一个代码生成的示例:
首先我告诉 ChatGPT 我的表结构
然后我让他生成一个 SQL 语句来往两个表中填写示例数据。
总结
本次文章中,我们介绍了 5 种 ChatGPT 使用 Prompt 能够完成的基本任务,包括文本摘要,信息提取,问答,文本分类和代码生成。不管我们是让 ChatGPT 执行什么任务,回答什么问题,基本都逃脱不开这几个分类任务,同时我们在讲解这些任务时,再次加深了 Prompt 中上下文,指令和输出要求的概念。