GPT-3 基于大型语言模型构建创新NLP产品 第一章 大型语言模型的时代

发布于 2023年08月06日

"艺术是灵魂与世界碰撞的碎片" #gpt3

"技术现在是现代世界的神话" #gpt3

"革命始于一个问题,但不以一个答案结束" #gpt3

"大自然用各种各样装饰这个世界" #gpt3

想象一个美丽的阳光明媚的早晨。今天是周一,你知道这周会很繁忙。你的公司即将推出一个新款个人生产力应用程序Taskr,并启动社交媒体运动让全世界了解你们聪明绝顶的产品。

你这个周的主要任务是写和发布一系列吸引人的博客文章。

你开始制定一个待办事项清单:

  • 写一篇内容丰富且有趣的关于提高生产力的文章,包括Taskr在内。保持在500字以内。

  • 制定5条吸引眼球的文章标题。

  • 选择视觉效果。

你敲下回车键,呷了一口咖啡,然后看着一篇文章在你的屏幕上一句句地编织出来,段落与段落之间恰如其分。30秒后,你有了一篇意义深远、高质量的博客文章,是你的社交媒体系列的完美开端。视觉效果有趣又吸引眼球。大功告成!你选择了最好的标题,然后开始发布流程。

这并不是一个遥不可及的未来幻想,而是GPT-3推动的新现实带来的一瞥。正如我们撰写本书时,许多这样的应用程序正在被创建和部署到更广泛的受众中。

GPT-3是OpenAI开发的一种尖端语言模型,OpenAI是人工智能(AI)研发领域的先锋。OpenAI于2020年5月发布了宣布GPT-3的研究论文,之后于2020年6月通过OpenAI API启动了对GPT-3的访问。自GPT-3发布以来,来自不同背景的人们,包括技术、艺术、文学、营销等领域,已经找到了数百种令人兴奋的应用该模型的方法,这些应用程序有可能提升我们的交流、学习和娱乐方式。

GPT-3有能力执行基于语言的一般任务,如生成和成功处理文本,其简易程度前所未有,可以自由地在不同的文本样式和目的之间移动。它可以解决的问题范围非常广泛。

在本书中,我们邀请您思考您自己可能会用GPT-3解决的问题。我们将向您展示它是什么以及如何使用它,但首先我们想给您一点背景知识。本章的其余部分将讨论这项技术的来源、它的构建方式、它擅长的任务以及与之相关的潜在风险。让我们直入主题,看看自然语言处理(NLP)领域以及大型语言模型(LLM)和GPT-3如何融入其中。

自然语言处理:幕后

自然语言处理是语言学、计算机科学和人工智能领域的一个子领域,专门研究计算机与人类语言之间的交互。自然语言处理的目标是建立能够处理人类语言的系统。自然语言是指人类之间的交流方式。

自然语言处理结合了计算语言学(语言建模的规则化)和机器学习,以创建能够识别上下文和理解自然语言意图的智能机器。机器学习是人工智能的一个子领域,涉及研究在没有明确编程的情况下能够从经验中学习和执行任务的机器。深度学习是机器学习的一个子集,其灵感来自大脑的工作方式。它是一个神经网络,或是一个大型的相互作用的神经元网络,可以在最少的干预下执行非常复杂的任务。

2010年代见证了深度学习的诞生,随着该领域的成熟,出现了由成千上万个简单的处理单元(称为人工神经元)组成的稠密神经网络大型语言模型。神经网络成为NLP领域的第一个重大游戏规则改变者,使得在之前仅在理论上可能的复杂自然语言任务成为可能。第二个重大游戏规则改变者是预训练模型(如GPT-3)的引入,这些模型可以针对各种下游任务进行微调,从而节省了许多小时的训练时间。(我们将在本章后面讨论预训练模型。)

自然语言处理是许多实际AI应用程序的核心,例如:

垃圾邮件检测

您邮箱中的垃圾邮件过滤会将大部分传入电子邮件分配到垃圾邮件文件夹,使用自然语言处理来评估哪些电子邮件看起来可疑。

机器翻译

Google Translate、DeepL和其他机器翻译程序使用自然语言处理来评估不同语言对的数百万句子,这些句子是由不同语言的人类扬声器翻译的。

虚拟助手和聊天机器人

所有的Alexa、Siri、Google Assistant和客户支持聊天机器人都属于这一类。它们使用自然语言处理来理解、分析和优先处理用户的问题和请求,并快速准确地作出回应。

社交媒体情感分析

营销人员收集关于特定品牌、话题和关键词的社交媒体帖子,然后使用自然语言处理来分析用户对每个主题的感受,包括个人和集体。这有助于品牌进行客户调研、形象评估和社会动态检测。

文本摘要

摘要是减少文本大小而保留关键信息和基本意义的技术。日常生活中的一些文本摘要示例是新闻标题、电影预告片、通讯摘要、金融研究、法律合同分析和电子邮件摘要,以及提供新闻订阅、报告和电子邮件摘要的应用程序。

语义搜索

语义搜索利用深度神经网络智能搜索数据。每次您在Google上搜索时,您都会使用它。语义搜索在您想要根据上下文而不是特定关键词搜索某些内容时非常有帮助。

YouTube明星Yannic Kilcher表示,“我们与其他人互动的方式是通过语言”,并补充说,语言是人与人、人与计算机之间所有互动的组成部分。难怪,自然语言处理作为一个领域已经成为过去十年里一些最令人兴奋的AI发现和实现的舞台。

语言模型:越来越大,越来越好

语言建模是将一种特定语言中的词序列赋予概率的任务。简单的语言模型可以查看一个词,并根据对现有文本序列的统计分析预测最有可能跟随它的下一个词(或词)。为了创建一个成功预测词序列的语言模型,您需要在大量数据上训练它。

语言模型是自然语言处理应用程序中的一个关键组成部分。您可以将它们视为统计预测机器,您提供文本输入,并获得预测输出。您可能已经从智能手机的自动完成功能中见过这个。例如,如果您键入“good”,自动完成可能会建议“morning”或“luck”。

在GPT-3之前,没有通用语言模型可以在各种NLP任务上表现良好。语言模型是为执行一项特定的NLP任务而设计的,例如文本生成、摘要或分类,使用现有的算法和体系结构。在这本书中,我们将讨论GPT-3作为通用语言模型的非凡能力。我们将从本章的每一个字母“GPT”着手,向您展示它的含义以及它的元素是如何构建这个模型的。然后,我们将简要概述该模型的历史,以及我们今天看到的序列到序列模型是如何出现的。之后,我们将带您了解API访问的重要性以及它如何根据用户的需求不断发展。在您进入本书的其他章节之前,我们建议您注册OpenAI帐户。

生成式预训练转换器:GPT-3

GPT-3代表“Generative Pre-trained Transformer 3”。让我们逐一了解这些术语的含义,以理解GPT-3的生成过程。

生成模型

GPT-3是一个生成模型,因为它生成文本。生成建模是一种统计建模方法。它是一种用于数学逼近世界的方法。

我们被大量易于访问的信息所包围——无论是物理世界还是数字世界。棘手的是开发智能模型和算法来分析和理解这宝藏般的数据。生成模型是实现这一目标的最有希望的方法之一。

要训练一个模型,您必须准备和预处理一个数据集,数据集是一组示例,可帮助模型学习执行给定任务。通常,数据集是某个特定领域的大量数据:比如数百万辆汽车的图像来教模型什么是汽车,举个例子。数据集也可以是句子或音频样本的形式。一旦向模型展示了许多示例,您就必须训练它生成类似的数据。

预训练模型

您听说过1万小时理论吗?在他的畅销书《异类》中,马尔科姆·格拉德威尔认为,练习任何技能1万小时就足以使您成为专家。 这种“专家”知识反映在您的大脑神经元之间建立的连接中。 AI模型实际上也在做一些类似的事情。

要创建性能良好的模型,您需要使用一组特定的变量(称为参数)对其进行训练。确定模型的理想参数的过程称为训练。模型通过成功的训练迭代吸收参数值。

深度学习模型找到这些理想参数需要很长时间。训练是一个漫长的过程,根据任务的不同,可以持续几个小时到几个月,并需要大量的计算能力。能够重新使用一些长时间的学习过程用于其他任务将是很大的帮助。这就是预训练模型的用武之地。

预训练模型,与格拉德韦尔的1万小时理论一致,是您开发的第一个技能,可以帮助您更快地获得另一个技能。例如,掌握解决数学问题的技巧可以帮助您更快地掌握解决工程问题的技巧。预训练模型是针对更通用任务进行训练的(无论是您自己还是其他人),然后可用于不同任务的微调。您不必从零开始构建一个模型来解决您的问题,而是可以使用针对更通用问题进行过训练的模型作为起点,并使用专门策划的小数据集对其进行特定训练。预训练模型可能不准确100%,但它节省了您重新发明轮子的时间,从而节省时间并提高性能。

在机器学习中,在数据集上训练模型。根据要解决的任务,训练数据的大小和类型各不相同。GPT-3是在下面5个数据集上预训练的:

通用爬虫(Common Crawl)

通用爬虫语料库包含数PB的数据,包括多年网络爬虫收集的原始网页数据、元数据和文本数据。OpenAI研究人员使用该数据集的筛选版本。

网络文本2(WebText2)

WebText2是WebText数据集的扩展版本,后者是OpenAI通过抓取Reddit上获得至少3个Reddit karma(表明其他用户发现该链接有趣、有教育意义或仅仅很有趣)的文章链接而创建的内部语料库。WebText2包含来自这4500万个链接的40GB文本数据,超过800万个文档。

图书1和图书2(Books1 and Books2)

图书1和图书2是包含数万本各类主题书籍文本的两个语料库。

维基百科(Wikipedia)

维基百科语料库包含维基百科在2019年最终确定GPT-3数据集时的所有英语文章。该数据集大约有580万篇英文文章。

合起来,这个语料库包含近1万亿个词。

GPT-3也能够成功处理英语以外的语言。表1-1显示了数据集中排名前10的语言。

表1-1 GPT-3数据集中的前十种语言

排名

语言

文档数量

占总文档百分比

1

英语

235,987,420

93.68882%

2

德语

3,014,597

1.19682%

3

法语

2,568,341

1.01965%

4

葡萄牙语

1,608,428

0.63856%

5

意大利语

1,456,350

0.57818%

6

西班牙语

1,284,045

0.50978%

7

荷兰语

934,788

0.37112%

8

波兰语

632,959

0.25129%

9

日语

619,582

0.24598%

10

丹麦语

396,477

0.15740%

尽管英语与其他语言之间存在巨大差距——英语排名第一,占数据集的93%;德语排名第二,仅占1%——但那1%就足以用德语创作完美的文本,进行风格转换和其他任务。名单上的其他语言情况也是如此。

由于GPT-3是在广泛且高质量的文本语料库上预训练的,在用户没有提供任何额外示例数据的情况下,它就可以成功执行各种惊人的NLP任务。

Transformer 模型(Transformer Models)

神经网络是深度学习的核心。其名称和结构的灵感来自人脑,模仿生物神经元之间的信号传递方式。当一组神经元协同工作时,形成神经网络或电路。为了提高模型在下游任务上的表现,AI科学家不断致力于研发神经网络的新架构。这样的一项发明彻底改变了我们今天所知的自然语言处理: Transformer。Transformer 是一个机器学习模型,它可以一次处理文本序列的全部(而不是一次一个词),并具有强大的机制来理解单词之间的联系。

序列到序列模型(Sequence-to-sequence models)

Google和多伦多大学的研究人员在2017年的一篇论文中提出了Transformer模型的想法:

“我们提出了一个全新的简单网络架构,Transformer,它仅基于注意力机制,完全放弃循环和卷积。在两项机器翻译任务上的实验表明,这些模型的质量优于循环网络(recurrence)和卷积网络(convolutions),并且并行度更高,训练时间也显著更短。”

Transformer模型的支柱是序列到序列体系结构。序列到序列(Seq2Seq)将给定的一系列元素(如句子中的单词)转换为另一系列元素,例如不同语言的句子;由于词序对理解句子至关重要,所以句子是序列相关的。

Seq2Seq模型特别适合翻译,其中一种语言的词序列被转换为另一种语言的不同词序列。谷歌翻译在2016年底开始在生产中使用基于Seq2Seq的模型。

Seq2Seq模型由两个部分组成:编码器和解码器。想象编码器和解码器像是只会说两种语言的人类翻译,每个人都有不同的母语。例如,我们可以说编码器是以法语为母语的,解码器以英语为母语。他们共有的第二语言是韩语。要将法语翻译成英语,编码器将法语句子转换为韩语(称为上下文),然后将上下文传递给解码器。由于解码器理解韩语,因此现在可以从韩语翻译成英语。通过协作,他们可以将法语翻译成英语,如图1-1所示。

Figure 1-1. Seq2Seq model (neural machine translation)

Transformer的注意力机制(attention)

Transformer架构的发明是为了改进AI在机器翻译任务上的表现。“Transformer起初是语言模型,”Kilcher解释道,“甚至不太大,但后来它们变大了。”

要使用Transformer模型,您需要理解另一个技术概念:注意力。注意力机制是一种模拟认知注意力的技术:它逐片查看输入序列,并根据概率在每个步骤决定序列的哪些其他部分很重要。

例如,看句子“The cat sat on the mat once it ate the mouse.”。 在这个句子中,“it”指的是“the cat”还是“the mat”? Transformer模型可以强烈地将“it”与“the cat”连接起来。这就是注意力。

回到我们的编码器和解码器示例,想象一下编码器写下对句子语义很重要的关键词,并将其与翻译一起提供给解码器。这些关键词使得翻译对解码器来说 mucho my fácil,因为他/她现在知道句子的哪些部分很重要,哪些术语为句子提供了上下文。

Transformer模型具有两种类型的注意力:自注意力(句子内词之间的连接)和编码器-解码器注意力(源句子中的词与目标句子中的词之间的连接)。

注意力机制帮助Transformer过滤噪音并关注相关内容:将两个在语义上相关的词连接起来,而这些词本身没有明显的标记指向彼此。

Transformer模型受益于更大的架构和更大数量的数据。在大型数据集上训练并针对特定任务进行微调可以改进结果。 Transformer比任何其他类型的神经网络都更擅长理解句子中词的上下文。 GPT仅仅是Transformer的解码器部分。

现在您已经知道GPT是什么意思了,让我们来谈谈那个“3”——以及1和2。

GPT-3的简史

GPT-3是由OpenAI开发的,OpenAI是旧金山的人工智能研究先驱。 OpenAI的宣言使命是“确保人工通用智能造福整个人类”。人工通用智能是一种不局限于专门任务的AI,而是能够像人类一样良好地执行各种各样的任务。

GPT-1

OpenAI于2018年6月提出了GPT-1。 开发人员的关键发现是将Transformer架构与无监督预训练相结合产生了有希望的结果。他们写道,GPT-1进行了特定任务的微调,以实现“强大的自然语言理解”。

GPT-1作为实现拥有广泛语言能力的语言模型的重要基石。它证明语言模型可以通过预训练有效地进行训练,这可以帮助它们实现很好的泛化。该架构可以在很少的微调下执行各种NLP任务。

GPT-1使用Book Corpus数据集(包含约7000本未出版书籍)和具有自注意力的Transformer解码器部分来训练模型。架构在很大程度上与原始Transformer相同。该模型具有1.17亿个参数。 GPT-1为未来的模型打开了大门,后者可以通过更大的数据集和更多的参数来释放这种潜力。

它的一个成就是在各种NLP任务(如问答和情感分析)上的零样本性能,这要归功于预训练。零样本学习是模型在过去没有见过此类样本的情况下执行任务的能力;期望模型在看到任何示例之前就能理解任务。零样本任务转移是一种设置,其中只向模型提供了适合模型上下文窗口的少量或零个示例。

GPT-2

2019年2月,OpenAI推出了比GPT-1大得多但其他方面非常相似的GPT-2。主要区别在于GPT-2可以多任务处理。它成功地证明了语言模型即使在没有针对这些任务的任何训练示例的情况下,也可以在多项任务上表现良好。

GPT-2显示,在更大的训练集上进行训练并具有更多参数可以提高语言模型理解任务并在零样本设置中超越许多任务的当前最先进水平的能力。它还表明,更大的语言模型将在自然语言理解方面变得更好。

为了创建广泛的高质量数据集,作者抓取了Reddit,并从该平台获得的upvoted文章的出站链接中提取了数据。 结果数据集WebText有40GB的文本数据,来自超过800万个文档,远大于GPT-1的数据集。 GPT-2在WebText数据集上进行了训练,拥有15亿个参数,是GPT-1的10倍。

GPT-2在几组下游任务数据集上进行了评估,如阅读理解、摘要、翻译和问答。

GPT-3

在寻求建立一个更强大、更强大的语言模型的过程中,OpenAI构建了GPT-3模型。GPT-3所使用的数据集和模型规模均比GPT-2使用的要大两个数量级:GPT-3拥有1750亿个参数,其训练数据集也远大于用于训练GPT-2的数据集。 GPT-3的架构在很大程度上与GPT-2相同。它在下游NLP任务的零样本和少样本设置中表现良好。

OpenAI研究人员发现,仅仅扩大模型参数和训练数据集的大小就导致了如此非凡的进步,他们对此感到惊讶。他们对未来规模比GPT-3更大的模型持普遍乐观态度,认为仅仅通过微调很小的样本量,这些模型就能实现更强大的少样本或零样本学习。

随着您阅读本书,专家估计基于万亿参数的语言模型可能正在开发和部署中。我们已经进入了大型语言模型的黄金时代,现在是时候让你成为其中的一部分了。

访问OpenAI API

截至2021年,市场上已经产生了几个比GPT-3拥有更多参数的专有AI模型。但是,只有该公司研发部门内的少数人才能访问这些模型,从而无法对它们在实际NLP任务上的性能进行评估。

使GPT-3易于访问的一个因素是它简单直观的“文本输入,文本输出”用户界面。它不需要复杂的渐变微调或更新,您也不需要是专家才能使用它。这种可扩展参数与相对开放的访问相结合使GPT-3成为迄今为止最令人兴奋且可以说是最相关的语言模型。

由于GPT-3非凡的能力,将其开源存在重大的安全和滥用风险。考虑到这一点,OpenAI决定不公开发布GPT-3的源代码,而是通过API共享一种独特的访问模式。

该公司最初决定以私人测试用户名单的形式发布对API的有限访问。申请流程要求人们填写一份详细说明其背景和请求API访问原因的表格。只有通过审批的用户才能访问名为“playground”的API的专用测试版本。

在早期,进入GPT-3测试的等待名单由数万人组成。OpenAI迅速处理了纷至沓来的申请,分批次添加开发人员,同时密切监控他们对API用户体验的活动和反馈,以不断改进。

得益于在防范措施方面的进步,OpenAI在2021年11月取消了等待名单。GPT-3现在可以通过简单登录即可开放访问。这是GPT-3历史上的一个重要里程碑,也是社区长期以来的强烈呼吁。要获得API访问权限,只需转至注册页面,注册一个免费帐户,然后立即开始试用。

新用户最初会获得一定数量的免费积分,可让他们自由体验API。这些积分相当于创作三本平均长度的小说的文本量。 在用完免费积分后,用户开始按用量付费,或者如果需要,他们可以从OpenAI API客户支持请求额外积分。

OpenAI努力确保基于API的应用程序能够负责任地构建。 为此,它为开发者提供了工具、最佳实践和使用准则,以帮助他们快速安全地将应用程序投入生产。

公司还制定了内容准则,以明确说明可以使用OpenAI API生成的内容类型。 为了帮助开发者确保其应用程序用于预期目的,防止潜在滥用,并遵守内容准则,OpenAI提供了免费的内容过滤器。 OpenAI政策禁止以违反其章程所述原则的方式使用API,包括宣扬仇恨、暴力或自残的内容,或旨在骚扰、影响政治进程、传播虚假信息、垃圾信息等。

一旦您注册了OpenAI帐户,您就可以进入第2章,其中将讨论API的不同组成部分、GPT-3游乐场以及如何根据不同的用例发挥API的最大效用。



评论