当前位置:   article > 正文

【第18篇】Bert论文翻译,资深Python开发带你入门Framework

【第18篇】Bert论文翻译,资深Python开发带你入门Framework

与预训练相比,微调相对便宜。 从完全相同的预训练模型开始,论文中的所有结果最多可以在单个 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 \in \mathbb{R}^{H} C∈RH 作为聚合表示 . 微调期间引入的唯一新参数是分类层权重 W ∈ R K × H W \in \mathbb{R}^{K×H} W∈RK×H,其中 K 是标签的数量。 我们用 C 和 W 计算标准分类损失,即 log(softmax( C W T CW^{T} CWT))。

我们使用 32 的批量大小并对所有 GLUE 任务的数据进行 3 个时期的微调。 对于每个任务,我们在开发集上选择了最佳的微调学习率(在 5e-5、4e-5、3e-5 和 2e-5 中)。 此外,对于 B E R T L A R G E BERT_{LARGE} BERTLARGE​,我们发现微调有时在小数据集上不稳定,因此我们运行了几次随机重启并在开发集上选择了最佳模型。 对于随机重启,我们使用相同的预训练检查点,但执行不同的微调数据混洗和分类器层初始化。

image-20211020133106386

结果如表 1 所示。 B E R T B A S E BERT_{BASE} BERTBASE​ 和 B E R T L A R G E BERT_{LARGE} BERTLARGE​ 在所有任务上的表现都大大优于所有系统,与现有技术相比,平均准确度分别提高了 4.5% 和 7.0%。 请注意,除了注意屏蔽之外, B E R T B A S E BERT_{BASE} BERTBASE​ 和 OpenAI GPT 在模型架构方面几乎相同。 对于最大和最广泛报道的 GLUE 任务 MNLI,BERT 获得了 4.6% 的绝对准确度提升。在官方 GLUE 排行榜上, B E R T L A R G E BERT_{LARGE} BERTLARGE​ 获得了 80.5 分,而 OpenAI GPT 在撰写本文时获得了 72.8 分。

我们发现 B E R T L A R G E BERT_{LARGE} BERTLARGE​ 在所有任务中都明显优于 B E R T B A S E BERT_{BASE} BERTBASE​,尤其是那些训练数据很少的任务。 第 5.2 节更深入地探讨了模型大小的影响。

4.2 SQuAD v1.1


斯坦福问答数据集 (SQuAD v1.1) 是 10 万个众包问答对的集合(Rajpurkar 等,2016)。 给定一个问题和包含答案的维基百科段落,任务是预测段落中的答案文本跨度。

如图 1 所示,在问答任务中,我们将输入问题和段落表示为单个打包序列,问题使用 A 嵌入,段落使用 B 嵌入。 我们仅在微调期间引入起始向量 C ∈ R H C \in \mathbb{R}^{H} C∈RH 和结束向量 E ∈ R H E \in \mathbb{R}^{H} E∈RH。 单词 i 作为答案范围开始的概率计算为 Ti 和 S 之间的点积,然后是段落中所有单词的 softmax: P i = e S ⋅ T i ∑ j e S ⋅ T j P_{i}=\frac{e^{S \cdot T_{i}}}{\sum_{j} e^{S \cdot T_{j}}} Pi​=∑j​eS⋅Tj​eS⋅Ti​​。 类似的公式用于答案跨度的结束。 从位置i到位置j的候选跨度的得分定义为S·Ti + E·Tj,其中j≥i的最大得分跨度被用作预测。 训练目标是正确开始和结束位置的对数似然之和。 我们以 5e-5 的学习率和 32 的批量大小对 3 个 epoch 进行了微调 。

image-20211020133123356

表 2 显示了顶级排行榜条目以及顶级发布系统的结果(Seo 等,2017;Clark 和 Gardner,2018;Peters 等,2018a;Hu 等,2018)。 SQuAD 排行榜的最佳结果没有可用的最新公共系统描述,11 并且允许在训练其系统时使用任何公共数据。 因此,我们首先在 TriviaQA(Joshi 等,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 模型来完成这项任务。 我们将没有答案的问题视为具有以 [CLS] 标记开始和结束的答案范围。 开始和结束答案跨度位置的概率空间扩展为包括 [CLS] 标记的位置。 对于预测,我们将无答案范围的得分: s n u l l s_{null} snull​ =S·C + E·C 与最佳非空范围 s i , j = max ⁡ j ≥ i S ⋅ T i + E ⋅ T j 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 + τ s_{i, j}>s_{\mathrm{null}}+\tau si,j​>snull​+τ 时回答,其中在开发集上选择阈值 τ 以最大化 F1。 我们没有为此模型使用 TriviaQA 数据。 我们以 5e-5 的学习率和 48 的批量大小对 2 个 epoch 进行了微调。

image-20211020133154085

与之前的排行榜条目和最热门的发表作品(Sun 等人,2018 年;Wang 等人,2018b)相比的结果如表 3 所示,不包括使用 BERT 作为其组件之一的系统。 我们观察到比之前最好的系统有 +5.1 F1 的改进。

4.4 SWAG


The Situations With Adversarial Generations (SWAG) 数据集包含 113k 句对完成示例,用于评估扎根常识推理(Zellers 等人,2018 年)。 给定一个句子,任务是在四个选项中选择最合理的延续。

在对 SWAG 数据集进行微调时,我们构建了四个输入序列,每个序列都包含给定句子(句子 A)和可能的延续(句子 B)的串联。 引入的唯一特定于任务的参数是一个向量,其与 [CLS] 标记表示 C 的点积表示每个选择的分数,该分数用 softmax 层归一化。

image-20211020133240548

我们以 2e-5 的学习率和 16 的批量大小对模型进行了 3 次微调。结果如表 4 所示。 B E R T L A R G E BERT_{LARGE} BERTLARGE​ 的性能优于作者的基线 ESIM+ELMo 系统 +27.1% 和 OpenAI GPT 8.3 %。

5 消融研究

=================================================================

在本节中,我们对 BERT 的多个方面进行消融实验,以更好地了解它们的相对重要性。 附加消融研究可在附录 C 中找到。

5.1 预训练任务的效果


我们使用与 B E R T B A S E BERT_{BASE} BERTBASE​ 完全相同的预训练数据、微调方案和超参数来评估两个预训练目标,从而证明了 BERT 深度双向性的重要性:

No NSP:使用“masked LM”(MLM)训练但没有“下一句预测”(NSP)任务的双向模型。

LTR & No NSP:使用标准从左到右 (LTR) LM 而不是 MLM 训练的仅左上下文模型。 仅左约束也应用于微调,因为删除它会引入预训练/微调不匹配,从而降低下游性能。 此外,该模型是在没有 NSP 任务的情况下进行预训练的。 这与 OpenAI GPT 直接相当,但使用我们更大的训练数据集、我们的输入表示和我们的微调方案 .

image-20211020133305002

我们首先检查 NSP 任务带来的影响。 在表 5 中,我们表明移除 NSP 会显着影响 QNLI、MNLI 和 SQuAD 1.1 的性能。 接下来,我们通过比较“No NSP”和“LTR & No NSP”来评估训练双向表示的影响。 LTR 模型在所有任务上的表现都比 MLM 模型差,在 MRPC 和 SQuAD 上有很大的下降。

对于 SQuAD,很明显 LTR 模型在令牌预测方面表现不佳,因为令牌级隐藏状态没有右侧上下文。 为了真诚地尝试加强 LTR 系统,我们在顶部添加了一个随机初始化的 BiLSTM。 这确实显着改善了 SQuAD 的结果,但结果仍然比预训练的双向模型差得多。 BiLSTM 会影响 GLUE 任务的性能。

我们认识到,也可以训练单独的 LTR 和 RTL 模型,并将每个令牌表示为两个模型的串联,就像 ELMo 所做的那样。 但是:(a) 这是两倍 作为单一的双向模型昂贵; (b) 这对于像 QA 这样的任务来说是不直观的,因为 RTL 模型将无法根据问题确定答案; © 这严格来说不如深度双向模型强大,因为它可以在每一层使用左右上下文。

5.2 模型大小的影响


在本节中,我们将探讨模型大小对微调任务准确性的影响。 我们训练了许多具有不同层数、隐藏单元和注意力头的 BERT 模型,而其他方面 使用与前面描述的相同的超参数和训练程序 .

所选 GLUE 任务的结果如表 6 所示。在此表中,我们报告了 5 次随机重新启动微调的平均开发集准确度。 我们可以看到,更大的模型在所有四个数据集上都带来了严格的准确率提升,即使对于只有 3,600 个标记训练示例的 MRPC 也是如此,并且与预训练任务有很大不同。 也许令人惊讶的是,我们能够在相对于现有文献已经相当大的模型之上实现如此显着的改进。 例如,Vaswani 等人探索的最大变压器。 (2017) 是 (L=6, H=1024, A=16) 编码器参数为 100M,我们在文献中发现的最大 Transformer 是 (L=64, H=512, A=2) 与 235M 参数(Al-Rfou 等人,2018 年)。 相比之下, B E R T B A S E BERT_{BASE} BERTBASE​ 包含 110M 参数, B E R T L A R G E BERT_{LARGE} BERTLARGE​ 包含 340M 参数。

image-20211020133340945

众所周知,增加模型大小将导致机器翻译和语言建模等大规模任务的持续改进,表 6 中显示的保留训练数据的 LM 困惑证明了这一点。 然而,我们相信这是第一个令人信服地证明扩展到极端模型大小也会导致非常小规模任务的巨大改进的工作,前提是模型已经过充分的预训练。彼得斯等人。 (2018b) 对将预训练的双 LM 大小从两层增加到四层和 Melamud 等人的下游任务影响提出了不同的结果。 (2016) 顺便提到将隐藏维度大小从 200 增加到 600 有所帮助,但进一步增加到 1,000 并没有带来进一步的改进。这两项先前的工作都使用了基于特征的方法——我们假设当模型直接在下游任务上进行微调并且只使用非常少量的随机初始化的附加参数时,特定于任务的模型可以从更大、更有表现力的预- 即使下游任务数据非常小,也能训练表示 。

5.3 BERT 基于特征的方法


到目前为止,所有的 BERT 结果都使用了微调方法,其中一个简单的分类层被添加到预训练模型中,所有参数在下游任务上联合微调。 然而,从预训练模型中提取固定特征的基于特征的方法具有一定的优势。 首先,并非所有任务都可以通过 Transformer 编码器架构轻松表示,因此需要添加特定于任务的模型架构。 其次,预先计算一次昂贵的训练数据表示,然后在此表示之上使用更便宜的模型运行许多实验,具有重大的计算优势。

在本节中,我们通过将 BERT 应用于 CoNLL-2003 命名实体识别 (NER) 任务(Tjong Kim Sang 和 De Meulder,2003)来比较这两种方法。 在 BERT 的输入中,我们使用了一个大小写保留的 WordPiece 模型,并且我们包含了数据提供的最大文档上下文。 按照标准做法,我们将其制定为标记任务,但不在输出中使用 CRF 层。 我们使用第一个子令牌的表示作为 NER 标签集上令牌级分类器的输入。

为了消除微调方法,我们通过从一层或多层中提取激活来应用基于特征的方法,而无需微调 BERT 的任何参数。 这些上下文嵌入用作分类层之前随机初始化的两层 768 维 BiLSTM 的输入。

image-20211020133401767

最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~

给大家准备的学习资料包括但不限于:

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
img

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
[外链图片转存中…(img-7c3oo8sc-1710885509058)]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/588523
推荐阅读
相关标签
  

闽ICP备14008679号