英文

BERT大型模型(无大小写)在SQuAD上进行了整词遮蔽微调

BERT是在英语语言上进行预训练的模型,使用了遮蔽语言建模(MLM)目标。它于 this paper 发布,并首次在 this repository 发布。该模型是无大小写的:它不区分英语和English之间的区别。

与其他BERT模型不同,该模型采用了一种新技术:整词遮蔽(Whole Word Masking)。在这种情况下,一个单词对应的所有标记被同时遮蔽。总体的遮蔽率保持不变。

训练方式相同-预测每个遮蔽的WordPiece标记。

在预训练之后,该模型使用我们的微调脚本之一在SQuAD数据集上进行了微调。有关此微调的更多信息,请参见下文。

声明:发布BERT的团队并未为此模型编写模型卡片,因此此模型卡片是由Hugging Face团队编写的。

模型描述

BERT是一个transformers模型,以自监督的方式在大量英语数据上进行了预训练。这意味着它只对原始文本进行了预训练,而没有任何人类以任何方式对其进行标注(这就是为什么它可以使用大量公开可用的数据),并利用自动化过程从这些文本中生成输入和标签。更确切地说,它以两个目标进行了预训练:

  • 掩码语言建模(MLM):给定一个句子,模型会随机屏蔽15%的单词,然后将整个屏蔽的句子通过模型,预测被屏蔽的单词。这不同于通常逐个看到单词的传统递归神经网络(RNN),也不同于像GPT这样在内部屏蔽未来标记的自回归模型。它使模型能够学习句子的双向表示。
  • 下一个句子预测(NSP):在预训练期间,模型将两个屏蔽的句子连接在一起作为输入。它们有时对应于原始文本中紧邻彼此的句子,有时不是。然后,模型需要预测这两个句子是否相互跟随。

这样,模型学习了英语语言的内在表示,然后可以用于提取对下游任务有用的特征:如果你有一个带有标记句子的数据集,可以使用BERT模型生成的特征作为输入训练标准分类器。

此模型的配置如下:

  • 24层
  • 1024隐藏维度
  • 16注意头
  • 336M参数。

预期用途和限制

这个模型应该用作问答模型。你可以将它用于问答流程中,或者在给定查询和上下文的情况下输出原始结果。你可以在transformers文档的 task summary 中看到其他用例。## 训练数据

BERT模型在 BookCorpus 上进行了预训练,该数据集包含11,038本未发表的书籍和 English Wikipedia (不包括列表、表格和标题)。

训练过程

预处理

文本被转换为小写并使用WordPiece和30000个词汇进行分词。模型的输入形式如下:

[CLS] Sentence A [SEP] Sentence B [SEP]

以0.5的概率,句子A和句子B对应于原始语料库中的两个连续句子,在其他情况下,它是语料库中的另一个随机句子。注意,这里考虑的句子是文本的连续跨度,通常比一个单独的句子长。唯一的限制是两个"句子"的结果的长度总和小于512个标记。

每个句子的屏蔽过程的细节如下:

  • 15%的标记被屏蔽。
  • 80%的情况下,屏蔽的标记被替换为[MASK]。
  • 10%的情况下,屏蔽的标记被替换为不同于替换标记的随机标记。
  • 剩下的10%,屏蔽的标记保持不变。

预训练

使用Pod配置的4台云TPU(总共16个TPU芯片)对模型进行了100万步的训练,批处理大小为256。对于90%的步骤,序列长度限制为128个标记,对于剩下的10%,为512。使用的优化器是Adam,学习率为1e-4, β 1 = 0.9 β_{1} = 0.9 β 1 ​ = 0 . 9 和 β 2 = 0.999 β_{2} = 0.999 β 2 ​ = 0 . 9 9 9 ,权重衰减为0.01,学习率预热10,000步,并在线性衰减之后衰减学习率。

微调

在预训练之后,该模型使用我们的微调脚本之一对SQuAD数据集进行了微调。为了再现训练,您可以使用以下命令:

python -m torch.distributed.launch --nproc_per_node=8 ./examples/question-answering/run_qa.py \
    --model_name_or_path bert-large-uncased-whole-word-masking \
    --dataset_name squad \
    --do_train \
    --do_eval \
    --learning_rate 3e-5 \
    --num_train_epochs 2 \
    --max_seq_length 384 \
    --doc_stride 128 \
    --output_dir ./examples/models/wwm_uncased_finetuned_squad/ \
    --per_device_eval_batch_size=3   \
    --per_device_train_batch_size=3   \

评估结果

获得的结果如下:

f1 = 93.15
exact_match = 86.91

BibTeX条目和引用信息

@article{DBLP:journals/corr/abs-1810-04805,
  author    = {Jacob Devlin and
               Ming{-}Wei Chang and
               Kenton Lee and
               Kristina Toutanova},
  title     = {{BERT:} Pre-training of Deep Bidirectional Transformers for Language
               Understanding},
  journal   = {CoRR},
  volume    = {abs/1810.04805},
  year      = {2018},
  url       = {http://arxiv.org/abs/1810.04805},
  archivePrefix = {arXiv},
  eprint    = {1810.04805},
  timestamp = {Tue, 30 Oct 2018 20:39:56 +0100},
  biburl    = {https://dblp.org/rec/journals/corr/abs-1810-04805.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}