AI 模型与平台

GPT-3:语言模型的少量学习

mm
将 Unite.AI 添加到您在 Google 上的首选来源

过去几年,人工智能和机器学习行业见证了自然语言处理系统的迅速发展和应用,研究人员能够以高度灵活和任务无关的方式实施自然语言处理实践,以实现下游任务的转移。

最初,单层表示使用词向量,然后将其输入到任务特定的架构中。接下来,循环神经网络(RNN)架构使用多层表示和上下文状态来形成更好的表示。最近,我们有转移语言模型或预训练的循环模型,它们完全消除了对任务特定架构的需求,而是通过对这些网络进行微调。

转移语言模型在自然语言处理行业中取得了重大突破,因为它们在回答问题、阅读理解、文本蕴涵和其他任务上取得了巨大的进步。

然而,尽管转移语言模型具有优势,但它们有一个重大局限性,即它们需要任务特定的微调或任务特定的数据集才能在任务上达到所需的性能。此外,转移语言模型还需要开发人员对数据集进行微调,使用数十万个特定于任务的示例。

不言而喻,消除对任务特定数据集和任务特定微调的需求将是非常理想和有益的,出于以下几个原因。

现有预训练转移语言模型或循环模型的问题

  • 限制实用性和适用性

首先,语言模型需要大量带有标签的数据集,这限制了语言模型的实用性和适用性。语言模型的应用范围非常广泛,从生成短篇故事到纠正语法错误,到生成概念示例。有时,收集大量带有标签的数据集,尤其是当这个过程需要为每个任务重复时,可能是一个具有挑战性的任务。

  • 利用训练数据中的虚假关联

训练分布的局限性和狭隘性,加上模型的表达能力,可能会导致利用训练数据中的虚假关联的潜力增加。这种潜力可能会导致微调和预训练范式中的问题,因为转移语言模型的设计目的是在预训练期间吸收大量信息。

此外,前几代模型的工作表明,大型模型并不总是能带来更好的结果。此外,研究还表明,在这种范式下实现的一般化可能会导致性能不佳,因为模型过于特定于训练数据,无法在训练数据范围之外的场景中良好地执行。

  • 与人类学习的比较

最后,与转移语言模型相比,人类不需要大量的训练数据来学习大多数语言任务。通常,一个简短的自然语言指令或一个小的语言任务示例就足以让人类以一定的竞争力理解和执行语言任务。

人类的适应能力具有多种实际优势,因为它允许他们在不同的技能之间切换或将它们组合起来,以更好地执行某种方言,这是当前自然语言处理系统无法做到的。

使用元学习和GPT-3解决问题

解决上述挑战的一种可能方法是使用元学习,这是一种现代机器学习概念,允许模型在训练期间开发更广泛的技能和模式识别能力,然后使用这些学习到的能力快速适应或识别所需的任务。

元学习通过一种称为“上下文学习”的技术在语言模型架构中实施,该技术使用预训练语言模型的文本输入作为任务规范。在此过程中,模型根据自然语言指令进行条件化,并可能使用几个示例,然后模型预测任务的下一步。

元学习的主要问题是,尽管它显示出积极的潜力,但它仍然不如微调方法在自然语言架构中有效,需要进一步改进才能成为克服语言任务的实用方法。

除了元学习外,另一种日益流行的方法是增加变压器语言模型的容量。在过去的几年中,转移模型的容量已经大幅增加,从RNSS18模型的1亿参数,DCLT18模型的3亿参数,RWC19模型的15亿参数,SSP19模型的80亿参数,RSR19模型的110亿参数,到TUR20模型的170亿参数。

增加模型的容量或参数数量在历史上一直导致文本合成的改进,并且有迹象表明,下游任务相关的对数损失也会随着规模的增加而平滑改进。

这让我们来到了GPT-3模型,它拥有超过175亿个参数,当它发布时,它是容量最大的转移语言模型。现在,让我们来讨论GPT-3模型。

GPT-3模型介绍

GPT-3是一种自回归语言模型,拥有超过175亿个参数,于2020年由OpenAI发布。GPT-3也被归类为大型语言模型,与其前身GPT-2模型一样,是一个解码器仅的深度学习变压器模型,使用卷积架构来生成文本数据。

GPT-3模型评估其自身的上下文学习能力,并在超过二十个自然语言处理数据集和多个新任务上进行评估。对于每个任务,GPT-3模型在三个条件下进行评估:

  • 少量学习或上下文学习:在少量学习中,GPT-3模型允许尽可能多的分布适合模型的上下文窗口。
  • 单次学习:在单次学习中,模型只允许一个示例。
  • 零次学习:在零次学习中,没有示例,只有一个自然语言指令输入到模型中。

从广泛意义上讲,GPT-3模型在零次、单次和少次设置中实现了所需的性能,并且在少次设置中,大多数时候都优于最先进的转移模型。此外,GPT-3模型在单次和零次设置中也表现良好,特别是在需要快速推理或注意力的自然语言任务中,例如使用新词、解析单词或执行算术运算。在少次设置中,GPT-3模型生成类似人类写作的合成新闻文章,当这些文章被人类评估者评估时。

GPT-3模型:方法

GPT-3模型使用了一种传统的预训练方法,包括模型、数据和训练,类似于RWC-19转移语言模型的预训练过程。GPT-3模型通过增加模型大小、数据集大小、数据集多样性和训练时间来扩大规模。

该模型还使用了一种上下文学习方法,这种方法类似于RWC-19模型的方法,但通过系统地探索数据集上下文中的不同学习模式来调整它。

让我们开始探索这些设置,并评估GPT-3模型在不同设置下的性能。

微调

微调模型是转移语言模型中的传统方法,涉及通过在特定任务的监督数据集上训练预训练模型来更新预训练模型的权重,使用数十万个特定于该任务的标记示例。

微调方法的好处是它可以在许多基准测试中提供强大的性能。另一方面,使用微调方法的主要限制是它需要每个任务都有一个新的大型数据集,可能会利用训练数据集的虚假特征,并可能导致与人类性能的不公平比较和对分布外数据的泛化不佳。

GPT-3模型的当前范围不包括微调方法,因为它具有任务无关的性能,尽管微调可以在未来应用于GPT-3模型。

少量学习

少量学习是指GPT-3模型在推理期间接收到任务的几个示例作为条件,但模型的权重不会更新。在少量学习设置中,数据集通常具有一个带有上下文和期望完成的示例(例如,法语句子及其英语翻译)。少量学习设置为模型提供K个带有上下文和完成的示例,然后提供一个最终的上下文,并期望模型提供完成。

使用少量学习设置的主要优势是它大大减少了对任务特定数据的需求,并减少了从大型数据集中学习狭窄分布的潜力。另一方面,少量学习的主要缺点是少量学习设置中的结果不如其他最先进的微调模型那么出色。

单次学习

在单次学习设置中,模型只接收到一个示例,其余的与少量学习设置相同。单次学习设置之所以相关,是因为在转移语言模型中,它最能模拟人类学习任务的方式。因为在大多数任务中,给出一个示例通常是足够的,否则可能很难理解任务的上下文。

零次学习

在零次学习设置中,没有示例,模型只接收到一个自然语言指令来描述任务。零次学习方法提供了最大便利性,强壮性,并避免了虚假关联,但它也是最具挑战性的设置。因为在某些情况下,即使对于人类来说,理解任务的上下文也可能很困难。

尽管如此,对于某些任务来说,零次学习设置是最能模拟人类执行自然语言任务的方式。

上图比较了少量学习、单次学习和零次学习设置,当执行自然语言任务时,例如将英语句子翻译成法语。

GPT-3:模型架构

GPT-3模型使用与GPT-2模型相同的架构,包括预归一化、修改初始化和可逆标记化技术,使用GPT模型,除了使用替代策略进行局部带状稀疏注意力模式和变压器层中的交替密集层,类似于Sparse Transformer。

为了研究模型性能对模型大小的依赖,开发人员训练了8个不同大小的模型,跨越三个数量级,从1.25亿到175亿参数,不同的模型大小包括GPT-3模型。以前的工作表明,验证损失应该是模型大小的平滑幂律函数,具有足够的训练数据。训练不同大小的模型允许开发人员测试这个假设,既适用于下游语言任务,也适用于验证损失。

上图比较了用于GPT-3开发的8个不同模型的大小和架构。这里,n(params)定义了可训练参数的总数,n(layers)定义了模型中的总层数,d(model)定义了瓶颈层中的单元数,d(head)定义了每个注意力头的维度。每个模型的上下文窗口都是相同的,包含2048个标记。

此外,为了最小化节点之间的数据传输,模型沿着GPU的深度和宽度进行分区。每个模型的架构参数都是根据计算效率和最大精度的模型布局在GPU上进行选择的。

训练数据集

通常,大型语言模型使用的数据集已经随着最近的发展而显著扩大,并且以Common Crawl数据集为顶点,Common Crawl数据集包含超过一万亿个不同的单词。数据集的大小足以训练GPT-3模型,而无需多次更新相同的序列。然而,研究和性能分析表明,Common Crawl数据集的轻度过滤或未过滤版本的质量相对于更精心策划的数据集来说较低。

为了解决数据集平均质量的问题,开发人员采取了3个步骤来提高数据集的质量。

  1. 开发人员下载并过滤了Common Crawl数据集的版本,基于高质量参考语料库的范围。
  2. 开发人员在整个数据集上执行了文档级别的模糊重复,以保存验证集的完整性作为过拟合的有效衡量标准,并防止冗余。
  3. 开发人员还将高质量的参考语料库添加到训练数据中,以增强Common Crawl数据集的多样性。

以下图表显示了用于训练GPT-3模型的最终数据集的比例或混合。未过滤的Common Crawl数据包含超过45TB的纯文本,过滤后减少到570GB的数据,相当于超过4000亿个字节对编码标记。值得注意的是,训练数据集中被认为是高质量的数据集会更频繁地被采样,而不是按其大小进行采样。因此,像Books2和Common Crawl这样的数据集在训练期间被采样不到一次,而其他数据集被采样多次。这使得模型可以接受少量过拟合,以换取在高质量训练数据上进行训练。

一个与大型预训练语言模型相关的重大问题是,它们可能会在预训练过程中看到开发或测试集,从而污染下游任务。为了减少这种潜在污染,开发人员搜索了GPT-3模型所研究的基准测试的开发和测试集的重叠,并尝试删除这些重叠。

上图显示了GPT-3模型训练期间使用的总计算量。该模型使用神经语言模型的缩放法来训练比典型的更大的模型,但使用更少的标记。因此,GPT-3和RoBERTa-Large(比GPT-3小10倍)模型在预训练过程中都使用了几乎50 petaflops/天的计算量。

评估

对于少量学习,模型通过从任务的训练数据集中随机抽取K个示例作为条件来评估每个示例,然后用1或2个新行分隔,具体取决于任务。对于Storycloze和LAMBADA,模型从开发集中抽取条件示例,并在测试集上进行评估,因为没有可用的有监督的训练数据集。对于Winograd,只有一个数据集,因此条件示例直接从中抽取。

K可以是任何值,从0到模型上下文窗口允许的最大值n(ext)= 2048,适用于所有模型,通常可以容纳10到100个示例。较大的K值通常会带来更好的结果,但并非总是如此,这就是为什么当模型有一个测试集和一个单独的开发集可用时,模型会在开发集上尝试几个K值,然后根据结果在测试集上运行最佳K值。

此外,对于需要从多个选项中选择正确完成的任务,开发人员提供K个正确完成的示例,以及一个上下文完成的示例,然后提供一个只有上下文的示例,任务根据每个完成的语言模型的似然度进行比较。对于需要二元分类的任务,模型通常以更语义化和更有意义的名称提供选项,然后将任务视为多项选择,有时也将任务框定为RSR模型和架构所做的那样。

对于需要自由形式完成的任务,模型使用与RSR框架中使用的相同的参数的束搜索,束的长度为4,惩罚为0.6。然后使用F1相似度、精确匹配或BLEU(取决于数据集的标准)对模型进行评分。

结果

上图显示了GPT-3模型架构中8个模型的训练曲线,如前所述。与KMH语言模型的结果类似,GPT-3模型的性能遵循一种规律,当有效地使用训练计算时。只有当这种趋势被扩展两个数量级时,才会出现对该规律的轻微偏差。人们可能会认为,交叉熵损失的改进是由于对训练语料库的虚假细节进行建模。然而,交叉熵损失的改进导致了在广泛的自然语言处理任务中的一致性改进。

在评估8个不同模型在广泛的训练数据上的性能之前,数据集被分为8个类别,代表类似的任务。这些类别是

  1. 评估传统语言建模任务和类似语言建模的任务,例如完形填空或句子/段落完成任务。
  2. 评估“闭卷”问答任务。
  3. 评估模型在一击和少击设置中翻译语言的能力。
  4. 评估模型在Winograd模式任务中的性能。
  5. 评估模型在常识推理或问答数据集上的性能。
  6. 评估阅读理解任务。
  7. 评估SuperGLUE基准测试套件。
  8. 探索NLI。

语言建模、完成和完形填空任务

在本节中,评估GPT-3模型在传统语言建模任务和需要预测单个感兴趣单词、完成段落或句子或完成文本片段的任务上的性能。让我们简要讨论它们。

语言建模

GPT-3模型计算PTB(宾夕法尼亚树库)数据集上的零次困惑度。模型省略了与维基百科相关的任务,因为它们已经包含在模型的训练数据中,并且省略了一亿字基准,因为它会对数据集造成重大干扰。然而,PTB数据集解决了这些问题,因为它可以在现代互联网之前。GPT-3模型架构中最大的模型在PTB数据集上以15个点的差距取得了新的最优成绩,达到20.50的困惑度。

LAMBADA

LAMBADA数据集用于测试模型在段落或文本中的长距离依赖建模。它要求模型在读取段落以获取上下文后预测句子的最后一个单词。此外,语言模型的连续缩放会在基准测试上带来递减的回报。

GPT-3模型在LAMBADA上达到76%的准确率,比以前的最佳模型高出8%以上。此外,LAMBADA模型展示了少量学习的灵活性,因为它以经典方式解决了问题。LAMBADA中的句子完成通常是句子的最后一个单词,但语言模型无法知道这一点,所以它不仅为正确的完成分配概率,还为段落中的其他继续分配概率。

此外,当提供给GPT-3模型的示例以某种方式修改时,模型返回超过86%的准确率,高于以前的模型18%以上。另外,结果还表明,少量学习设置中的模型性能会随着模型大小的增加而成比例增加。虽然这种策略将GPT-3架构中最小的模型减少了20%,但它通过10%提高了主要GPT-3模型的准确率,该模型具有175亿个参数。

闭卷问答

闭卷问答是尝试衡量GPT-3模型根据广泛的事实知识回答问题的能力。由于此类问题通常具有大量可能的查询,因此该任务通常使用信息检索系统来找到与问题和检索的文本相关的文本,并结合学习生成答案的模型来完成。

上图比较了GPT-3模型在不同模型和数据集上的结果。在TriviaQA数据集上,模型在零次设置中达到64.3%的准确率,在一击和少击设置中分别达到68%和71.2%的准确率。

可以明显看出,GPT-3模型在零次设置中比微调的T5-11B模型高出14%以上。

上图显示GPT-3模型的性能随着模型大小的增加而平滑增长。该性能表明,语言模型会从数据集中继续学习,因为它们的容量增加。

最后的想法

可以肯定地说,GPT-3是LLM行业的一个革命性阶段,因为GPT-3有助于推动语言模型可以做的事情的界限。正是GPT-3所取得的发展和克服的障碍为迄今为止最先进和最准确的LLM铺平了道路,即GPT-4。

专业为工程师,心为作家。 Kunal是一名技术作家,对AI和ML有着深厚的热爱和理解,致力于通过其引人入胜和信息丰富的文档来简化这些领域中的复杂概念。