网站平台多少钱,深圳设计院跳槽事件,网站建设有什么岗位职责,wordpress tag name slug or id【大语言模型-论文精读】谷歌-BERT#xff1a;用于语言理解的预训练深度双向Transformers 目录 文章目录 【大语言模型-论文精读】谷歌-BERT#xff1a;用于语言理解的预训练深度双向Transformers目录0. 引言1. 简介2 相关工作2.1 基于特征的无监督方法2.2 无监督微调方法2.3…【大语言模型-论文精读】谷歌-BERT用于语言理解的预训练深度双向Transformers 目录 文章目录 【大语言模型-论文精读】谷歌-BERT用于语言理解的预训练深度双向Transformers目录0. 引言1. 简介2 相关工作2.1 基于特征的无监督方法2.2 无监督微调方法2.3 从监督数据迁移学习 3 BERT3.1 预训练 BERT3.2 微调 BERT 4 实验4.1 GLUE4.2 SQuAD v1.14.3 SQuAD v2.04.4 SWAG 5 细分研究5.1 预训练任务的效果5.2 模型大小的影响5.3 基于特征的 BERT 方法 6. 结论后记 0. 引言
article{devlin2018bert,title{Bert: Pre-training of deep bidirectional transformers for language understanding},author{Devlin, Jacob},journal{arXiv preprint arXiv:1810.04805},year{2018}
}BERTBidirectional Encoder Representations from Transformers是由Google在2018年首次提出的一种预训练深度双向Transformers模型具有较强的自然语言理解能力。这篇论文发表后Bert模型迅速从自然语言理解NLP领域扩展应用到计算机视觉、多媒体、图形学图像等诸多领域取得令人瞩目的效果。这篇经典的论文发表至今已经被引用113695次可以肯定地说这是一篇几乎所有从事自然语言处理Natural Lanugage Processing, NLP深度学习(Deep Learning, DL)和大语言模型(Large language model, LLM)相关方向的研究者必看且必了然于胸的一篇佳作。
1. 简介
语言模型预训练已经被证明可以有效地改善许多自然语言处理任务。这些任务包括句子级任务和词符级任务。句子级任务比如自然语言推理和释义目的是通过对句子进行整体分析来预测句子之间的关系词符级人物比如命名实体识别和问题回答要求模型在词符级产生细粒度的输出。 自然语言处理与理解Natural Language Process Understanding 现有的两种策略可以将预训练好的语言表征(表示)应用于下游任务中基于特征和微调fine-tuning, FT。
基于特征的方法比如ELMo使用特定于任务的架构将预先训练好的表征作为额外的特征。微调方法比如生成式预训练Transformer(OpenAI GPT)引入最少得任务相关的参数在下游任务中通过简单的微调所有预训练的模型参数。
这两种方法在预训练期间具有相同的目标函数它们都使用单向语言模型来学习通用语言表征表示形式。
在谷歌的这篇论文中作者认为当前的技术限制了预训练表示的能力特别是对于微调的方法。 最主要的限制是标准语言模型是单向的并且这限制了可以在预训练期间使用的模型结构的选择。 举个例子在 OpenAI GPT 中作者使用从左到右的结构每个词符只能在 Transformer 的自关注层中关注之前的词符Vaswani 等人2017 。 这种限制对于句子级的任务来说不是最优的而且在应用基于微调的方法来处理词符级任务如问题回答时可能是非常有害的因为在这种情况下从两个方向结合上下文至关重要。
在本这篇论文中通过提出 BERT 对基于微调的方法进行改进Bidirectional Encoder Representations from Transformers。 BERT 受 Cloze任务(Taylor1953)的启发通过使用 “屏蔽语言模型”masked language modelMLM预训练目标缓解了前面提到的单向性约束。 屏蔽语言模型从输入中随机屏蔽部分词符目标是仅根据上下文预测屏蔽掉的单词的原始词汇 ID。 与从左到右的语言模型预训练不同MLM 目标使表示形式能够融合左右上下文让我们可以预训练深层双向 Transformer。 除了屏蔽语言模型我们还使用“预测下一个句子”任务来联合预训练文本对的表示。
因此作者认为在这篇论文中有如下三个主要贡献 演示了双向预训练对于语言表示的重要性。 不同于 Radford 等人 2018它使用单向语言模型进行预训练BERT 使用屏蔽语言模型来实现预训练的深度双向表示。 这也不同于 Peters 等人 2018a它使用经过独立训练的从左到右和从右到左 LM 的浅层连接。 论文研究表明经过预训练的表示可以减少许多精心设计特定于任务的结构的需求。 BERT 是第一个在大量句子级以及 词符级任务上实现最先进性能的基于微调的表示模型优于许多特定于任务的结构。 BERT 推进提升了 11 项 NLP 任务的最先进结果。 可以在https://github.com/google-research/bert上找到代码和经过预先训练的模型。
2 相关工作
预先训练通用语言表示形式已有很长的历史本节中简要回顾使用最广泛的方法。
2.1 基于特征的无监督方法
几十年来学习可广泛应用的单词表示方法一直是一个活跃的研究领域包括非神经网络方法Brown 等人1992Ando 和 Zhang2005Blitzer 等人2006和神经网络方法Mikolov 等人2013 Pennington 等人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表明cloze 任务可用于提高文本生成模型的鲁棒性。
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 等人2009 Yosinski 等人2014。
3 BERT
BERT 框架有两个步骤预训练 和微调。
在预训练期间通过不同的预训练任务在未标记的数据上进行模型训练。对于微调首先使用预训练的参数初始化 BERT 模型然后使用下游任务中的标记数据对所有参数进行微调。 每个下游任务都有单独的微调模型即使它们使用相同的预训练参数进行了初始化。 图1 中的问答示例将作为本节的运行示例。 BERT 的一个独有的特征是其跨不同任务的统一结构。 预训练的结构和最终的下游结构之间的差异很小。
模型结构 BERT 的模型结构是一种多层 Transformer 编码器它基于的原始实现的描述位于 Vaswani 等人 2017并发布在 tensor2tensor 库中。因为Transformer 的使用已经很普遍以及我们的实现与原始版本几乎相同我们将省略模型结构的详尽背景说明并请读者参考 Vaswani 等人 2017以及优秀的指南如“The Annotated Transformer”。
在这项工作中我们将网络层即 Transformer 的网络模块的数量表示为 L将隐藏层大小表示为 H并将自注意头的数量表示为 A。我们主要报告两种模型大小的结果BERTBASE (L12, H768, A12, Total Parameters110M) 和BERTLARGE (L24, H1024, A16, Total Parameters340M) 。
为了进行比较选择BERT BASE具有与OpenAI GPT相同的模型大小。 但是至关重要的是BERT Transformer 使用双向自关注而 GPT Transformer 使用受限的自我关注其中每个词符只能关注其左侧的上下文。
输入/输出表示 为了使 BERT 处理各种下游任务我们的输入可以用一个词符序列明确地表示单个句子和一对句子例如⟨Question, Answer ⟩。 在整个工作中“句子”可以是连续文本的任意范围而不是实际的语言句子。 “序列”是指 BERT 的输入词符序列它可以是一个句子或两个句子封装在一起。
我们使用 WordPiece 嵌入Wu 等人2016具有 30,000 个词符的词汇表。 每个序列的第一个标记始终是特殊分类标记[CLS]。 与此标记对应的最终隐藏状态用作分类任务的聚合序列表示。 句子对封装在一起形成单个序列。 我们通过两种方式区分句子。 首先我们使用特殊词符[SEP]将它们分开。 其次我们向每个词符添加一个学习型嵌入表明它是属于句子 A 还是句子 B。 如图 1所示我们将输入嵌入表示为 E将特殊的 [CLS] 词符的最终隐藏向量表示为 C ∈ R H C \in ℝ^H C∈RH第 i 个输入词符为的最终隐藏向量为 T i ∈ R H T_i ∈ ℝ^H Ti∈RH。
对于给定的词符其输入表示是通过将相应的词符嵌入、分段嵌入和位置嵌入相加来构造的。 在图 2 中可以看到这种构造的可视化。
3.1 预训练 BERT
不同于 Peters 等人 2018a和 Radford 等人 2018我们没有使用传统的从左到右或从右到左的语言模型对 BERT 进行预训练。 相反我们使用本节中描述的两个无监督任务对 BERT 进行预训练。 该步骤显示在图 1 的左侧。
任务1屏蔽 LM 直观地讲我们有理由相信一个深层的双向模型严格来说比从左到右的模型或从左到右和从右到左的浅层模型连接更强大。 不幸的是标准的条件语言模型只能从左至右或 从右至左进行训练因为双向条件会让每个词间接地 “看到自己”从而模型在多层上下文中可以十分容易地预测目标词。
为了训练深度双向表示我们简单地随机屏蔽一定百分比的输入词符然后预测这些屏蔽的词符。 尽管此过程在文献中通常被称为 Cloze 任务Taylor1953但我们将该过程称为“屏蔽 LM”MLM。 这种情况下和在标准 LM 中一样与屏蔽词符相对应的最终隐藏向量被送入词汇表上的输出 softmax 中。 在所有实验中我们随机屏蔽每个序列中所有 WordPiece 词符的 15。 与去噪自动编码器Vincent 等人2008不同我们只预测被屏蔽的单词而不重构整个输入。
尽管这可以使我们获得双向的预训练模型但缺点是我们在预训练和微调之间造成了不一致因为 [MASK] 词符不会在微调期间出现。 为了缓解这种情况实际上我们并不总是用 [MASK] 词符替换“被屏蔽”的单词。 训练数据生成器随机选择词符位置的 15 进行预测。 如果选择第 i i i 个词符我们替换这第 i i i 个词符为180 的时间用 [MASK] 词符210 的时间用随机词符310 的时间维持第 i i i 词符不变。 然后将用 T i T_i Ti 以交叉熵损失预测原始词符。 我们在附录 C.2 中比较了此过程的各种变体。
任务 #2下一句预测NSP 许多重要的下游任务例如问答QA和自然语言推理NLI是是基于理解两个句子之间的关系而这不是语言建模直接捕获的。 为了训练能够理解句子关系的模型我们预训练了可以从任何单语语料库很容易生成的二值下一个句子预测 任务。 具体来说当为每个预训练样本选择句子 A 和 B 时50 的时间 B 是紧随其后的实际下一个句子 A标记为IsNext50 的时间是语料库中的随机句子标记为 NotNext。 如图 1 所示C 用于下一句预测NSP。5 尽管非常简单我们在 5.1 节中展示此任务的预训练对 QA 和 NLI 都非常有益。 6 NSP 任务与表示学习目标很接近参见 Jernite 等人 2017和 Logeswaran 和 Lee2018。 但是在之前的工作中只有句子嵌入被传输到下游任务而 BERT 传输所有参数以初始化最终任务模型的参数。
预训练数据 预训练过程在很大程度上遵循有关语言模型预训练的现有文献。 对于预训练语料库我们使用 BooksCorpus800 万个单词Zhu 等人2015和英语 Wikipedia25 亿个单词。 对于 Wikipedia我们仅提取文本段落而忽略列表、表格和标题。 为了提取长的连续序列使用文档级语料库而不是洗乱的句子级语料库如 Billion Word BenchmarkChelba 等人2013至关重要。
3.2 微调 BERT
微调很简单因为 Transformer 中的自我关注机制允许 BERT 通过交换适当的输入和输出来建模许多下游任务无论它们涉及单个文本还是文本对。 对于涉及文本对的应用常见的模式是在应用双向交叉注意之前对文本对进行独立编码例如 Parikh 等人 2016 Seo 等人 2017。 BERT 使用自我注意机制来统一这两个阶段因为使用自我注意编码连接的文本对行实际上包括了两个句子之间的双向 交叉注意。
对于每个任务我们只需将特定于任务的输入和输出送入 BERT并端到端微调所有参数。 在输入处来自预训练的句子 A 和句子 B 类比于1paraphrasing 中的句子对2entailment 中的假设-前提对3question answering 中使用的 question-passage 对以及4在文本分类或序列标记中使用退化的 text-∅ 对。 在输出处将词符表示输入到输出层中以进行词符级任务如序列标记或问题回答将 [CLS] 表示输入到输出层中进行分类如蕴含或情感分析。
与预训练相比微调代价相对较小。 从完全相同的预训练模型开始论文中的所有结果都可以复现在单个 Cloud TPU 上最多 1 个小时在 GPU 上最多需要几个小时。7 我们在第 4 节的相应小节中描述特定任务的细节。 更多详细信息请参见附录 A.5。
4 实验
在本节中我们介绍了11个NLP任务的BERT微调结果。
4.1 GLUE
通用语言理解评估GLUE基准Wang等人2018a是各种自然语言理解任务的集合。 GLUE数据集的详细说明包含在附录B.1中。
为了对 GLUE 进行微调我们按照第 3 节中的描述表示输入序列针对单个句子或句子对并使用对应于第一个输入词符[CLS]的最终的隐藏向量 C ∈ R H C ∈ℝ^H C∈RH 作为聚合表示。 微调期间引入的唯一新参数是分类层权重 W ∈ R K × H W ∈ ℝ ^{K × H} W∈RK×H其中K是标签数。 我们用 C C C 和 W W W 计算标准分类损失即 log ( s o f t m a x ( C W T ) ) \log(softmax(CW^T )) log(softmax(CWT)) 。
对于所有 GLUE 任务我们使用的 batch size 为 32 在数据上进行 3 个 epoch 的微调。 对于每个任务我们在开发集上选择最佳的微调学习率在 5 e − 5 5e-5 5e−5、 4 e − 5 4e-5 4e−5、 3 e − 5 3e-5 3e−5 和 2 e − 5 2e-5 2e−5中。 另外对于 BERTLARGE我们发现微调有时在小型数据集上不稳定因此我们并在开发集上进行了几次随机重跑选择最佳模型。 对于随机重跑我们使用相同的预训练检查点但执行不同的微调数据洗乱和分类器层初始化。
结果显示在表 1 中。 BERTBASE 和 BERTLARGE 在所有任务上的性能均优于所有系统分别比之前的最先进结果提高了 4.5 和 7.0。 请注意除了注意力屏蔽之外BERTBASE 和 OpenAI GPT 在模型架构方面几乎相同。 对于最大且报告最广的 GLUE 任务 MNLIBERT 获得 4.6 的绝对准确度改进。 在官方 GLUE 排行榜10 上BERTLARGE 得分为 80.5而截至撰写之日 OpenAI GPT 得分为 72.8 。
我们发现在所有任务中尤其是训练数据很少的任务BERTLARGE 明显优于 BERTBASE。 在5.2部分中更全面地探讨了模型大小的影响。
4.2 SQuAD v1.1
斯坦福问答数据集SQuAD v1.1是10万个众包问题/答案对的集合Rajpurkar等人2016。 给定一个问题以及Wikipedia中包含答案的段落任务是预测段落中的答案文本范围。
如图 1 所示在问题回答任务中我们将输入的问题和段落表示封装成单个序列其中问题使用 A 嵌入而段落使用 B 嵌入。 在微调期间我们只引入一个开始向量 S ∈ R H S ∈ℝ^H S∈RH 和一个结束向量 E ∈ R H E ∈ℝ^H E∈RH。 单词 i 是答案范围的开始的概率计算为 T i T_i Ti 和 S S S 之间的点积后面是一个段落上单词的 softmax 。 候选范围位置 i 到位置 j 的分值定义为 S⋅Ti E⋅Tj分值最大的范围作为预测其中 j≥i。 训练目标是正确的开始和结束位置的对数似然率的总和。 我们以 3e-5 的学习率和 32 的批处理大小微调 3 个 epoch。 表 2 显示顶级排行榜和发表的顶级系统Seo 等人2017Clark 和 Gardner2018Peters 等人2018aHu 等人2018。 SQuAD 排行榜的最高结果没有公开最新系统的描述11 允许使用任何公共数据训练他们的系统。 因此我们首先在 TriviaQA 上进行微调Joshi等人2017然后在 SQuAD 上进行微调从而在系统中使用适度的数据增强。
我们表现最好的系统在集成时比排行榜最高的系统高出 1.5 个 F1 值在单一系统时高出 1.3 个 F1 值。 实际上就 F1 分数而言我们的单一 BERT 模型优于最好的集成系统。 如果没有 TriviaQA 的微调数据我们只会损失 0.1-0.4 个 F1 值仍然远远胜过所有现有系统。12
4.3 SQuAD v2.0
SQuAD 2.0任务通过允许在提供的段落中不存在简短答案的可能性扩展了SQuAD 1.1问题定义从而使问题更加实际。
我们使用一种简单的方法来扩展SQuAD v1.1 BERT模型以完成此任务。 我们将没有答案的问题视为答案范围的开始和结束都位于 [CLS] 词符。 答案范围开始和结束位置的概率空间扩展为包括 [CLS] 词符的位置。 对于预测我们比较非答案的范围 snull S⋅CE⋅C 和最高的非空范围 si,j maxj≥iS⋅Ti E⋅Tj 得分。 我们预测非空答案满足 si,j snull τ其中阈值 τ 在开发集上选择以最大化 F1 值。 我们没有为此模型使用TriviaQA数据。 我们微调了 2个 epoch学习率为 5e-5批次大小为 48。
与之前的排行榜和已发表的最好工作Sun 等人2018Wang 等人2018b的比较结果显示在表 3 中不包括使用 BERT 作为其组件之一的系统。 与之前的最佳系统相比我们观察到 1 F1 的改进。
4.4 SWAG
Situations With Adversarial GenerationsSWAG数据集包含 113k 个句子对补全样本用于评估基础常识推理Zellers 等人2018。 这个任务是在给定一个句子的情况下在四个选项中选择最合理的选项来延续这个句子。
在SWAG数据集上进行微调时我们构造了四个输入序列每个输入序列包含给定句子句子A和可能的延续词句子B的连接。 引入的唯一特定于任务的参数是一个向量它与 [CLS] 词符表示 C 的点积表示每个选项的得分并使用 softmax 层对其进行归一化。
我们对模型进行了 3个 epoch的微调学习率为 2e-5批处理大小为 16。 结果显示在表 4 中。 BERTLARGE 比作者的基准 ESIM ELMo 系统高出 27.1比 OpenAI GPT 高出 8.3。
5 细分研究
在本节中我们将对 BERT 的多个方面进行细分实验以更好地了解它们的相对重要性。 其它细分研究可在附录 C 中找到。
5.1 预训练任务的效果
我们通过使用与 BERTBASE 完全相同的预训练数据、微调方案和超参数来评估两个预训练目标证明了 BERT 深度双向性的重要性。 No NSP使用 “屏蔽 LM”MLM训练的双向模型但没有 “下一句预测”NSP任务。 LTR No NSP一个仅有左侧上下文的模型它是用标准的从左到右LTRLM而不是 MLM 训练。 左约束也应用于微调因为删除它会引入预训练/微调不匹配从而降低下游性能。 此外该模型无需NSP任务即可进行预训练。 这可以直接与OpenAI GPT相提并论但要使用更大的训练数据集输入表示形式和微调方案。 我们首先研究 NSP 任务带来的影响。 在表 5 中我们显示删除 NSP 会严重损害 QNLI、MNLI 和 SQuAD 1.1 的性能。 接下来我们通过比较“No NSP”与“LTR No 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次随机微调重新启动后的平均Dev Set精度。 我们可以看到较大的模型使得所有四个数据集的准确性提高即使对于只有 3,600 个带标签的训练样本且与预训练任务大不相同的 MRPC 也是一样。 我们能够在相对于现有文献而言已经相当大的模型的基础上实现如此显着的改进这也许也令人惊讶。 例如在 Vaswani 等人 2017L 6、H 1024、A 16参数为 100M 的编码器我们在文献中找到的最大 Transformer 是L 64、H 512、A 2具有 235M 个参数Al-Rfou 等人2018。 相比之下BERTBASE 包含 110M 参数而 BERTLARGE 包含 340M 参数。 众所周知增加模型大小将导致大规模任务如机器翻译和语言建模的不断改进表 6 所示的 LM 对持有的训练数据的迷惑性就证明了这一点。 但是我们认为这是第一个有说服力的工作证明只要模型已经过充分的预训练将模型缩放到极端的模型大小也可以在非常小的规模的任务上带来很大的改进。 Peters 等人 2018b公开了将预训练的 bi-LM 大小从两层增加到四层在下游任务上的混合结果以及 Melamud 等人 2016顺便提到了将隐藏大小从 200 增加到 600 有帮助但进一步增加到 1000 并没有带来进一步的改进。 这两个先前的工作都使用基于特征的方法-我们假设当直接在下游任务上微调模型并且仅使用很少数量的随机初始化的附加参数时特定于任务的模型可以从较大的模型中受益即使下游任务数据非常小也可以提供更具表现力的预训练表示形式。
5.3 基于特征的 BERT 方法
到目前为止所有提出的 BERT 结果都使用微调方法即在预训练模型中添加一个简单的分类层在下游任务上对所有参数进行共同微调。 但是基于特征的方法即从预训练的模型中提取固定的特征也有一定的优势。 首先并非所有任务都可以由 Transformer 编码器结构轻松表示因此需要添加特定于任务的模型结构。 其次预计算一次训练数据的昂贵表示然后在这个表示之上用更便宜的模型运行许多实验有很大的计算优势。
在本节中我们通过将 BERT 应用于 CoNLL-2003 命名实体识别NER任务Tjong Kim Sang 和 De Meulder2003来比较这两种方法。 在 BERT 的输入中我们使用一个大小写保留的 WordPiece 模型并且最大程度包含数据提供的文档上下文。 按照标准惯例我们将其公式化为标记任务但在输出中不使用 CRF 层。 我们使用第一个子词符的表示作为 NER 标签集上词符级分类器的输入。
为了详细分解研究微调方法我们应用基于特征的方法在没有 微调 BERT 任何参数的情况下提取一个或多个层的激活。 这些上下文嵌入用作分类层之前的随机初始化的两层 768 维 BiLSTM 的输入。
结果显示在表 7 中。 BERT LARGE与最先进的方法相比具有竞争力。 表现最好的方法将来自预训练的 Transformer 的顶部四个隐藏层的词符表示连接起来这仅比微调整个模型低 0.3 F1。 这表明 BERT 对于微调和基于特征的方法均有效。 6. 结论
最近由于语言模型的迁移学习经验所带来的改进表明丰富的、无监督的预训练是许多语言理解系统中不可或缺的一部分。 尤其是这些结果使即使是资源很少的任务也可以从深度单向结构中受益。 我们的主要贡献是将这些发现进一步推广到更深的双向 体系结构中从而使相同的预训练模型能够成功解决各种 NLP 任务。 后记
如果您对我的博客内容感兴趣欢迎三连击(点赞关注和评论)我将持续为您带来计算机人工智能前沿技术(尤其是AI相关的大语言模型深度学习计算机视觉相关方向)最新学术论文及工程实践方面的内容分享助力您更快更准更系统地了解 AI前沿技术。