Improving Language Understanding by Generative Pre-Training 论文阅读

news2024/11/23 0:31:57

论文题目:通过生成式预训练提高语言理解能力

GPT的全称:Generative Pre-trained Transformer。
Generative是指GPT可以利用先前的输入文本来生成新的文本。GPT的生成过程是基于统计的,它可以预测输入序列的下一个单词或字符,从而生成新的文本。
【参考自春日充电季——ChatGPT的GPT是什么意思】

在这里插入图片描述
机翻:自然语言理解包括一系列不同的任务,如文本蕴含、问题回答、语义相似性评估和文档分类。虽然大量的无标签文本语料库很丰富,但用于学习这些特定任务的有标签的数据却很少,这使得经过判别训练的模型很难有充分的表现。我们证明,通过在不同的无标签文本语料库上对语言模型进行生成性预训练,然后在每个具体任务上进行鉴别性微调,可以在这些任务上取得巨大的收益。与以前的方法相比,我们在微调过程中利用了任务意识的输入转换来实现有效的迁移,同时要求对模型结构进行最小的改变。我们在广泛的自然语言理解基准上证明了我们方法的有效性。我们的通用任务诊断模型优于使用专门为每项任务设计的架构的鉴别性训练模型,在所研究的12项任务中,有9项明显改善了技术现状。例如,我们在常识推理(Stories Cloze Test)方面取得了8.9%的绝对改进,在问题回答(RACE)方面取得了5.7%的绝对改进,在文本关联(MultiNLI)方面取得了1.5%的改进。

在这里插入图片描述
机翻:从原始文本中有效学习的能力对于缓解自然语言处理(NLP)中对监督学习的依赖至关重要。大多数深度学习方法需要大量的手动标记数据,这限制了它们在许多缺乏注释资源的领域的适用性[61]。在这些情况下,能够利用未标记数据的语言信息的模型为收集更多的注释提供了一个有价值的选择,而这可能是费时和昂贵的。此外,即使在有相当多的监督的情况下,以无监督的方式学习好的表征也能提供一个显著的性能提升。到目前为止,最令人信服的证据是广泛使用预先训练好的词嵌入[10, 39, 42]来提高一系列NLP任务的性能[8, 11, 26, 45]。

Word embedding词嵌入:是一种表示单词和文档的方法。通常表示是一个实值向量,它对单词的含义进行编码,使得在向量空间比较近的单词在含义上预期相似。

在这里插入图片描述
机翻:然而,由于两个主要原因,从未标记的文本中利用超过词级的信息是具有挑战性的。首先,目前还不清楚什么类型的优化目标在学习对迁移有用的文本表征最为有效。最近的研究考察了各种目标,如语言建模[44]、机器翻译[38]和话语连贯性[22],每种方法在不同的任务上都优于其他方法。现有的技术涉及对模型结构进行特定任务的改变[43, 44],使用复杂的学习方案[21]和增加辅助学习目标[50]的组合。这些不确定因素使得开发有效的语言处理半监督学习方法变得困难。

language modeling:语言建模是使用各种统计和概率技术来确定给定单词序列在句子中出现的概率。语言模型通过某种算法来解释文本数据,该算法为自然语言的上下文建立规则,然后该模型在语言任务中应用这些规则来准确预测或生成新句子。
【关于语言模型的更多细节可以参考:深入浅出讲解语言模型】

在这里插入图片描述
机翻:在本文中,我们探索了一种半监督的方法,使用无监督的预训练和有监督的微调相结合来完成语言理解任务。我们的目标是学习一种通用的表征,这种表征可以在很少的调整下迁移到广泛的任务中。我们假设可以获得一个大型的无标签文本语料库和几个带有人工注释的训练实例的数据集(目标任务)。我们的设置并不要求这些目标任务与未标记的语料库处于同一领域。我们采用一个两阶段的训练程序。首先,我们在未标记的数据上使用语言建模目标来学习神经网络模型的初始参数。随后,我们使用相应的监督目标,使这些参数适应目标任务。

fine-tuning:微调。微调是一种迁移学习方法,其中预训练模型的权重在新数据上进行训练。可以在神经网络层的子集或整个网络上进行微调。在第一种情况下,没有被微调的层被“冻结”并且在反向传播步骤中没有更新。【来自维基百科】
【要了解更多可参考:迁移学习实战猫狗大战】

在这里插入图片描述
机翻:对于我们的模型架构,我们使用Transformer[62],它已被证明在各种任务中表现强劲,如机器翻译[62]、文档生成[34]和句法解析[29]。与循环网络等替代方案相比,这种模型的选择为我们提供了处理文本中长期依赖关系的更加结构化的记忆,从而在不同的任务中产生了强大的迁移性能。在迁移过程中,我们利用traversal-style approaches[52]的特定任务输入适应性,该方法将结构化文本输入作为单一连续的token序列来处理。正如我们在实验中所证明的那样,这些适应性使我们能够在对预训练模型的结构进行最小改动的情况下有效地进行微调。

关于循环网络长期依赖的问题可以参考:【神经网络】循环神经网络(RNN)的长期依赖问题

在这里插入图片描述
机翻:我们在四种类型的语言理解任务上评估了我们的方法–自然语言推理、问题回答、语义相似性和文本分类。我们的一般任务诊断模型优于采用专门为每项任务设计的架构的鉴别性训练模型,在所研究的12项任务中,有9项任务明显改善了技术水平。例如,我们在常识推理(Story Cloze Test)[40]、问题回答(RACE)[30]、文本推理(MultiNLI)[66]和最近引入的GLUE多任务基准[64]上取得了8.9%、5.7%和5.5%的绝对改善。我们还分析了预训练模型在四种不同环境下的zero-shot行为,并证明它为下游任务获得了有用的语言知识。

zero-shot learning (ZSL):零次学习问题。利用训练集数据训练模型,使得模型能对对测试集的对象进行分类,但是训练集类别之间没有交集;期间需要借助类别的描述,来建立训练集和测试集之间的联系,从而使得模型有效。【维基百科】
ZSL介绍以及经典例子讲解可参考:零次学习(Zero-Shot Learning)入门

在这里插入图片描述
机翻:NLP的半监督学习。我们的工作大致属于自然语言的半监督学习范畴。这一范式引起了人们的极大兴趣,并应用于序列标签[24, 33, 57]或文本分类[41, 70]等任务。最早的方法是使用未标记的数据来计算词级或短语级的统计数据,然后将其作为监督模型的特征[33]。在过去的几年里,研究人员已经证明了使用词嵌入的好处[11, 39, 42],它是在未标记的语料库上训练的,可以提高各种任务的性能[8, 11, 26, 45]。然而,这些方法主要是传输词级信息,而我们的目的是捕捉更高层次的语义。
最近的方法研究了从无标签的数据中学习和利用更多的词级语义。可以使用未标记语料库进行训练的短语级或句子级嵌入已被用于将文本编码为各种目标任务的合适向量表示[28,32,1,36,22,12,56,31]。
在这里插入图片描述
在这里插入图片描述
机翻:无监督的预训练。无监督预训练是半监督学习的一个特例,目标是找到一个好的初始化点,而不是修改监督学习目标。早期的工作探索了该技术在图像分类[20, 49, 63]和回归任务[3]中的使用。随后的研究[15]表明,预训练作为一种正则化方案,使深度神经网络具有更好的泛化能力。在最近的工作中,该方法被用来帮助训练图像分类[69]、语音识别[68]、实体消歧[17]和机器翻译[48]等各种任务上的深度神经网络。
与我们最接近的工作路线是使用语言建模目标对神经网络进行预训练,然后在监督下对目标任务进行微调。Dai等人[13]和Howard和Ruder[21]采用这种方法来改善文本分类。然而,尽管预训练阶段有助于捕捉一些语言信息,但他们对LSTM模型的使用将其预测能力限制在一个短的范围内。相比之下,我们选择的transformer网络使我们能够捕捉更远的语言结构,这一点在我们的实验中得到了证明。此外,我们还证明了我们的模型在更广泛的任务中的有效性,包括自然语言推理、转述检测和故事完成。其他方法[43, 44, 38]使用来自预先训练的语言或机器翻译模型的隐藏表征作为辅助特征,同时在目标任务上训练一个监督模型。这涉及到每个单独的目标任务的大量新参数,而我们在迁移过程中需要对我们的模型结构进行最小的改变。
在这里插入图片描述
机翻:辅助训练目标。增加辅助性的无监督训练目标是半监督学习的另一种形式。Collobert和Weston[10]的早期工作使用了各种各样的辅助NLP任务,如POS标签、分块、命名实体识别和语言建模,以改善语义角色标注。最近,Rei[50]在他们的目标任务目标中加入了一个辅助的语言建模目标,并证明了在序列标签任务上的性能提升。我们的实验也使用了一个辅助目标,但正如我们所展示的,无监督的预训练已经学习了与目标任务相关的几个语言方面。

在这里插入图片描述
机翻:我们的训练程序包括两个阶段。第一阶段是在一个大型文本语料库上学习一个高容量的语言模型。随后是一个微调阶段,在这个阶段,我们使模型适应带有标记数据的判别任务。

在这里插入图片描述
机翻:给定一个无监督的语料库U={u1, …,un},我们使用一个标准的语言建模目标来最大化以下可能性:在这里插入图片描述
其中k是上下文窗口的大小,条件概率P是用参数Θ的神经网络建模的。这些参数是用随机梯度下降法训练的[51]。

GPT采用单向语言模型的思路进行预训练,即通过前k个词预测第k+1个词。L1(U)是无监督预训练步骤的对数损失函数(不过这里不清楚为什么没有负号)。最大化该式子,就是求出一个Θ,使P最大。
参考自:GPT(Generative Pre-Training)
关于损失函数和极大似然估计:「09」真损啊!——损失函数与极大似然估计、对数损失函数的一点理解(怎么来的、与极大似然的关系)

在这里插入图片描述
机翻:在我们的实验中,我们使用多层transformer decoder[34]作为语言模型,它是transformer[62]的一个变种。这个模型在输入的上下文token上应用了一个多头的自我注意力模型操作,然后是位置式前馈层,以产生一个目标token的输出分布:在这里插入图片描述
其中U = (u-k, …, u-1)为k个token的上下文向量,n为层数,We为token嵌入矩阵,Wp为位置嵌入矩阵。

(1)关于transformer模型请阅读论文:《Attention is All You Need》。论文内包含关于multi-head attention、feed forward、位置嵌入矩阵的详细介绍。
(2)h0为GPT的输入,也是transformer的输入。hl表示第l层transformer-decoder的输出,总共有n层transformer-decoder(后文实验用了12层)。每次输入数据是预估词前k个词的嵌入矩阵和位置嵌入矩阵。取最后一个decoder的输出作为预估词的嵌入向量,将其进行softmax得到概率分布。W^T_e即W_e的转置,是softmax函数的加权矩阵。【参考自GPT(Generative Pre-Training)、Improving Language Understandingby Generative Pre-Training、GPT-1: Improving Language Understanding by Generative Pre-Training】
(3)GPT只用transformer-decoder的原因:transformer结构提出之始便用于机器翻译任务,机器翻译是一个序列到序列的任务,因此transformer设计了encoder用于提取源端语言的语义特征,而用decoder提取目标端语言的语义特征,并生成相对应的译文。而GPT1目标是服务于单序列文本的生成式任务,所以舍弃了encoder部分。【参考自GPT1–《Improving Language Understanding by Generative Pre-Training》】

在这里插入图片描述
机翻:在用公式1中的目标训练模型后,我们调整参数以适应有监督的目标任务。我们假设有一个带标签的数据集C,其中每个实例由一连串的输入token,x1, … …, xm和一个标签y组成。输入通过我们预先训练好的模型,以获得最终transformer块的激活hml,然后将其送入一个添加了参数Wy的线性输出层,以预测y:在这里插入图片描述
这让我们有了以下的目标,即最大化:在这里插入图片描述

有监督的微调步骤使用的模型就是无监督的预训练使用的模型,只是修改了softmax层,让softmax层预估y。
h^m_l是第m个token在第l层transformer-decoder的输出。
L2是有监督的微调步骤的对数损失函数。

在这里插入图片描述
机翻:我们还发现,将语言建模作为微调的一个辅助目标,有助于学习:(a)改善监督模型的泛化,以及(b)加速收敛。这与之前的工作[50, 43]是一致的,他们也观察到用这样的辅助目标来提高性能。具体来说,我们优化了以下目标(有权重λ):在这里插入图片描述
总的来说,在微调过程中,我们需要的唯一额外参数是Wy ,以及分隔符token的嵌入(在下文第3.3节中描述)。

辅助训练目标,在使用最后一个词的预测结果进行微调时,前面的词继续上一步的无监督预训练,L3就是最终的损失函数。一般λ为0.5。【参考自GPT(Generative Pre-Training)、预训练语言模型之GPT-1,GPT-2和GPT-3】

在这里插入图片描述
机翻:对于某些任务,如文本分类,我们可以直接对我们的模型进行上述的微调。其他一些任务,如问题回答或文本的相关性,有结构化的输入,如有序的句子对,或文件、问题和答案的三联体。由于我们的预训练模型是在连续的文本序列上训练的,我们需要做一些修改才能将其应用于这些任务。以前的工作提出在转移的表征之上学习特定的任务架构[44]。这种方法重新引入了大量的特定任务的定制,并且没有为这些额外的架构组件使用转移学习。相反,我们使用一个遍历式的方法[52],将结构化的输入转换为我们预先训练的模型可以处理的有序序列。这些输入转换使我们能够避免在不同的任务中对架构进行广泛的改变。我们在下文中对这些输入转换进行了简要的描述,图1提供了一个可视化的说明。所有的转换包括添加随机初始化的开始和结束标记(⟨s⟩, ⟨e⟩)。

在这里插入图片描述
图1:(左)本工作中使用的transformer结构和训练目标。(右)在不同任务上进行微调的输入转换。我们将所有结构化输入转化为token序列,由我们预先训练的模型处理,然后是线性+softmax层。

在这里插入图片描述
机翻:文本蕴含 对于蕴含任务,我们将前提p和假设h的token序列连接起来,中间有一个分隔符。
相似性 对于相似性任务,被比较的两个句子不存在固有的排序。为了反映这一点,我们修改了输入序列,使其包含两种可能的句子排序(中间有一个分隔符),并独立处理每一个序列,以产生两个序列表示hml,这些表示在输入线性输出层之前按元素添加。
问题回答和常识推理 对于这些任务,我们得到了一个上下文文档z,一个问题q,和一组可能的答案{ak}。我们将文档的上下文和问题与每个可能的答案串联起来,在中间加入一个分隔符,得到[z;q;$;ak]。这些序列中的每一个都被我们的模型独立处理,然后通过softmax层进行归一化,以产生可能答案的输出分布。

文本蕴含任务是给定一个前提文本(premise),根据这个前提去推断假说文本(hypothesis)。蕴涵关系(entailment)表示从premise中可以推断出hypothesis,反之是矛盾关系(contradiction)。有些任务会有中立关系(neutral)。
相似性任务是判断两个句子是否相关。输入的两个句子正向反向各拼接一次。然后分别输入transformer中得到特征向量,拼接后再进入全连接层得到预测结果。
问答任务是将n个选项的问题抽象化为n个二分类问题,即每个选项分别和内容进行拼接,然后各送入transformer和全连接层,最后选择置信度最高的作为预测结果。
【参考自预训练语言模型之GPT-1,GPT-2和GPT-3、GPT-1 & 2: 预训练+微调带来的奇迹】

在这里插入图片描述
在这里插入图片描述
机翻:无监督的预训练 我们使用BooksCorpus数据集[71]来训练语言模型。它包含了超过7,000本独特的未出版的书籍,包括冒险、幻想和浪漫等各种类型。最重要的是,它包含了很长的连续文本,这使得生成模型能够学会对长距离信息进行调节。另一个数据集,即类似的方法ELMo[44]所使用的1B Word Benchmark,其大小大致相同,但在句子层面上进行了洗牌–破坏了长程结构。我们的语言模型在这个语料库上实现了非常低的token级的困惑度,即18.4。

perplexity:困惑度,用于评价语言模型好坏的一个指标。它的基本思想是,给测试集的句子赋予较高概率值的语言模型较好。当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的概率越高越好。句子概率越大,困惑度越小,语言模型越好。【参考自Metric评价指标-Perplexity语言模型】

在这里插入图片描述
机翻:模型规格 我们的模型大体上遵循了原始的transformer工作[62]。我们训练了一个12层的仅有decoder的transformer,其中有掩码的自我注意头(768维状态和12个注意头)。对于位置前馈网络,我们使用了3072维的内部状态。我们使用adam优化方案[27],最大学习率为2.5e-4。在最初的2000次更新中,学习率从零线性增加,并使用cosine schedule退火到0。我们对64个随机采样的512个token的连续序列的minibatch进行100次训练。由于layernorm[2]在整个模型中被广泛使用,一个简单的权重初始化为N(0,0.02)就足够了。我们使用了一个具有40,000个合并的字节对编码(BPE)词汇[53],以及用于正则化的比率为0.1的残差、嵌入和注意力下降。我们还采用了[37]中提出的L2正则化的修改版本,在所有非偏置或增益权重上采用w=0.01。对于激活函数,我们使用高斯误差线性单元(GELU)[18]。我们使用学习的位置嵌入,而不是原始工作中提出的正弦版本。我们使用ftfy库来清理BooksCorpus中的原始文本,对一些标点和空白进行标准化处理,并使用spaCy tokenizer。

GPT1里的transformer-decoder与原来transformer的区别:Masked self-attention头维数768(原来为512)、头数12(原来为8)、feed forward层隐藏层维数3072(原来为2048)、位置嵌入方式为可学习的(原来为正弦嵌入)

在这里插入图片描述
机翻:微调细节 除非特别说明,我们重新使用无监督预训练中的超参数设置。我们在分类器中加入dropout为0.1。对于大多数任务,我们使用6.25e-5的学习率和32的batch size。我们的模型很快进行了微调,3个 epochs的训练对大多数情况来说是足够的。我们使用一个线性学习率衰减方法,在0.2%的训练中进行预热。

在这里插入图片描述
机翻:我们对各种有监督的任务进行了实验,包括自然语言推理、问题回答、语义相似性和文本分类。其中一些任务可作为最近发布的GLUE多任务基准的一部分[64],我们利用了它。表1提供了所有任务和数据集的概况。

在这里插入图片描述

数据集描述
SNLIStanford自然语言推理。判断句子对蕴含/矛盾/中立
MNLI多类型自然语言推理数据库。判断premise和hypothesis蕴含/矛盾/中立
QNLI问答自然语言推理。判断question和sentence蕴含/矛盾
RTE识别文本蕴含。判断句子对蕴含/矛盾
SciTail包含单选科学考试的蕴含数据集。判断premise和hypothesis蕴含/矛盾
RACE英语考试阅读理解数据集。通过阅读passage,对question选出answer
Story Cloze故事理解数据集。尝试根据four-sentence形式的story,在两个可能的结局中选出正确结局
MRPC微软研究院释义语料库。识别两个句子是否互为释义句
QQPQuora问题对数据集。确定一堆问题在语义上是否等效
STSB语义文本相似性基准测试。对句子对相似性评分(0-5分)
SST-2StandFord情感数据库。单句子情感分类正面负面/
CoLA语言可接受性语料库。判断一个句子是否合乎语法

数据库中语料举例可见OpenAI官网

在这里插入图片描述
机翻:自然语言推理 自然语言推理(NLI)的任务,也被称为识别文本的连带关系,包括阅读一对句子,并从连带关系、矛盾关系或中性关系中判断出它们之间的关系。尽管最近有很多人对此感兴趣[58, 35, 44],但由于存在各种各样的现象,如词汇的连带关系、核心推理以及词汇和句法的模糊性,这一任务仍然具有挑战性。我们在五个不同来源的数据集上进行了评估,包括图像说明(SNLI)、转录的语音、流行小说和政府报告(MNLI)、维基百科文章(QNLI)、科学考试(SciTail)或新闻文章(RTE)。
表2详细列出了我们的模型和以前最先进的方法在不同的NLI任务中的各种结果。我们的方法在五个数据集中的四个上的表现明显优于基线,在MNLI上取得了高达1.5%的绝对改进,在SciTail上为5%,在QNLI上为5.8%,在SNLI上为0.6%。这表明我们的模型有能力更好地对多个句子进行推理,并处理语言模糊性的问题。在我们评估的较小的数据集之一的RTE(2490个例子)上,我们取得了56%的准确率,这低于多任务biLSTM模型报告的61.7%。鉴于我们的方法在较大的NLI数据集上的强大性能,我们的模型很可能也会从多任务训练中受益,但我们目前还没有对此进行探索。

在这里插入图片描述

MNLI-m和-mm分别表示matched和mismatched

在这里插入图片描述
机翻:问答和常识推理 另一项需要单句和多句推理的任务是回答问题。我们使用最近发布的RACE数据集[30],该数据集由初中和高中考试的英语段落和相关问题组成。这个语料库已经被证明包含了比CNN[19]或SQuaD[47]等其他数据集更多的推理类型的问题,为我们的模型提供了完美的评估,这个模型被训练来处理长程语境。此外,我们还对story cloze test[40]进行了评估,该测试涉及从两个选项中选择多句子故事的正确结局。在这些任务中,我们的模型再次以明显的优势超过了以前的最佳结果–在Story Cloze测试中高达8.9%,在RACE测试中总体为5.7%。这表明我们的模型有能力有效地处理长程语境。
语义相似性 语义相似性(或转述检测)任务涉及预测两个句子是否在语义上等同。挑战在于识别概念的改写,理解否定句,以及处理句法上的模糊性。我们使用三个数据集来完成这项任务–微软转述语料库(MRPC)[14](从新闻来源收集)、Quora问题对(QQP)数据集[9]和语义文本相似性基准(STS-B)[6]。我们在三个语义相似性任务中的两个获得了最先进的结果(表4),在STS-B上获得了1分的绝对收益。在QQP上的性能差异是显著的,与单任务BiLSTM + ELMo + Attn相比,有4.2%的绝对改进。

在这里插入图片描述
在这里插入图片描述
机翻:分类 最后,我们还对两个不同的文本分类任务进行了评估。语言可接受性语料库(CoLA)[65]包含专家对一个句子是否符合语法的判断,并测试训练过的模型的内在语言偏差。另一方面,斯坦福情感树库(SST-2)[54]是一个标准的二元分类任务。我们的模型在CoLA上获得了45.4分,比之前的最佳结果35.0分有了特别大的飞跃,展示了我们的模型学到的先天语言偏差。该模型在SST-2上也取得了91.3%的准确率,这与最先进的结果相竞争。我们还在GLUE基准测试中取得了72.8分的总成绩,这比之前的最佳成绩68.9分要好得多。
在这里插入图片描述
在这里插入图片描述
机翻:总的来说,在我们评估的12个数据集中,我们的方法在9个数据集上取得了新的最先进的结果,在很多情况下都超过了合集的表现。我们的结果还表明,我们的方法在不同规模的数据集上运行良好,从较小的数据集如STS-B(≈5.7万个训练实例)到最大的数据集SNLI(≈55万个训练实例)。
在这里插入图片描述
在这里插入图片描述

机翻:迁移层数的影响 我们观察了从无监督预训练到有监督目标任务中迁移不同层数的影响。图2(左)显示了我们的方法在MultiNLI和RACE上的性能与迁移层数的关系。我们观察到的标准结果是,迁移embedding可以提高性能,而且每个迁移层都能提供进一步的好处,在MultiNLI上完全转移时可达9%。这表明,预训练模型中的每一层都包含了解决目标任务的有用功能。

图中横坐标为transformer-decoder的层数,纵坐标为RACE和MNLI两个数据集在训练集和验证集上的准确率。每一层的迁移都能提高模型的性能。模型的泛化能力与transformer-decoder层数直接相关。【参考自GPT系列论文阅读笔记】

在这里插入图片描述
机翻:图2:(左)从预训练的语言模型中迁移越来越多的层数对RACE和MultiNLI的影响。(右)图中显示了不同任务上的zero-shot性能的演变,作为LM预训练更新的函数。每个任务的性能在随机猜测基线和当前最先进的单一模型之间被归一化。

在这里插入图片描述
在这里插入图片描述
机翻:零次行为 我们想更好地理解为什么语言模型对transformer的预训练是有效的。一个假设是,底层生成模型学会了执行许多我们评估的任务,以提高其语言建模能力,而且与LSTM相比,transformer的结构化注意力记忆有助于迁移。我们设计了一系列启发式解决方案,使用底层生成模型来执行任务,不需要监督微调。我们在图2(右)中直观地看到了这些启发式解决方案在生成式预训练过程中的有效性。我们观察到这些启发式方案的性能是稳定的,并在训练中稳步增加,这表明生成式预训练支持学习各种任务相关的功能。我们还观察到LSTM的zero-shot性能表现出更高的差异,这表明Transformer架构的归纳偏向有助于迁移。
对于CoLA(语言可接受性),例子的得分是生成模型分配的平均token对数概率,预测是通过阈值进行的。对于SST-2(情感分析),我们在每个例子中附加token,并将语言模型的输出分布限制在只有正面和负面的词,并猜测它赋予较高概率的token作为预测。对于RACE(问题回答),我们挑选生成模型赋予最高平均token对数概率的答案,条件是文档和问题。对于DPRD[46](winograd模式),我们用两个可能的指代词替换定语代词,并预测生成模型对替换后序列的其余部分赋予更高的平均token对数概率的决议。

零次行为的目的是,在不做任何微调的情况下,测试预训练模型在各个任务里的表现,以揭示为何大模型的预训练是有益于捕捉语言的本质信息。【参考自GPT系列论文阅读笔记】
图中横坐标为预训练更新次数,纵坐标为性能。实线为transformer在各个任务上的结果,虚线为LSTM在各个任务上的结果。预训练越彻底,模型性能越好,同时transformer表现优于循环网络。

在这里插入图片描述
机翻:消融研究 我们进行了三种不同的消融研究(表5)。首先,我们检查了我们的方法在微调期间没有辅助LM目标的性能。我们观察到,辅助目标对NLI任务和QQP有帮助。总的来说,这一趋势表明,较大的数据集从辅助目标中受益,而较小的数据集则没有。其次,我们通过比较Transformer和使用相同框架的单层2048单元LSTM来分析其效果。我们观察到,当使用LSTM而不是Transformer时,平均得分下降了5.6。LSTM只在一个数据集上优于Transformer - MRPC。最后,我们还比较了我们在有监督的目标任务上直接训练的transformer架构,没有预训练。我们观察到,缺乏预训练损害了所有任务的性能,导致与我们的完整模型相比,性能下降了14.8%。

在这里插入图片描述

消融实验验证了①预训练的重要性;②辅助训练目标在小数据集上没有增益,在大数据集上有增益;③transformer优于LSTM。

在这里插入图片描述

机翻:总结 我们引入了一个框架,通过生成性的预训练和辨别性的微调,用一个单一的任务诊断模型实现强大的自然语言理解。通过对具有长篇连续文本的多样化语料库进行预训练,我们的模型获得了重要的世界知识和处理长距离依赖关系的能力,然后成功地转移到解决诸如问题回答、语义相似性评估、尾随确定和文本分类等鉴别性任务上,在我们研究的12个数据集中的9个上提高了技术水平。长期以来,使用无监督(预)训练来提高鉴别性任务的性能一直是机器学习研究的一个重要目标。我们的工作表明,实现显著的性能提升确实是可能的,并提示了哪些模型(transformer)和数据集(具有长距离依赖性的文本)在这种方法下效果最好。我们希望这将有助于对自然语言理解和其他领域的无监督学习进行新的研究,进一步提高我们对无监督学习如何以及何时发挥作用的理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/457401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

春招,进阿里了....

个人背景是东北某 985 科班本硕,做的 测试开发,有两个自己写的小项目。下面是一些印象比较深刻的面试题 阿里一面 什么是软件测试? 软件测试过程中会面向哪些群体? 开发一个软件都要经过哪些阶段? 什么是黑盒测试&…

一块钱看Android Debug: avc denied 已存在的目录不能访问

某三方应用,使用了USB摄像头,启动应用后功能不能使用,看log有如下错误, denied后面{}里的是要执行的动作,比如append,open,execmod,link等等 scontext指的是域,对应的是te文件 上面报错这条对应te文件是untrusted_app.te, scontex…

如何将 WhatsApp 聊天添加到您的网站

WhatsApp是全球最受欢迎的消息传递应用程序。平台上有超过 2 亿活跃用户与朋友、家人和企业进行交流。对于企业而言,WhatsApp 是与客户进行个人、可访问和非正式对话的理想渠道。 要将 WhatsApp 作为渠道引入您的客户旅程,第一步是将 WhatsApp 聊天按钮…

2023软件测试工具大全(自动化、接口、性能、安全、测试管理)

目录 前言 一、自动化测试工具 Selenium Appium TestComplete 二、接口测试工具 Postman SoapUI JMeter 三、性能测试工具 LoadRunner JMeter Gatling 四、安全测试工具 Burp Suite OWASP ZAP Nmap 五、测试管理工具 TestRail JIRA TestLink 总结 前言 …

【JavaScript】this理解总结

概念 this是函数运行时所在的对象。 使用场合 1.全局环境 全局环境使用this,this指向顶层对象。 2.构造函数 构造函数体里面的this,this指向是构造出来的实例对象。 3.对象的方法 ● 如果对象的方法里面包含this,this的指向就是方法运…

ASPICE详细介绍-4.车载项目为什么要符合ASPICE标准?

目录 车载项目为什么要符合ASPICE标准?ASPICE与功能安全的关系、区别?各大车厂对软件体系的要求 车载项目为什么要符合ASPICE标准? ASPICE(Automotive Software Process Improvement and Capability Determination)最…

sacrebleu找不到报错(无法直接下载)

网络问题无法下载,下载下来py文件,放到同级目录下面 https://raw.githubusercontent.com/huggingface/datasets/2.11.0/metrics/sacrebleu/sacrebleu.py然后注释掉版本报错

Devops和Gitops区别

一. 什么是devops DevOps 是一种开发(Dev)和运维(Ops)之间协作和沟通的文化、流程和工具的实践方法。它强调迭代、快速交付和持续集成/持续交付,旨在加速软件交付的速度、质量和稳定性。 DevOps 的核心目标是通过自动…

中国视频云市场报告:腾讯云连续五年解决方案市场份额第一

4月24日,全球领先的IT市场研究和咨询公司IDC发布《中国视频云市场跟踪(2022下半年)》报告,腾讯云音视频的解决方案市场份额已连续五年排名第一,斩获自2018年IDC对外发布数据以来的“五年连冠”。其中,腾讯云…

C++模板使用

感谢你的阅读!!! 目录 感谢你的阅读!!! 举个例子: template 有什么意义为什么要用模板 与typedef的区别 使用方法 模板:隐式实例化与显示实例化 和非模板函数以及多个模板类…

SAP ABAP MARA-MSBOOKPARTNO 制造商登记部分编号

BAPI_MATERIAL_SAVEDATA CLIENTDATA结构无此字段。 DATA:LS_TE_MARA TYPE BAPI_TE_MARA. DATA:LS_TE_MARAX TYPE BAPI_TE_MARAX. DATA:LT_BAPIPAREX TYPE TABLE OF BAPIPAREX. DATA:LS_BAPIPAREX TYPE BAPIPAREX. …

Spring Bean作用域与生命周期

目录 Bean的作用域: Bean有六大行为模式 1、singleton:单例模式(默认) 2、prototype: 原型模式(多例模式) 3、request: 请求作用域(Spring MVC) 4、session: 会话作用域(Spring MVC) 5、application: 全局作用域(Spring MVC) 6、websocket: HTTP WebSocket …

M1 Mac安装Zookeeper

下载Zookeeper 由于通过homebrew下载的zookeeper没有conf文件夹,因此我们在官网下载 zookeeper-3.7.1 然后下载上面这个 将解压后的文件转移到 /usr/local 更改配置文件 1、配置文件位置位于解压文件夹下conf文件夹内部,默认名字为zoo_sample.cfg&…

Unity设计模式—命令队列

Unity设计模式—命令队列 概要 本篇将介绍命令队列并用命令队列模式实现一个Unity里的WindowManager。 命令队列是一个按照FIFO顺序存储一系列通知或请求的队列。发出通知时系统会将请求置入队列并立即返回,请求处理器随后从命令队列中获取并处理这些请求。请求可由…

集合专题·拔高·壹

文章目录 1 Collection单列集合、Map双列集合1.1 Collection单列集合1.1.1 Collection单列集合及其实现类1.1.1.1 list集合与Array数组1.1.1.1.1 ArrayList1.1.1.1.2 LinekdList1.1.1.1.2 Vector1.1.1.1.2.1 ArrayList、Vector (线程安全)的区别是什么1.…

【数据结构与算法】前缀和+哈希表算法

文章目录 一、引入二、前缀和与哈希表的结合三、例题3.1 和为 K 的子数组3.2 统计「优美子数组」3.3 路径总和III 四、总结 一、引入 关于前缀和和哈希这两个概念大家都不陌生,在之前的文章中也有过介绍:前缀和与差分算法详解 而哈希表最经典的一题莫过…

Kerberos设计和落地长常识

Kerberos 处理三类安全对象 票证 kerberos票证授予服务给每个客户发一张标记,该标记发送给一个特殊的服务器,证实kerberos最近已经认证了发送者,票证包括过期时间和新生成的会话密钥供客户和服务器使用。 认证 由客户构造的一个标记&#xff…

LVS负载均衡之NAT模式

实验准备四台虚拟机 192.168.255.128 做负载均衡器(两张网卡,且都需要NAT模式) 192.168.255.130 Nginx节点服务器1 192.168.255.131 Nginx节点服务器2 192.168.255.132 nfs共享服务器 现将四台虚拟机的防火墙关闭 一、nfs服务器配置 1…

使用Visual Studio 创建Windows服务,并安装部署

创建服务的工程 Program.cs是入口类,Service1.cs是写服务功能的组件,类似于winform项目中的Form1.cs。 打开Service1.cs,(右键单击Service1.cs,选择查看源码) OnStart:服务启动时,执…

产品说明书应该如何制作?

在当今互联网时代,产品说明书无疑是一种展示产品特性、引导用户使用和解决用户问题的重要方式。一份精心制作的产品说明书,能够让用户更快地了解和掌握产品的使用方法,让用户充分享受产品带来的便利。不过要做出一份高质量的产品说明书&#…