南联做网站,怎样在潇湘书院网站做兼职,wordpress 模板教程,php企业网站建设文章目录 一、基础知识1.1 Word Embedding#xff08;词嵌入#xff09;1.2 词嵌入模型1.3 神经网络语言模型NNLM 二、ELMO2.1 ELMO的提出2.2 ELMO核心思想2.3 ELMO的优缺点 三、GPT3.1 Transformer3.2 GPT简介3.3 GPT模型架构3.4 预训练及微调3.5 GPT和ELMO对比 四、BERT4.1… 文章目录 一、基础知识1.1 Word Embedding词嵌入1.2 词嵌入模型1.3 神经网络语言模型NNLM 二、ELMO2.1 ELMO的提出2.2 ELMO核心思想2.3 ELMO的优缺点 三、GPT3.1 Transformer3.2 GPT简介3.3 GPT模型架构3.4 预训练及微调3.5 GPT和ELMO对比 四、BERT4.1 BERT简介4.2 BERT预训练4.3 BERT的优缺点4.4 GPT和BERT对比4.5 从word2Vec, ELMO, GPT 到BERT 五、BART5.1 从GPT, BERT到BART5.2 BART的损失函数5.3 BART的噪声Noise5.4 BART在下游任务上的应用 参考资料 一、基础知识
1.1 Word Embedding词嵌入
Word Embedding词嵌入 技术是自然语言处理NLP领域的一项重大创新它极大地推动了计算机理解和处理人类语言的能力。词嵌入技术通过将单词、句子甚至图像转换为数字向量不仅改善了文本的表示方式更重要的是它捕捉到了语言的本质和丰富的语义信息。 1.2 词嵌入模型
词嵌入模型 利用深度学习方法通过训练大规模语料库来学习词的向量表示。这些模型如Word2Vec和GloVe等能够捕捉词的语义和语法信息将词表示为高维空间中的向量。 Word2Vec 【NLP】理解word2vec的CBOW与Skip-Gram模型https://github.com/NLP-LOVE/ML-NLP/tree/master/NLP/16.1%20Word%20Embedding GloVe https://github.com/NLP-LOVE/ML-NLP/tree/master/NLP/16.3%20GloVe
1.3 神经网络语言模型NNLM
神经网络语言模型NNLM由Bengio等人提出通过嵌入层将单词映射到连续的向量空间中并通过多个隐藏层来学习语言的内部结构。NNLM能够捕捉词与词之间的语义关系提高了语言模型的预测能力。
神经网络语言模型NNLM的典型做法为在训练过程中输入某个句中单词 W t ( B e r t ) W_t (Bert) Wt(Bert) 前面句子的 t − 1 t-1 t−1个单词要求网络正确预测单词Bert即最大化 前面任意单词 W i W_i Wi 用Onehot编码比如0001000作为原始单词输入之后乘以矩阵 Q Q Q 后获得向量 C ( W i ) C(W_i) C(Wi) 每个单词的 C ( W i ) C(W_i) C(Wi) 拼接上接隐层然后接softmax去预测后面应该后续接哪个单词。
这个 C ( W i ) C(W_i) C(Wi) 是什么这其实就是单词对应的Word Embedding值矩阵 Q Q Q 包含 V V V行 V V V代表词典大小每一行内容代表对应单词的Word embedding值。只不过 Q Q Q 的内容也是网络参数需要学习获得训练刚开始用随机值初始化矩阵 Q Q Q当这个网络训练好之后矩阵 Q Q Q的内容被正确赋值每一行代表一个单词对应的Word embedding值。所以你看通过这个网络学习语言模型任务这个网络不仅自己能够根据上文预测后接单词是什么同时获得一个副产品就是那个矩阵 Q Q Q这就是单词的Word Embedding。
但是这样训练及使用Word Embedding的效果并没有期待中那么好 主要原因在于Word Embedding无法有效解决多义词问题。比如多义词Apple可以代表“水果苹果”或者“苹果科技公司”。但是Word Embedding在对bank这个单词进行编码的时候是区分不开这两个含义的。因为它们尽管上下文环境中出现的单词不同但是在用语言模型训练的时候不论什么上下文的句子经过word2vec都是预测相同的单词Apple而同一个单词占的是同一行的参数空间这导致两种不同的上下文信息都会编码到相同的Word Embedding空间里去。所以Word Embedding无法区分多义词的不同语义这就是它的一个比较严重的问题。
二、ELMO
2.1 ELMO的提出
针对Word Embedding无法有效解决多义词问题有没有简单优美的解决方案呢ELMO提供了一种简洁优雅的解决方案。
ELMO是“Embedding from Language MOdels”的简称其实这个名字并没有反应它的本质思想提出ELMO的论文题目“Deep contextualized word representation” 更能体现其精髓而精髓在哪里在deep contextualized这个短语一个是deep一个是context其中context更关键。
在此之前的Word Embedding本质上是个静态的方式所谓静态指的是训练好之后每个单词的表达就固定住了以后使用的时候不论新句子上下文单词是什么这个单词的Word Embedding不会跟着上下文场景的变化而改变。所以对于比如Bank这个词它事先学好的Word Embedding中混合了几种语义 在应用中来了个新句子即使从上下文中比如句子包含money等词明显可以看出它代表的是“银行”的含义但是对应的Word Embedding内容也不会变它还是混合了多种语义。这是为何说它是静态的这也是问题所在。
ELMO的本质思想是 事先用语言模型学好一个单词的Word Embedding此时多义词无法区分不过这没关系。在我实际使用Word Embedding的时候单词已经具备了特定的上下文了这个时候我可以根据上下文单词的语义去调整单词的Word Embedding表示这样经过调整后的Word Embedding更能表达在这个上下文中的具体含义自然也就解决了多义词的问题了。所以 ELMO本身是个根据当前上下文对Word Embedding动态调整的思路。
2.2 ELMO核心思想
ELMO采用了典型的两阶段过程
第一个阶段是利用语言模型进行预训练第二个阶段是在做下游任务时从预训练网络中提取对应单词的网络各层的Word Embedding作为新特征补充到下游任务中。
1第一阶段预训练
上图展示的是其预训练过程它的网络结构采用了双层双向LSTM目前语言模型训练的任务目标是根据单词 W i W_i Wi 的上下文去正确预测单词 W i W_i Wi W i W_i Wi 之前的单词序列Context-before称为上文之后的单词序列Context-after称为下文。
图中左端的前向双层LSTM代表正方向编码器输入的是从左到右顺序的除了预测单词外 W i W_i Wi 的上文Context-before右端的逆向双层LSTM代表反方向编码器输入的是从右到左的逆序的句子下文Context-after每个编码器的深度都是两层LSTM叠加。
这个网络结构其实在NLP中是很常用的。使用这个网络结构利用大量语料做语言模型任务就能预先训练好这个网络如果训练好这个网络后输入一个新句子句子中每个单词都能得到对应的三个Embedding:
最底层是单词的Word Embedding往上走是第一层双向LSTM中对应单词位置的Embedding这层编码单词的句法信息更多一些再往上走是第二层LSTM中对应单词位置的Embedding这层编码单词的语义信息更多一些。
也就是说ELMO的预训练过程不仅仅学会单词的Word Embedding还学会了一个双层双向的LSTM网络结构而这两者后面都有用。
2第二阶段应用至下游任务 上图展示了下游任务的使用过程比如我们的下游任务仍然是QA问题:
此时对于问句X我们可以先将句子X作为预训练好的ELMO网络的输入这样句子X中每个单词在ELMO网络中都能获得对应的三个Embedding之后给予这三个Embedding中的每一个Embedding一个权重a这个权重可以学习得来根据各自权重累加求和将三个Embedding整合成一个然后将整合后的这个Embedding作为X句在自己任务的那个网络结构中对应单词的输入以此作为补充的新特征给下游任务使用。对于上图所示下游任务QA中的回答句子Y来说也是如此处理。
从这里可以看出对于一个单词i的词向量每次生成时都是根据当前输入的整个序列得到的因此利用了当前的语境信息是一个动态得到的词向量解决了同一个单词在不同语境下含义不同的问题。 因为ELMO给下游提供的是每个单词的特征形式所以这一类预训练的方法被称为 “Feature-based Pre-Training”。
2.3 ELMO的优缺点
1ELMO的优点
ELMO解决了静态Word Embedding无法解决多义词的问题。 对于Glove训练出的Word Embedding来说多义词比如play根据它的embedding找出的最接近的其它单词大多数集中在体育领域这很明显是因为训练数据中包含play的句子中体育领域的数量明显占优导致而使用ELMO根据上下文动态调整后的embedding不仅能够找出对应的“演出”的相同语义的句子而且还可以保证找出的句子中的play对应的词性也是相同的这是超出期待之处。之所以会这样是因为我们上面提到过第一层LSTM编码了很多句法信息这在这里起到了重要作用。
2ELMO的缺点
在特征抽取器选择方面ELMO使用了LSTM而不是新贵Transformer。 Transformer是谷歌在17年做机器翻译任务的“Attention is all you need”的论文中提出的引起了相当大的反响很多研究已经证明了Transformer提取特征的能力是要远强于LSTM的。如果ELMO采取Transformer作为特征提取器那么估计Bert的反响远不如现在的这种火爆场面。ELMO采取双向拼接这种融合特征的能力可能比Bert一体化的融合特征方式弱但是这只是一种从道理推断产生的怀疑目前并没有具体实验说明这一点。
三、GPT
3.1 Transformer
在正式介绍GPT之前首先介绍一下Transformer。具体可以参考博客Transformer 模型详解
后续的许多大语言模型都是基于Transformer 架构设计而来。
3.2 GPT简介
GPTGenerative Pre-trained Transformer是由 OpenAI 开发的一类生成式预训练语言模型。基于 Transformer 架构GPT 模型具备强大的自然语言处理能力能够通过自回归方式生成文本。自首次推出以来GPT 系列模型在多个领域的文本生成任务中表现出色并在语言建模、文本生成、对话系统等任务中取得了显著的成果。
GPT 系列模型的核心优势在于其预训练-微调Pre-training Fine-tuning的训练策略。通过在大规模文本数据集上进行预训练GPT 模型能够从海量数据中学习语言规律再通过微调适应特定任务需求。这一设计使 GPT 模型在具备通用语言能力的同时也能够灵活应用于各种下游任务。
随着技术的不断进步GPT模型已经推出了多个版本包括GPT-1、GPT-2、GPT-3和GPT-4等。
3.3 GPT模型架构
GPT 模型的基础架构是 Transformer。Transformer 架构利用了自注意力机制使得模型能够处理长序列数据而无需像 RNN 或 LSTM 那样依赖递归操作从而提高了计算效率和并行处理能力。
GPTGenerative Pre-trained Transformer模型是基于 Transformer 的 解码器 部分构建的它采用了 Transformer 的自注意力机制来建模语言数据中的长距离依赖关系。
在Transformer架构的基础上OpenAI在其论文《Improving Language Understanding by Generative Pre-Training》中讲述了通过自注意力机制简化transform模型架构的思路只使用Decoder架构的机制奠定了GPT系列的架构基础。GPT 的架构如图如下
GPT 模型的核心架构包括以下几层
输入嵌入层将输入的词序列转换为向量表示。多层 Transformer 解码器通过自注意力机制处理序列中的依赖关系。输出层将模型的输出映射到词汇表中的概率分布生成下一个词。
其中Transformer 解码器的每一层都包含以下模块
多头自注意力机制Multi-head Self-Attention输入序列被分为多个头Heads每个头学习一种不同的表示方式。每个头应用一个类似于注意力机制的加权函数以确定每个位置对其他位置的重要性。这种机制使得模型能够高效地处理长序列数据并捕捉序列中的依赖关系。前馈神经网络Feed-forward Neural Network模型将自注意力层的输出输入到一个全连接神经网络中以学习特征表示之间的非线性关系。这种结构增强了模型的表示学习能力使其能够捕捉更复杂的语言模式和结构。残差连接Residual Connections和层归一化Layer Normalization用于缓解深度神经网络在训练过程中可能出现的梯度消失或爆炸问题提高训练的稳定性和模型性能。
GPT 的关键特点是基于 自回归 模型进行文本生成即通过生成当前词后再预测下一个词直至生成完整的句子。这种架构使得GPT模型在处理自然语言任务时具有出色的性能能够生成高质量、连贯的文本内容。
3.4 预训练及微调
GPT 训练过程分为两个阶段第一个阶段是 Pre-training 阶段主要利用大型语料库完成非监督学习第二阶段是 Fine-tuning针对特定任务在相应数据集中进行监督学习通过 Fine-tuning 技术来适配具体任务。
1Pre-training
GPT 采用 Transformer 来代替 LSTM 作为特征提取器并基于语言模型进行训练。这里只使用了 Transformer 的 Decoder 部分并且每个子层只有一个 Masked Multi Self-Attention768 维向量和 12 个 Attention Head和一个 Feed Forward共叠加使用了 12 层的 Decoder。
这里简单解释下为什么只用 Decoder 部分语言模型是利用上文预测下一个单词的因为 Decoder 使用了 Masked Multi Self-Attention 屏蔽了单词的后面内容所以 Decoder 是现成的语言模型。又因为没有使用 Encoder所以也就不需要 encoder-decoder attention 了。
2Fine-tuning 完成预训练后我们会得到一个训练好的 Transformer 模型接下来我们要用这个训练好的模型来完成特定的监督学习的任务。
假设我们有个带标签的数据集 C即每一个 Token 序列x1,x2,…,xm都有一个标签 y。我们将 Token 序列输入并通过 Transformer 模型得到输出的状态 然后叫这个加到线性层进行输出并预测标签 y
3.5 GPT和ELMO对比
GPT的预训练过程其实和ELMO是类似的主要不同在于两点
首先特征抽取器不是用的RNN而是用的Transformer上面提到过它的特征抽取能力要强于RNN这个选择很明显是很明智的其次GPT的预训练虽然仍然是以语言模型作为目标任务但是采用的是单向的语言模型。 所谓“单向”的含义是指语言模型训练的任务目标是根据 W i W_i Wi 单词的上下文去正确预测单词 W i W_i Wi W i W_i Wi之前的单词序列Context-before称为上文之后的单词序列Context-after称为下文。 ELMO在做语言模型预训练的时候预测单词 W i W_i Wi 同时使用了上文和下文而GPT则只采用Context-before这个单词的上文来进行预测而抛开了下文。这个选择现在看不是个太好的选择。原因很简单它没有把单词的下文融合进来这限制了其在更多应用场景的效果比如阅读理解这种任务在做任务的时候是可以允许同时看到上文和下文一起做决策的。如果预训练时候不把单词的下文嵌入到Word Embedding中是很吃亏的白白丢掉了很多信息。
四、BERT
4.1 BERT简介 参考https://github.com/NLP-LOVE/ML-NLP/tree/master/NLP/16.8%20BERT BERT的全称是Bidirectional Encoder Representation from Transformers是Google2018年提出的预训练模型即双向Transformer的encoder因为decoder是不能获要预测的信息的。
BERT采用和GPT完全相同的两阶段模型首先是语言模型预训练其次是使用Fine-Tuning模式解决下游任务。和GPT的最主要不同在于在预训练阶段采用了类似ELMO的双向语言模型当然另外一点是语言模型的数据规模要比GPT大。
BERT模型的主要创新点都在预训练方法上即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。
4.2 BERT预训练
BERT预训练模型分为以下三个步骤Embedding、Masked LM、Next Sentence Prediction。
1Embedding
这里的Embedding由三种Embedding求和而成 Token Embeddings是词向量第一个单词是CLS标志可以用于之后的分类任务Segment Embeddings用来区别两种句子因为预训练不光做LM还要做以两个句子为输入的分类任务Position Embeddings和之前文章中的Transformer不一样不是三角函数而是学习出来的。
2Masked LM
MLM可以理解为完形填空作者会随机mask每一个句子中15%的词用其上下文来做预测例如my dog is hairy → my dog is [MASK]
此处将hairy进行了mask处理然后采用非监督学习的方法预测mask位置的词是什么。但是该方法有一个问题因为是mask15%的词其数量已经很高了这样就会导致某些词在fine-tuning阶段从未见过为了解决这个问题作者做了如下的处理 80%是采用[mask]my dog is hairy → my dog is [MASK] 10%是随机取一个词来代替mask的词my dog is hairy - my dog is apple 10%保持不变my dog is hairy - my dog is hairy
注意这里的10%是15%需要mask中的10%
那么为啥要以一定的概率使用随机词呢这是因为transformer要保持对每个输入token分布式的表征否则Transformer很可能会记住这个[MASK]就是hairy。至于使用随机词带来的负面影响文章中解释说所有其他的token(即非hairy的token)共享15%*10% 1.5%的概率其影响是可以忽略不计的。Transformer全局的可视又增加了信息的获取但是不让模型获取全量信息。
3Next Sentence Prediction
选择一些句子对A与B其中50%的数据B是A的下一条句子剩余50%的数据B是语料库中随机选择的学习其中的相关性添加这样的预训练的目的是目前很多NLP的任务比如QA和NLI都需要理解两个句子之间的关系从而能让预训练的模型更好的适应这样的任务。 个人理解
BERT先是用Mask来提高视野范围的信息获取量增加duplicate再随机Mask这样跟RNN类方法依次训练预测没什么区别了除了mask不同位置外全局视野极大地降低了学习的难度然后再用AB/C来作为样本这样每条样本都有50%的概率看到一半左右的噪声但直接学习Mask AB/C是没法学习的因为不知道哪些是噪声所以又加上next_sentence预测任务与MLM同时进行训练这样用next来辅助模型对噪声/非噪声的辨识用MLM来完成语义的大部分的学习。
4.3 BERT的优缺点
1BERT优点
Transformer Encoder因为有Self-attention机制因此BERT自带双向功能。因为双向功能以及多层Self-attention机制的影响使得BERT必须使用掩盖式语言模型Masked-LM来完成token级别的预训练。为了获取比词更高级别的句子级别的语义表征BERT加入了Next Sentence Prediction来和Masked-LM一起做联合训练。为了适配多任务下的迁移学习BERT设计了更通用的输入层和输出层。微调成本小。
2BERT缺点
task1的随机遮挡策略略显粗犷推荐阅读《Data Nosing As Smoothing In Neural Network Language Models》。[MASK]标记在实际预测中不会出现训练时用过多[MASK]影响模型表现。每个batch只有15%的token被预测所以BERT收敛得比left-to-right模型要慢它们会预测每个token。BERT对硬件资源的消耗巨大大模型需要16个tpu历时四天更大的模型需要64个tpu历时四天。
4.4 GPT和BERT对比
尽管 GPT 和 BERT 都基于 Transformer 架构但两者的工作原理和目标任务有着显著的区别。
GPT自回归模型
GPT 是一种 自回归模型它通过逐步生成文本来完成任务。具体来说GPT 在训练时会预测下一个词基于前面已经生成的词生成时也是从第一个词开始逐步生成完整的文本。在自回归模型中生成的每个词依赖于之前生成的词因此它只能从左到右依序生成。这种生成方式非常适合 文本生成 任务比如机器翻译、文本续写等。自回归模型的目标是最大化条件概率 P ( w t ∣ w 1 , w 2 , . . . , w t − 1 ) P ( w_t ∣ w_1 , w_2 , . . . , w_{t − 1} ) P(wt∣w1,w2,...,wt−1) 即当前词的生成依赖于之前所有生成的词。
BERT自编码模型
BERT 是一种 自编码模型采用的是双向 Transformer。它同时关注输入序列中前后的词汇通过 掩码语言模型Masked Language ModelMLM 进行训练即模型会随机掩盖一部分输入词然后通过上下文信息来预测这些被掩盖的词。BERT 更适合 分类、序列标注 等任务因其能够在双向上下文中进行预测捕捉了更全面的上下文信息。自编码模型的目标是重建原始输入序列并且其生成方式不依赖于序列的顺序。
关键区别
GPT 是自回归模型通过逐步生成下一个词来处理生成任务而 BERT 是 自编码模型通过对输入序列进行上下文理解来进行预测。GPT 只能基于左侧上下文进行生成而 BERT 可以使用全局上下文。
4.5 从word2Vec, ELMO, GPT 到BERT 从上图可见Bert其实和ELMO及GPT存在千丝万缕的关系:
如果我们把GPT预训练阶段换成双向语言模型那么就得到了Bert如果我们把ELMO的特征抽取器换成Transformer那么我们也会得到Bert。
所以你可以看出BERT最关键两点一点是特征抽取器采用Transformer第二点是预训练的时候采用双向语言模型。
那么新问题来了对于Transformer来说怎么才能在这个结构上做双向语言模型任务呢乍一看上去好像不太好搞。我觉得吧其实有一种很直观的思路怎么办看看ELMO的网络结构图只需要把两个LSTM替换成两个Transformer一个负责正向一个负责反向特征提取其实应该就可以。当然这是我自己的改造Bert没这么做。
那么BERT是怎么做的呢前面提到了CBOW方法它的核心思想是在做语言模型任务的时候我把要预测的单词抠掉然后根据它的上文Context-Before和下文Context-after去预测单词。其实BERT就是这么做的。
五、BART
BART模型的全称为“Bidirectional and Auto-Regressive Transformers”从字面意思理解即 “兼有双向语言建模和自回归机制的Transformer”。
BART出自 Facebook 在 2019年发表的文章 BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension
5.1 从GPT, BERT到BART
在架构方面BART继承了Transformer标准的6层编码器和6层解码器架构。其中编码器类似于BERT利用掩膜机制建立双向语言模型而解码器则像GPT那样以自回归的方式产生输出。
GPT是一种Auto-Regressive(自回归)的语言模型。 它也可以看作是Transformer model的Decoder部分它的优化目标就是标准的语言模型目标序列中所有token的联合概率。GPT采用的是自然序列中的从左到右或者从右到左的因式分解。BERT是一种Auto-Encoding(自编码)的语言模型。 它也可以看作是Transformer model的Encoder部分在输入端随机使用一种特殊的[MASK]token来替换序列中的token这也可以看作是一种noise所以BERT也叫Masked Language Model。 BART吸收了BERT的bidirectional encoder和GPT的left-to-right decoder 的特点 建立在标准的seq2seq Transformer model的基础之上这使得它 比BERT更适合文本生成的场景相比GPT也多了双向上下文语境信息。在生成任务上获得进步的同时它也可以在一些文本理解类任务上取得SOTA。
BART在文章中明确给出了上述三个模型的对比如下图所示。 从上图可以看出BART是一个encoder-decoder的结构其结合了BERT和GPT的特点由 双向encoder类似BERT 和 left-to-right自回归decoder类似GPT 两部分组成。
其encoder端的输入是加了噪音的序列decoder端的输入是right-shifted的序列decoder端的目标是原序列。模型设计的目的很明确就是在利用encoder端的双向建模能力的同时保留自回归的特性以适用于生成任务。
5.2 BART的损失函数
BART模型的预训练是对原始文本破坏再重建因此损失函数为decoder的输出与原始文本ground truth的交叉熵cross entropy。
5.3 BART的噪声Noise
相对于BERT中单一的noise类型(只有简单地用[MASK] token进行替换这一种noise)BART在encoder端尝试了多种noise。包括 Token MaskingToken 掩码在输入序列中随机选择一些token并用一个特殊的标记通常是 [MASK]来替换它们。模型的目标是根据上下文信息预测这些被掩码的token。 Token DeletionToken 删除在输入序列中随机删除一些token。模型的目标是根据剩余的上下文信息恢复被删除的token(学习删除的确切的位置和缺失的词)。 Token InfillingToken 填充随机将一段连续的token称作span替换成一个[MASK]span的长度服从泊松分布。(与Token Masking不同的是Token Infilling可以涉及连续的多个token的缺失。) Sentence Permutation 一个文档根据句号被分成句子这些句子以随机的顺序打乱。 Document Rotation: 将统一随机选择一个标记并旋转文档以便该文档以该标记开始。该任务训练模型识别文档的开始位置。 各种Noise技术的作用
为什么要尝试这么多种noise呢其原因和目的也很简单
BERT的这种简单替换导致的是encoder端的输入携带了有关序列结构的一些信息比如序列的长度等信息而这些信息在文本生成任务中一般是不会提供给模型的。BART采用更加多样的noise意图是破坏掉这些有关序列结构的信息防止模型去“依赖”这样的信息。
5.4 BART在下游任务上的应用
Sequence Classification Tasks 对于序列分类任务相同的输入被输入到编码器和解码器中最终解码器标记的最终隐藏状态被输入到新的多类线性分类器中。这个方法和在BERT中的CLS token相关。但是我们添加了额外的token到末尾这样解码器中的token表示就可以从完整的输入中进行解码器。Figure 3a 其中decoder的最后一个隐藏节点是一个特殊标记相当于BERT模型中的[CLS]。Token Classification Tasks 对于Token分类任务例如机器阅读理解、信息抽取等将完整的输入输入到encoder和decoder中将decoder最后一层的所有隐藏节点作为每个token的模型表示再对每个token的表示进行分类最终得到结果输出。Sequence Generation Tasks 因为BART有自动回归的解码器对于句子生成任务它可以直接微调例如抽象问题的回答和总结。在这些任务中输入的与去噪训练前的目标密切相关信息被复制然后被处理。在这里编码器输入是输入的句子解码器通过自回归生成输出。将源文本输入到encoder中将待生成的目标文本输入到decoder中进行自回归生成。Machine Translation 我们也探索使用BART去改善机器翻译解码器先前的工作已经展示了模型可以通过合并预训练解码器改善通过添加从bitext学习到的一组新的编码器参数但是从使用在解码器中预训练语言模型的受益是有限的。我们展示了使用整个的BART模型包括编码器和解码器作为一个单独的预训练解码器是有限的。通过添加从bitext学习到的一组新的编码器参数。figure 3b
更准确地我们用一个随机的初始化编码器代替BART的编码器向量层。这个模型是端到端训练的它训练这个新的编码器把外国文字映射为BART可以去噪的英文输入。这个新的编码器可以使用与原始BART模型不同的词汇表。 我们用两步训练这个源编码器在这两种情况下从BART模型的输出反向传播交叉熵损失。
第一步我们固定BART的大部分参数了只更新随机初始化的源编码器和BART的位置向量和BART的编码器第一层中自注意力输入投影矩阵。第二步我们以较小的迭代次数训练整个模型参数。
参考资料
从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史https://github.com/NLP-LOVE/ML-NLP/tree/master/NLP/16.8%20BERTTransformer、Bert、Gpt对比系列超详细介绍transformer的原理bert和gpt的区别GPT模型的前世今生【论文精读】生成式预训练之BART