Connect with us

人工智能

GPT-3 : Few Shot Learning for Language Model?

mm

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

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

转移语言模型在自然语言处理行业中是一个重要的转折点,因为它们在回答问题、阅读理解或文本、文本蕴涵等具有挑战性的任务上取得了巨大的进展。

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

不言而喻,消除对特定任务数据集和特定任务微调的需求将对自然语言处理行业具有极高的可取性和有益性,理由众多。

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

  • 限制实用性和适用性

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

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

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

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

  • 与人类学习的比较

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

人类的适应能力具有多种实际优势,因为它允许他们在方言中切换或混合不同的技能,以更好地执行,而这超出了当前自然语言处理系统的能力。

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

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

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

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

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

增加模型的容量或增加参数历史上已经导致了文本合成的改进,并且已经表明,日志损失也会随着规模的增加而平滑地改进,日志损失与下游任务相关。

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

GPT-3模型介绍

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

GPT-3模型衡量其自身的上下文学习能力,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亿参数,不同的模型大小包括125M、1.3B、2.7B、6.7B、13B、33B、66B和175B参数,最后一个被称为GPT-3模型。之前的LLM模型工作表明,验证损失的缩放应该是模型大小的平滑幂律函数。训练不同大小的模型允许开发人员测试这个假设,既用于下游语言任务,也用于验证损失。

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

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

训练数据集

通常,大型语言模型使用的数据集已经随着最近的发展而显著扩大,并且它们最终形成了一个包含超过1万亿个单词的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到模型的上下文窗口允许的最大值,即next= 2048,对于所有模型来说,通常可以容纳10到100个示例。较大的K值通常会带来更好的结果,但并非总是如此,这就是为什么当模型有一个测试集和一个单独的开发集可用时,模型会在开发集上尝试K的几个值,并根据结果在测试集上运行最佳值的原因。

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

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

结果

上图显示了GPT-3模型架构中8个模型的训练曲线,如前所述。与KMH语言模型的结果类似,GPT-3模型的性能遵循有效使用训练计算的适当法则。只有当趋势扩展两个数量级时,才会略微偏离该法则。人们可能会认为交叉熵损失的改进是由于对训练语料库的虚假细节进行建模的结果。然而,交叉熵损失的改进带来了在广泛的NLP任务中的整体性能的一致性改进。

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

  1. 评估传统的语言建模任务和类似语言建模的任务,例如Cloze任务或句子/段落完成任务。
  2. 评估“闭书”问答任务。
  3. 评估模型在一-shot和少样本设置中翻译语言的能力(尤其是翻译语言)。
  4. 评估模型在Winograd Schema类似任务中的性能。
  5. 评估模型在需要常识推理或问答的数据集上的性能。
  6. 评估模型在阅读理解任务上的性能。
  7. 评估模型在SuperGLUE基准测试套件上的性能。
  8. 探索NLI。

语言建模、完成和Cloze任务

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

语言建模

GPT-3模型计算PTB或宾夕法尼亚树库数据集上的零样本困惑度。模型省略了维基百科相关任务,因为它们已经包含在模型的训练数据中,一亿单词基准测试也被省略,因为它会在数据集中引起重大摩擦。然而,PTB数据集解决了这些问题,因为它可以在现代互联网之前预测。GPT-3模型架构中最大的模型在PTB数据集上实现了新的SOTA,具有显著的15个点的差距,并实现了20.50的困惑度。

LAMBADA

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

GPT-3模型在LAMBADA上实现了76%的准确率,相比之前的最佳模型有超过8%的提高。此外,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所做的发展和克服的障碍为迄今为止最先进、最准确的大型语言模型GPT-4铺平了道路。

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