当前位置: 首页 > news >正文

微网站模板开发访问wordpress速度慢

微网站模板开发,访问wordpress速度慢,网上能注册公司吗怎么注册,线上代运营公司摘要 我们介绍了一种新的语言表示模型#xff0c;名为BERT#xff0c;全称为来自Transformer的双向编码器表示。与最近的语言表示模型#xff08;Peters等#xff0c;2018a#xff1b;Radford等#xff0c;2018#xff09;不同#xff0c;BERT旨在通过在所有层中联合调…摘要 我们介绍了一种新的语言表示模型名为BERT全称为来自Transformer的双向编码器表示。与最近的语言表示模型Peters等2018aRadford等2018不同BERT旨在通过在所有层中联合调节左右上下文从未标记的文本中预训练深度双向表示。因此预训练的BERT模型只需添加一个额外的输出层就可以为广泛的任务如问答和语言推理创建最先进的模型而无需对特定任务架构进行大量修改。 BERT在概念上简单但在经验上非常强大。它在11个自然语言处理任务上获得了新的最先进结果包括将GLUE分数推至80.5%绝对提高7.7个百分点MultiNLI准确率至86.7%绝对提高4.6个百分点SQuAD v1.1问答测试F1至93.2绝对提高1.5个百分点和SQuAD v2.0测试F1至83.1绝对提高5.1个百分点。 1 引言 语言模型预训练已被证明对改善许多自然语言处理任务有效Dai 和 Le2015Peters 等2018aRadford 等2018Howard 和 Ruder2018。这些任务包括句子级任务如自然语言推理Bowman 等2015Williams 等2018和释义Dolan 和 Brockett2005这些任务旨在通过整体分析句子来预测句子之间的关系以及词元级任务如命名实体识别和问答这些任务要求模型在词元级别生成细粒度的输出Tjong Kim Sang 和 De Meulder2003Rajpurkar 等2016。目前有两种将预训练语言表示应用于下游任务的策略基于特征的方法和微调方法。基于特征的方法如 ELMoPeters 等2018a使用任务特定的架构将预训练表示作为附加特征。微调方法如生成式预训练 TransformerOpenAI GPTRadford 等2018引入最少的任务特定参数并通过简单微调所有预训练参数来训练下游任务。这两种方法在预训练期间共享相同的目标函数即使用单向语言模型来学习通用语言表示。 我们认为当前的技术限制了预训练表示的能力尤其是对于微调方法。主要限制在于标准语言模型是单向的这限制了预训练期间可以使用的架构选择。例如在 OpenAI GPT 中作者使用了从左到右的架构其中每个词元在 Transformer 的自注意力层中只能关注前面的词元Vaswani 等2017。这种限制对于句子级任务来说是次优的并且在将基于微调的方法应用于词元级任务如问答时可能非常有害因为在问答任务中结合双向上下文至关重要。 在本文中通过提出 BERT来自 Transformer 的双向编码器表示改进了基于微调的方法。BERT 通过使用“掩码语言模型”MLM预训练目标来缓解上述的单向性限制该目标受到完形填空任务Taylor1953的启发。掩码语言模型随机掩码输入中的一些词元目标是仅根据上下文预测被掩码词的原始词汇 ID。与从左到右的语言模型预训练不同MLM 目标使表示能够融合左右上下文从而使我们能够预训练一个深度双向 Transformer。除了掩码语言模型外我们还使用“下一句预测”任务来联合预训练文本对表示。本文的贡献如下 证明了双向预训练对语言表示的重要性。与 Radford 等2018使用单向语言模型进行预训练不同BERT 使用掩码语言模型来实现预训练的深度双向表示。这也与 Peters 等2018a形成对比后者使用独立训练的左到右和右到左语言模型的浅层拼接。我们展示了预训练表示减少了对许多高度工程化的任务特定架构的需求。BERT 是第一个基于微调的表示模型在大量句子级和词元级任务上实现了最先进的性能超越了许多任务特定的架构。BERT 在十一个 NLP 任务上推进了最新技术水平。代码和预训练模型可在 https://github.com/google-research/bert 获取。 2 相关工作 预训练通用语言表示有着悠久的历史本节我们简要回顾最广泛使用的方法。 2.1 无监督的基于特征的方法 学习广泛适用的词表示是几十年来一直活跃的研究领域包括非神经方法Brown 等1992Ando 和 Zhang2005Blitzer 等2006和神经方法Mikolov 等2013Pennington 等2014。预训练的词嵌入是现代 NLP 系统的核心部分与从头学习的嵌入相比提供了显著的改进Turian 等2010。为了预训练词嵌入向量使用了从左到右的语言建模目标Mnih 和 Hinton2009以及区分左右上下文中正确与错误词的目标Mikolov 等2013。 这些方法已经被推广到更粗粒度的任务中例如句子嵌入Kiros 等2015Logeswaran 和 Lee2018或段落嵌入Le 和 Mikolov2014。为了训练句子表示先前的工作使用了以下目标对候选下一句进行排序Jernite 等2017Logeswaran 和 Lee2018、在给定前一句表示的情况下从左到右生成下一句的单词Kiros 等2015或基于去噪自编码器的目标Hill 等2016。 ELMo 及其前身Peters 等20172018a从另一个维度推广了传统的词嵌入研究。它们从左到右和从右到左的语言模型中提取上下文敏感的特征。每个词元的上下文表示是左到右和右到左表示的拼接。当将上下文词嵌入与现有的任务特定架构集成时ELMo 在多个主要 NLP 基准测试中取得了最先进的成果Peters 等2018a包括问答Rajpurkar 等2016、情感分析Socher 等2013和命名实体识别Tjong Kim Sang 和 De Meulder2003。Melamud 等2016提出通过使用 LSTM 从左右上下文预测单个词的任务来学习上下文表示。与 ELMo 类似他们的模型是基于特征的并且不是深度双向的。Fedus 等2018表明完形填空任务可用于提高文本生成模型的鲁棒性。 2.2 无监督的微调方法 与基于特征的方法类似这一方向的最早工作仅从无标签文本中预训练词嵌入参数Collobert 和 Weston2008。 最近能够生成上下文词元表示的句子或文档编码器已经从无标签文本中预训练并针对有监督的下游任务进行微调Dai 和 Le2015Howard 和 Ruder2018Radford 等2018。这些方法的优点是需要从头学习的参数很少。至少部分由于这一优势OpenAI GPTRadford 等2018在 GLUE 基准测试Wang 等2018a中的许多句子级任务上取得了当时最先进的结果。从左到右的语言建模和自编码器目标已被用于预训练此类模型Howard 和 Ruder2018Radford 等2018Dai 和 Le2015。 2.3 从有监督数据中进行迁移学习 还有一些研究表明从具有大数据集的有监督任务中进行有效迁移是可行的例如自然语言推理Conneau 等2017和机器翻译McCann 等2017。计算机视觉研究也证明了从大型预训练模型中进行迁移学习的重要性其中一种有效的方法是对使用 ImageNet 预训练的模型进行微调Deng 等2009Yosinski 等2014。 3 BERT 我们在本节介绍 BERT 及其详细实现。我们的框架分为两个步骤预训练和微调。在预训练期间模型通过不同的预训练任务在无标签数据上进行训练。在微调阶段BERT 模型首先使用预训练的参数进行初始化然后使用下游任务的标签数据对所有参数进行微调。每个下游任务都有单独的微调模型尽管它们是用相同的预训练参数初始化的。图 1 中的问答示例将作为本节的运行示例。 BERT 的一个显著特点是其跨不同任务的统一架构。预训练架构和最终的下游架构之间的差异很小。 模型架构 BERT 的模型架构是一个多层的双向 Transformer 编码器基于 Vaswani 等2017描述的原始实现并在 tensor2tensor 库中发布。由于 Transformer 的使用已经变得普遍且我们的实现与原始实现几乎相同我们将省略对模型架构的详尽背景描述并建议读者参考 Vaswani 等2017以及优秀的指南例如《The Annotated Transformer》。 在本工作中我们将层数即 Transformer 块表示为 L隐藏层大小表示为 H自注意力头的数量表示为 A。我们主要报告两种模型尺寸的结果 B E R T B A S E BERT_{BASE} BERTBASE​L12H768A12总参数110M B E R T L A R G E BERT_{LARGE} BERTLARGE​L24H1024A16总参数340M。 为了便于比较 B E R T B A S E BERT_{BASE} BERTBASE​ 的模型尺寸与 OpenAI GPT 相同。然而关键区别在于BERT 的 Transformer 使用双向自注意力而 GPT 的 Transformer 使用受限的自注意力其中每个词元只能关注其左侧的上下文。 输入/输出表示 为了使 BERT 能够处理各种下游任务我们的输入表示能够明确地表示单个句子或句子对例如〈问题答案〉在一个词元序列中。在本工作中“句子”可以是任意连续的文本片段而不是实际的语言学句子。“序列”指的是输入到 BERT 的词元序列可以是一个句子或两个句子打包在一起。 我们使用 WordPiece 嵌入Wu 等2016词汇表大小为 30,000。每个序列的第一个词元始终是一个特殊的分类词元 [ C L S ] \mathrm{[CLS]} [CLS]。与该词元对应的最终隐藏状态被用作分类任务的聚合序列表示。句子对被打包成一个序列。我们通过两种方式区分句子首先我们用一个特殊词元 [ SEP ] \text{[ SEP ]} [ SEP ]分隔它们其次我们为每个词元添加一个学习的嵌入指示它属于句子 A 还是句子 B。如图 1 所示我们将输入嵌入表示为 E特殊词元 [ C L S ] \mathrm{[CLS]} [CLS] 的最终隐藏向量表示为 C ∈ R H C\in\mathbb{R}^H C∈RH第 i 个输入词元的最终隐藏向量表示为 T i ∈ R H T_i\in\mathbb{R}^H Ti​∈RH。 对于给定的词元其输入表示通过将对应的词元嵌入、段嵌入和位置嵌入相加来构建。图 2 展示了这种构建的可视化。 3.1 BERT 的预训练 与 Peters 等2018a和 Radford 等2018不同我们没有使用传统的从左到右或从右到左的语言模型来预训练 BERT。相反我们使用两个无监督任务来预训练 BERT本节将对此进行描述。此步骤如图 1 左侧所示。 任务 #1掩码语言模型MLM 直观上可以合理地认为深度双向模型比从左到右的模型或左右模型的浅层拼接更强大。然而标准的条件语言模型只能从左到右或从右到左训练因为双向条件会使每个词间接“看到自己”从而使模型能够在多层上下文中轻松预测目标词。为了训练深度双向表示我们简单地随机掩码一定比例的输入词元然后预测这些被掩码的词元。我们将此过程称为“掩码语言模型”MLM尽管在文献中它通常被称为完形填空任务Taylor1953。在这种情况下与被掩码词元对应的最终隐藏向量被输入到词汇表上的输出 softmax 中就像在标准语言模型中一样。在所有实验中我们随机掩码每个序列中 15% 的 WordPiece 词元。与去噪自编码器Vincent 等2008不同我们只预测被掩码的词而不是重建整个输入。 尽管这使我们能够获得双向预训练模型但一个缺点是预训练和微调之间存在不匹配因为 [MASK] 词元在微调期间不会出现。为了缓解这个问题我们并不总是用实际的 [MASK] 词元替换“被掩码”的词。训练数据生成器随机选择 15% 的词元位置进行预测。如果选择了第 i 个词元我们将其替换为180% 的时间使用 [MASK] 词元210% 的时间使用随机词元310% 的时间保持不变。然后T_i 将用于通过交叉熵损失预测原始词元。我们在附录 C.2 中比较了此过程的不同变体。 任务 #2下一句预测NSP 许多重要的下游任务如问答QA和自然语言推理NLI都基于理解两个句子之间的关系而语言建模并未直接捕捉到这一点。为了训练一个理解句子关系的模型我们对一个二分类的下一句预测任务进行预训练该任务可以从任何单语语料库中轻松生成。具体来说在为每个预训练示例选择句子 A 和 B 时50% 的时间 B 是 A 的实际下一句标记为 IsNext50% 的时间是从语料库中随机选择的句子标记为 NotNext。如图 1 所示C 用于下一句预测NSP。尽管任务简单但我们在第 5.1 节中证明针对此任务的预训练对 QA 和 NLI 都非常有益。 NSP 任务与 Jernite 等2017和 Logeswaran 和 Lee2018中使用的表示学习目标密切相关。然而在先前的工作中只有句子嵌入被迁移到下游任务中而 BERT 将所有参数迁移以初始化最终任务的模型参数。 预训练数据 预训练过程主要遵循现有的语言模型预训练文献。我们使用 BooksCorpus8 亿词Zhu 等2015和英文维基百科25 亿词作为预训练语料库。对于维基百科我们仅提取文本段落忽略列表、表格和标题。为了提取长的连续序列使用文档级语料库而不是打乱的句子级语料库如 Billion Word BenchmarkChelba 等2013至关重要。 3.2 BERT 的微调 微调非常简单因为 Transformer 中的自注意力机制使 BERT 能够通过交换适当的输入和输出来建模许多下游任务——无论它们涉及单个文本还是文本对。对于涉及文本对的应用常见的模式是在应用双向交叉注意力之前独立编码文本对例如 Parikh 等2016Seo 等2017。BERT 则使用自注意力机制统一这两个阶段因为用自注意力编码连接的文本对有效地包含了两句话之间的双向交叉注意力。 对于每个任务我们只需将任务特定的输入和输出插入 BERT并端到端地微调所有参数。在输入端预训练中的句子 A 和句子 B 类似于1释义中的句子对2蕴含中的假设-前提对3问答中的问题-段落对4文本分类或序列标注中的退化文本-? 对。在输出端词元表示被输入到词元级任务如序列标注或问答的输出层而 [CLS] 表示被输入到分类任务如蕴含或情感分析的输出层。 与预训练相比微调相对便宜。从完全相同的预训练模型开始本文中的所有结果都可以在单个 Cloud TPU 上最多 1 小时或在 GPU 上几小时内复现。我们在第 4 节的相应小节中描述了任务特定的细节。更多细节可在附录 A.5 中找到。 4 实验 在本节中我们展示了 BERT 在 11 个 NLP 任务上的微调结果。 4.1 GLUE 通用语言理解评估GLUE基准Wang 等2018a是一个包含多种自然语言理解任务的数据集。GLUE 数据集的详细描述见附录 B.1。 为了在 GLUE 上进行微调我们按照第 3 节中的描述表示输入序列单句或句子对并使用第一个输入词元[ [ C L S ] \mathrm{[CLS]} [CLS]]对应的最终隐藏向量 C ∈ R H C\in\mathbb{R}^H C∈RH 作为聚合表示。微调期间引入的唯一新参数是分类层权重 W ∈ R K × H W\in\mathbb{R}^{K\times H} W∈RK×H其中 K 是标签数量。我们使用 C 和 W 计算标准分类损失即 log ⁡ ( s o f t m a x ( C W T ) ) \log(\mathrm{softmax}(CW^T)) log(softmax(CWT))。 我们使用批量大小为 32并在所有 GLUE 任务的数据上微调 3 个 epoch。对于每个任务我们在开发集上选择了最佳的微调学习率从 5 e − 5 , 4 e − 5 , 3 e − 5 5e-5,4e-5,3e-5 5e−5,4e−5,3e−5和 2 e − 5 \mathrm{2e-5} 2e−5 中选择。此外对于 BERTLARGE我们发现微调在小数据集上有时不稳定因此我们进行了多次随机重启并选择了在开发集上表现最佳的模型。在随机重启中我们使用相同的预训练检查点但执行不同的微调数据打乱和分类层初始化。 结果如表 1 所示。BERTBASE 和 BERTLARGE 在所有任务上均大幅超越所有系统分别比之前的最先进技术平均准确率提高了 4.5% 和 7.0%。需要注意的是BERTBASE 和 OpenAI GPT 在模型架构上几乎相同除了注意力掩码的差异。对于 GLUE 中最大且最广泛报道的任务 MNLIBERT 取得了 4.6% 的绝对准确率提升。在官方 GLUE 排行榜上BERTLARGE 获得了 80.5 的分数而截至撰写本文时OpenAI GPT 的得分为 72.8。 我们发现BERTLARGE 在所有任务上均显著优于 BERTBASE尤其是在训练数据非常少的任务上。模型大小的影响在第 5.2 节中进行了更深入的探讨。 4.2 SQuAD v1.1 斯坦福问答数据集SQuAD v1.1是一个包含 10 万条众包问答对的数据集Rajpurkar 等2016。给定一个问题和一段包含答案的维基百科文章任务是预测文章中答案的文本范围。 如图 1 所示在问答任务中我们将输入问题和文章表示为一个打包的序列问题使用 A 嵌入文章使用 B 嵌入。在微调期间我们仅引入一个起始向量 S ∈ R H S\in\mathbb{R}^H S∈RH 和一个结束向量 E ∈ R H E\in\mathbb{R}^H E∈RH。词元 i 作为答案范围起始的概率通过 T_i 和 S 的点积计算然后对段落中的所有词元进行 softmax 归一化 P i e S ⋅ T i ∑ j e S ⋅ T j P_i\frac{e^{S\cdot T_i}}{\sum_je^{S\cdot T_j}} Pi​∑j​eS⋅Tj​eS⋅Ti​​。类似的公式用于计算答案范围的结束位置。从位置 i 到位置 j 的候选范围的得分定义为 S ⋅ T i E ⋅ T j S\cdot T_{i}E\cdot T_{j} S⋅Ti​E⋅Tj​得分最高的范围j ≥ i被用作预测结果。训练目标是正确起始和结束位置的对数似然之和。我们以 5 e − 5 \mathrm{5e-5} 5e−5的学习率和 32 的批量大小微调 3 个 epoch。 表 2 显示了排行榜的顶级条目以及已发表系统的顶级结果Seo 等2017Clark 和 Gardner2018Peters 等2018aHu 等2018。SQuAD 排行榜的顶级结果没有最新的公开系统描述并且在训练系统时允许使用任何公开数据。因此我们在系统中进行了适度的数据增强首先在 TriviaQAJoshi 等2017上进行微调然后在 SQuAD 上进行微调。 我们表现最好的系统在集成模型上比排行榜顶级系统高出 1.5 F1在单一系统上高出 1.3 F1。事实上我们的单一 BERT 模型在 F1 分数上优于顶级集成系统。如果没有 TriviaQA 微调数据我们仅损失 0.1-0.4 F1仍然以较大优势超越所有现有系统。 4.3 SQuAD v2.0 SQuAD 2.0 任务扩展了 SQuAD 1.1 的问题定义允许提供的段落中可能不存在简短答案从而使问题更加贴近现实。 我们采用了一种简单的方法来扩展 SQuAD v1.1 的 BERT 模型以应对此任务。我们将没有答案的问题视为答案范围从 [ C L S ] \mathrm{[CLS]} [CLS]词元开始和结束。答案范围起始和结束位置的概率空间被扩展以包括 [ C L S ] \mathrm{[CLS]} [CLS]词元的位置。对于预测我们将无答案范围的得分 s n u l l S ⋅ C E ⋅ C s_{\mathrm{null}}S\cdot CE\cdot C snull​S⋅CE⋅C 与最佳非空范围的得分 s i , j ^ max ⁡ j ≥ i S ⋅ T i E ⋅ T j \hat{s_{i,j}}\max_{j\geq i}S\cdot T_{i}E\cdot T_{j} si,j​^​maxj≥i​S⋅Ti​E⋅Tj​进行比较。当 s i , j ^ s n u l l τ \hat{s_{i,j}}s_{\mathrm{null}}\tau si,j​^​snull​τ 时我们预测一个非空答案其中阈值 τ 在开发集上选择以最大化 F1。 我们没有为此模型使用 TriviaQA 数据。我们以 5 e − 5 \mathrm{5e-5} 5e−5 的学习率和 48 的批量大小微调了 2 个 epoch。 与之前排行榜条目和顶级已发表工作Sun 等2018Wang 等2018b的结果对比见表 3排除了使用 BERT 作为其组件的系统。我们观察到比之前最佳系统提高了 5.1 F1。 4.4 SWAG 对抗生成情境数据集SWAG包含 11.3 万个句子对补全示例用于评估基于常识的推理Zellers 等2018。给定一个句子任务是从四个选项中选择最合理的续写。 在对 SWAG 数据集进行微调时我们构建了四个输入序列每个序列包含给定句子句子 A和可能的续写句子 B的连接。引入的唯一任务特定参数是一个向量其与 [ C L S ] \mathrm{[CLS]} [CLS] 词元表示 C 的点积表示每个选项的得分并通过 softmax 层进行归一化。 我们以 2 e − 5 \mathrm{2e-5} 2e−5的学习率和 16 的批量大小对模型进行了 3 个 epoch 的微调。结果如表 4 所示。 B E R T L A R G E BERT_{LARGE} BERTLARGE​ 比作者的基线 E S I M E L M o \mathrm{ESIMELMo} ESIMELMo系统高出 27.1%比 OpenAI GPT 高出 8.3%。 5 消融实验 在本节中我们对 BERT 的多个方面进行了消融实验以更好地理解它们的相对重要性。其他消融实验见附录 C。 5.1 预训练任务的影响 我们通过评估两个预训练目标来展示 BERT 深度双向性的重要性这两个目标使用与 B E R T B A S E BERT_{BASE} BERTBASE​ 完全相同的预训练数据、微调方案和超参数 无 NSP一个双向模型使用“掩码语言模型”MLM进行训练但没有“下一句预测”NSP任务。LTR 且无 NSP一个仅使用左上下文的模型使用标准的从左到右LTR语言模型进行训练而不是 MLM。在微调时也应用了仅左上下文的约束因为移除它会导致预训练/微调不匹配从而降低下游性能。此外该模型在没有 NSP 任务的情况下进行了预训练。这与 OpenAI GPT 直接可比但使用了我们更大的训练数据集、输入表示和微调方案。 我们首先检查了 NSP 任务的影响。表 5 显示移除 NSP 会显著降低 QNLI、MNLI 和 SQuAD 1.1 的性能。接下来我们通过比较“无 NSP”和“LTR 且无 NSP”来评估训练双向表示的影响。LTR 模型在所有任务上的表现均不如 MLM 模型尤其是在 MRPC 和 SQuAD 上表现大幅下降。 对于 SQuAD直观上 LTR 模型在词元预测上表现会很差因为词元级别的隐藏状态没有右侧上下文。为了尽力增强 LTR 系统我们在其顶部添加了一个随机初始化的 BiLSTM。这确实显著改善了 SQuAD 的结果但仍远不如预训练的双向模型。BiLSTM 在 GLUE 任务上反而降低了性能。 我们认识到也可以像 ELMo 那样分别训练 LTR 和 RTL 模型并将每个词元表示为两个模型的拼接。然而a这比单个双向模型的成本高一倍b这对于 QA 等任务来说不直观因为 RTL 模型无法根据问题条件生成答案c它的能力严格弱于深度双向模型因为双向模型可以在每一层同时使用左右上下文。 5.2 模型大小的影响 在本节中我们探讨了模型大小对微调任务准确率的影响。我们训练了多个不同层数、隐藏单元数和注意力头数的 BERT 模型其他超参数和训练过程与之前描述的一致。 表 6 显示了在选定的 GLUE 任务上的结果。在表中我们报告了 5 次随机重启微调后的开发集平均准确率。可以看出更大的模型在所有四个数据集上都带来了严格的准确率提升即使是只有 3,600 个标注训练样本的 MRPC且与预训练任务有显著不同。令人惊讶的是我们能够在已经相对现有文献较大的模型基础上取得如此显著的改进。例如Vaswani 等2017中探索的最大 Transformer 是L6, H1024, A16编码器有 1 亿参数而我们在文献中找到的最大 Transformer 是L64, H512, A2有 2.35 亿参数Al-Rfou 等2018。相比之下 B E R T B A S E BERT_{BASE} BERTBASE​ 包含 1.1 亿参数$BERT_{LARGE} $包含 3.4 亿参数。 长期以来人们已经知道增加模型大小会在机器翻译和语言建模等大规模任务上带来持续改进这通过表 6 中保留训练数据的语言模型困惑度得到了证明。然而我们相信这是第一个令人信服地证明只要模型经过充分的预训练扩展到极大模型规模也会在非常小规模的任务上带来显著改进的工作。Peters 等2018b在将预训练的双向语言模型从两层增加到四层时对下游任务的影响呈现了混合结果Melamud 等2016提到将隐藏维度从 200 增加到 600 有帮助但进一步增加到 1,000 并未带来更多改进。这两项先前的工作都使用了基于特征的方法——我们假设当模型直接在下游任务上进行微调并且仅使用少量随机初始化的附加参数时任务特定模型可以从更大、更具表现力的预训练表示中受益即使下游任务数据非常少。 5.3 基于特征的 BERT 方法 到目前为止所有 BERT 结果都使用了微调方法即在预训练模型上添加一个简单的分类层并在下游任务上联合微调所有参数。然而基于特征的方法从预训练模型中提取固定特征具有某些优势。首先并非所有任务都能轻松地用 Transformer 编码器架构表示因此需要添加任务特定的模型架构。其次预计算训练数据的昂贵表示并在其基础上运行更便宜的模型具有显著的计算优势。 在本节中我们通过将 BERT 应用于 CoNLL-2003 命名实体识别NER任务Tjong Kim Sang 和 De Meulder2003来比较这两种方法。在 BERT 的输入中我们使用保留大小写的 WordPiece 模型并包含数据提供的最大文档上下文。按照标准做法我们将其表述为标注任务但在输出中不使用 CRF 层。我们使用第一个子词元的表示作为 NER 标签集的词元级分类器的输入。 为了消融微调方法我们应用基于特征的方法通过从一个或多个层提取激活而不微调 BERT 的任何参数。这些上下文嵌入被用作随机初始化的两层 768 维 BiLSTM 的输入然后再连接到分类层。 结果如表 7 所示。BERTLARGE 与最先进的方法竞争激烈。表现最好的方法将预训练 Transformer 顶部四个隐藏层的词元表示拼接起来仅比微调整个模型低 0.3 F1。这表明 BERT 在微调和基于特征的方法中均有效。 6 结论 最近由于语言模型迁移学习带来的实证改进表明丰富的无监督预训练是许多语言理解系统的核心部分。特别是这些结果使得即使是低资源任务也能从深度单向架构中受益。我们的主要贡献是进一步将这些发现推广到深度双向架构使相同的预训练模型能够成功应对广泛的 NLP 任务。 附录 “BERT用于语言理解的深度双向 Transformer 预训练” 我们将附录分为三个部分 附录 A提供了 BERT 的额外实现细节附录 B提供了实验的额外细节附录 C提供了额外的消融实验。 我们提供了 BERT 的额外消融实验包括 训练步数的影响不同掩码策略的消融实验。 A BERT 的额外细节 A.1 预训练任务的示例 以下是预训练任务的示例 掩码语言模型MLM及掩码过程 假设未标注的句子是 my dog is hairy在随机掩码过程中我们选择了第 4 个词元对应 hairy掩码过程可以进一步说明如下 80% 的时间将词替换为 [MASK] 符号例如my dog is hairy → my dog is [MASK]10% 的时间将词替换为随机词例如my dog is hairy → my dog is apple10% 的时间保持词不变例如my dog is hairy → my dog is hairy。这样做的目的是使表示偏向实际观察到的词。 这种方法的优点是 Transformer 编码器不知道哪些词会被要求预测或哪些词被随机替换因此它被迫保留每个输入词元的分布上下文表示。此外由于随机替换仅发生在所有词元的 1.5%即 15% 的 10%这似乎不会损害模型的语言理解能力。在 C.2 节中我们评估了这种策略的影响。 与标准的语言模型训练相比掩码语言模型仅对每批次中 15% 的词元进行预测这表明模型可能需要更多的预训练步数才能收敛。在 C.1 节中我们证明 MLM 的收敛速度略慢于从左到右的模型预测每个词元但 MLM 模型的实证改进远远超过了训练成本的增加。 下一句预测NSP 下一句预测任务的示例如下 输入 [CLS] the man went to [MASK] store [SEP] he bought a gallon [MASK] milk [SEP] 标签 IsNext输入 [CLS] the man [MASK] to the store [SEP] penguin [MASK] are flight ##less birds [SEP] 标签 NotNext A.2 预训练过程 为了生成每个训练输入序列我们从语料库中采样两段文本我们称之为“句子”尽管它们通常比单个句子长得多但也可以更短。第一段文本使用 A 嵌入第二段使用 B 嵌入。50% 的时间 B 是 A 的实际下一句50% 的时间是随机句子这是为“下一句预测”任务设计的。采样时确保组合长度 ≤ 512 个词元。LM 掩码在 WordPiece 分词后以 15% 的统一掩码率应用且不考虑部分词元。 我们以 256 个序列的批量大小256 序列 * 512 词元 128,000 词元/批次训练 1,000,000 步这大约是在 33 亿词语料库上的 40 个 epoch。我们使用 Adam 优化器学习率为 1e-4 β 1 0.9 \beta_10.9 β1​0.9 β 2 0.999 \beta_20.999 β2​0.999L2 权重衰减为 0.01前 10,000 步进行学习率预热之后线性衰减学习率。所有层的 dropout 概率为 0.1。我们使用 gelu 激活函数Hendrycks 和 Gimpel2016而不是标准的 relu这是遵循 OpenAI GPT 的做法。训练损失是掩码 LM 似然和下一句预测似然的平均值之和。 B E R T B A S E BERT_{BASE} BERTBASE​ 的训练在 4 个 Cloud TPU Pod 配置共 16 个 TPU 芯片上进行 B E R T L A R G E BERT_{LARGE} BERTLARGE​ 的训练在 16 个 Cloud TPU共 64 个 TPU 芯片上进行。每次预训练需要 4 天完成。 由于注意力机制与序列长度成二次方关系较长的序列成本更高。为了加速预训练我们在 90% 的步骤中使用长度为 128 的序列进行预训练然后在剩余的 10% 步骤中使用长度为 512 的序列来学习位置嵌入。 A.3 微调过程 在微调过程中大多数模型超参数与预训练相同除了批量大小、学习率和训练 epoch 数。dropout 概率始终保持在 0.1。最佳超参数值因任务而异但我们发现以下范围在所有任务中表现良好 批量大小16, 32学习率Adam 5e-5, 3e-5, 2e-5 \text{5e-5, 3e-5, 2e-5} 5e-5, 3e-5, 2e-5epoch 数2, 3, 4 我们还观察到大数据集例如 10 万标注训练样本对超参数选择的敏感性远低于小数据集。微调通常非常快因此可以简单地对上述参数进行穷举搜索并选择在开发集上表现最好的模型。 A.4 BERT、ELMo 和 OpenAI GPT 的比较 我们研究了最近流行的表示学习模型包括 ELMo、OpenAI GPT 和 BERT之间的差异。模型架构的比较如图 3 所示。请注意除了架构差异外BERT 和 OpenAI GPT 是微调方法而 ELMo 是基于特征的方法。 与 BERT 最接近的现有预训练方法是 OpenAI GPT它在大型文本语料库上训练了一个从左到右的 Transformer 语言模型。事实上BERT 的许多设计决策是为了使其尽可能接近 GPT以便两种方法可以进行最小化比较。本文的核心论点是双向性和 3.1 节中提出的两个预训练任务占据了大部分实证改进但我们注意到 BERT 和 GPT 的训练方式还有其他一些差异 GPT 在 BooksCorpus8 亿词上训练BERT 在 BooksCorpus8 亿词和维基百科25 亿词上训练。GPT 在微调时才引入句子分隔符 [SEP] 和分类符 [CLS]BERT 在预训练期间学习 [SEP]、[CLS] 和句子 A/B 嵌入。GPT 训练了 100 万步批量大小为 32,000 词BERT 训练了 100 万步批量大小为 128,000 词。GPT 在所有微调实验中使用相同的学习率 5e-5BERT 选择在开发集上表现最佳的任务特定学习率。 为了隔离这些差异的影响我们在 5.1 节中进行了消融实验证明大部分改进实际上来自两个预训练任务及其启用的双向性。 A.5 不同任务微调的图示 图 4 展示了在不同任务上微调 BERT 的图示。我们的任务特定模型通过将 BERT 与一个额外的输出层结合形成因此需要从头学习的参数数量最少。在这些任务中(a) 和 (b) 是序列级任务而 © 和 (d) 是词元级任务。在图中E 表示输入嵌入T_i 表示词元 i 的上下文表示[CLS] 是分类输出的特殊符号[SEP] 是分隔非连续词元序列的特殊符号。 B 详细实验设置 B.1 GLUE 基准实验的详细描述 我们在表 1 中的 GLUE 结果来自 GLUE 排行榜 和 OpenAI 博客。GLUE 基准包括以下数据集其描述最初总结在 Wang 等2018a中 MNLI多类型自然语言推理是一个大规模的众包蕴含分类任务Williams 等2018。QQPQuora 问题对是一个二分类任务目标是确定 Quora 上的两个问题是否语义等价Chen 等2018。QNLI问题自然语言推理是斯坦福问答数据集Rajpurkar 等2016的版本已转换为二分类任务Wang 等2018a。SST-2斯坦福情感树库是一个二分类单句任务由从电影评论中提取的句子组成Socher 等2013。CoLA语言可接受性语料库是一个二分类单句任务目标是预测英语句子是否在语言学上“可接受”Warstadt 等2018。STS-B语义文本相似性基准是一个从新闻标题和其他来源提取的句子对集合Cer 等2017。MRPC微软研究释义语料库由从在线新闻源自动提取的句子对组成Dolan 和 Brockett2005。RTE识别文本蕴含是一个类似于 MNLI 的二分类蕴含任务但训练数据少得多Bentivogli 等2009。WNLIWinograd NLI是一个小型自然语言推理数据集Levesque 等2011。 GLUE 网页指出该数据集的构建存在问题因此我们将其排除在外以确保对 OpenAI GPT 公平。在我们的 GLUE 提交中我们始终预测多数类。 额外消融实验 C.1 训练步数的影响 图 5 展示了在预训练 k 步后微调的 MNLI 开发集准确率。这使我们能够回答以下问题 问题BERT 真的需要如此大量的预训练128,000 词/批次 * 1,000,000 步才能实现高微调准确率吗 答案是的 B E R T B A S E BERT_{BASE} BERTBASE​ 在训练 100 万步时比 50 万步在 MNLI 上实现了近 1.0% 的额外准确率。问题由于 MLM 预训练每批次仅预测 15% 的词元而不是每个词元它的收敛速度是否比 LTR 预训练慢 答案MLM 模型的收敛速度确实略慢于 LTR 模型。然而就绝对准确率而言MLM 模型几乎立即开始优于 LTR 模型。 C.2 不同掩码策略的消融实验 在 3.1 节中我们提到 BERT 在使用掩码语言模型MLM目标进行预训练时采用了混合策略来掩码目标词元。以下是对不同掩码策略效果的消融研究。 需要注意的是掩码策略的目的是减少预训练和微调之间的不匹配因为 [MASK] 符号在微调阶段从未出现。我们报告了 MNLI 和 NER 的开发集结果。对于 NER我们同时报告了微调和基于特征的方法因为我们预计这种不匹配在基于特征的方法中会被放大因为模型没有机会调整表示。 结果如表 8 所示。在表中 MASK 表示我们将目标词元替换为 [MASK] 符号SAME 表示我们保持目标词元不变RND 表示我们将目标词元替换为另一个随机词元。 表的左侧部分表示在 MLM 预训练期间使用的特定策略的概率BERT 使用 80%、10%、10%右侧部分表示开发集结果。对于基于特征的方法我们拼接了 BERT 的最后 4 层作为特征这在 5.3 节中被证明是最佳方法。 从表中可以看出微调对不同掩码策略的鲁棒性令人惊讶。然而正如预期的那样仅使用 MASK 策略在将基于特征的方法应用于 NER 时存在问题。有趣的是仅使用 RND 策略的表现也比我们的策略差得多。
http://www.dnsts.com.cn/news/23489.html

相关文章:

  • 昆山做网站的kamesewordpress 中文客户端
  • 深圳企业做网站公wordpress 查询 分页
  • 怎么做网站关键词优化网站建设能解决哪些问题
  • 建视频网站的费用网站建设需要用什么书
  • 模板网站库网站开发工程师培训机构
  • 做国外有那些网站厦门seo关键词优化
  • 江苏连云港网站建设公司wordpress插件小人
  • 网站设置不拦截什么是企业营销型网站?
  • 网站流量与广告费wordpress棋牌插件
  • 北京移动官网网站建设手机端app开发公司
  • 昆明网站设计制造设计之家网站怎么样
  • 做美容网站长沙 网站设计 公司
  • 互动网站开发赣州网站建设联系方式
  • 松原做网站平台网站开发的重难点
  • 国际站seo优化是什么意思河源网站建设工作室
  • 网站建设中的思想和算法易营宝智能建站平台
  • 洛阳专注网站建设的公司源码超市网站源码
  • 丰都县网站凌天科技 wordpress
  • 广州哪个公司做网站好弹性盒子做微网站
  • 建设集团公司网站网站端口跳转怎么做
  • 响应式网站做seo跨境电商平台设计
  • 个人网站制作说明合肥网站开发cnfg
  • 公建设计网站o2o免费网站建设
  • 沈阳网站建设 熊掌号wordpress主题删不掉
  • 建设医院官方网站安徽合肥
  • 求个网站填空题做网站教程 第一课
  • 微机课做网站建设企业网站官网企业网银
  • 义乌便宜自适应网站建设厂家成都网站建设报价
  • 电子商务网站建设视频教程九一赣州人才网找工作
  • 网站个人微信收款方案网站建设通常用到哪些编程