GPT-3:语言模型的少量学习?
在过去的几年里,人工智能和机器学习行业见证了自然语言处理系统的开发和应用的迅速崛起,因为研究人员已经能够以高度灵活和任务无关的方式实施自然语言处理实践,以用于下游转移任务。
最初,它是使用词向量的单层表示,然后被馈送到特定于任务的架构。接下来,RNN架构使用多层表示和上下文状态来形成更好的表示。最近,我们有了转移语言模型或预训练的循环模型,通过微调这些网络,完全消除了对特定于任务的架构的需求。
事实证明,迁移语言模型是NLP行业的一个重大转折点,因为它们在回答问题、阅读理解或文本块、文本蕴涵等具有挑战性的任务上取得了巨大进步。
然而,尽管有其优点,迁移语言模型也有一个主要限制,因为它们需要特定于任务的微调或特定于任务的数据集才能实现任务所需的性能。此外,迁移语言模型还要求开发人员将数据集微调到针对特定任务的数十万个示例。
不言而喻,消除对特定于任务的数据集和特定于任务的微调的要求将是非常可取的,并且出于多种原因对NLP行业有利。
现有预训练迁移语言模型或循环模型的问题
限制实用性和适用性
首先也是最重要的,每个任务对带有标记数据的大型数据集的要求限制了语言模型的适用性和实用性。语言模型可应用于各种任务,从生成短篇故事到纠正语法错误,再到生成概念示例。有时,收集带有标记数据的大型监督数据集是一项具有挑战性的任务,特别是当需要对每个单独的任务重复该过程时。
利用训练数据中的虚假相关性
训练分布的局限性和狭窄性加上模型的表达能力可以导致利用训练数据中的虚假相关性的潜力发生根本性增长。利用训练数据的潜力可能会在微调和预训练范式期间导致问题,因为迁移语言模型的设计方式是在预训练期间吸收大量信息。
此外,对先前模型的研究表明,大型模型不会每次都产生更好的分布外结果。此外,还表明,在这种范式下实现的泛化可能会导致性能不佳,这主要是因为该模型对于训练数据高度特定,并且在超出训练数据范围的情况下无法表现良好。
与人类学习的比较
最后,与迁移语言模型相比,人类在学习大多数语言任务时不需要大型训练数据集。大多数情况下,一个人的自然语言的简短指令或一个语言任务的小演示就足以让人们理解并执行具有一定竞争力的语言任务。
人类的适应能力具有许多实际优势,因为它允许他们在不同的技能组合之间切换或将它们混合在一起,以便在方言中更好地执行,这超出了当前NLP系统的能力。
使用元学习和GPT-3解决问题
解决上述挑战的一个可能的解决方案是使用元学习,这是现代机器学习中的一个概念,它允许模型在训练时开发更广泛的技能和识别模式的能力,然后在干扰期间使用这些学到的能力来适应快速,或识别所需的任务。
元学习正在通过一种称为“上下文学习”的技术在语言模型架构中实现,该技术使用预训练语言模型的文本输入作为任务规范。在此过程中,模型以自然语言指令为条件,甚至可能使用一些演示,然后期望模型通过预测后续步骤来完成其余任务。
元学习唯一的主要问题是,尽管它显示出了积极的潜力,但它仍然不如自然语言架构中的微调方法,并且需要进一步改进才能成为克服语言任务的实用方法。
除了元学习之外,另一种越来越流行的方法是增加Transformer语言模型的容量。过去几年,迁移模型容量大幅提升,出现了1亿参数的RNSS18模型、3亿参数的DCLT18模型、15亿参数的RWC19模型、80亿参数的SSP19模型、RSR19模型有110亿个参数,TUR20模型有170亿个参数。
从历史上看,增加模型的容量或增加参数会导致文本合成的改进,并且有迹象表明与下游任务相关的对数损失也遵循随规模改进的平滑趋势。
这就引出了GPT-3模型,它拥有超过1750亿个参数,在它推出时,它是容量最高的传输语言模型。现在我们来谈谈GPT-3模型。
GPT-3模型简介
GPT-3是OpenAI于2020年发布的具有超过1750亿个参数的自动攻击语言模型。GPT-3也被归类为大型语言模型,就像其前身GPT-2模型一样,是仅解码器的深度学习模型Transformer模型使用基于卷积的架构来生成文本数据。
GPT-3模型衡量其自身的上下文学习能力,并且GPT-3模型在二十多个NLP数据集和多个新任务上进行评估。对于每个单独的任务,GPT-3模型在三种条件下进行评估:
少样本学习或上下文学习:在少样本学习中,GPT-3模型允许尽可能多的分布能够很好地适应模型的上下文窗口。
一次性学习:在一次性学习中,模型只允许进行一次演示。
零样本学习:在零样本学习中,没有演示,只有自然语言的指令输入模型。
从广义上讲,GPT-3模型在零样本和单样本设置中实现了所需的性能,并且在少样本设置中,它在大多数情况下优于最先进的传输模型。此外,GPT-3模型在旨在测试即时推理的自然语言任务中的单次和零次设置中表现良好,或者需要快速注意,例如在句子后使用新词、解读单词或执行算术操作。另一方面,当在几次镜头设置中运行时,GPT-3模型在通过人类评估者时会生成类似于人类写作的合成新闻文章。
GPT-3模型:方法
GPT-3模型采用传统的预训练方法,包括模型、数据和训练,它类似于RWC-19传输语言模型的预训练过程。GPT-3模型扩大了模型规模、数据集规模、数据集的多样性,并增加了训练周期的长度。
该模型还使用了上下文学习方法,该方法再次类似于RWC-19模型的方法,但通过系统地探索数据集上下文中学习模式的不同设置来进行一些调整。
因此,让我们首先探索这些设置,并评估GTP-3模型在不同设置上的表现。
微调
微调模型一直是迁移语言模型中的传统方法,这种方法涉及通过在特定于所需任务的监督数据集和数十万个标记示例上训练模型来更新预训练模型的权重过程中会用到。
微调方法是有益的,因为它可以在众多基准测试中返回强劲的性能。另一方面,使用微调方法的主要限制是,它需要为每个单独的任务提供一个新的大型数据集,有可能利用训练数据集的虚假特征,可能会导致与人类表现的不公平比较,并且对于分布外的泛化能力较差。
尽管未来可以将微调应用于GPT-3模型,但由于其与任务无关的性能,GPT-3模型的当前范围并未实现微调方法。
几枪
Few Shot是一个术语,指的是GPT-3模型在干扰期间作为调节进行几次任务演示,但模型的权重不更新的设置。在少数镜头设置中,数据集通常包含一个带有上下文的示例和所需的完成(例如,法语句子及其英语翻译)。少数镜头设置为模型提供了K个上下文和补全示例,然后为模型提供了一个最终上下文,并期望模型提供补全。
使用少量镜头设置的主要优点是,它显着减少了对特定于任务的数据的需求,并且还降低了从经过微调的大型数据集学习窄分布的可能性。另一方面,使用少样本学习的主要缺点是,在少样本设置中提供的结果不符合标准,并且与其他经过微调的最先进模型相比,结果明显较差。
一枪
在单镜头设置中,仅为模型提供单次演示,其余与少镜头设置类似。单一镜头设置与迁移语言模型相关的原因是,在所有三种设置中,单一镜头是最接近人类向人类传达任务的方式的一种。这是因为在大多数任务中,通常都会对任务进行一次演示,否则可能很难理解任务的上下文。
零射击
在零样本设置中,没有演示,并且向模型提供描述任务的自然语言指令。零样本方法是一种提供最大便利性、稳健性并且还可以避免虚假相关性的方法,但它也是所有三种设置中最具挑战性的。这是因为在某些情况下,即使我们人类在不先看到演示的情况下也很难弄清楚任务的背景。
无论如何,对于某些任务,零样本设置是最接近人类执行自然语言任务的方式。
上图比较了在执行获取英语句子并将其翻译成法语的自然语言任务时的少数镜头、一次镜头和零镜头设置。
GPT-3:模型架构
GPT-3模型使用与GPT-2模型中使用的架构相同的架构,它包括预归一化、修改初始化和可逆标记化技术,与GPT模型上使用的技术相同,但使用替代方法局部带状稀疏注意力模式的策略,以及变压器层中交替密集层的策略,类似于稀疏变压器。
为了研究模型性能对模型大小的依赖性,开发人员训练了8种不同的模型大小,范围涵盖从1.25亿到超过1750亿个参数的三个不同数量级,其中最后一个被称为GPT-3模型。与LLM模型相关的先前工作表明,使用足够量的训练数据来缩放验证损失应该是作为大小的函数的近似平滑幂律。不同大小的训练模型允许开发人员测试下游语言任务以及验证损失的假设。
上图比较了用于开发GPT-3的8种不同模型的大小和架构。这里,n(params)定义了可训练模式的总数,n(layers)定义了模型中的总层数,d(model)定义了瓶颈每层的单元数,d(head)定义了每个注意力头的尺寸。每个模型的上下文窗口都是相同的,有2048个标记。
此外,为了最大限度地减少节点之间的数据传输,模型沿着维度的深度和宽度在GPU上进行分区。每个模型的架构参数都是根据计算效率和负载平衡来选择的,以最大限度地提高跨GPU模型布局的精度。
训练数据集
通常,大型语言模型使用的数据集随着最近的发展而显着扩展,并且最终形成包含超过一万亿个不同单词的Common Crawl数据集。数据集的大小足以训练GPT-3模型,而无需多次更新同一序列。然而,研究和性能分析表明,与经过精心策划的数据集相比,Common Crawl数据集的轻度过滤版本或未过滤版本的质量较低。
为了解决数据集平均质量的问题,开发人员采取了3个步骤来提高数据集的质量。
开发人员根据类似于高质量参考语料库的范围下载并过滤了Common Crawl数据集的版本。
开发人员在整个数据集的文档级别执行模糊复制,试图保持其保留验证集的完整性,作为过度拟合的有效度量,并防止冗余。
开发人员还在训练数据中添加了高质量的参考语料库,以扩充Common Crawl数据集,并进一步增加数据集的多样性。
下图显示了用于训练GPT-3模型的数据集的最终比例或混合。Common Crawl数据在过滤前包含超过45TB的明文,过滤后减少到570GB的数据,大致相当于超过4000亿字节对编码的令牌。值得注意的是,训练中被视为较高质量的数据集会以更高的频率进行采样,而不是按照数据集大小的比例进行采样。因此,像Books2和CommonCrawl这样的数据集在训练期间采样次数少于一次,而其他数据集则采样多次。它允许模型接受少量的过拟合,以换取更高质量的训练数据的训练。
对于在大量互联网数据上预先训练并具有记忆和学习大量内容的能力的大型语言模型,一个重要的担忧是,在预训练过程中看到其开发或测试集,可能会污染下游任务。培训过程。为了减少这种潜在的污染,开发人员搜索了与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个不同类别。这些类别是
对传统语言建模任务以及类似于语言建模的任务(如完形填空任务或句子/段落完成任务)的评估。
“闭卷”问答任务评价。
评估模型在语言之间翻译的能力(尤其是一次性和几次)
评估模型在类似Winograd Schema的任务上的性能。
评估涉及常识推理或问题回答的数据集。
评估阅读理解任务。
在SuperGLUE基准套件上进行评估。
探索NLI。
语言建模、完成和完形填空任务
在本节中,GPT-3模型的性能在传统语言建模任务以及需要预测感兴趣的单个单词、或完成一个段落或一个句子、或完成一段文本的任务上进行评估。让我们简单详细地讨论一下它们。
语言建模
GPT-3模型计算PTB或Penn Tree Bank数据集上的零样本困惑度。该模型省略了与维基百科相关的任务,因为它已经包含在模型的训练数据中,并且还省略了10亿字基准,因为它会导致训练数据中的数据集产生大量摩擦。然而,PTB数据集解决了这些问题,因为它可以早于现代互联网。GPT-3模型架构中最大的模型在PTB数据集上取得了新的SOTA,显着提升了15个百分点,并实现了20.50的困惑度。
兰巴达
LAMBADA数据集用于测试模型对段落或文本中的远程依赖关系的建模。这意味着模型被要求在阅读上下文的段落后预测句子的最后一个单词。此外,语言模型的不断扩展会导致基准测试的回报递减。
GPT-3模型在LAMBADA上实现了76%的准确率,比之前最好的模型有8%以上的增益。此外,LAMBADA模型展示了小样本学习的灵活性,因为它以数据集的经典方式解决了问题。LAMBADA中句子的完成通常是句子的最后一个单词,但由于语言模型无法知道这一点,因此它不仅为正确的结尾分配概率,还为段落中的其他延续分配概率。
此外,当以某种方式修改输入到GPT-3模型的示例时,该模型返回的准确率超过86%,比之前的模型提高了18%以上。此外,结果还表明,模型在几次拍摄设置中的性能随着模型尺寸的增加而成比例增加。尽管该策略将GPT-3架构中的最小模型缩小了20%,但它却将具有1750亿个参数的主GPT-3模型的精度提高了10%。
闭卷问答
闭卷问答是衡量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铺平了道路。
图片使用申明:原创文章图片源自‘Canva可画’平台免费版权图片素材;引用文章源自引用平台文章中所使用的原图。