大模型必读系列01:BERT精读笔记

作者:猥琐发育的

公众号:【DarkMythAI】
大模型必读系列01:BERT精读笔记

背景介绍

论文简介

  • 论文标题: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  • **论文作者:**Jacob Devlin,Ming-Wei Chang,Kenton Lee,Kristina Toutanova,Google AI Language
  • 发表时间: 2018.11.11
  • 发表平台: NAACL
  • **论文链接:**https://arxiv.org/pdf/1810.04805
  • **源码链接:**https://github.com/google-research/bert
  • **阅读时间:**2024.09.06

论文摘要

文章介绍了一种新型的语言表示模型BERT(Bidirectional Encoder Representations from Transformers,基于Transformer的双向编码器表示)。BERT旨在通过在所有层中同时考虑左右两侧的上下文信息,对未标记的文本进行深度双向预训练表示。因此,预训练的BERT模型可以通过一个额外的输出层对特定的任务进行微调,无需对架构进行大量修改就能提高模型性能。结果显示,BERT在11个NLP任务上都获得了最先进的结果。

论文引言

文章描述了预训练模型应用于下游任务有两种方法,分别是基于特征(ELMo)和微调(OpenAI GPT Model)的方法,并明确目前已有的方法都是使用单向语言模型来学习语言的表示。文章认为单向的语言学习限制了预训练模型的应用能力,特别是基于微调的方法,而BERT模型则是基于微调的方法进行改进的。如下图所示,OpenAI GPT使用的是从左到右(left to right,LTR)架构的Transformer;ELMo使用的是独立训练LSTM,并从左到右和从右到左进行连接,来生成下游任务的特征;而BERT是使用深度双向的Transformer。
请添加图片描述

论文方法

模型架构

BERT中有两个步骤:预训练和微调。在预训练过程中,模型在不同的预训练任务上对未标记数据进行训练。对于微调,首先使用预训练的参数初始化BERT模型,然后使用来自下游任务的标记数据对所有参数进行微调。另外,BERT采用的是多层双向Transformer Encoder。
请添加图片描述
在这里插入图片描述

预训练任务

BERT使用两种无监督任务进行预训练:

  • 掩码语言模型(MLM):随机掩盖输入中的一些token,然后根据上下文预测被掩盖的单词。具体来说,每个序列中随机掩盖15%的WordPiece token,掩盖方式包括80%的时间替换为[MASK] token,10%的时间替换为随机token,10%的时间保持不变。
  • 下一个句子预测(NSP):从语料库中随机选择两个句子,50%的时间第二个句子是实际接下来的句子,50%的时间是随机选择的句子。该任务用于训练模型理解句子关系。

输入输出表示

输入表示通过将对应的token Embeddings、分段Embeddings和位置Embeddings相加得到。对于分类任务,使用特殊标记**[CLS]的最终隐藏状态作为聚合序列表示。句子对打包成一个序列,使用特殊标记[SEP]**分隔句子,并为每个token添加一个学习嵌入以指示其属于哪个句子。
在这里插入图片描述

实验设置

文章中使用了两种不同尺度的BERT,并在11个NLP任务进行了微调实验,分别为BERTBASE(L=12, H=768, A=12, Total Parameters=110M)和BERTLARGE(L=24,H=1024,A=16, Total Parameters=340M),其中L、H和A分别为Transformer Encoder的层数、隐藏层大小和self-attention头的数量,两者参数量分别为110M和340M。

对比试验

GLUE基准数据集

文章先使用GLUE基准的8个数据集(下载地址:https://github.com/nyu-mll/GLUE-baselines)进行了对比试验,包括:

  • MNLI,Multi-Genre Natural Language Inference:一个大规模的、蕴涵分类任务的数据集。即给定一对句子,目标是预测第二个句子相对于第一个句子是蕴涵、矛盾还是中立。
  • QQP,Quora Question Pairs:一个二元分类任务的数据集,其目标是确定QQP上提出的两个问题在语义上是否等效。
  • QNLI,Question Natural Language Inference:斯坦福问答数据集的一个版本,为二元分类任务数据集。肯定的例子是包含正确答案的(问题、句子),否定的例子是来自同一段的(问题、句子),但不包含正确答案。
  • SST-2,The Stanford Sentiment Treebank:该数据集为斯坦福情感树库,是一个二元单句分类任务,由从电影评论中提取的句子和人类对其情感的注释组成。
  • CoLA,The Corpus of Linguistic Acceptability:一个二元单句分类任务数据集,其目标是预测英语句子在语言上是否可接受。
  • STS-B,The Semantic Textual Similarity Benchmark:该数据集是从新闻标题和其他来源提取的句子对的集合,被标注了从1到5的分数,表示这两个句子在语义上的相似程度。
  • MRPC,Microsoft Research Paraphrase Corpus:由自动从在线新闻来源中提取的句子对组成,并对句子对中的句子是否语义等效进行人工注释。
  • RTE,Recognizing Textual Entailment:一种类似于MNLI的二元蕴涵任务。
    从下表的结果来看,BERT在所有任务上的表现都大大超过了所有的预训练模型。
    在这里插入图片描述

SQuAD v1.1数据集

SQuAD v1.1为斯坦福问答数据集数据集(https://huggingface.co/datasets/rajpurkar/squad)是10万个众包问题/答案对的集合,给定一个问题和一段维基百科中包含答案的文章,任务是预测文章中答案的文本跨度。这里文章微调了3个epoch,学习率为5e-5,批大小为32。从下表可以看出,BERT在SQuAD v1.1任务上取得了93.2的F1分数,比现有最佳系统高出1.5 F1分数。
在这里插入图片描述

SQuAD v2.0数据集

SQuAD v2.0数据集(https://huggingface.co/datasets/rajpurkar/squad_v2)扩展了SQuAD v1.1问题定义,允许在所提供的段落中不存在简短答案的可能性,从而使问题更加现实。这里文章微调了2个epoch,学习率为5e-5,批大小为48。从下表可知,BERT在SQuAD v2.0任务上取得了83.1的F1分数,比之前最佳系统高出5.1 F1分数。
在这里插入图片描述

SWAG数据集

SWAG,对抗世代情境数据集(https://huggingface.co/datasets/allenai/swag)包含113k个句子对补全示例,用于评估基于常识的推理。给定一个句子,任务是从四个选项中选出最合理的延续。这里文章对模型进行了3次微调,学习率为25 -5,批量大小为16。从下表可以看出,BERT在SWAG数据集上取得了86.3的F1分数,比基线ESIM+ELMo系统高出27.1,比OpenAI GPT高出8.3。

在这里插入图片描述

消融实验

文章通过使用完全相同的预训练数据、微调方案和超参数来评估两个预训练目标,从而证明了BERT深度双向性的重要性。

模块消融

从下表可以看出,BERT在四项消融实验中的效果都达到了第一,使用MLM架构的BERT在5个NLP任务上都要优于使用LTR架构的BERT。

  • 在上面论文方法中就可以知道NSP为BERT两种预训练方法之一,即**“下一个句子的预测”No NSP即只有MLM**一种预训练方法。
  • 在上面论文引言中已经提到了LTR,即OpenAI GPT,从左到右的训练架构。在这里LTR替代了MLM
  • 第四项实验是为了提高仅使用LTR架构的BERT的性能,为其添加了一个随机初始化的BiLSTM,虽然在SQuAD上任务有提高,但是却损害了GLUE任务的性能。
    在这里插入图片描述

超参数消融

在这组消融实验中,文章通过调整不同的超参数以获取最佳的超参数组合,其中L为Transformer Encoder的层数、H为隐藏层大小和A为Attention的头数量。下表中的LM指的是被遮挡的训练数据的LM困惑,笔者理解为模型参数越多,预测能力就越强,LM越小则是模型对被遮挡的数据预测难度就更小。
在这里插入图片描述

基于特征的BERT方法

在这组实验中,文章使用了 CoNLL-2003(https://huggingface.co/datasets/eriktks/conll2003)命名实体识别数据集进行实验。这里文章是这样说的,性能最好的方法将来自预训练的Transformer的前四个隐藏层的token表示连接起来,这只比微调整个模型落后0.3 F1。这表明BERT对于微调和基于特征的方法都是有效的。
在这里插入图片描述

结论

本文提出的BERT模型通过深度双向预训练显著提升了多种自然语言处理任务的性能。BERT的核心贡献在于进一步推广了迁移学习的发现,使得相同的预训练模型能够成功应对广泛的NLP任务。BERT的成功表明,深度双向预训练在语言表示方面具有显著优势,并且可以有效地应用于各种下游任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YaoAIPro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值